ソフトウェアの依存関係が握る命綱:サプライチェーン攻撃とその対策

ソフトウェアを「仕入れ先」の目で見る

現代のシステムはゼロから作られるのではなく、npm・PyPI・Maven などの公開リポジトリにあるオープンソースの部品(ライブラリ)を大量に組み合わせて作られています。ある調査では、商用アプリケーションの大半がオープンソースで構成されています。

つまり、その部品のどこか一つが汚染されると、それを取り込んだ何千・何万ものシステムに一斉に波及します。これがサプライチェーン(供給網)攻撃です。実際、「npmパッケージへの悪意コード混入」「有名パッケージの乗っ取り」といった事件は後を絶ちません。

サプライチェーン攻撃がどう起こるか

  • 正規のパッケージに、攻撃者の埋めた悪意ある更新(バージョン奪取・偽パッケージ共存)
  • メンテナーになりすましてマルウェア入りの「新バージョン」を公開
  • 名前を紛らわせたタイポスクワッティング(一文字違いの偽パッケージ)への誤インストール

中小企業でも今日から始められる5つの対策

1. 依存パッケージの監査と更新

  • 利用中の言語の監査コマンドを定期実行:npm audit / composer audit / pip-audit / go vuln check
  • 監査結果の High / CRITICAL は放置せず、速やかにアップデート(パッチが出ているなら適用)

2. 更新を「自動化」する

  • Dependabot / Renovate で依存の更新PRを自動生成し、レビューしながら取り込む
  • CI/CD に監査を組み込み、許容レベルの脆弱性が入ったらビルドを停止

3. 使う部品を「正しく」選ぶ

  • 有名・長期・多数の利用実績があるパッケージを優先し、メンテナンスが止まっている、または放置されたものは使わない
  • パッケージ名は一文字違い(タイポ)に注意し、公式ドキュメントの通りの名前を入力
  • 署名・チェックサムが確認できる仕組み(信頼できるレジストリ)から取得する

4. 自分が「何を」使っているかを棚卸しする

  • SBOM(ソフトウェア部品表)を生成して、どの部品・どのバージョンを使っているかを一覧化(cyclonedx / trivy など)
  • OSSライセンス・権利関係の棚卸しにもなり、法的リスクも低減

5. 仕入先(委託先)のセキュリティも確認する

  • 外部ベンダー・委託先にシステムを預ける場合は、セキュリティ方針・対策の確認(セキュリティ設計会議、監査結果の共有)
  • 委託先の退職者アカウント残存、開発環境のセキュリティ確認も含めて運用する

まとめ

サプライチェーン攻撃は「部品を仕入れ、組み立てているのは誰もが同じ」という構造から、中小企業も標的になり得ます。とはいえ防ぎ方はシンプルです。依存パッケージの監査 → 自動更新 → 正しい部品選び → SBOMの棚卸し。この4つを仕組み化してしまえば、大きな工数なしで防御を積めます。

この記事は役に立ちましたか?

毎週、中小企業の経営に役立つIT・DX情報を無料でお届けします。