SBOM:コンポーネント情報、形式、保守
Sytance · 更新日
ソフトウェア部品表(SBOM)は、アプリケーションまたはシステムを構成するソフトウェアコンポーネントと、その間の関係を記述します。コンポーネントのインベントリ、ライセンスレビュー、脆弱性調査に着手するための情報をチームに提供します。その有用性は、実際に納品されたソフトウェアをどれだけ正確に記述しているかによって決まります。
SBOMが記述する製品
SBOMは、ファームウェアイメージやインストールパッケージなど、特定の製品バージョン、ビルド、または成果物を記述します。コンポーネントエントリーは、その範囲に含まれるライブラリやその他のソフトウェアを特定します。それらのバージョン、開発元、識別子、関係を通じて、何が含まれていたかを説明できます。
架空の産業用ゲートウェイを例にすると、ファームウェアリリースが対象製品です。その管理アプリケーションと組み込みライブラリはコンポーネントです。リモートテレメトリーサービスは外部依存先です。これを記述しても、そのサーバー側のパッケージがファームウェアに含まれることを意味しません。
公開例では、構造を読みやすくするために架空のコンポーネントを使用しています。Sytanceまたは実際にリリースされたゲートウェイのコンポーネントインベントリではありません。
コンポーネント識別子
名前が似た2つのパッケージでも、異なるパッケージエコシステムに属する場合があります。Package URL(purl)は、種類、名前空間、名称、バージョンなどのフィールドを使ってパッケージを識別します。ハッシュアルゴリズムとハッシュ対象のファイルが分かっていれば、ファイルハッシュによって特定のファイルを識別できます。
パッケージメタデータまたはサプライヤー情報を使って識別子を確認してください。推測したベンダー名から組み立てたpurlは、誤ったパッケージを指す可能性があります。下流のビルドに独自のパッチリビジョンが含まれる場合があるため、元のバージョン文字列を維持してください。
SPDXとCycloneDXはいずれも、ソフトウェアコンポーネントの情報と関係を表現します。利用できるフィールドと正確な意味は、形式のバージョンによって異なります。生成側と受領側のツールが処理できるバージョンを選択してください。
インベントリの正確性と網羅性
ファイルが有効なJSONでも、誤ったリリースを記述していることがあります。SBOMをビルド入力と出荷した成果物に照らして比較し、不一致を調査してください。ソースの依存関係一覧には出荷されなかった開発ツールが含まれる一方、イメージにコピーされたライブラリが漏れている場合があります。
- 対象:製品、バージョン、成果物がリリースと一致している。
- 識別情報:コンポーネントのバージョンと識別子をエビデンスまで追跡できる。
- 関係:依存関係の経路が存在し、意味を保っている。
- 網羅性:欠落したサプライヤー情報や未分析の部分が明らかになっている。
- 情報交換:受領側のツールが意図した用途に必要なフィールドを保持する。
2026年版SBOM最小要素
CISAと各協力機関が共同で公表した「2026年版SBOM最小要素」は、NTIAの2021年ガイダンスを更新するものです。文書メタデータ、コンポーネントデータ、SBOMの維持と共有の実践を扱います。この文書はガイダンスであり、新たな要件を設けるものではないと明記しています。
納品時には、合意した仕様、形式のバージョン、顧客の追加要件を明示してください。スキーマ検証に合格しただけでは、顧客が要求した情報がすべて含まれているとは限りません。
脆弱性の照合と製品への影響
脆弱性の照合では、報告された問題をコンポーネント識別情報またはバージョンに関連付けます。次に確認すべきなのは、影響を受けるコードがこの製品に存在し、悪用可能かどうかです。ビルドオプション、変更内容、実行経路、アドバイザリーに記載された条件を確認してください。
Vulnerability Exploitability eXchange(VEX)は、特定された製品について特定の脆弱性の評価を伝えます。その評価をリリースおよび裏付けとなる分析に関連付けてください。照合結果がない場合も、カバレッジが限られているか、識別子が不完全である可能性があります。
サポート対象リリースの記録
元のインベントリをリリースとともに保管してください。ソフトウェアを変更せずに新情報を反映してSBOMを訂正する場合は、追跡可能な文書改訂版を発行します。ソフトウェアを変更する場合は、新しいリリースの記録を作成してください。
新しいアドバイザリーでコンポーネントの脆弱性が特定されたら、サポート対象となるすべてのリリースのインベントリを検索してください。顧客が、現行製品とはコンポーネント構成が異なる旧リリースを引き続き使用している場合があります。