【ソフトウェアサプライチェーンセキュリティ】

ソフトウェアサプライチェーンセキュリティ とは?

💡 コードが届くまでの「サプライルート」を丸ごと守る
📌 このページのポイント
ソフトウェアサプライチェーンの攻撃ポイント ソース コード管理 依存 ライブラリ CI/CD ビルド・テスト パッケージ レジストリ 本番 環境 リポジトリ 改ざん 悪意ある パッケージ パイプライン 乗っ取り マルウェア 混入 対策 SBOM作成 / 依存脆弱性スキャン / コード署名 / CIパイプライン保護 / 最小権限
コードが本番に届くまでの全工程が攻撃の対象になり得る
ひよこ ひよこ

ソフトウェアサプライチェーンセキュリティって、難しそうな名前だね。普通のセキュリティと何が違うの?

ペンギン先生 ペンギン先生

自分が書いたコード以外にも、使っているライブラリ・ビルドツール・CI/CDパイプラインなど「ソフトウェアを作って届けるまでの流れ」全体を守ることだよ。自分のコードは安全でも、使っているライブラリに悪意あるコードが混入していたら意味がないよね。

ひよこ ひよこ

実際にどんな事件があったの?

ペンギン先生 ペンギン先生

2020年のSolarWinds事件が有名だよ。攻撃者がITシステム管理ソフトのビルドプロセスに侵入して、正規のソフトウェアアップデートの中にマルウェアを仕込んだんだ。18,000以上の組織が影響を受けて、米国政府機関も被害を受けた大規模なサプライチェーン攻撃だよ。

ひよこ ひよこ

Log4Shellっていうのも聞いたことがあるんだけど、関係あるの?

ペンギン先生 ペンギン先生

関係あるよ!Log4Shellは2021年に発見されたJavaのログライブラリ「Log4j」の深刻な脆弱性だよ。Log4jはあまりにも多くのソフトウェアが依存していたため、自分では全く関係ないと思っていたサービスも影響を受けた。「使っているライブラリ脆弱性」というサプライチェーンリスクの典型例だね。

ひよこ ひよこ

対策として何をすればいいの?

ペンギン先生 ペンギン先生

まずSBOMソフトウェア部品表)を整備することだよ。自分のソフトウェアが依存しているすべてのコンポーネントとバージョンを把握するリストだね。次にDependabotなどのツールで依存ライブラリ脆弱性を自動検知して素早くアップデートすること。CIパイプライン自体の保護(シークレット管理・権限の最小化)も重要だよ。

ひよこ ひよこ

CIパイプラインを守るって、どういうことなの?

ペンギン先生 ペンギン先生

GitHubのActionsなどCI環境は多くのシークレット(APIキーデプロイ鍵)を持つ攻撃の宝庫なんだ。悪意あるサードパーティのGitHub Actionsを使ったり、mainブランチへの直接プッシュを許可していたりすると乗っ取られるリスクがある。アクションのバージョンをコミットハッシュで固定するなど、CIの入口も厳重に守る必要があるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ソフトウェアサプライチェーンセキュリティ」って出てきたら「使っているライブラリや開発ツールも含めたソフトウェア全体のセキュリティ対策」と思えればだいたいOK!
📖 おまけ:英語の意味
「Software Supply Chain Security」 = ソフトウェア供給網セキュリティ
💬 製造業の「サプライチェーン(部品調達から製品完成まで)」をソフトウェア開発に当てはめた概念で、コードが開発者の手を離れてユーザーに届くまでの全工程が攻撃対象になり得ることを指すよ
← 用語集にもどる