Wizの報告書によると、開発者がアクセストークンやその他の秘密情報を含む拡張機能をアップロードしていることも判明。
Visual Studioの拡張機能を2つのオープンマーケットプレイスに公開している不注意な開発者が、脅威アクターに悪用されうるアクセストークンやその他の秘密情報を含めていることが、あるセキュリティベンダーによって判明しました。
この発見は今年初め、Wizの研究者によって行われ、彼らはMicrosoftおよびVSCode Marketplace、さらにOpenVSXマーケットプレイスの運営者と密かに協力し、プラットフォームのガードレールを強化しました。今週、調査報告書が公開されました。
Wizは、550件以上の有効な秘密情報が、数百のVS拡張機能パブリッシャーによる500以上の拡張機能に分散して含まれていることを発見しました。それらには、OpenAI、Gemini、Anthropic、xAI、DeepSeek、HuggingFace、PerplexityなどのAIプロバイダーの秘密情報、AWS、Github、Stripe、Auth0、Google Cloud Platformなどの高リスクな業務プラットフォームの秘密情報、MongoDB、Postgres、Supabaseなどのデータベースの秘密情報が含まれていました。
VSCode Marketplaceの拡張機能内で、100件を超える有効なAzure DevOpsパーソナルアクセストークンの漏洩が確認されました。これらは合計で85,000件以上の拡張機能インストール数に相当します。
30件以上のOVSXアクセストークンの漏洩も確認され、VSCode MarketplaceまたはOVSX拡張機能内で発見されました。これらは合計で100,000件以上の拡張機能インストール数に相当します。
秘密情報漏洩の最大の要因は、開発者による隠しファイル(ドットファイルとも呼ばれる)のバンドルであると報告書は述べています。特に.envファイルの数が顕著であり、拡張機能のソースコード内にハードコーディングされた認証情報も多く見られました。
Wizの調査期間中、AI関連の設定ファイル(config.json、mcp.json、.cursorrulesなど)を通じた秘密情報の漏洩が増加していることが確認されました。他にも、ビルド設定(例:package.json)やREADME.mdなどのドキュメントも一般的な漏洩源でした。
MicrosoftとWizは、影響を受けたパブリッシャーに通知し、これらの脆弱性への対応を支援するキャンペーンを開始しました。Microsoftはまた、拡張機能公開前に秘密情報のスキャン機能をマーケットプレイスに統合し、確認された秘密情報を含む拡張機能をブロックし、検出時には拡張機能の所有者に通知するようになりました。詳細は6月の発表に記載されています。
OpenVSXも、トークンにプレフィックス(ovsxp_)を追加しています。
「パブリッシャーは、パッケージ内のすべてが公開されることを考慮しなかったり、ハードコーディングされた秘密情報を拡張機能から適切に除去できていなかったりすることが多いことがわかりました」とWizは報告書で述べています。
さらに悪いことに、一部の脅威アクターは、これらのマーケットプレイスを利用して拡張機能のサプライチェーンを汚染する機会があることに気づき、近年NPMやGitHubなどのオープンコードリポジトリに悪意のあるコードを仕込むことに成功してきたのと同様の手法を試みています。Wizの調査は、2月に脅威アクターがVSCode Marketplaceにマルウェアを仕込もうとした、典型的なサプライチェーン攻撃の発見をきっかけに始まりました。この攻撃は広範囲に拡散する可能性がありました。
Wizの報告書によれば、プラットフォームのセキュリティのこの弱点を発見した攻撃者は、累計15万件のインストールベースに直接マルウェアを配布できた可能性がありました。
この発見は、MicrosoftとOpenVSXによる修正作業の後、Wizによって初めて明らかにされましたが、これは開発者がコードをオープンマーケットプレイスに投入する前により慎重にサニタイズする必要がある理由、そしてCSOが自社開発者が利用する拡張機能を厳重に精査すべき理由の一例です。
開発者は主要な標的
開発者は攻撃の主要な標的であると、SANS Instituteの研究部長Johannes Ullrich氏はコメントしています。「彼らが気づいていないことが多いのは、見た目が無害な拡張機能、例えばコードの色を変えるだけの拡張機能であっても、自分のコードに完全にアクセスでき、開発者に明示的に通知することなく変更を加える可能性があるという点です。拡張機能マーケットプレイスは、サードパーティコードのリポジトリにすぎません。他のコードリポジトリ(pip、npm、NuGetなど)と同様に、監視やレビューが不十分です。拡張機能をインストールすると、開発者はそのコードを実行し、拡張機能に自分のコードベースへの広範かつ永続的なアクセスを与えることになります。」
サイバー犯罪者や国家は、セキュリティチェーンの新たな弱点、すなわちソフトウェアサプライヤーのエコシステムを発見したと、カナダ拠点のセキュリティ意識向上企業Beauceron Securityの責任者David Shipley氏は述べています。「このような事例は非常に多く、明らかにシステム的な問題です」と彼は語りました。
「そして、これは『AI』だけで解決できる問題ではなく、今後もイタチごっこが続くでしょう。これは、法的責任の枠組みの変化、セキュリティ・バイ・デザインの文化的定着、開発者へのセキュリティ原則教育の継続など、複雑な問題です。今年はShai-Huludワームのような攻撃がWannaCry規模で被害を出さなかったのは非常に幸運でしたが、その幸運は長くは続かないでしょう」とShipley氏は述べています。
VS拡張機能とは
拡張機能やテーマは、Visual Studio Codeに追加して開発者の作業を容易にしたり、機能を拡張したりできます。拡張機能はデバッガーや新しい言語、その他の開発ツールなどの機能を追加でき、テーマはエディタの外観(色やフォントなど)を変更する拡張機能の一種です。
Microsoftは、VSCode Marketplaceを、開発者が拡張機能やテーマを簡単に探せる場所として作りました。しかし、開発者が完成したコードをVSCodeやOpenVSXマーケットプレイスにアップロードする前にサニタイズしない場合、誰でも拡張機能を自動更新できるアクセストークンが漏洩するリスクがあります。もしこれらのトークンが脅威アクターに管理されていた場合、すべての拡張機能インスタンスを自動的に悪意のあるバージョンに更新される可能性があります。
Wizの報告書は、セキュリティ専門家や開発者は、質の悪い、あるいは侵害されたVS拡張機能だけでなく、テーマも問題になりうることを認識すべきだと指摘しています。実際、Wizの報告書によれば、この膨大な脆弱なインストールベースの多くはテーマで構成されています。
一般的に、テーマはコードを含まないため他の拡張機能より安全と見なされていますが、マルウェアがバンドルされるのを防ぐ技術的制御がないため、攻撃対象領域は依然として拡大します。
類似の報告
この問題による影響を受けた組織はなかったと、Wizの主任セキュリティリサーチャーRami McCarthy氏はCSOに語りました。
しかし、別の発見として、今週CSOは報じましたが、Koi Securityの研究者が、VSCおよびOpen VSXマーケットプレイスから、TigerJackという脅威グループによって配置された11個の悪意のある拡張機能が17,000回以上ダウンロードされていたことを発見しました。このキャンペーンで人気のあった「C++ Payground」と「HTTP Format」の2つの拡張機能は削除されましたが、新しいアカウントを使ったマルウェア入りコードの再アップロードによって作戦は継続しています。
Koi Securityによれば、これらの悪意のある拡張機能の1つは、開発者のソースコードを外部エンドポイントに密かにアップロードし、別のものはローカルリソースを使って暗号通貨のマイニングを行い、最も高度なバリアントは、機能拡張や変更のための新たなアップデートを必要とせずにリモートでJavaScriptを実行できます。
McCarthy氏は、Wiz Researchが特定した問題はさらに深刻であり、100以上の正規拡張機能を攻撃者が武器化し、18万5,000台以上の開発者マシンに自動的にマルウェアをインストールできた可能性があったためだと述べています。Wizはまた、一部の攻撃者が「ダウンロードポンピング」によってダウンロード数を水増しし、報告されているインストール数が信頼できない場合がある証拠も発見しました。
McCarthy氏によれば、拡張機能マーケットプレイスにはまだ一貫した脅威モデルが存在せず、どのプラットフォームもこれらのリスクを予測するのは困難です。しかし、MicrosoftのマーケットプレイスはOpen VSXよりも深いセキュリティ投資がなされており、今回の研究はその重要性を強調しています。
彼はまた、この報告書が、開発者がコードをオープンマーケットプレイスに投入する前により慎重にサニタイズする必要がある理由の一例であると同意しています。しかし同時に、プラットフォーム側が個々の開発者のミスによるリスクを最小限に抑えるためのガードレールを構築できることの例でもあると述べています。
「開発者のセキュリティは、パブリッシャーと彼らの作品をホストするエコシステムの共同責任です」と彼は述べました。
CSOおよび開発者へのアドバイス
WizはVSCodeユーザーに以下を推奨しています:
- 作業でインストールする拡張機能の数を制限すること。各拡張機能は脅威の攻撃面を拡大するため、その利用価値とリスクを比較検討する必要があります;
- 拡張機能の信頼基準を見直すこと。インストール数、レビュー、拡張機能の履歴、パブリッシャーの評判などのメタデータを採用前に考慮すること;
- 自動更新のトレードオフを考慮すること。拡張機能の自動更新はセキュリティアップデートの受信を保証しますが、侵害された拡張機能がマルウェアをマシンに送り込むリスクもあります。
企業のセキュリティチームは:
- 悪意のある拡張機能の報告に対応できるよう、IDE拡張機能のインベントリを作成すること;
- VSCode拡張機能の中央許可リストの作成を検討すること;
- 現在より厳格な審査と管理が行われているVSCode Marketplaceから拡張機能を調達することを、OpenVSX Marketplaceよりも優先的に検討すること。
リーダーは、デバイス管理やエンドポイントセキュリティツールを使って拡張機能のインベントリ作成や許可リストの強制を行うべきだとWizのMcCarthy氏は述べています。拡張機能の中央承認はリスク低減に役立ちますが、同時に開発者がイノベーションを促進するツールを利用できる柔軟性も維持することが重要です。拡張機能は実際に価値をもたらしますが、管理されていない場合、そのロングテールが大きな攻撃面を生み出す可能性があります。
SANS InstituteのUllrich氏は、アプリケーションが侵害されていないことを検証する良い方法は存在しないと警告しています。標準的なエンドポイントおよびネットワークセキュリティソリューションは開発者の保護に役立ちますが、効果的に機能させるには調整が必要であり、悪意のある拡張機能の特定は困難です。特に、開発者のワークステーションは特有の無害な利用パターンが多く、ソリューションが慎重に調整されていない場合、過剰な誤検知が発生します。したがって、開発者はインストールする拡張機能の数を最小限に抑えるべきです。