Skip to content
Latchkey

Software Bill of Materials とは? - build の材料一覧

software bill of materials(SBOM)とは、あるソフトウェアに含まれるすべてのコンポーネントと依存関係の、完全で機械可読な一覧です。

自分が何を持っているか分からないものは守れません。software bill of materials は、あなたの build の材料一覧です。すべてのライブラリ、バージョン、推移的依存関係が、標準的な形式で記録されています。脆弱性が公表されたとき、SBOM があれば「自分たちは影響を受けているか?」に、数日ではなく数秒で答えられます。

SBOM に含まれるもの

  • すべての直接および推移的な依存関係と、そのバージョン。
  • 各コンポーネントのライセンス情報。
  • 正確な artifact を固定する暗号ハッシュ。
  • 利用可能な場合の、供給元と出所のメタデータ。

標準形式

支配的な 2 つの形式は SPDX と CycloneDX です。どちらも機械可読であるため、ツールがそれらを取り込み、脆弱性データベースと照合し、影響を受けるコンポーネントを自動的にフラグ付けできます。

なぜ不可欠になったのか

広範な脆弱性が発生したとき、緊急の問いは「自分たちのどのシステムが影響を受けるライブラリを、どのバージョンで使っているか?」です。SBOM がなければ、それは慌ただしい手作業の捜索です。あれば、クエリで済みます。数々のインシデントが、SBOM を本格的なソフトウェアにとっての基本的な期待事項にしました。

CI で生成する

SBOM は、完全な依存関係ツリーが判明する build 中に生成されます。Syft のようなツールや、パッケージマネージャーのネイティブな出力が、build の artifact として SBOM を生成し、それをリリースとともに保存してスキャンに投入します。

SBOM に attestation を加える

SBOM は、信頼できるときに最も価値があります。SBOM を特定の build に結び付ける署名済みの attestation と組み合わせれば、材料一覧が事後に編集されていないことを証明でき、build の provenance に結び付けられます。

重要なポイント

  • SBOM は、build のコンポーネントの完全で機械可読なインベントリである。
  • SPDX と CycloneDX が標準形式であり、build 中に生成する。
  • 「自分たちは影響を受けているか?」を、手作業の捜索から高速なクエリへ変える。

関連ガイド