npmにまつわるサプライチェーン攻撃の対策
1. 新規リリースのクールダウン — .npmrcにmin-release-age=7d 2. installスクリプト無効化 — npm config set ignore-scripts true(またはpnpm/Bunのデフォルトを活用)
3. npm ciの徹底とlockfile-lint — CIでnpm ci + lockfile-lintをpre-step
table:table
原則 防止する攻撃 導入コスト
バージョン完全固定+lockfile厳格化 悪意あるバージョンへの自動解決、lockfileドリフト 低
リリース経過時間の猶予(クールダウン) 攻撃ウィンドウ中のインストール 低
installスクリプト/ビルド時任意コードの無効化または限定許可 install時の任意コード実行 低〜中
署名・Provenance検証(レジストリ・コンテナ・CI出力) 信頼ワークフロー外からのpublish 低
事前監査ツール(脆弱性・悪性・新規依存) 既知の悪性、postinstallパターン 低
長期トークンの排除(OIDC Trusted Publishing / 短命credentials) アカウント乗っ取りからの二次被害 中
プライベートレジストリプロキシ Dependency Confusion、大規模侵害時の即時遮断 中
実行環境サンドボックス(Dev Container / ephemeral runner) ホストマシン・AI認証情報への横展開 中
egress制御 + SBOM + インシデントランブック 侵害後の能動的搾取、ブラストレイディアス拡大 中〜高