Windowsの未知テレメトリファイルがマルウェアの痕跡を隠す可能性

文●フォーティネットジャパン 編集●ASCII

提供: フォーティネットジャパン

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「Windows内の隠れたフォレンジック証拠を見出す:AutoLogger-Diagtrack-Listener.etlのミステリー」を再編集したものです。

影響を受けるプラットフォーム:Windows 10、Windows 11、Windows Server 2016以降
影響を受けるユーザー    :WindowsのテレメトリおよびETWアーティファクトを分析するシステム管理者、フォレンジック調査担当者、およびインシデントレスポンス担当者
影響            :フォレンジック調査でAutoLogger-Diagtrack-Listener.etlのような文書化されていない / 記録に一貫性がないテレメトリファイルに頼る場合の、プロセス実行データの可視化
深刻度           :低(攻撃が進行中の場合)/ 中(フォレンジックまたはインシデントレスポンス限定)

インシデントの背景

FortiGuard IRサービス(FGIR)は、最近インシデントレスポンスを実施した際に、痕跡を隠してマルウェアがリサーチャーの手に渡ることを回避するためにアンチフォレンジック手法を多用したランサムウェア攻撃に対応しました。脅威アクターは検知を回避するために、作成したファイルとフォルダを削除し、ログをクリアし、マルウェアを難読化していました。

侵害されたWindows Server 2016システムのディスクイメージを分析したFGIRは、AutoLogger-Diagtrack-Listener.etlと呼ばれる未知のETLファイルの中で、脅威アクターが使用して削除したマルウェアとツールの履歴証拠を特定することができました。ETLファイルは、WindowsのETW(Event Tracing for Windows)インフラストラクチャによって生成されるファイルです。

ETW(Event Tracing for Windows)とAutoLogger-Diagtrack-Listener.etlファイル

ETW(Event Tracing for Windows)は、Windowsとアプリケーションが最小限のオーバーヘッドで詳細なイベントを記録できるようにする、高パフォーマンスの組み込みロギングフレームワークです。ETWは、プレーンテキストのログを書き込む代わりに、構造化されたイベントデータをETWセッションに送信するプロバイダーであるカーネル、TCP/IPスタック、レジストリなどを使用します。ETWセッションは、そのデータをバッファに保持してリアルタイムでコンシューマーに提供することも、バイナリ形式のイベントトレースログ(ETL)ファイルに書き込むこともできます。

ETWには3つの主要な役割があります。プロバイダー(イベントのソース)、コントローラー(logmanやPerfMonなどのツールを使ってセッションを開始 / 停止 / 管理する)、そしてコンシューマー(データを処理して解釈するデバッガー、イベントビューア、EDRなど)です。

このフレームワークは、プロセスの作成、レジストリの書き込み、DNSクエリなどのOSの低レベルな活動を詳細に可視化でき、ディスクへの書き込みなしでイベントをリアルタイムで消費できるという柔軟性を備えており、また、カーネルモードで動作することでスピードが最適化されているためとても強力です。現代のEDRツールは、ETWプロバイダーに直接登録して、プロセスの起動などの振る舞いをリアルタイムで監視するという方法で活用されています。

ETLファイルAutoLogger-Diagtrack-Listener.etlは、通常は以下の場所にあります。

%ProgramData%\Microsoft\Diagnosis\ETLLogs\AutoLogger\

このETLファイルには、Connected User Experiences and Telemetry(DiagTrack)サービスが生成するテレメトリが記録されます。このサービスは、カスタマーエクスペリエンス向上プログラム(CEIP)とも呼ばれています。このファイルは、DiagTrackサービスが有効になると作成され、診断データを能動的に収集します。

図1:DiagTrackサービス

DiagTrackによるテレメトリのロギングについては、レジストリキーAllowTelemetryの値を設定することで、以下の4つの詳細レベルを設定できます。

レベル 説明
0 セキュリティ サーバーのデフォルト(ETLログなし)
1 基本 最小限のデータを収集
2 拡張 新しいビルドでは非推奨
3 完全 すべてのテレメトリを収集

表1:実行されたプロセスの詳細

デフォルトでは、テレメトリレベルは0x1に設定されています。経験上、この設定でAutoLogger-Diagtrack-Listener.etlファイルが作成されることはありません

図2:AllowTelemetryレジストリキーのデフォルト値

フォレンジック上の発見と分析

インシデントレスポンスの実施中に、侵害されたディスクイメージを分析したFGIRは、AutoLogger-Diagtrack-Listener.etlファイル内で脅威アクターの活動に関連する興味深い文字列を発見しました。このETLファイル内のETWペイロードを解析し詳細に分析した結果、KernelProcess → ProcessStartedストリーム内のプロセス作成イベントが、過去に実行されたバイナリのコマンドライン詳細を含む貴重な履歴データを保持している可能性があることが判明しました。

図3:KernelProcess -> ProcessStartedイベント

図4:リモートシステム上のドライバーを暗号化するために実行されたランサムウェアのバイナリsvhost.exe

これらのETWイベント(このプロバイダーのイベントIDは1)で記録されたその他の関連する列を以下に示します。

フィールド 説明
ProcessID Windowsが割り当てたプロセスID(PID)
ParentProcessID 親プロセスのPID
SessionID WindowsのセッションID(0 = サービス、>1 = ユーザーセッション)
ImageName 実行ファイルのフルパス(例:C:\Windows\System32\notepad.exe)
CommandLine プロセスの起動に使用されたコマンドライン文字列(フラグで有効にされている場合)
UserSID プロセスを開始したユーザーアカウントのセキュリティ識別子(SID)
PackageFullName (現代のWindows)UWPアプリパッケージ名(AppXプロセスの場合)
Flags プロセスがどのように作成されるかに関する内部フラグ
Reserved システムが使用するために予約されている

