用語集 最終更新 2026.08.10

サプライチェーン攻撃

サプライチェーン攻撃は、標的そのものではなく、標的が信頼して取り込んでいるものを汚染する攻撃です。 1つ汚染すれば、それを使っている全員に一度に届くため、効率が桁違いに高いのが特徴です。

主な手口

手口 やり方
アカウント乗っ取り 人気ライブラリの管理者アカウントを奪い、悪意あるバージョンを公開する
タイポスクワッティング 正規パッケージと1文字違いの名前で公開し、打ち間違いを待つ
依存混乱 社内用パッケージと同名のものを公開レジストリに置き、そちらが優先されるのを狙う
ビルド環境の汚染 CI やビルドサーバーを侵害し、正規のソースから悪意ある成果物を作らせる

4つ目が最も厄介です。ソースコードを見ても何も見つかりません。 配布されているものだけが汚染されているためです。

なぜ防ぎにくいのか

通常のセキュリティ対策は「外から入ってくるもの」を疑いますが、依存ライブラリこちらから取りに行って、自分で実行しています。ファイアウォールも認証も関係ありません。

さらに多くのパッケージ管理ツールは、インストール時にスクリプトを実行できます。install した時点で任意のコードが動くため、アプリを起動していなくても被害が発生します。

現実的な対策

完全に防ぐことはできないので、被害の範囲と気づくまでの時間を縮めるのが実務的な目標です。

  1. ロックファイルで版とハッシュを固定する。勝手に新しい版が入る状態にしない
  2. CI では通常のインストールではなくロック厳守のコマンドを使う
  3. 依存の自動更新は、必ずレビューを挟んでから取り込む
  4. SBOMを出しておき、事故公表時に自分が影響を受けるか即座に判定できるようにする
  5. ビルド時の権限を最小化する(本番の認証情報をCIに置かない)

実務で見るポイント

  • 依存を減らすこと自体が対策になる。数行のために依存を増やさない
  • 更新を止めるのも危険(既知の脆弱性が残る)。止めるのではなく、確認して入れる
  • 事故は公表から対応まで数時間の勝負になる。平時に何を使っているか分かる状態にしておく