SBOM の記載の深さ
A 社は自社製品 X の SBOM を作成している。X の SBOM には X が直接依存するコンポーネントだけが記載され,それらの推移的な依存関係は記載されていない。OSS のライブラリ Y に重大な脆弱性が公表されたので X の SBOM を検索したところ,Y は記載されていなかった。A 社の対応として,最も適切なものはどれか。
- アY は X の SBOM に記載されていないので,X は Y を含まず,脆弱性の影響を受けないと判断して顧客に通知する。
- イX の SBOM の依存関係の情報から,Y の脆弱性が X で悪用可能かどうかを判定し,悪用できなければ対応不要と判断する。
- ウSBOM の記載が直接の依存関係までなので Y を含まないとは判断せず,記載されたコンポーネントの依存関係をたどって Y の有無を調査する。
- エ次回の製品リリースで SBOM を作成し直す際に推移的な依存関係まで記載し,その SBOM で Y の有無を確認する。
正解と解説を見る
正解 ウ
この問題の基礎知識
- SBOM(Software Bill of Materials)は,ソフトウェアを構成するコンポーネントとその依存関係を一覧にした部品表であり,脆弱性が公表されたときの影響範囲の特定などに用いる。
- 直接の依存関係は製品が直接利用するコンポーネントであり,推移的な依存関係はそのコンポーネントがさらに依存するコンポーネントである。
- SBOM に記載がないことは,依存関係を全て列挙したと明示されていない限り,そのコンポーネントを含まないことを意味しない。
- SBOM は脆弱性が製品の中で悪用可能かどうかは示さない。悪用可能性などの状態を伝える文書として VEX(Vulnerability Exploitability eXchange)がある。
アY は X の SBOM に記載されていないので,X は Y を含まず,脆弱性の影響を受けないと判断して顧客に通知する。
推移的な依存関係を記載していない SBOM では,記載がないことは含まれないことを意味しない。SBOM のデータは,依存関係を全て列挙したと明示されていない限り,不完全なものとして解釈すべきとされている。
イX の SBOM の依存関係の情報から,Y の脆弱性が X で悪用可能かどうかを判定し,悪用できなければ対応不要と判断する。
SBOM はコンポーネントとその依存関係を記載するもので,脆弱性が製品の中で悪用可能かどうかは示さない。悪用可能性の判断には別途の分析が必要であり,その結果の伝達には VEX などが用いられる。
ウSBOM の記載が直接の依存関係までなので Y を含まないとは判断せず,記載されたコンポーネントの依存関係をたどって Y の有無を調査する。正解
SBOM には,少なくとも全ての直接の依存関係を,推移的な依存関係を再帰的に調べられるだけの詳細さで記載することが求められる。記載が直接の依存関係までの場合は,各コンポーネントの依存関係をたどって Y の有無を確認する必要がある。
エ次回の製品リリースで SBOM を作成し直す際に推移的な依存関係まで記載し,その SBOM で Y の有無を確認する。
記載の深さを広げることは今後の改善として有効だが,次回のリリースで作成する SBOM は新しいビルドの構成を表す。既に出荷している X が Y を含むかどうかは,今の時点で調査しなければ分からない。
検証用の出典出典照合済み
NTIA The Minimum Elements For a Software Bill of Materials (SBOM) / OWASP Dependency Graph & SBOM Cheat Sheet照合の根拠(4 件)
- ウ(正解): 直接の依存関係は推移的な依存関係を再帰的にたどれる詳細さで記載する。記載が直接依存までなら,そこからたどって調べる
At a minimum, all top-level dependencies must be listed with enough detail to seek out the transitive dependencies recursively.
NTIA The Minimum Elements For a Software Bill of Materials (SBOM) · Practices and Processes: Depth(新しいタブで開きます) - ア(誤り): 依存関係を全て列挙したと明示されない限り SBOM のデータは不完全と解釈するので,記載がないことは含まないことを意味しない
To avoid erroneous assumptions, the default interpretation of the data should be that the data is incomplete;
NTIA The Minimum Elements For a Software Bill of Materials (SBOM) · Practices and Processes: Known Unknowns(新しいタブで開きます) - イ(誤り): 脆弱性の影響の有無は SBOM ではなく別途の判断と VEX で伝える
The core of VEX is the communication of whether or not a given piece software is “affected” by a given vulnerability.
NTIA The Minimum Elements For a Software Bill of Materials (SBOM) · Vulnerability and Exploitability in Dependencies(新しいタブで開きます) - エ(誤り): 新しいリリースの SBOM は新しい版を表すもので,出荷済みの X に Y が含まれるかは今の構成で調べる必要がある
If the software component is updated with a new build or release, a new SBOM must be created to reflect the new version of the software.
NTIA The Minimum Elements For a Software Bill of Materials (SBOM) · Practices and Processes: Frequency(新しいタブで開きます)
X の SBOM は直接依存だけで推移的依存を記載していないので,Y が記載されていないことから Y を含まないとは言えず,記載された直接依存から依存関係をたどって確認する。