SBOMスキャンの仕様#
ここでは、SBOM 管理機能を脆弱性管理と組み合わせた際のスキャン仕様について説明します。
サポートするSBOM仕様とツール(2026年2月時点)#
以下のフォーマットおよびツールから生成された SBOM ファイルのスキャンをサポートしています。
対応フォーマット#
| フォーマット | バージョン | 推奨形式 |
|---|---|---|
| CycloneDX | 〜v1.6 | JSON / XML |
| SPDX | 〜v2.3 | JSON / tag:value |
SPDX RDF 形式についての注意
SPDX の RDF 形式 は部分的なサポートのみとなります。 特定のライセンス情報やカスタムプロパティを含む場合、正しくインポートできないことがあります。
可能な限り JSON または tag:value 形式での出力を推奨します。
対応ツール#
以下のツールでの動作を確認しています(2026年2月時点)。 他のツールから出力された SBOM についての対応要望は、お問い合わせよりご連絡ください。
| ツール名 | CycloneDX | SPDX |
|---|---|---|
| Vuls / FutureVuls | ✓ | ー |
| Trivy | ✓ | ✓ |
| Syft | ✓ | ✓ |
| Amazon Inspector | ✓ | ✓ |
| SBOM Tool | ー | ✓ |
| CycloneDX Generator (cdxgen) | ✓ | ー |
| FossID | ✓ | ✓ |
| BlackDuck(SCA機能) | ✓ | ✓ |
インポートされる情報と条件#
SBOM ファイルに含まれる情報は、以下のルールに基づいて FutureVuls に取り込まれます。
1. ソフトウェアコンポーネントの登録条件#
コンポーネントは、含まれる識別情報(PURL/CPE)によって、登録される「ソフトウェア種別」や情報の優先度が異なります。 登録される情報に対して脆弱性検知がどのように行われるかは、「こちらのマニュアル」を参照してください。
| PURL | CPE | 名称 | バージョン | 登録結果 (種別) | 備考 |
|---|---|---|---|---|---|
| あり | あり | あり | あり | library | PURL と CPE を両方割り当てます |
| あり | なし | あり | あり | library | PURL の情報で登録されます |
| なし | あり | あり | あり | private | CPE の情報で登録されます |
| なし | なし | あり | あり | private | 名称とバージョンで登録されます |
| なし | なし | あり | なし | private | バージョンは unknown として登録されます |
| なし | なし | なし | なし | ー | 必須情報不足のため登録されません |
なぜ PURL (Package URL) が推奨されるのか
CPE (Common Platform Enumeration) は OS パッケージや OSS ライブラリの脆弱性検知において誤検知のリスクがあります(詳細)。
一方、PURL はパッケージマネージャのエコシステムに基づいた正確な特定が可能で、脆弱性検知の精度が向上します。
そのため、FutureVuls では PURL を持つコンポーネントを優先的に library として取り込みます。
PURL も CPE も割り当てられていないソフトウェアは、SBOM インポート後に手動で CPE または PURL を割り当てない限り、脆弱性検知の対象になりません(CPE/PURLの割り当て参照)。
2. OS情報(サーバSBOMのみ)#
サーバとして登録する SBOM ファイルに OS 情報が含まれる場合、サーバの OS として登録されます。
OS 情報がない場合は Pseudo として登録されます。
- 対象: サーバ SBOM としてアップロードした場合のみ。
- 推奨: OS 名とバージョン情報の両方を含むこと(例:
Ubuntu 20.04,CentOS 7)。 - 注意: OS 情報が複数含まれているとインポートエラーになります。
3. OSパッケージ情報(サーバSBOMのみ)#
OS のパッケージマネージャで管理されるソフトウェア(RPM, deb, apk など)の情報です。
- 対象: サーバ SBOM としてアップロードした場合のみ。
- 表示場所: サーバ詳細 > ソフトウェアタブ(種別:
os)。 - 注意:
- OS パッケージの種別が複数混在しているとインポートエラーになります(例: rpm と deb が混在)。
- OS パッケージ情報があるのに OS 情報が含まれていない場合、インポートエラーになります。
4. 依存ライブラリ(アプリケーション)情報#
言語のパッケージマネージャで管理されるライブラリ(Java, Python, Node.js, Go など)の情報です。
- 対象: サーバ SBOM、アプリケーション SBOM の両方。
- 表示場所: サーバ詳細 > ソフトウェアタブ(種別:
library)。 - グループ化:
- 依存ライブラリは、エコシステム(Maven, PyPI, npm など)ごとにアプリケーションとしてまとめられます。
- マニフェストファイル(
pom.xml,package-lock.json等)の情報が SBOM に含まれる場合、そのファイル単位でまとめられます。
インポートされない情報#
脆弱性情報#
SBOM ファイル内に記載されている脆弱性情報は取り込まれません。
FutureVuls は、インポートされたコンポーネント情報( PURL や CPE )をもとに、最新の脆弱性データベースを使って独自に再マッチング処理を行います。これにより、SBOM 作成時点では検知されていなかった新たな脆弱性も発見可能になります。
トラブルシューティング#
SBOM ファイルのインポートがうまくいかない場合の主な原因と対処法です。
ファイル登録時にエラーになる場合#
| 原因 | 詳細・対処法 |
|---|---|
| OS情報の不整合 | 「OS パッケージ情報(rpmなど)」が含まれているのに、「OS 情報(OS名)」が含まれていない場合、登録に失敗します。 → OS 情報を追記するか、ツール設定を見直してください。 |
| OS情報の重複 | 1つの SBOM に複数の OS 情報が含まれています。 → シングル OS の構成に修正してください。 |
| パッケージ形式の混在 | 異なる種別の OS パッケージ(例: apk と deb)が混在しています。 → どちらか一方のみを含むようにしてください。 |
| 非対応ツール | サポート対象外のツールで生成された可能性があります。 → 対応ツール一覧を確認してください。 |
インポートは成功したが、情報が不足している場合#
- OS/パッケージ情報がない: 「アプリケーション SBOM」として登録していませんか? アプリケーション SBOM では OS 関連情報は無視されます。
- 脆弱性が表示されない:
- SBOM 内の脆弱性情報は利用されません。FutureVuls 側で次回スキャン時に検知されます。すぐに反映したい場合は、サーバ詳細から手動スキャンを実行してください。
- PURL と CPE が両方ないコンポーネントは、自動では脆弱性検知されません。手動で CPE または PURL を割り当ててください。
各フォーマットの詳細な仕様については、以下も参照してください。