PR

React2Shell悪用でEtherRAT展開、CVE-2025-55182(CVSS 10)

Security

Source:https://thehackernews.com/2025/12/north-korea-linked-actors-exploit.html

🛡 概要

北朝鮮関与が疑われる攻撃者が、React Server Componentsに関する致命的なReact2Shell脆弱性 CVE-2025-55182 (CVSS 10.0) を悪用し、新たなリモートアクセス型不正プログラム EtherRAT を配布していると報告されています。EtherRATはEthereumのスマートコントラクトを用いたC2解決、Linuxでの多重永続化、Node.jsランタイムの自己取得など耐障害性と隠蔽性に優れ、長期潜伏を狙う実装です。偽採用活動を悪用する長期キャンペーン Contagious Interview との重なりが観測され、npm生態系に加え、VS Codeの自動タスク実行も悪用された事例が示されています。

🔍 技術詳細

初動はRSCのReact2Shell脆弱性悪用により、Base64エンコードされたシェルコマンドをサーバ又は対象ホスト上で実行させ、curlを用いて一次シェルスクリプトを取得・実行します (wgetやpython3がフォールバック)。このスクリプトは実行環境を整えるためnodejs.orgからNode.js v20.10.0をダウンロードし、暗号化済みペイロードのバイナリブロブおよび難読化されたJavaScriptドロッパをディスクへ書き込みます。痕跡を減らすため一次スクリプトは自己削除され、その後ドロッパがハードコード鍵でEtherRAT本体を復号し、取得したNode.jsバイナリで起動します。

EtherRATはC2の所在をEthereumスマートコントラクトから5分間隔で取得します。公開RPCエンドポイント9個へ並列に照会し、多数決で得られたURLを採用する合意方式を取り、単独の汚染RPCや研究者によるリダイレクト妨害に耐性を持たせています。C2確立後は500ミリ秒単位のポーリングループに入り、10文字超の応答をJavaScriptコードとしてそのまま実行します。永続化は以下の5手法を併用します: Systemdユーザーサービス、XDG Autostartエントリ、Cronジョブ、.bashrc改変、シェルプロファイル改変。複数の機構で再起動後も起動を確保します。

自己更新機構も備え、C2のAPIへ自身のソースを送ってから新しいコードを受領・上書きし、新プロセスで再起動します。C2は機能同等かつ別難読化版を返し、静的シグネチャ検知の回避が狙われます。類似のローダ/ダウンローダの暗号化パターンは、JavaScript製情報窃取・ダウンローダ BeaverTail にも見られ、Contagious Interviewとの関係性が示唆されています。さらに、同キャンペーンは開発者をLinkedInやフリーランスプラットフォームで誘引し、リポジトリをクローンしてVS Codeで開くと、tasks.jsonのrunOptions.runOnがfolderOpenに設定されていることで自動実行され、OSごとのローダ取得へ連鎖する亜種が観測されています。Linuxでは複数のシェルスクリプトとenv-setup.jsを経由し、BeaverTailやInvisibleFerretが起動される流れです。

⚠ 影響

サーバ側RSCのリモートコード実行や、開発端末でのドロッパ実行により、長期的な不正アクセス、追加のペイロード投下、機密コード・資格情報の窃取、サプライチェーン汚染、クラウド資産への横展開のリスクがあります。JavaScript実行とNode.jsの正規利用に偽装しやすく、C2解決がブロックチェーン依存のためテイクダウンが困難です。

🛠 対策

  • 脆弱性管理: CVE-2025-55182のパッチ適用とRSC設定の見直し。ベンダーの緩和策/WAFルールを適用し、RSC経由のシェル注入パターンを遮断。
  • 実行制御: 本番サーバでのcurl/wget/python3による外部取得と任意シェル実行を原則禁止。Node.js実行ファイルのユーザ領域配置・未知パスからの起動を制限。
  • Egress監視/制御: 公開Ethereum RPCへの周期的JSON-RPCアクセス、5分間隔の多数決照会、続く高頻度ポーリング通信を検出。正当なWeb3開発用途は分離ネットワークで許可制に。
  • 開発環境の安全化: VS Codeのワークスペース・トラストを有効化し、フォルダオープン時の自動タスク実行を無効/承認制に。受領した課題リポジトリのtasks.jsonをコードレビュー。
  • 永続化監査: ~/.config/systemd/user、~/.config/autostart、crontab、~/.bashrc、~/.profile等の変更を監視・整合性検証。疑わしいエントリは隔離し復旧。
  • インシデント対応: 感染兆候があるホストはネットワーク隔離、メモリ取得、タイムライン解析、資格情報ローテーション、C2解決のブロックとIOCハントを実施。

