Windows Management Instrumentation (WMI) can be used to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system. Adversaries may attempt to evade detection of this technique by compiling WMI scripts into Windows Management Object (MOF) files (.mof extension). (Citation: Dell WMI Persistence) Examples of events that may be subscribed to are the wall clock time or the computer's uptime. (Citation: Kazanciyan 2014) Several threat groups have reportedly used this technique to maintain persistence. (Citation: Mandiant M-Trends 2015)
T1084は「Windows Management Instrumentation Event Subscription(WMIイベント購読)」として定義されていた強力な永続化手法です。 Windowsのシステム管理機能である「WMI」を悪用し、「特定の条件(イベント)」が発生したタイミングで悪意のあるコードを自動実行させる手法です。主に「永続化(Persistence)」と「特権昇格(Privilege Escalation)」のために利用されます。
この手法で攻撃者は、「ファイルや通常のレジストリに頼らない、OS深くへの半永久的な潜伏」を実現します。
高度な永続化:
従来の「スタートアップフォルダ」や「Runレジストリキー」のように目立つ場所を使わないため、一般的な自動起動チェックツールをすり抜けて、システムに長期潜伏(永続化)できます。
SYSTEM権限での実行:
WMIのイベント処理システム(WMIサービス)自体が SYSTEM権限 で動作しているため、一般ユーザーが設定したトリガーであっても、実行される攻撃コードは最高権限(SYSTEM)に昇格させることが可能です。
WMIのイベント購読を成立させるには、主に以下の3つの要素をWMIリポジトリ(データベース)に登録する必要があります。
Event Filter(イベントフィルターの作成):
攻撃を実行する「条件(トリガー)」をWQL(WMI Query Language)という言語で定義します。
例:「OSの起動から5分が経過した時」「特定のユーザーがログインした時」「特定のファイルが作成された時」など。
Event Consumer(イベントコンシューマーの作成):
条件が満たされたときに「実行するアクション(攻撃内容)」を定義します。多くの場合、CommandLineEventConsumer が使われ、実行ファイル(.exe)の起動や、PowerShellスクリプトの実行、バックドアへの接続コマンドなどが指定されます。
Filter to Consumer Binding(バインディングによる結合):
上記の「フィルター(条件)」と「コンシューマー(実行内容)」をシステム内で結びつけます。これによって初めて、条件成立時に自動で攻撃コードが動くようになります。
WMIデータベース(リポジトリ)の監視と、作成権限の制限が重要です。
WMIリポジトリの監査:
マイクロソフト純正の管理ツールである Autoruns を管理者権限で起動し、「WMI」タブを確認します。ここに身に覚えのないフィルターやコンシューマーが登録されていないか定期的に棚卸しします。
Sysmonログの活用:
Windowsの拡張ログ機能「Sysmon」を導入することで、WMIの登録イベントを明確に記録できます。
Event ID 19: WmiEvent (WmiEventFilter activity detected)
Event ID 20: WmiEvent (WmiEventConsumer activity detected)
Event ID 21: WmiEvent (WmiEventConsumerToFilter activity detected)
PowerShellでの調査:
以下のコマンドを定期実行し、登録されているイベントコンシューマーをリスト化して不審なファイルパスがないか監視します。
Get-CimInstance -Namespace root\subscription -ClassName __EventConsumer
「ファイルレス」に近い隠蔽性:
攻撃コード(スクリプトなど)をWMIリポジトリ(OBJECTS.DATA というデータベースファイル)の内部に直接格納できるため、ディスク上に独立したマルウェアのファイルを置く必要がありません。これが「ファイルレスマルウェア」の定石となっています。
正規機能の悪用:
WMIは、システム管理者がPCのメンテナンスや資産管理のために日常的に使う強力なツールです。そのため、機能自体を完全に無効化することが難しく、防御側は「設定されている中身(WQLクエリなど)」を見て善悪を判断する必要があります。
CWE-15: External Control of System or Configuration Setting:
システムの管理設定(WMIオブジェクト)を外部から不正に操作されてしまう不備。
CWE-749: Exposed Dangerous Method or API:
強力なシステム実行API(WMIのコンシューマー機能)が安全ではない形で露出、または悪用される問題。
高度なAPT攻撃から、一般的なサイバースパイ活動まで、永続化の「決定打」としてよく選ばれます。
APT29 (Cozy Bear) / APT41:
国家支援型とされるこれらのグループは、標的のネットワークに侵入して管理者権限を奪取した後、セキュリティソフトに引っかかりにくいこのWMIイベント購読(T1084)を仕込み、数ヶ月〜数年にわたってアクセス権を維持する手法を好んで使用します。
PowerSploit (Empire) などのツール:
レッドチーム(ペネトレーションテスト)や攻撃者が使用するフレームワークには、WMI永続化を自動化するモジュールが標準実装されています。
WMIを用いた永続化は、OSの深部に組み込まれるため、一度設定されるとアンチウイルスソフトのスキャンだけでは削除しきれないケースがあります。調査の際は、プロセス一覧を見るだけでなく、上記の Autoruns や Get-CimInstance コマンドを使って 「WMIのデータベースそのもの」を直接覗きに行く のが最も確実な対処法です。
この攻撃手法を利用する脅威アクターは登録されていません。
この攻撃手法に関連する CVE は登録されていません。