Supply Chain Attack Unleashed via Compromised VS Code Extension
2025/07/09 gbhackers — 約6,000件のインストール実績を有する、正規の Visual Studio Code エクステンション ETHcode が侵害され、暗号資産開発者を標的とする高度なサプライチェーン攻撃が発生した。この攻撃は、悪意の GitHub プル・リクエストを介して引き起こされたものであり、信頼された開発ツールを最小限のコード変更により武器化する、脅威アクターの手口を示している。この攻撃により、blockchain エコシステムにおける、OSS ソフトウェアのセキュリティに対して、深刻な懸念が浮上している。

この侵害は、2024年6月17日の時点で開始されている。新たに作成された Airez299 という GitHub アカウントが、”viem 統合およびテスト・フレームワークによりコードベースを最新化する” という無害を装うメッセージを添えて、ETHcode リポジトリにプルリクエストを送信した。

このエクステンションは、2024年9月の最終更新から、6か月以上もメンテナンスされていないため、そのタイミング自体が戦略的であった。つまり、外部からは、正当なコントリビューションとして認識される可能性が高かった。
7finney 組織が開発した ETHcode は、Ethereum スマート・コントラクト開発者にとって重要な開発ツールであり、EVM ベースの blockchain におけるテスト/デバッグ/デプロイメントなどの機能を提供するものだ。

このエクステンションの正当なステータスとアクティブなユーザベースは、暗号資産開発コミュニティへの侵入を狙うサイバー犯罪者にとって、きわめて魅力的な標的となった。
この悪意のプル・リクエストには、約4,000行のコード変更を含む、43件のコミットが取り込まれており、レビュー負荷を高めることで、悪意ある要素を巧妙に隠蔽していた。7finney のレビュー担当者と、GitHub の Copilot AI レビュー担当者が、問題のコードを確認し、軽微な修正を要求したが、悪意のコードの存在を検出するには至らなかった。
このレビュー過程が浮き彫りにするのは、正当なコード・ポストの中に巧妙に仕込まれた、サプライチェーン攻撃の識別の難しさである。
サプライチェーン攻撃
この侵害の本質は、戦略的に配置された、わずか2行のコードにあった。最初の行は、”keythereum-utils” という新しい依存関係を導入するものだ。この命名は、既存の “keythereum” パッケージに対して、”-utils” というサフィックスを加えるだけのものである。
この命名戦略は、コードレビュー中に疑念を抱かせず、正当なヘルパー・ライブラリに見せかけるようにデザインされていた。
2行目の悪意のコードは、Node.js の require 関数を呼び出し、この新たに導入された依存関係をロードして実行するものだ。この簡潔な呼び出しにより、悪意のペイロードが起動されるが、ソフトウェア・サプライチェーン全体に対して、最小限の変更で壊滅的な影響を及ぼす可能性が示された。
研究者が “keythereum-utils” パッケージを解析したところ、高度に難読化された JavaScript コードの取り込みが判明した。このコードの難読化を解除した結果として判明したのは、パブリック・ファイル・ホスティング・サービスからバッチ・スクリプトをダウンロードして実行する、隠された PowerShell プロセスの生成である。
ReversingLabs が推奨するのは、新規依存関係に対する厳格なレビュー体制の導入と、Spectra Assure などのセキュリティ・ツールを活用した、ソフトウェア・パッケージにおける異常な挙動の検出である。

この攻撃で用いられた、第2段階のペイロードの詳細な機能については、現在も調査中とのことだ。研究者たちが指摘するのは、暗号資産の侵害、または、Ethereum スマート・コントラクトの開発環境の侵害に、このコードの目的がある可能性だ。
今回の攻撃が成功した要因のひとつとして挙げられるのは、Visual Studio Code エクステンションの自動更新機能である。この機能は、多くのユーザー環境において、デフォルトで有効化されている。
この自動更新メカニズムにより、ユーザーの認識や操作を介すことなく、数千の開発者システムに悪意のコードが配信され、攻撃の範囲と影響が飛躍的に拡大している。
研究者たちのレポートによると、Microsoft の Visual Studio Marketplace は、2024年6月26日の時点で、この侵害されたエクステンションを削除している。また、7finney の元開発者は、2024年7月1日の時点で、クリーンなバージョン 0.5.1 をリリースしている。
しかし、このインシデントが露呈したのは、オープンソース開発エコシステムに潜む深刻な脆弱性である。その結果として、サイバー犯罪者にとって価値の高い標的だとされる、暗号資産の開発者たちに深刻な影響を与えたことになる。
この攻撃が示すのは、現代のソフトウェア開発において不可欠だとされる、依存関係管理の厳格化/コントリビューターの身元検証/自動セキュリティ・スキャンの導入の重要性である。
ReversingLabs が強く推奨するのは、新しい依存関係に対する強化されたレビュー体制と、Spectra Assure のようなツールによる異常動作の検出体制を整備し、将来における攻撃を未然に防ぐことである。
このインシデントが示すのは、普段から使っている開発ツールが、思わぬ攻撃の入り口になり得ることです。コードの見た目が正当であっても、巧妙な名前や依存関係に注意が必要だと、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、VS Code で検索も、ご参照ください。
You must be logged in to post a comment.