GitHub、悪意あるVSCode拡張機能を通じた3,800件のリポジトリ侵害を確認
(bleepingcomputer.com)- GitHubの内部リポジトリ約3,800件が、従業員1名による悪意ある VS Code 拡張機能のインストール後に侵害され、現時点の評価では流出範囲は内部リポジトリに限定される
- GitHubはトロイの木馬化された拡張機能をVS Code Marketplaceから削除し、感染したエンドポイントを隔離して、直ちにインシデント対応に着手した
- TeamPCPはGitHubのソースコードと非公開コード約4,000件のリポジトリアクセスを主張し、窃取データに対して最低5万ドルを要求している
- VS Code拡張機能は公式ストアからインストールされるプラグインだが、過去にも認証情報の窃取、マイナー、ランサムウェア機能、暗号資産窃取を行う拡張機能が見つかっている
- GitHubは、影響を受けたリポジトリ以外の顧客データ侵害の証拠はないと述べており、このプラットフォームは1億8,000万人以上の開発者に利用されている
GitHubの侵害確認と対応
- GitHubは、従業員1名が悪意ある VS Code 拡張機能をインストールした後、内部リポジトリ約3,800件が侵害されたことを確認した
- 名称が公開されていないトロイの木馬化された拡張機能はVS Code Marketplaceから削除され、侵害されたデバイスには保護措置が講じられた
- GitHubはXの投稿で、「汚染された VS Code 拡張機能に関連する従業員デバイスへの侵害を検知し、遮断した」と述べ、悪意ある拡張機能バージョンの削除、エンドポイントの隔離、即時のインシデント対応開始を明らかにした
- 現在の評価では、活動範囲はGitHub内部リポジトリの流出に限定され、攻撃者が主張した約3,800件のリポジトリ規模は調査結果とおおむね一致している
- GitHubは前日、BleepingComputerに対し、内部リポジトリへの不正アクセスの主張に関する調査を進めていると述べ、影響を受けたリポジトリ以外に保存された顧客データが侵害された証拠はないと付け加えた
TeamPCPの主張とVS Code拡張機能のリスク
- ハッカーグループのTeamPCPは、Breachedサイバー犯罪フォーラムで、GitHubのソースコードと「非公開コード約4,000件のリポジトリ」へのアクセスを主張し、窃取データに最低5万ドルを要求している
- TeamPCPは「これはランサムではなく、GitHubを恐喝することに関心はない」と述べ、購入者1名に販売した後、保有データを削除すると明らかにした
- TeamPCPは、開発者向けコードプラットフォームを狙った大規模なサプライチェーン攻撃と結び付けられており、対象にはGitHub、PyPI、NPM、Dockerが含まれる
- TeamPCPは、最近OpenAIの従業員2名にも影響を与えた「Mini Shai-Hulud」サプライチェーンキャンペーンとも関連付けられている
- VS Code拡張機能は、Microsoftのコードエディタに機能を追加したり、ツールを統合したりするために、公式ストアであるVS Code Marketplaceからインストールするプラグインである
- VS Code Marketplaceではこれまでも、開発者の認証情報や機微データを盗む悪意ある拡張機能が繰り返し見つかっている
- 昨年には、インストール数900万件規模のVSCode拡張機能がセキュリティリスクを理由に削除され、正規の開発ツールを装った10件の拡張機能がXMRig暗号資産マイナーでユーザーを感染させた
- その後、基本的なランサムウェア機能を持つ悪意ある拡張機能がVS Code Marketplaceに掲載され、WhiteCobraという脅威アクターは暗号資産窃取拡張機能24件を登録した
- 今年1月には、AIベースのコーディング支援ツールとして宣伝され、インストール数150万件規模だった悪意ある拡張機能2件が、感染した開発者システムから中国のサーバーへデータを流出させた
- GitHubのクラウドプラットフォームは現在、400万以上の組織、Fortune 100の90%、1億8,000万人以上の開発者に利用され、4億2,000万件以上のコードリポジトリに貢献している
1件のコメント
Hacker Newsの意見
VSCodeを作った会社、NPMを持つ会社、GitHubを持つ会社が一堂に会して、この問題の解決策を見つけられたらいいのに
なぜ Microsoftの組織図 の漫画が的を射ているのかを完璧に示している
https://bonkersworld.net/organizational-charts
こうした明白なリスクについて 警告が不足していた わけでは決してない
https://github.com/microsoft/vscode/issues/52116
Microsoftは NuGet も持っている会社だ
1年前に何をしたかを見ると、NuGetで約700個のパッケージを予防的に削除したが、結局は誤検知だと判明した
正しいことをするのは簡単ではない
冗談抜きで、こういうエコシステムはそもそも 侵害されやすいゴミ箱 のように設計されているようなものだ
コントリビューションが厳格にレビューされない完全オープンなエコシステムなら、どれもこうした問題にさらされる
嫌ならエディタ拡張を使わず、きちんと監査されたエディタを使えばいい
拡張やnodeパッケージ、PyPIパッケージを詳しく確認せずに使うのは 技術的負債 を積み上げることだ
早く出荷するためにリスクを引き受けているのであり、後で制御された形で返済するか、利息を請求されたときに耐えなければならない
VS Code拡張は昔から怖く、あまりにも明白な 攻撃経路 だった
特定のファイル形式を認識したとして拡張のインストールを促すポップアップがVSCodeに頻繁に出るが、その拡張が会社所有なのか、どこかの開発者個人のものなのか半々だ
インストール数が数百万の拡張の中にも、初見では公式企業の拡張のように見えるものがある
今では公式企業所有の拡張だけを入れようとしているが、それですら偽物ではないと確信しづらく、やるせない
この問題は VS Code をはるかに超えている
すべての拡張と実行可能コードが同じ問題を抱えている
Disneyが、従業員がマルウェア入りのBeamNGモッドをインストールしてハッキングされた事例もあった
セキュリティを維持したい会社なら、ソフトウェアのインストールに厳しい制限を設けるべきだ
たとえば社内で事前承認されたリポジトリのnpmパッケージやプラグインだけをインストールさせる、といった形だ
VSCode中毒の人たちにしばしば嘲笑されながらも、ずっと Sublime を使い続けてきた
「VSCodeは完璧だ」と無批判に信じていた人たちが痛い目を見るのを見るのは楽しい
自分もVSCode拡張に対して同じように偏執的なくらい慎重になった
昔はBrackets、JetBrains、Sublime Text、BluefishのようなIDEで、開発に必要な信頼できる拡張をいくつか使えば十分だった記憶がある
今では何をするにも、誰かやどこかの会社がその作業専用の拡張を作っているように見える
今では 最小限の拡張 でできるだけ多くのことをやろうとしている
そして自分のコードの残りもGitHubから引き上げようとしている
デスクトップを数秒ごとにスクリーンショットし、OCRをかけ、その結果を暗号化されていない平文でディスクに保存しようと考えたベンダーなのだから、この程度の ソフトウェアセキュリティ水準 は予想できる
しかもその拡張は全部 自動更新 までしたがる
ハッカーがこれをやるのに十分長い 稼働時間 を見つけたことのほうが、もっと驚きだ
冗談が分からなかった人のために言うと、GitHubはMicrosoftに買収されて以来、自前で安定運用することにますます苦労してきた
最近はダウンタイムが増えてさらにひどくなり、ニュースにもなった
以前の関連スレッド:
GitHub is investigating unauthorized access to their internal repositories - https://news.ycombinator.com/item?id=48201316 - 2026年5月、コメント321件
昨日自分をやられた nx console拡張 が侵害されていたのか気になる
タイミングがほとんど同じに見える
https://github.com/nrwl/nx-console/security/advisories/GHSA-... 参照
この件をきっかけにMicrosoftがVS Code拡張に明示的な 権限システム を追加し、開発コンテナのセキュリティも改善してほしい
むしろ利用者、ここでは開発者やメンテナたちがMicrosoft依存を減らし、とくにセキュリティをMicrosoftに丸投げするのをやめるきっかけになってほしい
もう vscodeから離れるべき だ
あまり期待はしていない
この問題は2018年から開いたままだ: https://github.com/microsoft/vscode/issues/52116
VS CodeはElectron上に作られており、ElectronにはSUIDサンドボックスヘルパーがあった、あるいはあるので、サンドボックス化 が厄介だ
サンドボックス内でSUIDバイナリを簡単に実行できないからだ
Linuxでのサンドボックス化は極めて難しい作業だ
WebブラウザにSUID Rootを設定するのは、昔なら無知なユーザーをからかう冗談であり、想像しうる最悪のセキュリティミスだった
多少の性能オーバーヘッドはあるが、世界が終わるほどではない
自分が何かあまりに obvious なことを見落としているのかもしれないが、3,800個のリポジトリ というのは驚きではある
そんなに多いとは思わなかった
他の人が言っているように、それは一部にすぎない
自分は中規模の技術系企業にいるが、GitHub organizationひとつに7,500以上のリポジトリがある
organizationが2つあるので、合わせれば簡単に1万を超える
もちろん大半は古いもの、廃棄済みのもの、サンドボックス用、個人ツールのようなものだ
GitHubなら内部リポジトリが10万以上、あるいはそれ以上あっても驚かない
昔、5つか6つのGitHub organizationにまたがって少なくとも 5,000個のリポジトリ があり、Perforceにもさらに多くのコードがある会社で働いていたことがある
古い実験もあっただろうが、その会社はいくつもの領域に手を出していて、いくつかの部門は1つの問題を解決するために別のサービスをまた作ることをいとわなかった
自分の部門の古いものは確実にアーカイブした
自分たちのリポジトリは8個で、3人で使うにはそれだけで十分だと感じていた
Uberはかつて、エンジニア2,000人に対して リポジトリ8,000個 を抱えていた - https://highscalability.com/lessons-learned-from-scaling-ube...
以前、食品小売で働いていたことがある
初日は、外から見れば単純なWebサイトのように見えるのだから、どれほど難しいんだろうと思っていた
ところが注文用Webサイトは 300以上のリポジトリ を組み合わせた成果物だった
今回の侵害でGitHubが失ったものよりは少なかった
規模が大きくなるほど、単純さを保つには本当に多くの努力が必要になる
GitHubで働いていて常に良いと思っていた点の1つは、会社の多くの部分が実際に GitHub上で運用されている ことだ
技術チームではないチームでさえ、従来のナレッジワーカー企業がSharePointを使うように、文書やSOP、デザインなどを整理するために自分たちのリポジトリを持っていることが多い
オープンソース化のやり方もいろいろある
自分のユーザーアカウントで露骨にスクリプトを実行するのではなく、スクレイピングと役に立たない機能を一緒にしたプラグインで匿名アップロードすればいい
たとえば、ある浮動小数点数が偶数かどうかを教えてくれる機能、みたいなものだ
もちろんそんな数はない
それを実行して、その後は被害者のふりをすればいい
「昨日、私たちは 汚染されたVS Code拡張 に関連する従業員デバイスの侵害を検知して阻止しました。悪意ある拡張のバージョンを削除し、エンドポイントを隔離し、即座にインシデント対応を開始しました」
拡張を削除したとは実に立派だ
自社の従業員が感染してから、ようやくそうするのか?
それに、なぜ拡張の名前を明かさないのだろう?