暗号排出装置を用いた収束型脅威:新たなハイブリッド攻撃エコシステムへの洞察
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
このレポートは、確立されたサイバー犯罪インフラが仮想通貨ドレイナーのオペレーションとますます融合することで、Web2およびWeb3の資産を危険にさらすハイブリッドな攻撃エコシステムが生まれていることを説明します。脅威アクターは、AIツールや金融サービスをテーマにした洗練されたフィッシングページを利用して、被害者にウォレットを接続させ、トークン取引を認可し、意図せず複数のブロックチェーンにわたって資金を移動させます。注目すべき例としては、StepDrainerとEtherRATがあり、このモデルがブラウザベースのウォレットドレインとブロックチェーンを意識した機能を持つWindowsマルウェアの両方に広がっていることを示しています。その結果、脅威はもはや仮想通貨ネイティブのユーザーに限らず、主流の企業環境にまで深く侵入しています。
調査
研究者たちは、StepDrainerのマルウェア・アズ・ア・サービス・オペレーションを調査し、PHPとJavaScriptのステージングインフラストラクチャ、および説得力のあるウォレット接続プロンプトを表示するためのWeb3Modalの使用について分析しました。また、トロイの木馬化されたTFTPインストーラーを通じて配布され、Runレジストリキーを介して持続性を保持し、EthereumとSolanaのRPCエンドポイントと通信するEtherRAT Windowsマルウェアの分析も行いました。調査の過程で、悪意のあるドメイン、レジストリキー、両方の攻撃パスに関連するコマンドラインアーティファクトなどのインジケーターを抽出しました。
緩和策
組織は、既知の悪意のあるドメインへのアクセスをブロックし、ウォレット拡張機能に対して可能な限り多要素認証を要求し、疑わしいRunレジストリエントリーや予期しないNode.jsプロセスについてシステムを監視するべきです。セキュリティチームはまた、異常な行動について公共ブロックチェーンRPCサービスへのトラフィックを検査し、ブラウザ拡張機能を定期的にレビューして改ざんや悪用の兆候を確認するべきです。
対応策
この活動が検出された場合は、影響を受けたホストを直ちに隔離し、悪意のあるRunレジストリエントリーを削除し、承認されていないNode.jsプロセスを終了し、影響を受けたウォレットによって許可されたすべてのトークン承認を取り消してください。調査者は、追加のペイロードや持続性メカニズムを特定するための法医学的分析を行い、検出されたコマンドアンドコントロールインフラとのさらなる通信を防ぐために許可リストやブロックリストを更新する必要があります。
攻撃フロー
検出
可能性のある持続性ポイント [ASEPs – ソフトウェア/NTUSER ハイブ] (レジストリエベント経由)
表示
NodeJSバイナリがあまり一般的でない場所から実行されました(コマンドライン経由)
表示
可能性のあるアンチウイルスまたはファイアウォールソフトウェアの列挙(プロセス生成経由)
表示
LOLBAS Conhost(コマンドライン経由)
表示
不審なCURLの使用(コマンドライン経由)
表示
可能性のある回避チェック(powershell経由)
表示
可能性のあるPublicnode EthereumのC2チャネルとしての悪用試行(dns_query経由)
表示
第三者サービス/ツールを利用した可能性のあるデータ流入/流出/C2(プロキシ経由)
表示
第三者サービス/ツールを利用した可能性のあるデータ流入/流出/C2(dns経由)
表示
EtherRAT持続性メカニズムの検出:conhost.exeをヘッドレスモードで使用 [Windowsプロセス生成]
表示
EtherRAT PowerShellコマンド実行によるシステム偵察 [Windows Powershell]
表示
シミュレーションの実行
前提条件: テレメトリ & ベースラインの事前フライトチェックが合格している必要があります。
-
攻撃の状況説明 & コマンド
攻撃者は既に悪意のあるJavaScriptファイル(
payload.js)をターゲットに配置しています。持続性を実現するために、インストールされたnode.exeバイナリを使用してconhost.exeをヘッドレスモードで開始し、その後JavaScriptペイロードをロードします。この手法は、目に見えるコンソールウィンドウを回避し、通常のnodeの使用に溶け込むことを可能にします。- 悪意のあるペイロードをドロップ (
payload.js)を一時的な場所に配置します。 - 実行
node.exeコマンドでconhost.exe --headlessをペイロードに向けて発生させます。 - スケジュールされたタスクを作成します システム起動時に同じコマンドを実行し、持続性を提供します。
- 悪意のあるペイロードをドロップ (
-
回帰テストスクリプト
# EtherRAT 持続性シミュレーション – PowerShell # ---------------------------------------------- # 1. 悪意のあるJavaScriptペイロードを準備する $payloadPath = "$env:TEMPpayload.js" @" // 最低限の悪意あるJS - 実際にはEtherRATインプラントをロードします const { exec } = require('child_process'); exec('calc.exe'); // 例としての副作用 "@ | Set-Content -Encoding UTF8 $payloadPath # 2. node.exeを探す(PATHにあると仮定) $node = (Get-Command node.exe).Source if (-not $node) { Write-Error "node.exe が PATH で見つかりません。" exit 1 } # 3. conhostコマンドラインを構築する $conhostCmd = "C:WindowsSystem32conhost.exe --headless `"$payloadPath`"" # 4. node.exe で起動する(これにより親子関係が作られる) $script = "require('child_process').exec(`"$conhostCmd`")" & $node -e $script # 5. オプション: 持続性のためにスケジュールされたタスクを作成する $taskName = "SystemUpdate" $action = New-ScheduledTaskAction -Execute $node -Argument "-e `"$script`"" $trigger = New-ScheduledTaskTrigger -AtLogOn Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -RunLevel Highest -Force -
クリーンアップコマンド
# スケジュールされたタスクを削除する Unregister-ScheduledTask -TaskName "SystemUpdate" -Confirm:$false # ペイロードを削除する Remove-Item -Path "$env:TEMPpayload.js" -Force # テストによって開始された余計なconhostプロセスを停止する Get-Process conhost -ErrorAction SilentlyContinue | Where-Object { $_.Path -eq 'C:WindowsSystem32conhost.exe' -and $_.CommandLine -match '--headless' } | Stop-Process -Force