SOC Prime Bias: 重大

02 Jun 2026 19:44 UTC

オペレーション ドラゴン ウィーブが Azure Cloud C2 を利用しチェコ共和国と台湾を標的に

Author Photo
SOC Prime Team linkedin icon フォローする
オペレーション ドラゴン ウィーブが Azure Cloud C2 を利用しチェコ共和国と台湾を標的に
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

Operation Dragon Weaveと追跡された標的型スパイ活動は、悪意あるLNKショートカットファイルとRustに基づいた実行ファイルを使用して、最終的にAdaptix AZUREVEILコマンドアンドコントロールエージェントを配備する多段ローダーを起動します。オペレーターはC2通信のデッドドロップメカニズムとしてMicrosoft Azure Blob Storageを悪用します。このキャンペーンはチェコ共和国と台湾の政府関係者および研究者に焦点を当てています。

調査

調査はZIPアーカイブからVBScriptの実行、PowerShellによる復号化、DLLサイドローディング、および最終ペイロードを復号するためにRC4、Base64、およびSM4を使用したカスタムRustローダーまでの完全な感染チェーンに従いました。最終段階のマルウェアAZUREVEILは、Azure Blob Storageを通じてのみ通信し、メモリ内Beacon Object Fileの実行をサポートする64ビットのAdaptix DLLとして識別されました。

軽減策

ディフェンダーは予期しないLNKファイルや未署名バイナリの実行をブロックし、スクリプトとマクロの実行に対して厳格な制御を施し、異常なAzure Blob Storageトラフィックを監視するべきです。実行ポリシーバイパスを伴うPowerShellの使用を制限または厳密に監視し、セキュリティチームは %LOCALAPPDATA% and %TEMP%での疑わしいファイルの作成を検出する必要があります。Azureアカウントのための強力な資格情報の衛生とSASトークンの定期的な回転も推奨されます。

対応

セキュリティチームは影響を受けたホストを検出して隔離し、不揮発性メモリを収集してメモリ内ペイロードを回復し、特定されたAzureストレージドメインをブロックし、報告されたファイルアーティファクトやプロセスパターンを捜索する必要があります。追加のドロップコンポーネントを特定し、持続メカニズムを削除するために完全なフォレンジック調査も実行する必要があります。

graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ddffdd classDef process fill:#ffeb99 classDef operator fill:#ff9900 %% Nodes attack_phishing[“<b>アクション</b> – <b>T1566.001 スピアフィッシング添付ファイル</b><br/>攻撃者は悪意のある ZIP アーカイブを被害者にメールで送信する。”] class attack_phishing action file_zip[“<b>ファイル</b> – malicious.zip<br/>.lnk ショートカットと Rust でコンパイルされた .exe ドロッパーを含む。”] class file_zip file action_user_exec[“<b>アクション</b> – <b>T1204.001 ユーザー実行</b><br/>被害者が .lnk を開く、または .exe を実行し、ドロッパーチェーンが開始される。”] class action_user_exec action file_lnk[“<b>ファイル</b> – payload.pdf.lnk<br/>ショートカットは二重拡張子と Edge アイコンを使用して無害に見せかける。”] class file_lnk file tool_wscript[“<b>ツール</b> – wscript.exe<br/>VBScript ペイロードを実行する。”] class tool_wscript tool file_vbs[“<b>ファイル</b> – empty.vbs<br/>PowerShell を起動する最小限の VBScript。”] class file_vbs file action_vbscript[“<b>アクション</b> – <b>T1059.005 Visual Basic</b><br/>VBScript が wscript 経由で実行され、PowerShell を起動する。”] class action_vbscript action action_powershell[“<b>アクション</b> – <b>T1059.001 PowerShell</b><br/>Profile.ps1 が実行ポリシーをバイパスして実行され、次段階のペイロードを復号する。”] class action_powershell action file_dat[“<b>ファイル</b> – 1.dat<br/>RuntimeBroker_update.exe を格納した XOR 暗号化コンテナ。”] class file_dat file process_runtime[“<b>プロセス</b> – RuntimeBroker_update.exe<br/>1.dat から復号される。DLL サイドローディングにより悪意のある UnityPlayer.dll を読み込む。”] class process_runtime process file_dll[“<b>ファイル</b> – UnityPlayer.dll<br/>RuntimeBroker_update.exe と同じ場所に配置された悪意のある DLL。”] class file_dll file action_dll_sideload[“<b>アクション</b> – <b>T1546.009 AppCert DLL</b><br/>DLL サイドローディングによりコード実行を実現する。”] class action_dll_sideload action tool_rustloader[“<b>ツール</b> – Rust ローダー (RUSTCLOAK)<br/>メモリを確保し、復号した AZUREVEIL PE を書き込み、Windows ファイバー経由で実行する。”] class tool_rustloader tool action_process_injection[“<b>アクション</b> – <b>T1055.002 プロセスインジェクション</b><br/>Windows ファイバーを利用した PE インジェクション。”] class action_process_injection action file_azureveil[“<b>ファイル</b> – AZUREVEIL.exe<br/>インジェクション後に実行される復号済みペイロード。”] class file_azureveil file action_discovery[“<b>アクション</b> – <b>T1083 ファイルおよびディレクトリ探索</b><br/>ローダーがファイルを列挙し、%TEMP% に移動する。”] class action_discovery action action_network_discovery[“<b>アクション</b> – <b>T1016 システムネットワーク構成探索</b><br/>プロキシやラテラルムーブメントのために MAC アドレスと IP 情報を収集する。”] class action_network_discovery action action_c2[“<b>アクション</b> – <b>T1102 Web サービス</b><br/>HTTPS を介して Azure Blob Storage と通信する。”] class action_c2 action action_dead_drop[“<b>アクション</b> – <b>T1102.003 一方向通信</b><br/>ビーコンデータをアップロードし、同じコンテナからコマンドを取得する。”] class action_dead_drop action action_encrypted_channel[“<b>アクション</b> – <b>T1573.001 暗号化チャネル</b><br/>ビーコンおよびコマンドデータは独自 RC4 と SM4-CBC により暗号化される。”] class action_encrypted_channel action action_exfil[“<b>アクション</b> – <b>T1567.002 Web サービス経由の情報窃取</b><br/>暗号化されたデータを Azure Blob エンドポイントへアップロードする。”] class action_exfil action action_persistence[“<b>アクション</b> – <b>T1547.009 ショートカット改変</b><br/>永続化のために悪意のある .lnk をスタートアップ領域へ配置する。”] class action_persistence action %% Edges attack_phishing –>|配信| file_zip file_zip –>|トリガー| action_user_exec action_user_exec –>|開く| file_lnk file_lnk –>|実行| tool_wscript tool_wscript –>|実行| file_vbs file_vbs –>|起動| action_vbscript action_vbscript –>|開始| action_powershell action_powershell –>|復号| file_dat file_dat –>|生成| process_runtime process_runtime –>|読み込み| file_dll file_dll –>|使用される| action_dll_sideload process_runtime –>|実行| action_process_injection action_process_injection –>|使用| tool_rustloader tool_rustloader –>|読み込み| file_azureveil file_azureveil –>|実行| action_discovery action_discovery –>|さらに実施| action_network_discovery action_network_discovery –>|データ送信先| action_c2 action_c2 –>|使用| action_dead_drop action_dead_drop –>|依存| action_encrypted_channel action_encrypted_channel –>|有効化| action_exfil action_exfil –>|引き起こす可能性| action_persistence file_lnk –>|確立| action_persistence %% Class Assignments class attack_phishing action class file_zip file class action_user_exec action class file_lnk file class tool_wscript tool class file_vbs file class action_vbscript action class action_powershell action class file_dat file class process_runtime process class file_dll file class action_dll_sideload action class tool_rustloader tool class action_process_injection action class file_azureveil file class action_discovery action class action_network_discovery action class action_c2 action class action_dead_drop action class action_encrypted_channel action class action_exfil action class action_persistence action

