UAC-0001(APT28)によるCVE-2026-21509を使用した攻撃
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
APT28(UAC-0001として追跡中)は、新たに公開されたMicrosoft Officeの脆弱性CVE-2026-21509を利用して、ウクライナ政府の標的およびEU全体の組織に対して悪意のあるペイロードを配信しています。侵入は、追加のコンポーネントを取得するためのWebDAVリクエストを強制する武器化されたDOCファイルから始まり、COMハイジャックを設定してCovenantフレームワークを起動するDLLベースのローダーを実行します。この活動はまた、正当な Filen クラウドストレージをネットワークインフラストラクチャの一部として活用しています。このキャンペーンは2026年1月末に観測されました。
調査
悪意のあるDOCファイルの分析では、Officeで開くとWebDAV接続が開始され、EhStoreShell.dllという名前のDLLとPNGシェルコード画像がダウンロードされることが示されました。このDLLは、CLSID COM登録のハイジャックを介して永続化され、OneDriveHealthという名前のスケジュールされたタスクが作成され、explorer.exeをトリガーしてハイジャックされたCOMオブジェクトをロードします。このローダーはその後Covenantを起動し、オペレーターの制御はFilen支援のエンドポイントを介して行われます。
緩和策
遅延なくCVE-2026-21509に対応するMicrosoftのOfficeアップデートを適用してください。可能であれば、Office内でのWebDAVの使用を無効化または厳しく制限してください。悪意のあるCLSIDレジストリ登録を削除し、OneDriveHealthのスケジュールタスクを削除してください。Filenのドメインおよび関連するIPへのアウトバウンドアクセスをブロックし、上記で示唆されたDLLとPNGアーティファクトの作成をエンドポイントで監視してください。
対応
EhStoreShell.dll、SplashScreen.pngの作成とハイジャックされたCLSIDレジストリパス下の変更をアラートとして通知してください。OneDriveHealthに一致するスケジュールタスクの作成を検出し、調査してください。Officeプロセスの活動とFilenドメインへのアウトバウンド接続を関連付け、関連するドキュメントを隔離し、影響を受けたシステムで完全なホストフォレンジックを実行してください。
graph TB %% Class definitions classDef action fill:#99ccff classDef file fill:#ffcc99 classDef process fill:#ccffcc classDef tool fill:#cccccc %% Nodes action_phishing[“<b>アクション</b> – <b>T1566.001 スピアフィッシング添付</b><br/>APT28は、ウクライナ政府の通信を装った悪意のあるDOCファイル(例:BULLETEN_H.doc)を送信した。”] class action_phishing action file_doc[“<b>ファイル</b> – 悪意のあるDOC<br/>CVE-2026-21509のエクスプロイトを含むBULLETEN_H.doc”] class file_doc file action_exploit_client[“<b>アクション</b> – <b>T1203 クライアント実行のための悪用</b><br/>DOCを開くことでMicrosoft OfficeのCVE-2026-21509が悪用され、コード実行が達成された。”] class action_exploit_client action action_download_payload[“<b>アクション</b> – <b>T1210 リモートサービスの悪用</b><br/>WebDAVリクエストにより、攻撃者管理サーバーから追加ペイロードがダウンロードされた。”] class action_download_payload action file_dll[“<b>ファイル</b> – 悪意のあるDLL<br/>EhStoreShell.dll”] class file_dll file file_png[“<b>ファイル</b> – シェルコードを埋め込んだ画像<br/>SplashScreen.png”] class file_png file file_xml[“<b>ファイル</b> – XMLタスク定義<br/>office.xml”] class file_xml file action_com_hijack[“<b>アクション</b> – <b>T1546.015 COMハイジャック</b><br/>レジストリCLSID {D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D} が EhStoreShell.dll にリダイレクトされ、ペイロードがロードされた。”] class action_com_hijack action action_scheduled_task[“<b>アクション</b> – <b>T1546.009 スケジュールタスクによるAppCert DLL</b><br/>悪意のあるDLLを実行し explorer.exe を再起動するため、スケジュールタスク \”OneDriveHealth\” (XML) が作成された。”] class action_scheduled_task action action_process_injection[“<b>アクション</b> – <b>T1055.001 プロセスインジェクション(DLL)</b><br/>EhStoreShell.dll が SplashScreen.png からのシェルコードを explorer.exe に注入した。”] class action_process_injection action process_explorer[“<b>プロセス</b> – explorer.exe”] class process_explorer process action_verclsid_proxy[“<b>アクション</b> – <b>T1218.012 システムバイナリプロキシ実行</b><br/>変更されたCLSIDにより、WindowsはVerclsidバイナリを通じて悪意のあるDLLをロードした。”] class action_verclsid_proxy action action_c2_webservice[“<b>アクション</b> – <b>T1102.001 / T1102.002 WebサービスC2</b><br/>COVENANTのC2通信は、dead dropおよび双方向通信のために正規のFilenクラウドドメイン(*.filen.io)上でホストされた。”] class action_c2_webservice action %% Connections action_phishing –>|配信| file_doc file_doc –>|トリガー| action_exploit_client action_exploit_client –>|誘発| action_download_payload action_download_payload –>|ダウンロード| file_dll action_download_payload –>|ダウンロード| file_png action_download_payload –>|ダウンロード| file_xml action_download_payload –>|有効化| action_com_hijack action_com_hijack –>|ロード| file_dll action_com_hijack –>|作成| action_scheduled_task action_scheduled_task –>|実行| file_dll action_scheduled_task –>|再起動| process_explorer action_process_injection –>|注入| process_explorer file_dll –>|使用| action_process_injection file_png –>|シェルコード提供| action_process_injection action_verclsid_proxy –>|呼び出し| file_dll action_c2_webservice –>|通信| file_xml
攻撃フロー
検出
疑わしいTaskkillの実行(cmdline経由)
表示
Schtasksが疑わしいディレクトリ/バイナリ/スクリプトを指しています(cmdline経由)
表示
可能性のあるexplorer COMハイジャック(registry_event経由)
表示
可能な検索/検索-MS URIプロトコルハンドラの悪用(cmdline経由)
表示
潜在的に疑わしいスケジュールされたタスクの作成、実行、削除の動作(process_creation経由)
表示
サードパーティのサービス/ツールを利用した可能性のあるデータの侵入/流出/C2(プロキシ経由)
表示
サードパーティのサービス/ツールを利用した可能性のあるデータの侵入/流出/C2(dns経由)
表示
LOLBAS Regsvr32(cmdline経由)
表示
検出するためのIOC(DestinationIP):CERT-UAブリテン:UAC-0001(APT28)CVE-2026-21509を使用した攻撃
表示
検出するためのIOC(HashSha256):CERT-UAブリテン:UAC-0001(APT28)CVE-2026-21509を使用した攻撃
表示
検出するためのIOC(HashSha1):CERT-UAブリテン:UAC-0001(APT28)CVE-2026-21509を使用した攻撃
表示
検出するためのIOC(HashMd5):CERT-UAブリテン:UAC-0001(APT28)CVE-2026-21509を使用した攻撃
表示
検出するためのIOC(メール):CERT-UAブリテン:UAC-0001(APT28)CVE-2026-21509を使用した攻撃
表示
検出するためのIOC(SourceIP):CERT-UAブリテン:UAC-0001(APT28)CVE-2026-21509を使用した攻撃
表示
レジストリ変更によるCOMハイジャックの検出[Windowsレジストリイベント]
表示
APT28サイバー攻撃に関連する悪意のあるネットワーク接続[Windowsネットワーク接続]
表示
拡張ストレージシェル拡張として偽装された疑わしいファイル作成[Windowsファイルイベント]
表示
シミュレーション実行
前提条件:テレメトリー&ベースラインのプリフライトチェックが通過している必要があります。
根拠:このセクションは、検出ルールをトリガーするために設計された対敵技術(TTP)の正確な実行を詳述しています。コマンドと説明は、識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目的としなければなりません。抽象的または無関連な例は誤診を引き起こします。
-
攻撃の説明とコマンド:
対敵者が被害者のマシンに足掛かりを得て、持続可能でステルスなコード実行を達成したいと考えています。彼らは正当なソフトウェアによって参照される可能性が低い稀に使われるCLSID{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}を選択します。PowerShell(T1218.010)を使用して、悪意のあるDLLのパスを書き込み、オプションでInProcServer32サブキーにThreadingModelの値を設定して、"Both"としてCOMローディング要件を満たすようにします。登録後、このCOMオブジェクトをインスタンス化しようとする正当なアプリケーションは、攻撃者によって制御されたDLLをロードし、その後rundll32.exe(T1218.009)を使用して攻撃者のC2インフラストラクチャ(T1584.001)に接続するペイロードを実行する可能性があります。 -
リグレッションテストスクリプト:
# ------------------------------- # COMハイジャックシミュレーション (T1546.015) # ------------------------------- $clsid = '{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}' $regPath = "HKLM:SoftwareClassesCLSID$clsidInProcServer32" # キーが存在することを確認 New-Item -Path $regPath -Force | Out-Null # デフォルト値を悪意のあるDLLパスに設定(DLLがすでにディスク上にあると仮定) $maliciousDll = "C:Tempevil.dll" Set-ItemProperty -Path $regPath -Name '(Default)' -Value $maliciousDll # オプション:ThreadingModelをBothに設定(一部のCOMオブジェクトがこれを必要とします) Set-ItemProperty -Path $regPath -Name 'ThreadingModel' -Value 'Both' Write-Host "[+] CLSID $clsidのレジストリハイジャックが作成され、$maliciousDllにポイントします" -
クリーンアップコマンド:
# ------------------------------- # COMハイジャックシミュレーションクリーンアップ # ------------------------------- $clsid = '{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}' $regPath = "HKLM:SoftwareClassesCLSID$clsid" # CLSIDキー全体のツリーを削除 if (Test-Path $regPath) { Remove-Item -Path $regPath -Recurse -Force Write-Host "[+] ハイジャックされたCLSID $clsidをレジストリから削除しました。" } else { Write-Host "[*] CLSID $clsidが存在しないため、クリーンアップは不要です。" }