表1:実行されたプロセスの詳細

FGIRは、脅威アクターによって削除されたバイナリが実行された証拠も抽出できました。これには、GMERツール(名前が変更されたgomer.exe)と複数の悪意のあるバッチファイルが含まれます。

図5:GMERと悪意のあるバッチファイルが実行された証拠

管理されたテストと観測

AutoLogger-Diagtrack-Listener.etl ファイルの作成とデータの書き込みを引き起こした正確な設定と状態を特定するために、私たちはWindows Server 2022およびWindows 11システムで、設定の変更とシステムの状態を試験しました。テレメトリ詳細度の値を3に変更し、以下のコマンドを実行してETLファイルを指定の場所に書き込みました。その結果、調査対象のETLファイルが作成されました。しかし、このファイルにテレメトリは記録されませんでした。

New-ItemProperty -Path
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name AllowTelemetry -Value 3 -PropertyType DWord -Force

logman start "AutoLogger-Diagtrack-Listener" -ets

logman update "AutoLogger-Diagtrack-Listener" -o
"C:\ProgramData\Microsoft\Diagnosis\ETLLogs\AutoLogger\AutoLogger-Diagtrack-Listener.etl" -ets

最初のコマンドは、AllowTelemetryレジストリキーに変更を加えて詳細度を最大レベル(レベル3:完全)まで上げます。2番目のコマンドは、ETWセッションAutoLogger-Diagtrack-Listenerを開始します。3番目のコマンドはこのセッションを更新して、指定したETLファイルに出力が書き込まれるようにします。この3つのコマンドの目的は、通常はDiagTrackサービスによって生成されるテレメトリのキャプチャを手動で有効にすることです。

コマンドの実行が成功したにもかかわらず、作成されたファイルは空のままでした。これは、ファイルへのテレメトリの書き込みが、DiagTrackサービスの内部的または公開されていない条件に依存している可能性を示唆しています。

FGIRはこのテストにおいて、AutoLogger-Diagtrack-Listener.etl ファイルの作成はできるものの、そのファイルにテレメトリはいっさい記録されないという現象を観測しました。さらなる調査によって、ファイルへのテレメトリの書き込みが、DiagTrackサービスの公開されていない内部トリガーに依存している可能性が明らかになりました。

未解決の振る舞いと調査で示唆されたこと

テストを実施したにもかかわらず、AutoLogger-Diagtrack-Listener.etlファイルにテレメトリが書き込まれる正確な条件は不明瞭なままです。AllowTelemetryレジストリキーを3(完全)に変更し、logman updateコマンドを使ってセッションを明示的に再設定しましたが、ファイルにはイベントがいっさい書き込まれませんでした。自動ロガーセッションがアクティブになっているにもかかわらず、ETLファイルは空のままでした。

これは、このアーティファクトがConnected User Experiences and Telemetry(DiagTrack)サービスによって内部的に制御されていて、公開されていないトリガーに依存している可能性があることを示唆しています。

AutoLogger-Diagtrack-Listener.etlにテレメトリが書き込まれるようになる特定の条件またはシステムトリガーを明らかにするには、さらなる調査が必要です。このファイルがいつどのようにテレメトリを記録するかを理解できれば、このファイルは価値の高いフォレンジックアーティファクトになり得ます。特に、プロセスの作成と実行の追跡が重要な意味を持つインシデントレスポンス調査では有用です。リサーチャーが、異なるWindowsビルド、テレメトリレベル、およびサービス状態でこの試験を実施すれば、このログの証拠としての価値を確立する助けになります。

フォーティネットのソリューション

本レポートで説明した活動とテレメトリ(プロセスの作成、コマンドラインの実行、名前を変更した管理ツールの使用など)は、フォーティネットのAIを活用したセキュリティソリューションによって日常的に検知され、相関分析されています。

FortiEDRは、プロセスの活動とメモリの振る舞いをエンドポイントレベルで継続的にリアルタイムに監視します。カーネルレベルの可視化によって、ETWのようなロギングメカニズムを回避しようとする不正なプロセス起動、スクリプトベースの実行、ファイルレス攻撃などのイベントの検知を可能にします。

FortiAnalyzerFortiSIEMは、ETWデータを含むネイティブなWindowsテレメトリを取り込み、複数のホストおよび環境にまたがって疑わしいイベントを相関分析します。これにより、今回の調査で発見された証拠と同様に、アナリストが実行チェーンを再現して隠蔽 / 削除された活動を特定できるようになります。

FortiGuard脅威インテリジェンスは、フォーティネットグローバルリサーチネットワークからのリアルタイムでのアップデートによってこれらの検知を継続的に強化し、新たなマルウェア亜種、名前が変更されたバイナリ、環境寄生型の手法が確実に識別されてブロックされるようにします。

フォーティネットの統合されたセキュリティ ファブリック(FortiGate、FortiEDR、FortiAnalyzerを含む)を活用する組織は、ネットワーク、エンドポイント、およびテレメトリソースをすべてカバーする統合された可視性と検知の恩恵を受けることができます。

お客様の組織が、本件のインシデントまたはその他のサイバーセキュリティインシデントによる影響を受けていると思われる場合は、フォーティネットのFortiGuardインシデントレスポンスチームまでお問い合わせください。

■関連サイト