npm の取得を GitHub のパッケージファイアウォールで中継し、マルウェアと「来歴が消えた版」を止める
GitHub Enterprise Cloud で、開発端末・AI エージェント・CI の npm 取得を企業ごとの中継 URL に切り替えると、マルウェア勧告、来歴証明の消失、インストールスクリプトの追加、公開直後の版をまとめて遮断できる(2026-10-20 にパブリックプレビュー開始)。
何を止めてくれるか(既定の動き)
- マルウェア勧告: GitHub Advisory Database に有効なマルウェア勧告がある版は既定で遮断。
- 脆弱性勧告: 遮断する深刻度の下限を選べる。既定は Critical のみ。
- 来歴(SLSA アテステーション)の消失: 以前の版にはあったビルド来歴の署名付き証明が、取得しようとする版で欠けていたら遮断。公開手順が乗っ取られた兆候として扱う。
- インストールスクリプトの新規追加:
preinstall/postinstallなどが新しく加わった版も既定で遮断。 - 公開直後の版: 発見が間に合わない新しい版を避けるため、最小経過日数(1〜365 日、既定 1 日、0 で無効)を満たさない版を遮断。
導入の流れ
- 対象は GitHub Enterprise Cloud(データレジデンシー版を含む)。プレビュー中は無料、正式提供後は従量課金の予定。
- npm の取得先(registry)を企業ごとのファイアウォール URL に切り替える。開発端末、CI、AI エージェントの作業環境のすべてで揃える。
- 認証は企業所属のユーザーかボットのトークンで行う。CI 用にはボット用トークンを用意する。
- JFrog Artifactory 経由の取得にも試験的に対応している。
- 修正版が経過日数ルールで止まった場合などは、npm の出力や CI ログに出る URL から例外を申請し、企業の管理者かセキュリティーマネージャーが承認する。
使い方のコツ
- 「来歴の消失」と「インストールスクリプトの追加」は、乗っ取られたメンテナーアカウントから手元で公開された版の典型的な特徴。既定のまま有効にしておく。
- 経過日数は
minimumReleaseAgeなどクライアント側の待機期間と二重になる。緊急の修正版を入れたいときの例外申請の流れを、事前にチームで決めておく。 - AI エージェントが勝手に
npm installする環境こそ、取得先をファイアウォールに固定しておく価値が大きい。
注意
- パブリックプレビューなので仕様が変わる可能性がある。最新は GitHub の公式ドキュメントで確認する。
- 勧告に載る前の未知のマルウェアは、来歴・スクリプト・経過日数の 3 つの条件で間接的に止めるしかない。完全な防御ではない。
関連
出典
- @MalwareBibleJP · 2026-11-02
- GitHub Changelog github.blog