攻撃フロー

シミュレーション実行

前提条件: テレメトリおよびベースラインの事前飛行チェックが通過していること。

攻撃の物語とコマンド

  1. 配信: 攻撃者は、添付ファイルの名前が 計画申請審査結果通知単.pdf.lnkというフィッシングメールを送り、ダブルエクステンションでショートカットの性質を隠します。LNKは C:Tempevil.vbs.
  2. を指しています。 実行 (VBScript): 被害者がLNKをダブルクリックすると、 wscript.exeが起動し、 evil.vbsが実行されます。このスクリプトはRuntimeBroker_update.exeを にドロップし、悪意のある to にドロップし、悪意のある and copies a malicious UnityPlayer.dll (Rustベースのローダーを含む)を同じディレクトリにコピーします。
  3. DLLサイドローディング: 攻撃者は にドロップし、悪意のあるを実行します。この実行ファイルが署名されている(または正当なバイナリを模した)ため、Windowsは隣接する UnityPlayer.dllをロードし、埋め込まれたRustペイロード(RUSTCLOAK)を実行し、AzureへのC2チャネルを確立します。
  4. 実行後: ペイロードはシステム探索(T1016、T1082)を行い、暗号化チャネル(T1573)を介してエクスフィルトレーション(T1041)を開始します。

回帰テストスクリプト

<#
  悪意あるLNK + DLLサイドローディング検出のためのシミュレーションスクリプト。
  前提条件:
  - Sysmonプロセス作成(ID 1)およびイメージロード(ID 7)が有効であること。
  - $env:APPDATAMicrosoftWindowsStart MenuProgramsへの書き込み権限があること。
#>

# 1. 悪意あるVBScriptを準備
$vbPath = "$env:TEMPevil.vbs"
@'
Set objShell = CreateObject("WScript.Shell")
'objShell.Run """$env:APPDATAMicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe""", 0, False
'@ | Set-Content -Path $vbPath -Encoding Unicode

# 2. フェイクのUnityPlayer.dll (バイナリプレースホルダー) を配置
$dllPath = "$env:APPDATAMicrosoftWindowsStart MenuProgramsUnityPlayer.dll"
# デモ用に、既存のDLL(例:version.dll)をコピーして名前を変更
Copy-Item "$env:SystemRootSystem32version.dll" $dllPath -Force

# 3. 補助実行ファイルを展開(リアリズムのために正当なバイナリをコピー)
$exePath = "$env:APPDATAMicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe"
Copy-Item "$env:SystemRootSystem32RuntimeBroker.exe" $exePath -Force

# 4. ダブルエクステンションで悪意あるLNKを作成
$lnkPath = "$env:USERPROFILEDesktop計画申請審査結果通知単.pdf.lnk"
$ws = New-Object -ComObject WScript.Shell
$shortcut = $ws.CreateShortcut($lnkPath)
$shortcut.TargetPath = "$env:SystemRootSystem32wscript.exe"
$shortcut.Arguments = "`"$vbPath`""
$shortcut.Save()

Write-Host "悪意あるLNKが $lnkPath に作成されました"
Write-Host "チェーンをトリガーするためにLNKを実行しています..."
Start-Process -FilePath $lnkPath -Wait

クリーンアップコマンド

# アーティファクトを削除
Remove-Item "$env:TEMPevil.vbs" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:APPDATAMicrosoftWindowsStart MenuProgramsUnityPlayer.dll" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:APPDATAMicrosoftWindowsStart MenuProgramsRuntimeBroker_update.exe" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:USERPROFILEDesktop計画申請審査結果通知単.pdf.lnk" -Force -ErrorAction SilentlyContinue
Write-Host "クリーンアップ完了。"