ブログ(脅威調査)

調査でのリアルタイムイベントの使用

攻撃グループがWindowsシステム上で実行したことを理解するため、アナリストは、MFT(Master File Table)、レジストリ・ハイブ、AppCompat(Application Compatibility Cache)など、試行されたエンドポイントの痕跡の真のソースに注目することが多いです。しかしながら、これらの証拠のソースは、検知やインシデントレスポンスを考慮して作られたわけではないので、重要な細部は、フォレンジック以外の方法によって省略されたり消去される可能性があります。履歴の証拠だけを見ると、アナリストは全体を見ることができません。

リアルタイム・イベントは、EDR(Enterprise Detection and Response)ソリューションまたはSysmonなどの拡張されたログ機能を介して実装される、特別に設計されたフォレンジックの痕跡と考えることができます。実際の攻撃者のエンドポイントでの調査中、FireEye Mandiantでは、リアルタイム・イベントは攻撃者が実行したことのギャップを埋めるのに役立つことがわかっています。これらのイベントは、プロセスの実行、ファイルの書き込み、ネットワーク接続等、異なるタイプのシステム活動を記録します。

インシデントレスポンスの取り組み中、MandiantはFireEyeエンドポイント・セキュリティを使用して、エンドポイント・システム・イベントをリアルタイムで追跡します。この機能により、調査担当者はこれらのリアルタイム・イベントでアラートを出し、イベントをレビューすることにより、すべてのシステム上で攻撃者を追跡することができます。アナリストは、ソリューションに組み込みのAudit ViewerまたはRedlineを使用して、リアルタイム・イベントを確認できます。

Mandiantによるソリューションで利用可能なWindowsリアルタイム・イベントのサンプルと、調査時にそれらを活用する方法の例を見てみましょう。攻撃者によって侵害された非アクティブな管理者アカウントがTEST-DOMAIN\BackupAdminであると仮定します。この記事で取り上げている例は、インシデントレスポンス対応中に確認されたリアルタイム・イベントに基づいていますが、お客様を特定できないよう、再作成または変更されています。

プロセス実行イベント

AppCompatAmCacheWMI CCM_RecentlyUsedAppsその他、多数のプロセスが実行された痕跡の履歴があります。1つの痕跡だけで、プロセス実行に関連するすべての有効な詳細情報をカバーすることはほとんどありませんが、リアルタイムのプロセス実行イベントはそういう状況を変更します。FireEyeのソリューションによるリアルタイム・プロセス実行イベントは、実行時刻、フルプロセス・パス、PID(プロセス識別番号)、親プロセス・パス、親PID、ユーザー、コマンドライン引数、およびプロセスMD5ハッシュを記録します。

表1に、このソリューションで記録されたリアルタイム・プロセス実行イベントの例を示します。

Field

Example

Timestamp (UTC)

2020-03-10 16:40:58.235

Sequence Number

2879512

PID

9392

Process Path

C:\Windows\Temp\legitservice.exe

Username

TEST-DOMAIN\BackupAdmin

Parent PID

9103

Parent Process Path

C:\Windows\System32\cmd.exe

EventType

Start

ProcessCmdLine

"C:\Windows\Temp\legitservice.exe"  -b -m

Process MD5 Hash

a823bc31395539816e8e4664e884550f

表1:リアルタイム・プロセス実行イベントの例

このリアルタイム・プロセス実行イベントによると、C:\Windows\System32\cmd.exe(PID 9103)を実行したプロセス は、ファイルC:\Windows\Temp\legitservice.exe(PID 9392、MD5ハッシュa823bc31395539816e8e464e884550f)を実行しました。この新しいプロセスは、ユーザー名TEST-DOMAIN\BackupAdminで、実行時にコマンドライン引数-b -mを使用しました。

このリアルタイム・イベントを、アナリストが他のプロセス実行の痕跡で見ることのできるものと比較することができます。表2に、同じ実行済みプロセスのAppCompatエントリーの例を示します。記録されたタイムスタンプは、プロセスの開始時刻ではなく、ファイルの最終更新時刻を示します。

Field

Example

File Last
Modified (UTC)

2020-03-07 23:48:09

File Path

C:\Windows\Temp\legitservice.exe

Executed Flag

TRUE

表2:AppCompatエントリーの例

表3に、AmCacheエントリーの例を示します。レジストリ・キーの最終更新時刻は通常、プロセスの起動時刻の決定に使用でき、この痕跡にはファイルのSHA1ハッシュが含まれることに注意してください。

Field

Example

Registry Key
Last Modified (UTC)

2020-03-10 16:40:58

File Path

C:\Windows\Temp\legitservice.exe

File Sha1 Hash

2b2e04ab822ef34969b7d04642bae47385be425c

表3:AmCacheエントリーの例

表4に、Windowsイベントログ・プロセス作成イベントの例を示します。この痕跡には、16進表記のPID、親プロセスの詳細、およびプロセスのコマンドライン引数を指定する必要があるフィールドが含まれています。この例では、コマンドライン引数はデフォルトで無効になっているため存在せず、Mandiantは調査時にクライアントがこのポリシーを有効にしているのをほとんど見かけません。

