CBOM - 暗号部品表
CBOM - 暗号部品表
包括的な暗号資産インベントリとリスク評価のために、OWASP CycloneDX 1.7 仕様に準拠した標準化された暗号部品表(CBOM)を生成します。
概要
CBOM(暗号部品表: Cryptography Bill of Materials)は、アプリケーションおよびインフラストラクチャ内のすべての暗号資産を文書化するための、専門的なインベントリ形式です。PQCスキャナーは、以下のことが可能な CycloneDX 1.7 準拠の CBOM ドキュメントを生成します。
CBOM の機能
CBOM Explorer
Cockpit では、CBOM Explorer が CycloneDX インベントリをインタラクティブな暗号資産グラフとしてレンダリングします。量子脆弱なプリミティブを分離し、コンポーネントの識別子(BOM-Ref、OID、鍵の種類/サイズ、形式)を検査し、破綻した各アルゴリズムに対する推奨移行を確認できます。

CycloneDX とは?
CycloneDX は、ソフトウェア部品表(SBOM)のための OWASP 標準です。バージョン 1.7 では暗号資産のネイティブサポートが導入され、CBOM の事実上の標準となっています。
クイックスタート
スキャン結果からの CBOM 生成
# 1. Run a scan
dke-scanner-agent agent --output scan-results.json
# 2. Generate CBOM
dke-scanner-agent cbom --input scan-results.json \
--app-name "Payment API" \
--app-version "2.1.0" \
--output payment-api-cbom.json
CBOM サマリーの表示
# Generate with pretty printing
dke-scanner-agent cbom -i scan.json --pretty
# Output shows:
# CBOM generated successfully!
# Input: scan.json
# Output: scan-cbom.json
# Components: 47
# Dependencies: 12
ユースケース
セキュリティ監査 & コンプライアンス
年次セキュリティ監査およびコンプライアンスレポート向けに CBOM を生成
CI/CD 統合
デプロイパイプラインで CBOM 生成を自動化
量子対応度の追跡
従来型からポスト量子暗号への移行の進捗を追跡
ベンダーセキュリティ質問票
顧客のセキュリティレビュー向けに CBOM を生成
CLI リファレンス
コマンド構文
dke-scanner-agent cbom [OPTIONS] --input <FILE>
必須引数
| 引数 | 説明 | 例 |
|---|---|---|
| -i, --input <FILE> | スキャン結果ファイル(JSON 形式) | scan-results.json |
オプション引数
| 引数 | 短縮形 | 説明 | デフォルト |
|---|---|---|---|
| --output <FILE> | -o | 出力 CBOM ファイルのパス | <input>-cbom.json |
| --app-name <NAME> | メタデータ用のアプリケーション名 | スキャンからのホスト名 | |
| --app-version <VER> | アプリケーションバージョン | "1.0" | |
| --pretty | JSON 出力を整形 | false |
例
基本的な CBOM 生成
# Minimal command (auto-generate output name)
dke-scanner-agent cbom -i scan.json
# With custom output
dke-scanner-agent cbom -i scan.json -o crypto-inventory.json
# With pretty printing
dke-scanner-agent cbom -i scan.json --pretty
アプリケーションメタデータ付き
# Specify application details
dke-scanner-agent cbom \
--input scan-results.json \
--app-name "E-Commerce Platform" \
--app-version "4.2.1" \
--output ecommerce-cbom.json \
--pretty
CI/CD パイプライン統合
# GitLab CI example
dke-scanner-agent ci --source-path . --output scan.json
dke-scanner-agent cbom \
-i scan.json \
--app-name "${CI_PROJECT_NAME}" \
--app-version "${CI_COMMIT_SHA:0:8}" \
--output "${CI_PROJECT_NAME}-cbom.json"
CBOM の構造
CycloneDX 1.7 形式
{
"bomFormat": "CycloneDX",
"specVersion": "1.7",
"serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
"version": 1,
"metadata": {
"timestamp": "2025-01-29T14:30:52Z",
"component": {
"type": "application",
"name": "Payment API",
"version": "2.1.0"
}
},
"components": [
{
"type": "cryptographic-asset",
"bom-ref": "crypto-asset-1",
"name": "RSA-2048",
"version": "1.0",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
"primitive": "asymmetric",
"parameterSetIdentifier": "2048",
"executionEnvironment": "software-plain-ram",
"implementationPlatform": "x86_64",
"certificationLevel": ["none"],
"mode": "PKCS1",
"padding": "OAEP",
"cryptoFunctions": ["encrypt", "decrypt", "sign", "verify"],
"classicalSecurityLevel": 112,
"nistQuantumSecurityLevel": 0
}
},
"properties": [
{
"name": "quantum:vulnerable",
"value": "true"
},
{
"name": "quantum:risk_score",
"value": "8.5"
}
]
}
]
}
資産タイプ
スキャナーは、以下の暗号資産タイプの CBOM エントリを生成します。
CBOM 分析
脆弱性データの抽出
# Extract all quantum-vulnerable assets
jq '.components[] | select(.properties[] | select(.name == "quantum:vulnerable" and .value == "true")) | {name, type: .cryptoProperties.assetType}' crypto-bom.json
# Count assets by type
jq '.components | group_by(.cryptoProperties.assetType) | map({type: .[0].cryptoProperties.assetType, count: length})' crypto-bom.json
# Find high-risk algorithms (risk score > 7)
jq '.components[] | select(.properties[] | select(.name == "quantum:risk_score" and (.value | tonumber) > 7)) | .name' crypto-bom.json
コンプライアンスレポート
# Generate NIST compliance report
jq '{
total_assets: .components | length,
quantum_vulnerable: [.components[] | select(.properties[] | select(.name == "quantum:vulnerable" and .value == "true"))] | length,
quantum_safe: [.components[] | select(.properties[] | select(.name == "quantum:vulnerable" and .value == "false"))] | length,
by_type: .components | group_by(.cryptoProperties.assetType) | map({type: .[0].cryptoProperties.assetType, count: length})
}' crypto-bom.json
統合の例
CBOM の差分 & 変更追跡
時間経過に伴う変更の追跡
ベストプラクティス
CBOM のベストプラクティス
CBOM をバージョン管理する
追跡にセマンティックバージョニングを使用
ソースコードとともに保存する
CBOM をコードベースの隣に保管
定期スキャンを自動化する
cron 経由で週次 CBOM 生成をスケジュール
リリースに含める
CBOM をリリース成果物に追加
標準 & コンプライアンス
CycloneDX 1.7 仕様
PQCスキャナーは、以下に準拠した CBOM を生成します。
- OWASP CycloneDX 1.7 - 完全な仕様
- NIST SSDF - セキュアソフトウェア開発フレームワーク
- CISA SBOM ガイドライン - 重要インフラの要件
- 大統領令 14028 - 国家のサイバーセキュリティの改善
暗号プロパティ標準
CycloneDX 暗号拡張に準拠しています。
サポートされるセクション
トラブルシューティング
サポート
CBOM に関するヘルプが必要ですか?