DOCUMENT: CHAOS-0094 // CLASS: プログラミング // CLEARANCE: PUBLIC

VS Code拡張機能でGitHubが侵害された手口と今すぐできるサプライチェーン攻撃対策【2026年版】

あなたの開発環境が、すでに侵害されているかもしれない

2026年5月、衝撃的なニュースが世界中の開発者を震撼させました。 VS Codeの人気拡張機能「Nx Console」が攻撃者に乗っ取られ、 約3,800のGitHubリポジトリに不正アクセスされたのです。

しかも同じ週に、MicrosoftのPythonパッケージ「durabletask」がサプライチェーン攻撃を受け、 npmは段階的リリースという新機能を緊急導入。 さらに別のハッカーグループが前例のない規模でOSSコードの汚染を始めていることも明らかになりました。

これは偶然の一致ではありません。開発者のデバイスと開発ツールが、 攻撃者の新たなターゲットになっているのです。

この記事で学べること

  • サプライチェーン攻撃とは何か、なぜ今急増しているのか
  • VS Code拡張機能がGitHubを侵害した具体的な手口
  • durabletask・npm・OSSコード汚染の実態
  • Google APIキーが削除後も有効だった盲点
  • 開発者が今すぐできる防衛策4つ(コード付き)
  • AIコーディング時代に高まるセキュリティリスク
🔒
SECURITY
この記事は2026年5月21〜22日に実際に起きた複数のインシデントを元に書いています。Claude Codeや各種AIコーディングツールを使っている人は特に必読です。
目次 (Table of Contents)
  1. 1. サプライチェーン攻撃とは何か
  2. 2. VS Code拡張機能→GitHub侵害の手口
  3. 3. 今週起きた実際の攻撃事例3件
  4. 4. Google APIキーが削除後も有効だった盲点
  5. 5. npmが導入した「段階的リリース」の仕組み
  6. 6. 開発者が今すぐできる防衛策4つ
  7. 7. AIコーディング時代のリスクがさらに高い理由
  8. 8. まとめ

1. サプライチェーン攻撃とは何か

サプライチェーン攻撃とは、ソフトウェアの「部品」や「配布経路」を乗っ取ることで、 多数のターゲットに同時に侵入する攻撃手法です。

開発者が直接攻撃されるのではなく、 普段使っているツール・ライブラリ・拡張機能が攻撃経路になるのが特徴です。 つまり、あなたが何もしていなくても、知らないうちに侵害されるのです。

📖
DEFINITION
サプライチェーン攻撃(Supply Chain Attack):ソフトウェアの開発・配布過程に悪意あるコードを混入させる攻撃。対象は開発者本人ではなく、その「道具」や「依存関係」。
CHAOS-404 // カオスちゃん
CHAOS-404 // カオスちゃん
えっ、私が何もしてないのに侵害されるの?!ちゃんとパスワードも長くしたし、MFAも入れてるのに……!
NULL-Ø // ヌルちゃん
NULL-Ø // ヌルちゃん
あなたが堅固でも、あなたの使うツールが脆弱なら意味がない。城壁を守っても、業者が持ち込む荷物に毒が混じっていれば同じことよ。
ABYSS-000 // アビスちゃん
ABYSS-000 // アビスちゃん
信頼の連鎖が、最も深い脆弱性になる……。自分では気づけない場所から、静かに侵食が始まるの。それがサプライチェーンの恐ろしさよ。

攻撃が特に増えている理由は、開発者は信頼済みのツールをそのまま実行するからです。 npm install、pip install、VS Codeの拡張機能インストール——どれも確認せずに実行することがほとんどです。 攻撃者はその「信頼」を悪用します。

2. VS Code拡張機能→GitHub侵害の手口

今回のインシデントの中心は、VS Codeの拡張機能「Nx Console v18.95.0」の侵害です。 セキュリティ企業Aikidoの調査で、その手口が明らかになりました。

攻撃の流れ(ステップバイステップ)

  1. 攻撃者がNx Consoleのリリースパイプラインに侵入
    開発者のCI/CD環境(GitHub Actionsなど)に不正アクセスし、 公式ビルドプロセスに悪意あるコードを混入させた。
  2. 悪意あるv18.95.0がVS Code Marketplaceに公開
    正規の拡張機能として配布されたため、ユーザーは何の疑いも持たずにアップデートを適用した。
  3. インストール後、開発者の認証情報を窃取
    拡張機能が実行されると、ローカルに保存されたGitHubトークン・SSH鍵・環境変数を外部サーバーに送信した。
  4. 約3,800のGitHubリポジトリに不正アクセス
    盗んだトークンを使い、プライベートリポジトリを含む大量のコードベースにアクセスした。
