【GitHub漏洩から学ぶ】VS Codeの「毒入り拡張機能」と開発者端末の守り方
Podcast版は耳でインプットできます!
おはようございます。
マフィです。
本記事を読んでいただき、ありがとうございます。
あんまり大きな声では言えないんですが……実は最近、IT業界でかなりヒヤッとするニュースがありまして。。
なんと、あのセキュリティがガチガチだと思われていたGitHubが、「内部 of ソースコードが入っているリポジトリ約3,800個を不正アクセスされて、外に持ち出された」と公表したんです。
「え、あのGitHubがハッキングされたの!?」って驚きますよね。
でも調べていくと、GitHub of サーバー自体が直接突破されたわせではなく、ある身近なツールが原因だったんです。
その原因というのが、ぼくたちエンジニアが毎日お世話になっているエディタ、VS Code(Visual Studio Code)の拡張機能でした。
今回は、この「毒入り拡張機能」から始まったドミノ倒しのようなハッキング事件 の全貌と、ぼくたちエンジニアがここから何を学ぶべきか、分かりやすく解説していこうと思います。
1. 今回の事件はどうやって起きた?
まずは、何が起きたのかを時系列でサクッと整理してみますね。
すべての始まりは、GitHubの事件が公表される少し前 5月11日でした。
最初は「TanStack」というライブラリのセキュリティが破られ、これを利用していた「Nx Console」の開発者の認証情報(IDやパスワード)が漏洩しました。
攻撃者がその漏洩した情報を使って、Nx Console開発者のGitHubアカウントへ不正にアクセスし、乗っ取ります。
乗っ取ったアカウントを悪用して、ウイルスなどの悪意のあるコードを混入した毒入りバージョンのNx Console(バージョン18.95.0)を公式ストアに公開しました。
この毒入りバージョンが、VS Codeの自動更新などによって、運悪くGitHub社の従業員のパソコンにインストールされます。
インストールされた悪意のあるコードが、パソコン内の大切なアクセスキーやパスワードなどをすべて盗み出し、攻撃者のサーバーへ送信します。この盗まれた鍵を使って、攻撃者はGitHub内部のソースコードが入ったサーバーへ侵入しました。
今回 の攻撃は、本当に狙い澄まされた連鎖(サプライチェーン攻撃)でした。
Nx Consoleという超メジャーな拡張機能の公式ストアに、毒入りのバージョンがアップロードされていた時間は、わずか18分〜36分程度。
本当に一瞬の出来事だったんですが、運悪くそのタイミングで自動更新が走ってしまった開発者の中に、GitHub社も従業員がいた……というのがこの事件の真相です。
2. なぜVS Codeの拡張機能でPCが乗っ取られるの?
「VS Codeの見た目を変えたり、便利にしたりするだけの拡張機能で、なんでPC の中身まで盗まれちゃうの?」と疑問に思う方も多いと思います。
実は、VS Codeの仕組み上、拡張機能が動く場所(extension host)は、パソコン本体とほぼ同じ強い権限を持っています。
拡張機能の権限を「お家」で例えると…
お家の見た目をちょっとオシャレにするために呼んだ「リフォーム業者(拡張機能)」に、家のすべての部屋 の合鍵を渡し、留守中も自由に家 of 中を歩き回る許可を与えているようなものです。
もしその業者が悪意 のある偽者だったら、タンスの奥にある通帳や印鑑(PC内のパスワードや鍵)を簡単に盗み出せてしまいますよね。。
実際、今回 の毒入り拡張機能は、インストールされた瞬間にバックグラウンドでコッソリ動き出し、PC内に眠っている「あらゆる鍵」を書き集めました。
GitHubのアクセスキー
AWSやGoogle Cloud of 認証情報
パスワード管理ツール(1Password) of セッション情報
SSHの秘密鍵
これらがまとめて犯人 のサーバーへ送信されてしまったため、GitHub の内部コードだけでなく、クラウド のインフラまで一瞬で危険にさらされるという、極めて重大なインシデントになってしまったんです。
3. ぼくたちが明日からできるセキュリティ対策
この事件を「大企業の出来事だから」と人ごとで終わらせないために、ぼくが今日からできる対策をエンジニア向けと非エンジニア向けに分けてご紹介します。
エンジニア・開発チーム向けの対策
鍵(認証情報)の命を短くする(OIDCの活用)
どんなに強固な金庫に秘密を保管していても、開発端末自体が乗っ取られたら、その端末から金庫を開ける鍵ごと盗まれてしまいます。
そのため、長期間使えるアクセスキーは廃止して、必要なときだけ数分〜数時間だけ有効な「使い捨ての鍵(短命なトークン)」を使う仕組みに移行することが急務です。
拡張機能を入れっぱなし、自動更新しっぱなしにしない
VS Codeには、社内で使える拡張機能を制限するポリシー機能(extensions.allowed)があります。
信頼できる拡張機能だけを使うルール作りが必要です。
非エンジニア・ビジネスサイド向けの対策
怪しいと思ったら勝手にパソコンを再起動・データ消去しない
もし社内でセキュリティ of 警告が出たり、怪しい挙動に気づいたりした時は、慌ててPCを再起動したり初期化したりしないでください。
調査に必要な、犯人 の足跡(ログ)が消えてしまうからです。
まずは落ち着いて、画面 のスクリーンショットを撮るなどして、社内 of 情報システム部門やセキュリティチームの指示に従いましょう。
4. 最後に:インフラエンジニアを目指すぼくの決意
ぼくは普段、社内SEとして働きながら、インフラエンジニアを目指してAWSの勉強などを地道に頑張っているんですが、こういうニュースを見るたびに、技術の裏側にある「インフラとセキュリティ」 の重要性を痛感させられます。
正直、新しい技術がどんどん出てきて、覚えることが多すぎて頭がパンクしそうになることもありますし、「本当に追いつけるのかな…」と不安になることもあります。。
でも、だからこそインフラやセキュリティをしっかり学ぶことって、これから『食いっぱぐれないエンジニア』として生き残るために絶対に必要不可欠なんだと改めて思いました。
一歩ずつではありますが、失敗を次に活かして、これからも成長を楽しみにしていただけるよう頑張っていきます。
…あ、ちなみにぼくのAWS SAA試験は3度目の正直に向けて絶賛インプット中なんですが、ぼくの脳 のメモリ不足でまた知恵熱が出ないことを祈るばかりです(笑)
メルマガ配信のお知らせ
このような最新のITニュースや、ぼくの日々の学習コラムなどを、サブスタック(Substack)をつうじて毎週月曜日・水曜日・金曜日に配信させていただいております!
ぜひ、こちら of メルマガにご登録いただけますと幸いです。登録をお待ちしております!
それでは、また次の記事でお会いしましょう。
マフィでした!










