オペレーション ドラゴン ウィーブが Azure Cloud C2 を利用しチェコ共和国と台湾を標的に
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ストレージドメインをブロックし、報告されたファイルアーティファクトやプロセスパターンを捜索する必要があります。追加のドロップコンポーネントを特定し、持続メカニズムを削除するために完全なフォレンジック調査も実行する必要があります。
攻撃フロー
検出
LOLBAS WScript / CScript (via process_creation)
表示
隠されたPowerShellコマンドラインを通じた実行の可能性 (via cmdline)
表示
PowerShellからの疑わしい.NETメソッドの呼び出し (via powershell)
表示
PowerShell難読化の指標の可能性 (via powershell)
表示
IOCs (HashSha256) to detect: Operation Dragon Weave: Azure Cloud C2を使用してチェコ共和国と台湾をターゲットにする中国と関係するキャンペーンを明らかにする
表示
悪意あるwscript.exeの実行とCreateFiberExの使用法の検出 [Windowsプロセス作成]
表示
Profile.ps1の実行とPowerShellバイパス [Windows Powershell]
表示
RUSTCLOAK実行のための悪意あるLNKファイルとDLLサイドローディング [Windowsファイルイベント]
表示
シミュレーション実行
前提条件: テレメトリおよびベースラインの事前飛行チェックが通過していること。
攻撃の物語とコマンド
- 配信: 攻撃者は、添付ファイルの名前が
計画申請審査結果通知単.pdf.lnkというフィッシングメールを送り、ダブルエクステンションでショートカットの性質を隠します。LNKはC:Tempevil.vbs. - を指しています。 実行 (VBScript):
被害者がLNKをダブルクリックすると、wscript.exeが起動し、evil.vbsが実行されます。このスクリプトはRuntimeBroker_update.exeをにドロップし、悪意のあるtoにドロップし、悪意のあるand copies a maliciousUnityPlayer.dll(Rustベースのローダーを含む)を同じディレクトリにコピーします。 - DLLサイドローディング: 攻撃者は
にドロップし、悪意のあるを実行します。この実行ファイルが署名されている(または正当なバイナリを模した)ため、Windowsは隣接するUnityPlayer.dllをロードし、埋め込まれたRustペイロード(RUSTCLOAK)を実行し、AzureへのC2チャネルを確立します。 - 実行後: ペイロードはシステム探索(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 "クリーンアップ完了。"