Prefetch、AmCache、ShimCache:プログラム実行証拠のクイックリファレンス

読了 2 分

TL;DR. 私がトリアージで実際に使う優先順位は以下のとおりです。Prefetch(有効時に最も強力)、BAM/DAM(Win10+ のユーザーごとの最終実行、犯罪的に過少利用)、AmCache(SHA-1 識別)、ShimCache(存在のアンカー)、UserAssist(Explorer 起動のみ)。単一のアーティファクトで案件は終わりません。三角測量しなければ、実行を主張するのはやめてください。

「このプログラムは、いつ、誰によって実行されたか?」を完璧に答える単一の Windows アーティファクトは存在しません。そう言うなら、まだ案件を十分に経験していないか、何かを売り込んでいるかのどちらかです。機能するのは、それぞれが質問の一部をカバーする短いリストのアーティファクトと、相互参照する習慣です。

ショートリスト

アーティファクト場所記録内容実行に対する信頼性
PrefetchC:\Windows\Prefetch\*.pfパス、実行回数、直近 8 回の実行時刻、ロードされたファイル非常に高い。プロセス開始時のみ書き込まれる。
AmCacheC:\Windows\AppCompat\Programs\Amcache.hveパス、SHA-1、サイズ、発行元、インストール + 初回実行高い。明示的な実行タイムスタンプ。
ShimCacheSYSTEM ハイブ …\Session Manager\AppCompatCacheパス、ファイル mtime中程度。存在を証明し、しばしば(必ずではない)実行を示唆する。
UserAssistNTUSER.DAT …\UserAssist(registry)Explorer 経由のユーザーごとの GUI プログラム起動高い、ただしユーザー起動のみ、ROT13 でエンコード。
BAM / DAMSYSTEM ハイブ …\bam\State と …\dam\Stateバイナリごとのユーザーごとの最終実行時刻非常に高い。Win10+、解析容易、しばしば見落とされる。

優先順位に従って読む

1. まず Prefetch。 .pf ファイルは Windows が持つ「これが実行された」レシートに最も近いものです。最大 8 回の実行時刻、総実行回数、ロードされたモジュールのリスト。ワークステーション SKU では Prefetch がデフォルトで有効です。Eric Zimmerman の PECmd が標準パーサです。自作したい場合は Prefetch parser がフォーマットをカバーしています。

2. 次に BAM / DAM。 Background and Desktop Activity Moderator はバックグラウンドアプリをスロットルし、SYSTEM ハイブの …\Services\bam\State と …\Services\dam\State 配下にユーザーごと、バイナリごとの「最終実行」タイムスタンプを保持します。Windows 10 と 11 で存在し、ノイズが少なく、読みやすい。元の IR チームの誰も引き出していなかった BAM 行で案件を終えたことがあります。

3. 3 番目に AmCache。 Prefetch が無効化されていることが多いサーバー、攻撃者が Prefetch フォルダを消去したホストで Prefetch を補完します。SHA-1 ハッシュがキラー機能です。ファイルが削除されているとき、ハッシュが VirusTotal と脅威インテリジェンスへの唯一のハンドルになります。ShimCache と AmCache を参照してください。

4. 4 番目に ShimCache。 存在のアンカーであり、実行主張ではありません。実行証明の投稿 で根拠を扱っています。

5. 最後に UserAssist。 Explorer 経由の対話的起動の強力な証拠です。シェル、スケジュールされたタスク、サービスから起動されたものには盲目です。「ユーザーがこれをクリックしたか?」が問いのときに有用。ROT13 を扱う任意のレジストリツールで読めます。registry parser はインラインでデコードします。

ハマるところ

  • Prefetch が無効化されていることがある。 SSD、サーバー SKU、グループポリシーがすべて無効化します。空の Prefetch は不在の証拠ではありません。
  • AmCache はローテートする。 古いエントリは年を経て排出されます。トリアージの早い段階でハイブを引きましょう。
  • ShimCache タイムスタンプはファイル mtime。 実行時刻ではありません。フラッシュ時刻でもありません。ファイルの mtime です。腑に落ちるまで読み直してください。
  • UserAssist は ROT13。 デコードは簡単ですが、不慣れな読者を引っ掛けます。
  • BAM は過少利用。 モダンな Windows で「このユーザーがこのバイナリを実行したか?」のシグナルとしてはおそらく最もクリーンです。

ケース次第で知っておくべき他のアーティファクト:RecentFileCache(Win7 レガシー)、30 日間のネットワークおよびプロセスリソース使用については SRUM、シェル活動については ジャンプリスト と LNK ファイル、ファイルシステムレベルのタイムラインについては MFT と USN ジャーナル。

ツール

完全忠実なオフライン解析には Eric Zimmerman ツールスイート が事実上の標準です。AppCompatCacheParser、AmcacheParser、PECmd、RBCmd はすべて信頼できます。Velociraptor は艦隊規模のライブトリアージを扱います。ShimCache に特化していえば、Shimcache Parser は何もインストールせずブラウザで直接ハイブを読みます。

さらに読む

関連記事