Field

Example

Write Time (UTC)

2020-03-10 16:40:58

Log

Security

Source

Microsoft Windows security

EID

4688

Message

A new process has been created.

Creator Subject:
      Security ID:             TEST-DOMAIN\BackupAdmin
      Account Name:            BackupAdmin
      Account Domain:          TEST-DOMAIN
      Logon ID:                0x6D6AD

Target Subject:
      Security ID:             NULL SID
      Account Name:            -
      Account Domain:          -
      Logon ID:                0x0

Process Information:
      New Process ID:          0x24b0
      New Process Name:        C:\Windows\Temp\legitservice.exe
      Token Elevation Type:    %%1938
      Mandatory Label:         Mandatory Label\Medium Mandatory Level
      Creator Process ID:      0x238f
      Creator Process Name:    C:\Windows\System32\cmd.exe
      Process Command Line:    

表4:Windowsイベントログ・プロセス作成イベントの例

AmCacheで使用可能な証拠を、完全に詳細なWindowsイベントログ・プロセス作成イベントと組み合わせると、ファイル・ハッシュ・タイプのわずかな違いを除いて、リアルタイム・イベントで使用可能な証拠と一致させることができます。

ファイル書き込みイベント

攻撃者は、重要な証拠を変更したり消去したりする場合があります。攻撃者がSysinternalのSDeleteのようなファイルシュレッディング・ツールを使用している場合、アナリストがファイルの元のコンテンツを復元することはほとんどありません。FireEyeのソリューションのリアルタイム・ファイル書き込みイベントは、書き込まれたファイルのMD5ハッシュとファイルのコンテンツの一部を記録するため、このような状況下で非常に役立ちます。ファイル書き込みイベントには、問題のファイルを作成または変更したプロセスも記録されます。

表5に、このソリューションで記録されたリアルタイムのファイル書き込みイベントの例を示します。

Field

Example

Timestamp (UTC)

2020-03-10 16:42:59.956

Sequence Number

2884312

PID

9392

Process Path

C:\Windows\Temp\legitservice.exe

Username

TEST-DOMAIN\BackupAdmin

Device Path

\Device\HarddiskVolume2

File Path

C:\Windows\Temp\WindowsServiceNT.log

File MD5 Hash

30a82a8a864b6407baf9955822ded8f9

Num Bytes Seen Written

8

Size

658

Writes

4

Event reason

File closed

Closed

TRUE

Base64 Encoded
Data At Lowest Offset

Q3JlYXRpbmcgJ1dpbmRvd3NTZXJ2aWNlTlQubG9nJy
Bsb2dmaWxlIDogT0sNCm1pbWlrYXR6KGNvbW1hbmQ

Text At Lowest Offset