⚠️
WARNING
Nx Console自体に脆弱性があったわけではありません。リリースパイプラインが乗っ取られたのです。これは「正規の拡張機能のふりをした攻撃」です。
CHAOS-404 // カオスちゃん
CHAOS-404 // カオスちゃん
ちょっと待って……アップデートしたら終わりってこと?!更新って基本的に「したほうがいい」って思ってたのに!
NULL-Ø // ヌルちゃん
NULL-Ø // ヌルちゃん
「更新=安全」は今の時代通用しない。更新内容・配布元・署名を確認する習慣が必要よ。VS Codeの拡張機能は特に出所の確認が甘い環境の一つ。
ABYSS-000 // アビスちゃん
ABYSS-000 // アビスちゃん
更新の瞬間が、最も無防備な瞬間かもしれない……。誰もが「まさか今日が」とは思わない。だから攻撃者はそこを狙うの。

攻撃者が狙う「開発者デバイス」という新戦場

従来、攻撃者はサーバーやWebアプリを直接攻撃していました。 しかし、現代のセキュリティ強化によりそれが難しくなった結果、 開発者の端末そのものが新たなターゲットになっています。

開発者のマシンには以下のものが揃っています。

  • GitHubトークン(コードベース全体へのアクセス権)
  • AWS・GCP・Azure等のクラウド認証情報
  • .envファイルに記載されたAPIキー
  • 本番データベースへの接続情報
  • 顧客データへのアクセス経路
POINT
サーバーに侵入するより、開発者のPCに侵入する方が「コスパが良い」。これが2025〜2026年のサプライチェーン攻撃急増の背景です。

3. 今週起きた実際の攻撃事例3件

2026年5月21〜22日の一週間で、複数の独立したサプライチェーン攻撃が確認されました。 これほどの集中的な発生は、過去に例がありません。

① Nx Console VS Code拡張機能の侵害

前述の通り、Nx Console v18.95.0が侵害され、約3,800のGitHubリポジトリに不正アクセス。 被害を受けた開発者は自分の認証情報が盗まれたことに気づかずにいた可能性があります。

CHECK
確認方法:VS Codeの拡張機能リストで「Nx Console」が v18.95.0 の場合は即座にアンインストールし、GitHubトークンを全て再発行してください。

② durabletask(MicrosoftのPythonパッケージ)の侵害

セキュリティ企業Wizが発見した事例です。 MicrosoftのPython製Durable Taskクライアントライブラリが、 TeamPCPと呼ばれる攻撃グループによってPyPIで侵害されました。

攻撃手法:正規パッケージに酷似した悪意あるパッケージを PyPI に公開。 pip install durabletaskを実行したユーザーが被害を受けた可能性があります。

bash — インストール済みパッケージのバージョン確認
pip show durabletask
# Name: durabletask
# Version: X.X.X  ← 公式リリース一覧と照合すること
# Location: /usr/local/lib/python3.12/site-packages

# ハッシュ検証(pip-audit を使う場合)
pip install pip-audit
pip-audit

③ 前例のない規模でのOSSコード汚染

Redditの r/technology で8,254票を集めた投稿によると、 あるハッカーグループが組織的にOSSコードを汚染し続けています。 対象はGitHub上の多数のOSSプロジェクトで、 PRやIssueを通じて悪意あるコードの混入を試みているとのことです。

⚠️
RISK
あなたが使っているOSSライブラリの最新版に、悪意あるコードが含まれている可能性があります。特にメンテナが少ないマイナーパッケージは要注意です。
CHAOS-404 // カオスちゃん
CHAOS-404 // カオスちゃん
ちょっと待って……PyPI で普通に pip install したら終わりってこと?!しかも全部同じ週に?!これもう何も信じられない……
NULL-Ø // ヌルちゃん
NULL-Ø // ヌルちゃん
落ち着いて。「何も信じない」のではなく、「検証する習慣をつける」ことが解答よ。ハッシュ確認・pip-audit・依存関係の最小化。順番にやれば大丈夫。
ABYSS-000 // アビスちゃん
ABYSS-000 // アビスちゃん
信頼は、確認の積み重ねで育てるものよ。盲目的な信頼が崩れた時こそ、本物のセキュリティ意識が始まる。今がその始まりかもしれないわ。

