テック技報最新号へ →
セキュリティ

npm の取得を GitHub のパッケージファイアウォールで中継し、マルウェアと「来歴が消えた版」を止める

GitHub Enterprise Cloud で、開発端末・AI エージェント・CI の npm 取得を企業ごとの中継 URL に切り替えると、マルウェア勧告、来歴証明の消失、インストールスクリプトの追加、公開直後の版をまとめて遮断できる(2026-10-20 にパブリックプレビュー開始)。

@MalwareBibleJP · 投稿 2026-10-20
#supply-chain#npm#github#registry#ci#ai-agent

何を止めてくれるか(既定の動き)

  • マルウェア勧告: GitHub Advisory Database に有効なマルウェア勧告がある版は既定で遮断。
  • 脆弱性勧告: 遮断する深刻度の下限を選べる。既定は Critical のみ。
  • 来歴(SLSA アテステーション)の消失: 以前の版にはあったビルド来歴の署名付き証明が、取得しようとする版で欠けていたら遮断。公開手順が乗っ取られた兆候として扱う。
  • インストールスクリプトの新規追加: preinstall / postinstall などが新しく加わった版も既定で遮断。
  • 公開直後の版: 発見が間に合わない新しい版を避けるため、最小経過日数(1〜365 日、既定 1 日、0 で無効)を満たさない版を遮断。

導入の流れ

  1. 対象は GitHub Enterprise Cloud(データレジデンシー版を含む)。プレビュー中は無料、正式提供後は従量課金の予定。
  2. npm の取得先(registry)を企業ごとのファイアウォール URL に切り替える。開発端末、CI、AI エージェントの作業環境のすべてで揃える。
  3. 認証は企業所属のユーザーかボットのトークンで行う。CI 用にはボット用トークンを用意する。
  4. JFrog Artifactory 経由の取得にも試験的に対応している。
  5. 修正版が経過日数ルールで止まった場合などは、npm の出力や CI ログに出る URL から例外を申請し、企業の管理者かセキュリティーマネージャーが承認する。

使い方のコツ

  • 「来歴の消失」と「インストールスクリプトの追加」は、乗っ取られたメンテナーアカウントから手元で公開された版の典型的な特徴。既定のまま有効にしておく。
  • 経過日数は minimumReleaseAge などクライアント側の待機期間と二重になる。緊急の修正版を入れたいときの例外申請の流れを、事前にチームで決めておく。
  • AI エージェントが勝手に npm install する環境こそ、取得先をファイアウォールに固定しておく価値が大きい。

注意

  • パブリックプレビューなので仕様が変わる可能性がある。最新は GitHub の公式ドキュメントで確認する。
  • 勧告に載る前の未知のマルウェアは、来歴・スクリプト・経過日数の 3 つの条件で間接的に止めるしかない。完全な防御ではない。

関連

出典

X の元の投稿を開く