ソフトウェアの依存関係が握る命綱:サプライチェーン攻撃とその対策
ソフトウェアを「仕入れ先」の目で見る
現代のシステムはゼロから作られるのではなく、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情報を無料でお届けします。