Trusted Design

T1209 - Time Providers

概要

The Windows Time service (W32Time) enables time synchronization across and within domains. (Citation: Microsoft W32Time Feb 2018) W32Time time providers are responsible for retrieving time stamps from hardware/network resources and outputting these values to other network clients. (Citation: Microsoft TimeProvider)

Time providers are implemented as dynamic-link libraries (DLLs) that are registered in the subkeys of HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\TimeProviders\. (Citation: Microsoft TimeProvider) The time provider manager, directed by the service control manager, loads and starts time providers listed and enabled under this key at system startup and/or whenever parameters are changed. (Citation: Microsoft TimeProvider)

Adversaries may abuse this architecture to establish Persistence, specifically by registering and enabling a malicious DLL as a time provider. Administrator privileges are required for time provider registration, though execution will run in context of the Local Service account. (Citation: Github W32Time Oct 2017)

管理者によるコメント

T1209は「Time Providers(タイムプロバイダーの悪用)」として定義されていた、Windows環境における高度な永続化(Persistence)手法です。

Windowsがネットワーク上の時間と同期するためのシステム(Windows Timeサービス:W32Time)の仕組みを逆手に取り、OSが起動した際、または定期的な時間同期が行われるタイミングで、マルウェア(DLL)をシステム最高権限(SYSTEM)で自動実行させる手法です。

1. 概要(攻撃者は何を実現できるのか?)

この手法で攻撃者は、「ユーザーのログインに関係なく、OSの起動と同時に、最高権限を伴ったバックドアを自動実行(常駐化)させること」を実現します。

2. 攻撃の流れ

Windowsのタイムプロバイダーは、レジストリで管理されています。攻撃者はこのレジストリを書き換えることで、自身を「正規の時間同期コンポーネント」としてシステムに誤認させます。

  1. 初期侵入と権限昇格:
    攻撃者はまずターゲットのWindows端末に侵入します。システム全体のタイムプロバイダーを書き換える(HKEY_LOCAL_MACHINE領域を操作する)必要があるため、事前に管理者権限(AdministratorまたはSYSTEM)を確保しておきます。

  2. 悪意あるタイムプロバイダー(DLL)の配置:
    遠隔操作(RAT)などの機能を実装し、Windowsのタイムプロバイダーとしての最低限のインターフェース(TimeProvOpen, TimeProvCommand, TimeProvClose などのエクスポート関数)を持たせた不正なDLLファイル(例: malicious_time.dll)をシステムフォルダ内に配置します。

  3. レジストリの改ざん:
    Windows Timeサービスが参照する以下のレジストリキーに、新しいタイムプロバイダーとして登録を行います。

    • キー: HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\
    • 設定手順: ここに新しいサブキー(例: MaliciousTimeProvider)を作成し、内部の DllName という値に手順2で置いたマルウェアDLLの絶対パスを指定します。また、Enabled の値を "1"(有効)にします。
  4. サービスの再起動(トリガー):
    攻撃者は net stop w32time && net start w32time などのコマンドを実行してWindows Timeサービスを強制再起動するか、次回のOS再起動を待ちます。

  5. コード実行:
    サービスが起動すると、Windowsはレジストリに基づいて登録されたすべてのタイムプロバイダーDLLを svchost.exe の中にロードします。これにより、マルウェアがSYSTEM権限で活動を開始します。

3. 防御・対策

タイムプロバイダーの追加は非常に珍しいイベントであるため、レジストリの監視が最大の防御になります。

4. 重要ポイント

5. 関連する主なCWE

タイムプロバイダーの悪用に関係するシステム設計・管理上の脆弱性(弱点)には以下のようなものがあります。

6. 関連する代表的なCVE

T1209(Time Providers)は、Windows OSが後方互換性やカスタマイズのために標準で提供している「正規の仕様(拡張フレームワーク)」を悪用する攻撃テクニックであるため、これ自体にCVE番号(バグの識別番号)が割り当てられているわけではありません。 しかし、攻撃者がこのタイムプロバイダー(HKLMレジストリ)を書き換えるためには、必ず「管理者権限」が必要になります。そのため、初期侵入後に「タイムプロバイダーを仕込んで最高権限での永続化を完成させるため」に、以下のようなWindowsの権限昇格(Local Privilege Escalation)の脆弱性と組み合わせて悪用されます。

分析

この攻撃手法を利用する脅威アクター

関連する CVE

攻撃手法 – 脅威アクター Graph


← Technique一覧に戻る ← Tactics一覧に戻る