キャッシュアウト: 捜査官にとっての Shimcache の価値

最近の調査中に、既知の侵害の最も早い日付よりも前の、悪意のある可能性のあるファイルに関連付けられたタイムスタンプへの参照が見つかりました。これらのアプリケーション互換性キャッシュ (「Shimcache」) のタイムスタンプは、この時間枠に関連する唯一の証拠です。

Windows Shimcache は、実行されたプログラムとの互換性の問題を追跡するために、Microsoft によって Windows XP から作成されました。キャッシュには、オペレーティング システムに応じて、次のようなさまざまなファイル メタデータが格納されます。

  • ファイルのフル パス
  • ファイルサイズ
  • $Standard_Information (SI) 最終更新時刻
  • シムキャッシュの最終更新時刻
  • プロセス実行フラグ

ログ ファイルと同様に、Shimcache もデータを「ロール」します。つまり、最も古いデータが新しいエントリに置き換えられます。保持されるデータの量は、オペレーティング システムによって異なります。 Shimcache の追加情報については、Andrew Davis による Mandiant のブログ投稿を参照してください。

実際には実行されなかったエントリが Shimcache に存在する可能性があることを理解することが重要です。 Shimcache に関する現在の理解に基づいて、Shimcache がエントリを記録する原因となるアクションが 2 つあります。

  • ファイルが実行されます。これは、XP 以降のすべてのバージョンの Windows で記録されます。
  • Windows Vista、7、Server 2008、および Server 2012 では、Application Experience Lookup Service は、ユーザーが対話的に参照するディレクトリ内のファイルの Shimcache エントリを記録する場合があります。たとえば、ディレクトリにファイル「foo.txt」と「bar.exe」が含まれている場合、Windows 7 システムはこれら 2 つのファイルのエントリを Shimcache に記録することがあります。

Microsoft は、Windows Vista、7、Server 2008、および Server 2012 の Shimcache を設計して、各エントリに「プロセス実行フラグ」カテゴリを組み込みました。このフラグの実際の名前と真の目的はまだ不明ですが、クライアント/サーバー ランタイム サブシステム (CSRSS) プロセスが、これらのオペレーティング システムでのプロセスの作成/実行中にこのフラグを設定することが確認されています。簡単に言えば、プロセス実行フラグが存在する場合、調査担当者は、エントリが実行されたかどうか、またはディレクトリを対話的に参照するなど、ファイル実行以外のアクティビティの結果としてこのエントリが追加されたかどうかを簡単に判断できます。これらのエントリは、プロセス実行フラグが FALSE としてマークされているかどうかを観察することで簡単に見つけることができます。以下は、Windows Server 2012 Shimcache からのエントリの例です。実行されなかった 2 つのエントリに注意してください。

最終更新日

最後の更新

ファイルサイズ

実行フラグ

02/18/15 05:25:00

なし

C:Program FilesMicrosoft OfficeOffice14EXCEL.EXE

なし

真実

07/14/09 01:15:00

なし

C:WindowsSysWOW64EhStorShell.dll

なし

真実

06/13/11 15:20:00

なし

C:Program Files (x86)Common FilesTortoiseOverlaysTortoiseOverlays.dll

なし

真実

04/12/14 16:38:00

なし

C:SETUP64.EXE

なし

間違い

04/12/14 16:38:00

なし

C:WindowsSystem32ncpa.cpl

なし

間違い

11/21/10 03:24:00

なし

C:Windowssystem32net1.exe

なし

真実

07/14/09 01:39:00

なし

C:windowssystem32net.exe

なし

真実

以前のバージョンの Windows の Shimcache には、プロセス実行フラグがありません。ただし、Windows XP や Server 2003 などの以前のオペレーティング システムには、Shimcache で実行されなかったファイルが含まれている可能性があることを示すドキュメントはありません。さらに、XP も Server 2003 もプロセス実行フラグを記録しないため、Shimcache 内のすべてのエントリがシステム上に存在し、ある時点で実行された可能性が高いと思われます。それでも、Windows XP および Server 2003 のプロセス実行フラグに関する Microsoft の公式ドキュメントはありません。

通常、Shimcache 内のエントリはシーケンシャルであるため、近接するエントリは、同じ時間枠内で実行されたファイルを示します。したがって、Shimcache 内のエントリに信頼できるタイムスタンプが含まれている場合、アナリストはその近くにある他のファイルの実行日を推測できる可能性があります。侵入の一部として横方向の動きを調査する場合、前述のシナリオは、リモート実行ユーティリティ「PsExec」がシステム上で実行されるときに発生することがよくあります。これについては後で詳しく説明します。

この特定の Windows Server 2003 システムでは、2013 年と 2012 年の最終更新タイムスタンプを参照する PsExec ユーティリティの Shimcache に 2 つのエントリが見つかりました。また、Shimcache に攻撃者のマルウェアの 2 つのエントリが見つかりました。ただし、2 つの PsExec エントリは、最後に変更されたタイムスタンプが 2003 年のものでした。では、これはどういう意味ですか?

まず、SI の最終更新日時のタイムスタンプが NTFS でどのように機能するかを確認しましょう。最終変更ファイルのタイムスタンプは、ファイルの内容(具体的には、その $DATA または $INDEX 属性) が最後に変更された時刻を表します。最終変更のタイムスタンプは、ファイルの内容が最後に変更された時刻を反映するため、ファイルの実行時刻を示すものではありません

