はじめに
最近、SBOMツールについて調べる機会があったため、調べたことをまとめてみました。
SBOMとは
ソフトウェアを構成する
- コンポーネント(ソフトウェアを構成する部品)
- ライセンス情報
- コンポーネント同士の相互関係
などの情報をリストにまとめたもの。
脆弱性やOSSのライセンス、ソフトウェアサプライチェーンのリスク管理等で利用される。
SBOMを構成するための最低限の要素
カテゴリー | 概要 | 具体的な定義 |
---|---|---|
データ フィールド |
各コンポーネントの基本情報を明確化すること | サプライヤー名、コンポーネントの名前とバージョンなど、 各コンポーネントに関する基本情報をSBOMに含める |
自動化 サポート |
SBOMの自動生成や可読性などの自動化をサポートすること | SBOMデータを機械判読および 相互運用が可能なフォーマットを 使用して作成する |
プラクティスとプロセス | SBOMの要求、生成、利用に関する運用方法を定義すること | SBOMを利活用する組織は、 作成頻度、共有、アクセス管理などの項目に関して運用方法を定義する |
フォーマット
内容や書き方、粒度などを統一するため、書き方のルールを定めたもの
フォーマット名 | 特徴 |
---|---|
SPDX | ・幅広いソフトウェア部品タイプをサポートしている。 ・ライセンスを個別に特定する識別子のリストが用意されている。 |
CycloneDX | ・セキュリティ管理に重点を置いたフォーマット。 ・既知の脆弱性だけでなく、その脆弱性の悪用可能性も記述できる。 |
SWIDタグ | ・ソフトウェアのライフサイクルに沿ってSBOMを管理できる。 ・ソフトウェアの識別だけでなく、コンポーネントのライセンスや アップデートの情報、脆弱性・脅威に関する情報を含むことが可能。 |
SBOMツールの基本機能
1.解析機能
- ソースコードなどを解析し、それに含まれるコンポーネントを特定する機能
- SBOMの基礎となる「コンポーネントの一覧」を作成するステップ
2.分析機能
- コンポーネントの一覧に基づき各コンポーネントのライセンスや脆弱性の有無などの
リスクを分析、評価する機能
3.レポート機能
- 解析および分析の結果を出力する機能
- SPDXやCycloneDXなどのフォーマット形式でSBOMを出力できる
導入のメリット
-
脆弱性管理のメリット
- 脆弱性残留リスクの低減
- 脆弱性対応時間の短縮
- 脆弱性管理にかかるコストの低減
ソフトウェアを利用する側からすれば「ソフトウェアに含まれるコンポーネントの脆弱性の可否を判断すること」は通常不可能なため、SBOMツールを使用しコンポーネントが可視化すれば脆弱性を発見しやすくなる。
-
ライセンス管理のメリット
- ライセンス違反リスクの低減
- ライセンス管理にかかるコストの低減
ソフトウェアに含まれるコンポーネントのライセンス情報が可視化され、自動管理される
-
開発の生産性向上のメリット
- 開発遅延の阻止
- 開発にかかるコストの低減
- 開発期間の短縮
コンポーネントに含まれる既知の脆弱性やライセンスの問題を事前に把握できる。
ソフトウェアに生じた問題を早期に特定できる。
おわりに
今回、SBOMツールについて紹介させていただきました。
実物を見たことがないためWebにある情報だけでなんとか記事を完成させました。
まだ理解できない部分があるため、実際に触れる機会があれば調べたことを生かしていきたいと思います。
最後まで読んでいただきありがとうございました。
参考にしたサイト