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

悪性パッケージをブロックするレジストリ/プロキシを挟む

npm などの取得先を「マルウェア判定済みのものだけ通す」レジストリやプロキシに向け、手元の設定変更だけで既知の悪性バージョンを入れないようにする。

@lmt_swallow · 2026-10-09
#supply-chain#npm#registry#docker

何を解決するか / いつ使うか

  • 開発者一人ひとりの注意力に頼らず、組織全体・CI 全体で悪性パッケージを遮断したいとき。
  • パッケージマネージャに minimumReleaseAge 相当の機能がない場合でも、プロキシ側で汎用的に防げる(@gorilla0513 が紹介した bokuweb さんのプロキシ方式)。

選択肢と手順の例

  1. Takumi Guard(GMO Flatt Security、無料) — マルウェアをブロックする npm レジストリ。npm config コマンド一つでレジストリを切り替えて使う。GitHub Actions からはキーレス(Bot トークン)で使え、Secrets 登録が不要。
    sh
    # 例: レジストリの向き先を切り替える(URLは公式ドキュメント参照)
    npm config set registry <Takumi Guard のレジストリURL>
  2. Socket Firewall — パッケージ取得を仲介し、悪性判定されたものを止める。Docker Hardened Images(DHI)と組み合わせた運用が「現状ベスト」という話も(@satorien22)。
  3. 自前プロキシ — 公開日時でフィルタするプロキシを挟み、パッケージマネージャ非依存でクールダウンを実現。

注意点

  • 判定は「既知」の悪性に対するもの。公開直後のゼロデイ的な悪性版はクールダウンと併用で防ぐ。
  • レジストリ切り替えは .npmrc を CI とローカルで揃える。lockfile 内の resolved URL が変わる点にも注意。
  • コンテナ側では Takumi Images(脆弱性影響判定・パッチ取り込み済み、公開前マルウェア検査済みの distroless 風イメージ)も同社から提供されている。

出典

X の元の投稿を開く