私たちは袖をまくり上げて、攻撃者のマルウェアの周りにクラスター化されたエントリを調べました。これは、Shimcache がトップダウンの LRU (Least Recent Used) キューにエントリを入力することがわかっているためです。これは、最近実行されたエントリがリストの一番上に表示されることを意味します。ユーザーがシステムにログインするたびに実行される「LogonUI.exe」など、再利用される古いエントリは、Shimcache の上部に「バブルアップ」しているように見えます。以下は、攻撃者のマルウェア「Malware.exe」とリモート実行ユーティリティ「PSEXESVC.EXE」に関する Shimcache エントリの抜粋です。

最終更新日

最後の更新

ファイルサイズ

実行フラグ

01/16/14 02:08:13

なし

C:Program FilesMcAfeeVirusScan Enterprisemfeann.exe

37960

なし

10/03/18 18:16:25

なし

C:WINDOWSMicrosoft.NETFrameworkv4.0.30319mscorsvw.exe

130384

なし

03/17/12 06:48:12

なし

C:Program FilesVeritasNetBackupbinbpclntcmd.exe

54936

なし

02/01/03 07:55:11

なし

C:WINNTsystem32Malware.exe

185552

なし

10/08/13 20:02:05

該当なし

C:WINNTPSEXESVC.EXE

53248

該当なし

04/10/13 21:18:09

なし

C:WINDOWSSoftwareDistributionDownloadInstallWindows-KB890830-V5.23.exe

44167360

なし

04/03/13 17:06:51

なし

C:WINDOWSSoftwareDistributionDownloade82ac0c6b3ff801d344ecc65c0ecbe9updateupdate.exe

743216

なし

10/03/18 18:16:49

なし

C:WINDOWSMicrosoft.NETFrameworkv4.0.30319ngen.exe

150856

なし

10/03/18 18:16:55

なし

C:WINDOWSMicrosoft.NETFrameworkv4.0.30319regtlibv12.exe

58192

なし

12/10/10 22:39:02

なし

d:MSSQL.1MSSQLBinnDatabaseMail90.exe

16224

なし

07/25/08 16:17:35

なし

C:WINDOWSMicrosoft.NetFrameworkv2.0.50727ngen.exe

100856

なし

09/15/03 19:41:35

なし

C:WINNTsystem32Malware.exe

185552

なし

10/11/12 11:22:23

該当なし

C:WINNTPSEXESVC.EXE

53248

該当なし

07/02/17 12:24:21

なし

C:WINDOWSMicrosoft.NETFrameworkv1.1.4322ngen.exe

73728

なし

02/02/11 09:41:07

なし

C:WINDOWSMicrosoft.NETFrameworkv1.1.4322NetfxUpdate.exe

82984

なし

02/02/11 09:42:44

なし

C:WINDOWSMicrosoft.NETFrameworkv1.1.4322SetRegNI.exe

66600

なし

PsExec が実行時に最後に変更されたタイムスタンプを更新する方法を覚えていますか?今回のシナリオでは、攻撃者が一般的なリモート実行ユーティリティ PsExec のバージョンを使用してマルウェアを実行したため、これが当てはまりました。リモート システムに対して実行されると、PsExec はリモート システム上に「PSEXESVC.exe」という名前のファイルを作成します。新しいファイルが作成されると、PsExec ユーティリティの最終更新日時のタイムスタンプに「PSEXESVC.exe」の作成日が反映されます。この動作のため、Shimcache 内の「PSEXESVC.exe」の最終変更タイムスタンプは、「PSEXESVC.exe」がいつ実行されたかを示す信頼できる指標です。つまり、攻撃者の PsExec が実行されたとき (このシステムでは両方とも)、Shimcache の Last Modified 時間レコードは、2013 年と 2012 年の実行時に反映されました。 「PSEXESVC.exe」ユーティリティが実行されたことを知ることは、私たちを助けました。 「Malware.exe」がシステム上に少なくとも存在していた 2012 年の正確な日付を特定します。これは、新しい侵害の最も早い日付です。調査員としての私たちの疑問は、「これは実行されましたか?」ということです。

Andrew Davis のホワイトペーパー「フォレンジック調査におけるアプリケーション互換性キャッシュの活用」を読むと、一意のメタデータを持つアプリケーションが実行されるたびに、対応する Shimcache エントリが作成されることがわかります。つまり、既存のファイルのメタデータが変更されて再実行されると、新しいエントリが作成されます。これは、攻撃者のバージョンの PsExec がシステムで2 回実行されたことを確認するのに役立ちます。また、Shimcache は、攻撃者のマルウェアを両方の PsExec レコードの上の次のレコードとして記録したため、攻撃者が PsExec を使用して、2013 年と 2012 年のほぼ同じ時期にマルウェアを呼び出した可能性があります。

研究者にとっての Shimcache の価値は、慎重に分析しないと滑りやすい坂道になる可能性があります。私たちのシナリオでは、Shimcache は、このシステムで以前に侵害された日付をサポートする必要があった唯一のアーティファクトでした。最初に、2 か月前の大量取得スイープの一環として Shimcache データを取得しました。これは、外れ値や攻撃者ツールなどを見つけるために調査の開始時によく使用するアプローチです。問題の 2012 年の 2 つのエントリは、システムの分析を実行した時点で Shimcache から転がっていました。このリソースは多少不安定であり、調査が可能になり次第保存する必要があることを認識することが重要です。

理想的な状況では、システムの Shimcache は、ファイル システム、レジストリ、イベント ログ、およびネットワーク トラフィックからのアーティファクトと結びついた優れた裏付けとなる証拠を提供できます。しかし、ここでの希望の光は、場合によっては、Shimcacheだけで、調査の焦点を絞るのに役立つ非常に強力な証拠源になる可能性があることです。そのような証拠は、私たちが毎日答えを出すのを助ける難しい質問に大きな自信を与えることができます.

参照: https://www.mandiant.com/resources/blog/caching-out-the-val

Comments

Copied title and URL