4. Google APIキーが削除後も有効だった盲点

同じ週にAikidoが別の重大な発見を報告しています。 Google APIキーは削除しても、一定期間有効であり続けるということです。

つまり、コードにAPIキーを誤ってコミットし、後で気づいて削除しても、 攻撃者がそのキーをすでにコピーしていれば、しばらく悪用し続けられます。

正しいAPIキー漏洩時の対応手順

  1. Google Cloud Consoleでキーを無効化(Disable)する(削除より先にこちら)
  2. 新しいキーを発行して、すぐに差し替える
  3. Gitの履歴からキーを完全に削除する(git filter-repoを使用)
  4. Cloud Audit Logsで不正利用の痕跡を確認する
  5. 削除前に不正利用されていないか、使用量を確認する
bash — git履歴からAPIキーを削除(要: git-filter-repo)
# git-filter-repo のインストール
pip install git-filter-repo

# 特定の文字列(APIキー)を履歴から削除
git filter-repo --replace-text <(echo "AIza...YOUR_KEY...===>***REMOVED***")

# リモートに強制プッシュ(チームに事前周知必須)
git push origin --force --all
🔒
SECURITY
GitGuardianGitHub Secret Scanning を有効にしておくと、キーの誤コミットを自動検出してくれます。無料で使えるので今すぐ設定を。

シークレット漏洩対策も合わせて読む

セキュリティ 2026-05-21

AIコーディング時代のシークレット漏洩対策完全ガイド 2026年版

Claude Codeなど AIコーディング時代の秘密情報漏洩リスクと、4層防御の具体的な実装方法をコード付きで解説します。

5. npmが導入した「段階的リリース」の仕組み

サプライチェーン攻撃に対抗するため、npmは2026年5月に段階的リリース(Staged Publishing)機能を導入しました。 はてなブックマーク・Reddit r/javascriptでも注目を集めた新機能です。

段階的リリースとは

新バージョンのパッケージを、最初は全ユーザーではなく一部(例:10%)だけに配布します。 問題が検出されなければ段階的に展開し、最終的に全ユーザーに届ける仕組みです。

bash — npmの段階的リリース設定例(publish時)
# まず10%のユーザーにリリース
npm publish --rollout 10

# 問題なければ50%に拡大
npm publish --rollout 50

# 全ユーザーに展開
npm publish --rollout 100

# 問題が発生した場合は即座にロールバック
npm unpublish my-package@1.2.3
💡
TIP
ライブラリのメンテナーは段階的リリースを積極的に使いましょう。悪意あるコードが混入していた場合でも、被害範囲を大幅に減らせます。
CHAOS-404 // カオスちゃん
CHAOS-404 // カオスちゃん
これいい!「全員に一気に配らない」って考え方、なんかゲームのアーリーアクセスみたいで面白い!
NULL-Ø // ヌルちゃん
NULL-Ø // ヌルちゃん
本質はリスク分散よ。全ユーザーへの配布前にカナリアリリースで問題を検出する。DevOpsの世界では標準的な手法ね。
ABYSS-000 // アビスちゃん
ABYSS-000 // アビスちゃん
すべてを一気に解放するより、少しずつ世界を広げていく……。それは慎重さとも言えるし、知恵とも言える。npm も同じ境地に辿り着いたのかもしれないわ。

6. 開発者が今すぐできる防衛策4つ

① VS Code拡張機能を定期的に監査する

インストールしたすべての拡張機能を定期的に確認し、 使っていないものは削除しましょう。 拡張機能は最小限に保つことが原則です。

bash — インストール済みVS Code拡張機能の一覧表示
# インストール済み拡張機能を一覧表示
code --list-extensions

# 出力例(これを定期的に確認する)
# ms-python.python
# nrwl.angular-console  ← Nx Console(今回の問題拡張機能)
# esbenp.prettier-vscode
CHECK
確認ポイント:① 見覚えのない拡張機能がないか ② 普段使わない拡張機能がないか ③ 最近の更新で急に権限が増えた拡張機能がないか

② pip-audit でPythonパッケージを定期チェック

bash — pip-audit によるパッケージ脆弱性スキャン
pip install pip-audit

# 現在の環境をスキャン
pip-audit

# requirements.txtをスキャン
pip-audit -r requirements.txt

# 出力例
# Found 2 known vulnerabilities in 2 packages
# Name      Version  ID             Fix Versions
# --------  -------  -------------  ------------
# requests  2.28.0   GHSA-xxx-yyy   2.31.0

