暗号排出装置を用いた収束型脅威:新たなハイブリッド攻撃エコシステムへの洞察
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プロセスを終了し、影響を受けたウォレットによって許可されたすべてのトークン承認を取り消してください。調査者は、追加のペイロードや持続性メカニズムを特定するための法医学的分析を行い、検出されたコマンドアンドコントロールインフラとのさらなる通信を防ぐために許可リストやブロックリストを更新する必要があります。
graph TB %% Class Definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef operator fill:#ff9900 %% Nodes u2013 Techniques initial_access[“<b>技術</b> – <b>T1204.001 ユーザー実行: 悪意のあるリンク</b><br/><b>説明</b>: 被害者は悪意のあるコンテンツを実行するように作られたリンクをクリックする。”] class initial_access technique delivery_html_smuggling[“<b>技術</b> – <b>T1027.006 難読化されたファイルまたは情報: HTMLスミグリング</b><br/><b>説明</b>: 悪意のあるJavaScriptがHTML内に隠された形でWebページ経由で配信される。”] class delivery_html_smuggling technique delivery_compile_after[“<b>技術</b> – <b>T1027.004 難読化されたファイルまたは情報: 配信後コンパイル</b><br/><b>説明</b>: ペイロードは初期配信後にホスト上で構築される。”] class delivery_compile_after technique delivery_embedded_payloads[“<b>技術</b> – <b>T1027.009 難読化されたファイルまたは情報: 埋め込みペイロード</b><br/><b>説明</b>: ペイロードはJavaScriptなど別ファイル内に隠される。”] class delivery_embedded_payloads technique delivery_deobfuscate[“<b>技術</b> – <b>T1140 ファイルまたは情報のデオブファスケート/デコード</b><br/><b>説明</b>: Base64データは実行前にブラウザでデコードされる。”] class delivery_deobfuscate technique persistence_run_key[“<b>技術</b> – <b>T1127.002 信頼された開発者ユーティリティのプロキシ実行: ClickOnce</b><br/><b>説明</b>: インストーラはRunキーを作成し悪意のあるnode.exeを起動する。”] class persistence_run_key technique persistence_appcert[“<b>技術</b> – <b>T1546.009 イベントトリガー実行: AppCert DLL</b><br/><b>説明</b>: 信頼された証明書で署名されたDLLが永続化のためにロードされる。”] class persistence_appcert technique recon_hardware[“<b>技術</b> – <b>T1592.001 被害ホスト情報収集: ハードウェア</b><br/><b>説明</b>: マルウェアは侵害されたシステムのハードウェア情報を取得する。”] class recon_hardware technique recon_firmware[“<b>技術</b> – <b>T1592.003 被害ホスト情報収集: ファームウェア</b><br/><b>説明</b>: マルウェアはBIOSやファームウェアの情報を収集する。”] class recon_firmware technique c2_web_protocols[“<b>技術</b> – <b>T1071.001 アプリケーション層プロトコル: Webプロトコル</b><br/><b>説明</b>: HTTP/HTTPSなどの標準Web通信をC2に使用する。”] class c2_web_protocols technique c2_bidirectional[“<b>技術</b> – <b>T1102.002 Webサービス: 双方向通信</b><br/><b>説明</b>: インプラントとサーバー間の双方向メッセージングを可能にする。”] class c2_bidirectional technique c2_oneway[“<b>技術</b> – <b>T1102.003 Webサービス: 単方向通信</b><br/><b>説明</b>: サーバー応答を期待せずデータ送信のみを行う。”] class c2_oneway technique c2_encrypted[“<b>技術</b> – <b>T1573 暗号化チャネル</b><br/><b>説明</b>: C2通信は検知回避のため暗号化される。”] class c2_encrypted technique c2_data_encoding[“<b>技術</b> – <b>T1132 データエンコーディング</b><br/><b>説明</b>: データは送信前にBase64などでエンコードされる。”] class c2_data_encoding technique c2_config_repo[“<b>技術</b> – <b>T1602 設定リポジトリからのデータ取得</b><br/><b>説明</b>: 設定データはチェーン上のリポジトリから取得される。”] class c2_config_repo technique asset_drain[“<b>技術</b> – <b>T1204.002 ユーザー実行: トークン承認</b><br/><b>説明</b>: 被害者はWeb3Modalによりトークン権限を承認し資産移動が可能になる。”] class asset_drain technique %% Nodes u2013 Tools / Processes tool_malicious_link[“<b>ツール</b> – <b>名前</b>: 悪意のあるフィッシングリンク<br/><b>説明</b>: 偽の取引ポータルを読み込むよう設計されたURL。”] class tool_malicious_link tool tool_js_payload[“<b>ツール</b> – <b>名前</b>: 難読化されたJavaScriptペイロード<br/><b>説明</b>: ブラウザで実行されるBase64エンコードコード。”] class tool_js_payload tool process_installer[“<b>プロセス</b> – <b>名前</b>: Windowsインストーラ<br/><b>説明</b>: Runキーとnode.exeを配置する。”] class process_installer process tool_node_exe[“<b>ツール</b> – <b>名前</b>: node.exe<br/><b>説明</b>: 永続化後に悪意のあるJavaScriptを実行する。”] class tool_node_exe tool tool_web3modal[“<b>ツール</b> – <b>名前</b>: Web3Modal UI<br/><b>説明</b>: トークン転送承認を要求するために注入されたUI。”] class tool_web3modal tool %% Operators (optional) op_and((“AND”)) class op_and operator %% Connections u2013 Attack Flow initial_access –>|leads_to| delivery_html_smuggling delivery_html_smuggling –>|uses| tool_malicious_link delivery_html_smuggling –>|uses| tool_js_payload delivery_html_smuggling –>|enables| delivery_compile_after delivery_compile_after –>|enables| delivery_embedded_payloads delivery_embedded_payloads –>|triggers| delivery_deobfuscate delivery_deobfuscate –>|creates| process_installer process_installer –>|drops| persistence_run_key process_installer –>|may_use| persistence_appcert persistence_run_key –>|executes| tool_node_exe persistence_app_cert –>|loads| tool_node_exe tool_node_exe –>|collects| recon_hardware tool_node_exe –>|collects| recon_firmware recon_hardware –>|feeds| c2_web_protocols recon_firmware –>|feeds| c2_web_protocols c2_web_protocols –>|supports| c2_bidirectional c2_web_protocols –>|supports| c2_oneway c2_bidirectional –>|uses| c2_encrypted c2_oneway –>|uses| c2_encrypted c2_encrypted –>|encodes| c2_data_encoding c2_data_encoding –>|stores_config_in| c2_config_repo c2_config_repo –>|provides| asset_drain asset_drain –>|uses| tool_web3modal
攻撃フロー
検出
可能性のある持続性ポイント [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