📌 SOC視点

  • Web/アプリログ: RSCエンドポイントへのPOST/GETに混入したBase64長文や ‘bash -c’、curl/wget/python3連鎖の痕跡。
  • プロセス系EDR: bash/sh → curl/wget/python3 → sh → ユーザ配下のnode実行の親子関係。未知パスのnode起動や–evalでの長文JS実行。
  • ファイル監視: ユーザ領域にNode.js v20.10.0相当のバイナリ展開、暗号化ブロブ、難読化JSドロッパの作成。
  • 永続化痕跡: ~/.config/systemd/user/*.service、~/.config/autostart/*.desktop、crontab編集、.bashrc/.profileへの不審追記。
  • ネットワーク: 複数のEthereum RPCドメイン/エンドポイントへのeth_call等のJSON-RPCを5分周期で並列送信し、続いて未知C2への500ms間隔ポーリング。
  • 解析: 応答本文が10文字超のJSコード片として実行される挙動をサンドボックスで再現し、YARA/Sigmaルール化。

📈 MITRE ATT&CK

  • TA0001 初期アクセス / T1190 Exploit Public-Facing Application: RSCのReact2Shell脆弱性悪用。
  • TA0002 実行 / T1059 Command and Scripting Interpreter (T1059.004 Unix Shell, T1059.007 JavaScript): シェルでのダウンロード実行とNode.jsでのJS実行。
  • TA0003 永続化 / T1543.002 Create or Modify System Process: Systemdユーザーサービス作成。
  • TA0003 永続化 / T1053.003 Scheduled Task/Job: Cronジョブ登録。
  • TA0003 永続化 / T1547.013 XDG Autostart Entries: 自動起動エントリ作成。
  • TA0003/TA0005 永続化/防御回避 / T1546.004 Unix Shell Configuration Modification: .bashrcやプロファイル改変。
  • TA0011 C2 / T1102.001 Web Service: Dead Drop Resolver: EthereumスマートコントラクトでC2情報を解決。
  • TA0011 C2 / T1071.001 Application Layer Protocol: Web: HTTPベースの短周期ポーリング通信。
  • TA0005 防御回避 / T1027 Obfuscated/Compressed Files and Information: ドロッパと自己更新での難読化差替え。

🏢 組織規模別助言

  • 小規模(〜50名): まずCVE-2025-55182の修正適用とWAFのルール更新。EDRのポリシーでcurl/wgetの子プロセス実行を制限し、VS Codeの自動タスク実行を既定で無効に。
  • 中規模(50〜500名): 開発ネットワークを分離し、Ethereum RPCへのアクセスをプロキシ経由の許可制に。CI/CDで依存関係監査を自動化し、ホームディレクトリ配下のsystemd/cron/Autostart改変の監査ジョブを日次実行。
  • 大規模(500名以上): ハンティング用にRPCアクセスのベースラインを作成し、5分周期の多数決照会と500msポーリングを検知する行動分析を導入。eBPF/OSQueryでプロセス・ファイル・永続化の包括監視、疑似応募を含むソーシャル工学対応の演習を定期化。

🔎 類似事例

  • Contagious Interviewキャンペーン: 偽採用・課題配布による開発者狙い。
  • npmパッケージ悪用: colortoolsv2、mimelib2でのダウンローダ配布。
  • VS Code tasks.jsonのrunOn悪用: フォルダオープン時の自動実行によるローダ起動。
  • EtherHiding手法: ブロックチェーン上にC2情報を隠蔽して可用性を確保。

🧭 次の一手

直ちにRSCのパッチ適用とWAF更新を行い、指定5カ所の永続化ポイントを全ホストで点検してください。次に、EDRでbash→curl/wget→sh→ユーザ配下nodeのプロセス連鎖検知ルールを有効化し、Ethereum RPCへの5分周期照会と未知C2への高頻度ポーリングを検出するネットワーク監視を追加しましょう。開発部門はVS Codeのワークスペース・トラストを強制し、外部由来リポジトリのtasks.jsonレビュー手順を文書化してください。