ランサムウェア調査で ShimCache を活用する

読了 1 分

TL;DR. ランサムウェアの実行者はツールを日常的に削除し、再起動します。ShimCache はそれをしばしば生き延び、暗号化前のドロッパーやステージング・ツールのパスを保持します。ホストがクリーン再起動されていなければ SYSTEM ハイブ メモリイメージの両方を取得し、AmCache でハッシュベースの帰属を裏取りしてください。

ランサムウェア調査は逆風のフォレンジックです。暗号化されたディスク、削除されたツール、しばしば改ざんされたイベントログ、そして再起動を望む攻撃者。それでも基本的な問いに答え続けることが多い数少ないアーティファクトのひとつが ShimCache です。本稿は実務的なガイドです。

ランサムウェア事例で ShimCache が典型的に保持するもの

典型的なランサムウェア対応で、到着時点では次のことが起きがちです。

  • 暗号化バイナリは通常 消えています — 自己削除またはクリーンアップ・スクリプトによって。
  • Prefetch ディレクトリは攻撃者が思いつけば 空にされて いることがあります。
  • イベントログは 切り詰められている ことがあります(Event ID 1102 は古典的な兆候)。
  • AmCache は連続書き込みのため 残っていますが、Windows が登録できた範囲のバイナリの分しかありません。
  • ShimCache は 直近の正常終了で書き出された範囲を保持 します — そしてそれが、侵入初期に走ったドロッパーやステージング・ツールであることが多いのです。

ShimCache はシャットダウン時にしか書き出されないため(詳細)、最も有用な状態 は侵害された稼働中システムのメモリイメージから再起動前に取り出すのが理想です。すでに再起動済みなら、ディスク上のハイブから当時までに書き出された内容を取り出します。

ShimCache が答えやすい 3 つの問い

1. 暗号化の前に何が走っていたか? ShimCache を mtime でソートし、暗号化発生と思しい時点から後方へ歩きます。\Temp\\AppData\\ProgramData\ のドロッパー・パスは頻出です。ハッシュは AmCache で突合してください(ShimCache vs AmCache)。

2. ほかにどこへ横展開したか? ShimCache は接続されたボリューム上の実行ファイルも捕捉します。UNC パス(\\?\UNC\)や見慣れないドライブレターのヒットは、横展開のインフラ — ステージングに使ったファイルサーバ、共有された管理者ツール置き場、消去を試みたバックアップ・ボリューム — を指し示します。

3. ステージング用のツールは何だったか? PSExec、WMIExec、mimikatz、Cobalt Strike beacon、AnyDesk/TeamViewer のインストーラ、独自ローダー — どれも ShimCache に痕跡を残します。多くのランサムウェア playbook が同じツール名を再利用するため、自組織の標準インジケータリストに対する ShimCache スキャンが効きます。

短いワークフロー

  1. SYSTEM ハイブをディスクから取得する (C:\Windows\System32\config\SYSTEM +トランザクションログ)。稼働中ホストではメモリイメージも検討 — メモリダンプからの ShimCache 抽出 を参照。
  2. (パス, mtime, 形式) のテーブルにパースする。 Shimcache Parser はハイブをブラウザ内に留めます。
  3. ランサムウェア playbook のシグネチャで フィルタする:暗号化バイナリ名、RMM インストーラ(AnyDesk、ScreenConnect、Splashtop)、認証情報ツール、エクスフィル・ステージング用のアーカイブ・ユーティリティ(7zwinrar)。
  4. マルウェア・ハンティングのワークフロートリアージする
  5. ShimCache、AmCache、Prefetch、イベントログを束ねて タイムラインを構築するタイムラインの記事 でツールを解説しています。
  6. 改ざんを警戒する。 侵害ホスト上の不自然に短い/空の ShimCache はそれ自体がインジケータになり得ます — アンチフォレンジック検出 を参照。

見えていることを過剰に主張しない

ランサムウェア報告書の ShimCache 証拠は、保険会社、法務、脅威インテリ・チームの精査を受けます。正確な言い回しが重要です。

  • encryptor.exe の ShimCache ヒットは そのファイルがある時点でディスク上に存在した ことを示すに過ぎません。暗号化を行ったのがそのファイル であることを示すわけではありません(実行証明のキャベアット)。
  • mtime は実行時刻ではなく、ファイルの最終更新時刻です。
  • ハッシュベースの帰属には常に AmCache の SHA-1 で裏取りしてください。

さらに読む

関連記事