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

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

最終更新:
💡 作る道筋から、届くコードまで守る

部品となるライブラリ、ソースコード、ビルド環境、配布物など、ソフトウェアを作って届ける経路を守る対策です。既知の脆弱性への対応と、不正な変更や配布物の取り違えへの対策を組み合わせます。

📌 このページのポイント
作る道筋から、届くコードまで守るソースコード変更のレビューアクセス権の保護依存する部品部品表で把握脆弱性へ対応ビルド環境・秘密を守る配布利用者受け取ったものを確認⚠ 部品・ビルド・配布も狙われる✓ 部品把握・権限・来歴の確認一つの対策だけで安全とは判断しない
依存する部品と自分のコードがビルドの入力になります。部品表や署名だけで、内容の安全性が保証されるわけではありません。
ひよこ ひよこ
自分のコードを直すだけでは足りないの?
ペンギン先生 ペンギン先生
ソフトウェアは、自分が書いたコードだけでできているとは限らないよ。外部のライブラリやビルドツール、配布の仕組みも使う。そのどこかで脆弱性が残ったり、悪意ある変更が入ったりすると、利用者へ届くソフトにも影響する。この経路まで含めて守る考え方なんだ。
ひよこ ひよこ
脆弱性と、攻撃者による改ざんは同じ?
ペンギン先生 ペンギン先生
違うよ。部品に意図せず残った欠陥が悪用される場合と、攻撃者がコードや配布物を不正に変える場合がある。前者では脆弱性の確認や修正、後者では権限の保護、変更のレビュー、配布物の確認などが必要。スキャンだけで、両方の問題が全部なくなるわけではないんだ。
ひよこ ひよこ
SBOMを作れば安全になる?
ペンギン先生 ペンギン先生
SBOMは、どんな部品やバージョンを含むかを把握するための部品表だよ。脆弱性が見つかったとき、関係するソフトを探す助けになる。ただし部品表を作るだけで、不正なコードを防いだり脆弱性を直したりはできない。内容を更新し、確認結果に応じて対応する必要があるんだ。
ひよこ ひよこ
ビルドの仕組みは、どう守るの?
ペンギン先生 ペンギン先生
コードを作るCI環境の権限を必要最小限にし、秘密情報を守り、変更をレビューするよ。GitHub Actionsの公式案内では、外部アクションを完全なコミットSHAで固定し、そのコードも確認することを勧めている。固定は意図せぬ差し替えを防ぐ助けになるけれど、固定先の内容の安全性を保証するものではないんだ。
ひよこ ひよこ
署名や来歴を確かめると、何が分かる?
ペンギン先生 ペンギン先生
署名は期待した相手のものか、来歴はどのソースやビルド工程から作られたかを確認する判断材料になるよ。受け取った証拠を、期待する配布元や条件と照合することが大切。正規の経路で作られたソフトにも脆弱性はあり得るので、部品の把握と修正、作成・配布経路の保護を組み合わせよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ソフトウェアサプライチェーンセキュリティ」って出てきたら「ソフトウェアを作って届ける経路まで含めて守る対策」と思えばだいたいOK!
📖 おまけ:英語の意味
「Software Supply Chain Security」 = ソフトウェア供給網のセキュリティ
💬 supply chainは供給網。ソフトウェアでは、依存部品の調達、開発、ビルド、配布など、利用者へ届くまでのつながりを指すよ。

参考資料

← 用語集にもどる