アナリストは、攻撃者が Windows システムで何をしたかを理解するために、多くの場合、マスター ファイル テーブル (MFT)、レジストリ ハイブ、アプリケーション互換性キャッシュ (AppCompat) などのエンドポイント アーティファクトの実績のある実際のソースに目を向けます。ただし、これらの証拠ソースは、検出やインシデントへの対応を念頭に置いて設計されていません。重要な詳細は、アンチフォレンジック手法によって省略または消去される場合があります。歴史的証拠だけを見ると、アナリストは全容を理解できないかもしれません。
リアルタイム イベントは、エンタープライズ ディテクション アンド レスポンス (EDR) ソリューションまたはSysmonなどの拡張ログ実装によって実装される、検出とインシデント対応のために特別に設計されたフォレンジック アーティファクトと考えることができます。 FireEye Mandiantは、積極的な攻撃者のエンドポイントの調査中に、リアルタイム イベントが攻撃者の行動のギャップを埋めるのに役立つことを発見しました。これらのイベントは、プロセスの実行、ファイル書き込みアクティビティ、ネットワーク接続など、さまざまな種類のシステム アクティビティを記録します。
Mandiant は、インシデント対応業務において、 FireEye Endpoint Securityを使用して、エンドポイント システム イベントをリアルタイムで追跡します。この機能により、調査担当者は、これらのリアルタイム イベントについてアラートを出し、確認することで、任意のシステムで攻撃者を追跡できます。アナリストは、ソリューションの組み込みの監査ビューアーまたは Redline を使用して、リアルタイムのイベントを確認できます。
ソリューションで利用可能な Windows リアルタイム イベントの例と、調査中にそれらをどのように活用できるかを見てみましょう。アカウントTEST-DOMAINBackupAdminが、攻撃者によって侵害された非アクティブな管理者アカウントであると仮定しましょう。この投稿で提供されている例は、エンゲージメント中に観察されたリアルタイムのイベントに基づいていますが、クライアントの機密性を保持するために再作成または変更されていることに注意してください.
プロセス実行イベント
AppCompat 、 AmCache 、 WMI CCM_RecentlyUsedAppsなど、多くのプロセス実行履歴のアーティファクトがあります。 1 つのアーティファクトがプロセスの実行に関連するすべての有用な詳細をカバーすることはめったにありませんが、リアルタイムのプロセス実行イベントはそれを変更します。当社のソリューションのリアルタイム プロセス実行イベントは、実行時間、完全なプロセス パス、プロセス識別番号 (PID)、親プロセス パス、親 PID、ユーザー、コマンド ライン引数、さらにはプロセス MD5 ハッシュを記録します。
表 1 は、当社のソリューションによって記録されたリアルタイムのプロセス実行イベントの例を示しています。
分野 |
例 |
タイムスタンプ (UTC) |
2020-03-10 16:40:58.235 |
シーケンス番号 |
2879512 |
PID |
9392 |
プロセス パス |
C:WindowsTemplegitservice.exe |
ユーザー名 |
TEST-DOMAINBackupAdmin |
親 PID |
9103 |
親プロセスのパス |
C:WindowsSystem32cmd.exe |
イベントタイプ |
始める |
ProcessCmdLine |
“C:WindowsTemplegitservice.exe” -b -m |
MD5 ハッシュの処理 |
a823bc31395539816e8e4664e884550f |
表 1: リアルタイム プロセス実行イベントの例
このリアルタイム プロセス実行イベントに基づいて、PID 9103 のプロセスC:WindowsSystem32cmd.exeは、PID 9392 および MD5 ハッシュa823bc31395539816e8e4664e884550fのファイルC:WindowsTemplegitservice.exeを実行しました。この新しいプロセスは、 TEST-DOMAINBackupAdminのユーザー コンテキストでコマンド ライン引数-b -mを使用しました。
このリアルタイムのイベントを、アナリストが他のプロセス実行アーティファクトで見る可能性のあるものと比較できます。表 2 に、実行された同じプロセスの AppCompat エントリの例を示します。記録されたタイムスタンプは、プロセスの開始時刻ではなく、ファイルの最終変更時刻であることに注意してください。
分野 |
例 |
ファイルラスト |
2020-03-07 23:48:09 |
ファイルパス |
C:WindowsTemplegitservice.exe |
実行済みフラグ |
真実 |
表 2: AppCompat エントリの例
表 3 に、AmCache エントリの例を示します。通常、レジストリ キーの最終変更時刻を使用してプロセスの開始時刻を特定できます。このアーティファクトには、ファイルの SHA1 ハッシュが含まれています。
分野 |
例 |
レジストリ キー |
2020-03-10 16:40:58 |
ファイルパス |
C:WindowsTemplegitservice.exe |
ファイル Sha1 ハッシュ |
2b2e04ab822ef34969b7d04642bae47385be425c |
表 3: AmCache エントリの例
表 4 に、Windows イベント ログ プロセス作成イベントの例を示します。このアーティファクトには、16 進表記の PID、親プロセスに関する詳細、さらにはプロセスのコマンド ライン引数が存在する場所のフィールドが含まれていることに注意してください。この例では、コマンド ライン引数は デフォルトで無効になっているため、存在しません。Mandiant は、調査時にクライアントによってこのポリシーが有効になっていることをめったに見ません。
分野 |
例 |
書き込み時間 (UTC) |
2020-03-10 16:40:58 |
ログ |
安全 |
ソース |
Microsoft Windows のセキュリティ |
EID |
4688 |
メッセージ |
新しいプロセスが作成されました。 作成者の件名: 対象者: プロセス情報: |
表 4: Windows イベント ログ プロセス作成イベントの例
AmCache で入手できる証拠を、完全に詳細な Windows イベント ログ プロセス作成イベントと組み合わせると、ファイル ハッシュ タイプのわずかな違いを除いて、リアルタイム イベントで入手できる証拠と一致する可能性があります。
ファイル書き込みイベント
攻撃者は、重要な証拠を変更または削除することを選択する可能性があります。攻撃者が Sysinternal の SDelete のようなファイル シュレッダー ツールを使用した場合、アナリストがファイルの元の内容を回復する可能性はほとんどありません。私たちのソリューションのリアルタイム ファイル書き込みイベントは、書き込まれたファイルの MD5 ハッシュとファイルの部分的な内容を記録するため、このような状況で非常に役立ちます。ファイル書き込みイベントは、問題のファイルを作成または変更したプロセスも記録します。
表 5 は、当社のソリューションによって記録されたリアルタイムのファイル書き込みイベントの例を示しています。
分野 |
例 |
タイムスタンプ (UTC) |
2020-03-10 16:42:59:59 午後 |
シーケンス番号 |
2884312 |
PID |
9392 |
プロセス パス |
C:WindowsTemplegitservice.exe |
ユーザー名 |
TEST-DOMAINBackupAdmin |
デバイス パス |
DeviceHarddiskVolume2 |
ファイルパス |
C:WindowsTempWindowsServiceNT.log |
ファイル MD5 ハッシュ |
30a82a8a864b6407baf9955822ded8f9 |
書き込みが確認されたバイト数 |
8 |
サイズ |
658 |
書く |
4 |
イベント理由 |
ファイルが閉じられました |
閉まっている |
真実 |
Base64 エンコード |
Q3JlYXRpbmcgJ1dpbmRvd3NTZXJ2aWNlTlQubG9nJy |
最低オフセットのテキスト |
‘WindowsServiceNT.log’ ログファイルを作成しています: OK….mimikatz(command |
表 5: リアルタイム ファイル書き込みイベントの例
このリアルタイムのファイル書き込みイベントに基づいて、悪意のある実行可能ファイルC:WindowsTemplegitservice.exeがファイルC:WindowsTempWindowsServiceNT.logを MD5 ハッシュ30a82a8a864b6407baf9955822ded8f9でディスクに書き込みました。リアルタイム イベントは書き込まれたファイルの先頭を記録したため、Mandiant が一般的にOK….mimikatzで始まることを観察した Mimikatz クレデンシャル ハーベスターの出力がファイルに含まれている可能性が高いと判断できます。
少し後で調査すると、MD5 ファイル ハッシュ2b5cb081721b8ba454713119be062491を持つC:WindowsTemptaskassist.exeのプロセス作成イベントと、このプロセスのいくつかのファイル書き込みイベントが表 6 にまとめられていることがわかります。
タイムスタンプ |
ファイルパス |
ファイルサイズ |
2020-03-10 16:53:42.351 |
C:WindowsTempWindowsServiceNT.log |
638 |
2020-03-10 16:53:42.351 |
C:WindowsTempAAAAAAAAAAAAAAAAAA.AAA |
638 |
2020-03-10 16:53:42.351 |
C:WindowsTempBBBBBBBBBBBBBBBB.BBB |
638 |
2020-03-10 16:53:42.351 |
C:WindowsTempCCCCCCCCCCCCCCCC.CCC |
638 |
|
… |
|
2020-03-10 16:53:42.382 |
C:WindowsTempXXXXXXXXXXXXXXXX.XXX |
638 |
2020-03-10 16:53:42.382 |
C:WindowsTempYYYYYYYYYYYYYYYY.YYY |
638 |
2020-03-10 16:53:42.382 |
C:WindowsTempZZZZZZZZZZZZZZZZ.ZZZ |
638 |
表 6: SDelete ファイル書き込みイベントのタイムラインの例
確かに、この活動は一見奇妙に思えるかもしれません。ファイル ハッシュを調査すると、実際にはプロセスがC:WindowsTemptaskassist.exeを装った SDelete であることがわかります。安全な削除プロセスの一環として、 SDeleteはファイルの名前をアルファベット順に 26 回変更します。
ネットワーク イベント
インシデント レスポンダーは、強化されたログなしでは、エンドポイントの履歴証拠からネットワーク通信の証拠を確認することはほとんどありません。通常、Mandiant は、NetFlow データ、完全または部分的なパケット キャプチャを備えたネットワーク センサー、またはマルウェア分析に依存して、マルウェア サンプルが通信できるコマンド アンド コントロール (C2) サーバーを決定します。当社のソリューションのリアルタイム ネットワーク イベントは、ローカルとリモートの両方のネットワーク ポート、活用されたプロトコル、および関連するプロセスを記録します。
表 7 は、ソリューションによって記録されたリアルタイムの IPv4 ネットワーク イベントの例を示しています。
分野 |
例 |
タイムスタンプ (UTC) |
2020-03-10 16:46:51.690 |
シーケンス番号 |
2895588 |
PID |
9392 |
プロセス + パス |
C:WindowsTemplegitservice.exe |
ユーザー名 |
TEST-DOMAINBackupAdmin |
ローカル IP アドレス |
10.0.0.52 |
ローカル ポート |
57472 |
リモート IP アドレス |
10.0.0.51 |
リモート ポート |
443 |
プロトコル |
TCP |
表 7: リアルタイム ネットワーク接続イベントの例
このリアルタイムの IPv4 ネットワーク イベントに基づいて、悪意のある実行可能ファイルC:WindowsTemplegitservice.exeが10.0.0.51:443へのアウトバウンド TCP 接続を確立しました。
レジストリ キー イベント
過去の証拠を使用して、関連する時間枠と一般的に悪用されているレジストリ キーを調査することで、悪意のあるキーや悪用されたキーを特定できます。リアルタイムのレジストリ キー イベントは、変更されたレジストリ キーにプロセスをリンクするのに役立ちます。また、攻撃者がレジストリ キーを削除または名前変更したときにも表示される可能性があります。レジストリに記録されている利用可能な唯一のタイムスタンプはレジストリ キーの最終変更時刻であり、このタイムスタンプは親キーが更新されると更新されるため、これはアナリストにとって便利です。
表 8 は、ソリューションによって記録されたリアルタイムのレジストリ キー イベントの例を示しています。
分野 |
例 |
タイムスタンプ (UTC) |
2020-03-10 16:46:56.409 |
シーケンス番号 |
2898196 |
PID |
9392 |
プロセス + パス |
C:WindowsTemplegitservice.exe |
ユーザー名 |
TEST-DOMAINBackupAdmin |
イベントタイプ |
3 |
道 |
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices |
キーパス |
CurrentControlSetServicesLegitWindowsService |
元のパス |
HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesLegitWindowsService |
値の名前 |
イメージパス |
値のタイプ |
REG_EXPAND_SZ |
Base64 エンコード |
QwA6AFwAVwBpAG4AZABvAHcAcwBcAFQAZQBtAHAAXABsAG |
文章 |
C:WindowsTemplegitservice.exe |
表 8: リアルタイム レジストリ キー イベントの例
このソリューションのリアルタイム レジストリ イベントについては、表 9 を使用して、イベント タイプを実行される操作にマッピングできます。
イベント タイプ 値 |
手術 |
1 |
PreSetValueKey |
2 |
PreDeleteValueKey |
3 |
PostCreateKey、PostCreateKeyEx、PreCreateKeyEx |
4 |
PreDeleteKey |
5 |
PreRenameKey |
表 9: FireEye Endpoint Security リアルタイム レジストリ キーのイベント タイプ
このリアルタイムのレジストリ キー イベントに基づいて、悪意のある実行可能ファイルC:WindowsTemplegitservice.exeが Windows サービスLegitWindowsServiceを作成しました。周囲のレジストリ キーを調査した場合、この悪意のあるサービスに関するさらに多くの情報を特定できる可能性があります。
結論
フォレンジック分析用に設計されたリアルタイム イベントを利用できるため、従来のフォレンジック アーティファクトだけでは埋められなかったギャップを埋めることができます。 Mandiant は、アクティブな攻撃者の調査中にリアルタイム イベントを使用することに大きな価値を見出しています。リアルタイム イベントを使用して、ディスク上に存在しなくなった攻撃者ユーティリティの機能を特定したり、対応するイベント ログが見つからない場合に悪意のあるリモート デスクトップ アクティビティで使用されたユーザーとソース ネットワーク アドレスを特定したりしました。
詳細については、 FireEye エンドポイント セキュリティ ページとレッドラインページ (およびFireEye マーケットのレッドライン) を確認し、 FireEye エンドポイント セキュリティ ツアーに今すぐ参加してください。
参照: https://www.mandiant.com/resources/blog/using-real-time-events-in-investigations
Comments