T1547.003 MITRE ATT&CKにおける時間プロバイダーの解説
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
この記事では、攻撃者がW32Timeサービスを悪用してWindows上で持続性を確立する方法を説明しています。レジストリの変更を通じて悪意のあるDLLをタイムプロバイダーとして登録することで、サービスが起動されるたびにペイロードが自動的に読み込まれます。この方法では、正規のWindowsコンポーネントの背後に悪意のある実行を隠し、攻撃者が持続性の活動を通常のシステム動作に溶け込ませることを手助けします。
調査
このレポートは、特定のマルウェアサンプルや侵入キャンペーンに焦点を当てるのではなく、攻撃者がW32Timeサービスのレジストリ設定を変更し、不正なDLLを強制的にロードする技術的プロセスを説明しています。また、この悪用を実装するために必要な関連するコマンド構文とレジストリパスを強調しています。
緩和策
組織は、W32Timeサービスファイルと関連するレジストリキーを不正な変更から保護するために、グループポリシーを使用すべきです。レジストリの書き込みアクセスは信頼された管理者に限定されるべきであり、防御者はTimeProvidersサブキーの変更を監視すべきです。W32Time DLLのファイル整合性チェックと、ローカルサービスアカウントに対する厳格な最小権限制御は、さらにリスクを減少させることができます。
対応
検知チームは、W32TimeTimeProvidersレジストリパスのサブキーの作成または変更に関するアラートを表示すべきです。見慣れないDLLを参照するレジストリ値は直ちに調査されるべきです。これらのシグナルは、非標準のDLLをロードするw32tm.exeに関与するプロセスアクティビティや、関連する持続性の動作と相関されるべきです。
攻撃の流れ
この部分はまだ更新中です。通知を受け取るにはサインアップしてください。
通知する検知
TimeProvidersの悪用可能性 (via registry_event)
表示
Runキーに追加された疑わしいファイル拡張子 [ASEPs] (via registry_event)
表示
持続性ポイントの可能性 [ASEPs – Software/NTUSER Hive] (via cmdline)
表示
TimeProvidersの悪用試みの可能性 (via cmdline)
表示
持続性ポイントの可能性 [ASEPs – Software/NTUSER Hive] (via registry_event)
表示
MITRE ATT&CKにおけるT1547.003タイムプロバイダーを検出するためのIOCs(メール)
表示
悪意のあるタイムプロバイダーDLLのレジストリ操作を検出 [Windowsレジストリイベント]
表示
シミュレーション実行
前提条件:テレメトリーとベースラインの出発前チェックがパスしていること。
-
攻撃の流れとコマンド:
ローカル管理者権限を持つ敵対者は、システムの再起動を超えて持続し、検出が難しい持続性を求めています。彼らはWindowsタイムサービス(W32Time)を悪用して、 タイムプロバイダーとして悪意のあるDLLを登録することを選択します。この手法は正規のreg.exeユーティリティ(ランドマーク内の生活)を活用して、HKLMSystemCurrentControlSetServicesW32TimeTimeProviders<CustomProvider>レジストリキーを変更します。サービスがブート時にDLLをロードすると、攻撃者はSYSTEM特権でコード実行の機会を得ます。 -
回帰テストスクリプト:
# ------------------------------------------------- # W32Timeタイムプロバイダーとして悪意のあるDLLを登録 # ------------------------------------------------- $providerName = "MaliciousTimeProvider" $dllPath = "C:TempevilTime.dll" # 1. ダミーの悪意のあるDLLプレースホルダーを作成(テストのためのみ) New-Item -Path $dllPath -ItemType File -Force | Out-Null # 2. タイムプロバイダーレジストリキーを追加 $regPath = "HKLMSystemCurrentControlSetServicesW32TimeTimeProviders$providerName" reg add "HKLMSystemCurrentControlSetServicesW32TimeTimeProviders$providerName" /v "Dll" /t REG_SZ /d $dllPath /f # 3. プロバイダーを有効にする(値Enabled = 1) reg add "HKLMSystemCurrentControlSetServicesW32TimeTimeProviders$providerName" /v "Enabled" /t REG_DWORD /d 1 /f Write-Host "悪意のあるタイムプロバイダーが登録されました。SIEMで検出をチェックしてください。" -
クリーンアップコマンド:
# ------------------------------------------------- # 悪意のあるタイムプロバイダー登録を削除 # ------------------------------------------------- $providerName = "MaliciousTimeProvider" $regPath = "HKLMSystemCurrentControlSetServicesW32TimeTimeProviders$providerName" # プロバイダーキーを再帰的に削除 reg delete "HKLMSystemCurrentControlSetServicesW32TimeTimeProviders$providerName" /f # ダミーDLLファイルを削除 Remove-Item "C:TempevilTime.dll" -Force -ErrorAction SilentlyContinue Write-Host "クリーンアップ完了。"