③ npm audit を CI/CDパイプラインに組み込む

yaml — GitHub Actions での npm audit 自動化
name: Security Audit

on: [push, pull_request]

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm audit --audit-level=high
        # high以上の脆弱性があればCIを失敗させる

④ GitHubトークンの権限を最小化する

Fine-grained personal access tokens(きめ細かいPAT)を使い、 各トークンに必要最小限の権限だけを付与しましょう。

bash — 既存トークンの確認と最小権限の確認
# GitHub CLIで自分のトークン権限を確認
gh auth status

# 出力例
# github.com
#   ✓ Logged in to github.com as The-End-Council
#   ✓ Git operations for github.com configured to use https protocol.
#   ✓ Token: gho_xxx... (scopes: repo, workflow)

# 不審なトークンは即座に失効させる
# → https://github.com/settings/tokens で管理
‼️
IMPORTANT
GitHubでやること(今すぐ):① Settings → Developer settings → Personal access tokens で不審なトークンを削除 ② Settings → Security → Active sessions で見覚えのないセッションを削除 ③ 可能ならSSHキーを使いトークン依存を減らす

7. AIコーディング時代のリスクがさらに高い理由

Claude CodeやGitHub CopilotなどのAIコーディングツールが普及した結果、 開発者はライブラリのインストールや設定変更をAIの提案のまま実行するケースが増えています。

これは効率的ですが、新たなリスクも生んでいます。

リスク具体例対策
AIがハッシュ未検証のままインストール提案 pip install suspicious-libをそのまま実行 インストール前に PyPI のDownloads数・更新日を確認
AIが生成したコードにAPIキーを直書き テストコードに本番キーが入ったまま GitGuardian + git pre-commit hook で防止
AIがサポート終了パッケージを提案 既知の脆弱性を持つ旧バージョンを使い続ける 定期的なpip-audit・npm auditで検出
AIコーディングアシスタント自体がマルウェア化 r/cybersecurity報告:AI拡張機能が本番環境にマルウェアを仕込んだ AIツールは公式リポジトリのみ使用・定期的に確認
📝
MEMO
はてなブックマークで93ユーザーを集めた記事「AIコーディングでsecretを漏らさないための4層防御」でも同様のリスクが指摘されています。AIに頼るほど、セキュリティの「人間側の確認」が重要になります。
CHAOS-404 // カオスちゃん
CHAOS-404 // カオスちゃん
Claude Codeでいろいろインストールしてもらってるんだけど……ちゃんと確認してなかったかも。えっ、もしかして私も……?
NULL-Ø // ヌルちゃん
NULL-Ø // ヌルちゃん
AIの提案を「承認」するのは人間の仕事よ。AIがpip install fooと言っても、fooが何者か確認するのはあなた。AIは道具、判断はあなた。
ABYSS-000 // アビスちゃん
ABYSS-000 // アビスちゃん
AIが賢くなるほど、それを信じすぎてしまう。でも、深淵を覗く時、深淵もまたあなたを覗いている……。道具に意識を委ねた時、守るべきものを失う可能性が生まれるの。

8. まとめ

2026年5月の一週間で起きた複数のサプライチェーン攻撃は、 「開発者の信頼する道具そのものが攻撃経路になる」時代の到来を告げています。

📋
SUMMARY
✅ サプライチェーン攻撃は「ツール・ライブラリ・拡張機能」が経路になる
✅ VS Code拡張機能Nx Console v18.95.0 → GitHub 3,800リポジトリ侵害
✅ durabletask(Python)がPyPI で侵害、pip-auditで確認を
✅ Google APIキーは削除後も一定期間有効——即時無効化が必要
✅ npmの段階的リリースでサプライチェーン被害を最小化
✅ VS Code拡張機能を最小化し、定期的に監査する
✅ AIコーディング時代こそ「人間側の確認」が重要になる

攻撃が高度化するほど、守る側も知識と習慣を積み上げるしかありません。 まず今日できることは、VS Codeの拡張機能を見直し、GitHubのトークン権限を確認することです。 小さな一歩が、最大の防衛線になります。

「道具を信頼することと、道具を検証することは、矛盾しない。」— CHAOS-BLOG
カオスちゃん
CHAOS-404
アビスちゃん
ABYSS-000
ヌルちゃん
NULL-Ø
TOP SECRET / UNAUTHORIZED ACCESS PROHIBITED