Creating 'WindowsServiceNT.log' logfile : OK....mimikatz(command

表5:リアルタイム・ファイル書き込みイベントの例

このリアルタイム・ファイル書き込みイベントによると、不正な実行ファイルC:\Windows\Temp\legitservice.exeはファイルC:\Windows\Temp\WindowsServiceNT.log(MD5ハッシュ30a82a864b6407baf9955822ded8f9)をディスクに書き込みました。書き込まれたファイルの先頭にはリアルタイム・イベントによる記録がされており、”OK....mimikatz”で始まる文字列が確認できていることから、これはMimikatzクレデンシャル・ハーベスタが出力した可能性のあるファイルであると特定できます。

少し後で調べたら、C:\Windows\Temp\taskassist.exe(MD5ファイル・ハッシュ2b5cb081721b8454713119be062491)のプロセス作成イベントに続いて、表6に要約されているこのプロセスのいくつかのファイル書き込みイベントを見つけられます。

Timestamp

File Path

File Size

2020-03-10 16:53:42.351

C:\Windows\Temp\WindowsServiceNT.log

638

2020-03-10 16:53:42.351

C:\Windows\Temp\AAAAAAAAAAAAAAAA.AAA

638

2020-03-10 16:53:42.351

C:\Windows\Temp\BBBBBBBBBBBBBBBB.BBB

638

2020-03-10 16:53:42.351

C:\Windows\Temp\CCCCCCCCCCCCCCCC.CCC

638

 

 

2020-03-10 16:53:42.382

C:\Windows\Temp\XXXXXXXXXXXXXXXX.XXX

638

2020-03-10 16:53:42.382

C:\Windows\Temp\YYYYYYYYYYYYYYYY.YYY

638

2020-03-10 16:53:42.382

C:\Windows\Temp\ZZZZZZZZZZZZZZZZ.ZZZ

638

表6:SDeleteファイル書き込みイベントのタイムラインの例

ひと目見て分かる通り、この活動は奇妙に見えると思います。ファイルのハッシュに関する調査を行うと、このプロセスはC:\Windows\Temp\taskassist.exeをマスカレードするSDeleteであることがわかります。SDeleteは、安全に削除するための方法として、アルファベット順にファイル名を26回次々とリネームしていました。

ネットワーク・イベント

インシデントレスポンス担当者は、ログ機能を拡張しないと、エンドポイントの履歴証拠からネットワーク通信の証拠をほとんど確認できません。通常、Mandiantは、NetFlowデータ、完全または部分的なパケット・キャプチャを備えたネットワーク・センサー、またはマルウェア解析を使用して、マルウェア・サンプルが通信できるC2(コマンドアンドコントロール)サーバーを特定します。このソリューションのリアルタイム・ネットワーク・イベントは、ローカルおよびリモートの両方のネットワーク・ポート、使用プロトコル、および関連するプロセスを記録します。

表7に、このソリューションによって記録されたリアルタイムIPv4ネットワーク・イベントの例を示します。

Field

Example

Timestamp (UTC)

2020-03-10 16:46:51.690

Sequence Number

2895588

PID

9392

Process + Path

C:\Windows\Temp\legitservice.exe

Username

TEST-DOMAIN\BackupAdmin

Local IP Address

10.0.0.52

Local Port

57472

Remote IP Address

10.0.0.51

Remote Port

443

Protocol

TCP

表7:リアルタイム・ネットワーク接続イベントの例

このリアルタイムIPv4ネットワーク・イベントによると、不正な実行ファイルC:\Windows\Temp\legitservice.exeが10.0.0.51:443へのアウトバウンドTCP接続を確立しています。

レジストリ・キー・イベント

履歴の証拠を使用して、関連するタイムフレームと一般に悪用されるレジストリ・キーを調査することにより、不正なキーまたは活用されたキーを特定することができます。リアルタイム・レジストリ・キー・イベントを使えば、変更されたレジストリ・キーとプロセスを関連付けることができます。また、攻撃者がレジストリ・キーを削除したり名前を変更したことを洗い出すこともできます。これは、アナリストにとって良い面があります。というのも、レジストリに記録された唯一の使用可能なタイムスタンプがレジストリ・キーの最終更新時刻であり、親キーが更新されるとこのタイムスタンプが更新されるからです。

表8に、ソリューションによって記録されたリアルタイムのレジストリ・キー・イベントの例を示します。

Field

Example

Timestamp (UTC)

2020-03-10 16:46:56.409

Sequence Number

2898196

PID

9392

Process + Path

C:\Windows\Temp\legitservice.exe

Username

TEST-DOMAIN\BackupAdmin

Event Type

3

Path

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
LegitWindowsService\ImagePath

Key Path

CurrentControlSet\Services\LegitWindowsService

Original Path

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\LegitWindowsService

Value Name

ImagePath

Value Type

REG_EXPAND_SZ

Base64 Encoded
Value

QwA6AFwAVwBpAG4AZABvAHcAcwBcAFQAZQBtAHAAXABsAG
UAZwBpAHQAcwBlAHIAdgBpAGMAZQAuAGUAeABlAAAAAA==

Text

C:\Windows\Temp\legitservice.exe

表8:リアルタイム・レジストリ・キー・イベントの例

このソリューションのリアルタイム・レジストリ・イベントでは、表9を使用して、イベント・タイプを実行されたオペレーションにマッピングできます。

Event Type Value

Operation

1

PreSetValueKey

2

PreDeleteValueKey

3

PostCreateKey, PostCreateKeyEx, PreCreateKeyEx

4

PreDeleteKey

5

PreRenameKey

表9:FireEyeエンドポイント・セキュリティのリアルタイム・レジストリ・キー・イベントのタイプ

このリアルタイム・レジストリ・キー・イベントによると、不正な実行ファイルC:\Windows\Temp\legitservice.exeがWindowsサービスLegitWindowsServiceを作成したことがわかります。前後のレジストリ・キーを調査した場合、この悪意のあるサービスに関してより多くの情報が特定される可能性があります。

結論

フォレンジック解析用に設計されたリアルタイム・イベントが利用できることにより、従来のフォレンジックの痕跡ではできなかったギャップを埋めることができます。Mandiantは、攻撃の調査中にリアルタイム・イベントを使用することには大きな価値があると考えます。リアルタイム・イベントを使用して、ディスク上にはもう存在していない攻撃者のユーティリティの機能を特定しました。また、対応するイベント・ログが見つからない場合でも、不正なリモート・デスクトップ・アクティビティで使用されるユーザーと送信元ネットワーク・アドレスを特定できる、など様々な侵害調査に活用されています。

詳細については、FireEyeエンドポイント・セキュリティのページとRedlineページ、FireEye MarketのRedlineをご覧ください。FireEyeエンドポイント・セキュリティのセルフ・ガイド・ツアー(英語)もご覧ください。

 

本ブログは、米FireEyeが公開した「Using Real-Time Events in Investigations」(英語)の日本語抄訳版です。

日本語版:Reviewed by Toru Tanimura