mcpField
S
sbom-analyzer

sbom-analyzer

github.com/snykセキュリティ68136 回インストール1 週間前に更新
リポジトリ

sbom-analyzer について

sbom-analyzer は、サードパーティリスク管理やコンプライアンス業務で SBOM を分析するセキュリティスキルです。CycloneDX または SPDX の JSON を検証し、コンポーネントの脆弱性をスキャンして、リスクと対処案をまとめます。

主な機能

  1. 01CycloneDX と SPDX 形式の検証
  2. 02SBOM の完全性と PURL の確認
  3. 03コンポーネントの脆弱性スキャン
  4. 04リスク検出結果の集約
  5. 05アップグレード案とベンダー向け文面

活用シーン

  1. 01ベンダー提供の SBOM の確認
  2. 02サードパーティコンポーネントのリスク評価
  3. 03内部プロジェクトの SBOM 生成とスキャン

MCP 対応

Snyk の MCP SBOM スキャンツールを呼び出し、コンポーネントの脆弱性を分析します。スキャンにはネットワーク接続とコンポーネントの PURL が必要です。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/snyk/studio-recipes --skill sbom-analyzer

インストール後、Claude Code で/sbom-analyzerを入力して読み込まれたか確認します。

同梱ファイルreferences/sbom-formats.md

詳細

SBOM セキュリティアナライザー

ソフトウェア部品表を分析し、サードパーティリスク管理やコンプライアンスのワークフローにおいて、宣言されたコンポーネントの脆弱性を特定します。

基本原則:ソフトウェアサプライチェーンに何が含まれているかを把握します。


クイックスタート

1. Receive or locate SBOM file (CycloneDX or SPDX)
2. Validate SBOM format and completeness
3. Run mcp_snyk_snyk_sbom_scan for vulnerability analysis
4. Generate risk report with prioritized findings
5. Provide remediation guidance

対応している SBOM 形式

形式バージョンファイル拡張子
CycloneDX1.4、1.5、1.6.json
SPDX2.3.json

注:mcp_snyk_snyk_sbom_scan でコンポーネントを識別するには、SBOM に Package URL(purl)が必要です。


フェーズ 1:SBOM の検証

目標:分析前に、SBOM が有効かつ完全であることを確認します。

ステップ 1.1:SBOM 形式の特定

ファイル構造を確認します。

CycloneDX の識別項目:

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "components": [...]
}

SPDX の識別項目:

{
  "spdxVersion": "SPDX-2.3",
  "SPDXID": "SPDXRef-DOCUMENT",
  "packages": [...]
}
ステップ 1.2:完全性の検証

必須要素を確認します。

要素CycloneDXSPDX必須
形式のバージョンspecVersionspdxVersionはい
コンポーネント一覧componentspackagesはい
Package URLコンポーネント内の purlexternalRefsはい*
ライセンスlicenseslicenseConcluded推奨
チェックサムhasheschecksums推奨

* Snyk が脆弱性を特定するには、Package URL が必要です。

ステップ 1.3:検証の問題を報告

SBOM が不完全な場合は、次の形式でレポートを作成します。

## SBOM Validation Results

**File**: supplier-sbom.json
**Format**: CycloneDX 1.5

### Issues Found
| Issue | Severity | Count |
|-------|----------|-------|
| Missing purl | Error | 15 components |
| Missing license | Warning | 8 components |
| Missing checksum | Info | 23 components |

### Components Without purl (Cannot Scan)
- component-a (no package URL)
- component-b (no package URL)

**Recommendation**: Request updated SBOM from supplier with package URLs.

フェーズ 2:セキュリティスキャン

目標:SBOM のコンポーネントに含まれる脆弱性を特定します。

ステップ 2.1:SBOM スキャンの実行

ツールを直接呼び出します。

mcp_snyk_snyk_sbom_scan(file="path/to/sbom.json", severity_threshold="medium")
ステップ 2.2:組織スコープのスキャン

組織固有のポリシーを適用するには、次のようにします。

mcp_snyk_snyk_sbom_scan(file="path/to/sbom.json", org="<org-id>", severity_threshold="high")

フェーズ 3:リスク分析

目標:スキャン結果から包括的なリスクレポートを作成します。

概要、重大な検出事項、全体的なリスクスコアを網羅した、統合レポートを 1 つ作成します。

## SBOM Security Analysis

### Overview
| Metric | Value |
|--------|-------|
| Total Components | 156 |
| Components Scanned | 141 |
| Components Skipped | 15 (missing purl) |
| Vulnerable Components | 23 |
| Total Vulnerabilities | 47 |

### Severity Breakdown
| Severity | Count |
|----------|-------|
| Critical | 3 |
| High | 12 |
| Medium | 18 |
| Low | 14 |

### Critical Vulnerabilities
| Component | Version | CVE | CVSS | Exploited |
|-----------|---------|-----|------|-----------|
| log4j-core | 2.14.1 | CVE-2021-44228 | 10.0 | Yes |
| spring-core | 5.3.17 | CVE-2022-22965 | 9.8 | Yes |
| jackson-databind | 2.9.10 | CVE-2020-36518 | 9.8 | No |

### Risk Score: 78/100 (High Risk)
- ⚠️ 2 vulnerabilities with known exploits
- ⚠️ 3 critical severity issues
- ✓ Components from untrusted sources: 0

**Recommendation**: Do not integrate this software until critical vulnerabilities are addressed.

フェーズ 4:修正ガイダンス

目標:実行可能なアップグレードの推奨事項とベンダーへの連絡内容を提示します。

ステップ 4.1:アップグレードの推奨事項
## Recommended Actions

### Priority 1: Critical (Must Fix)
| Component | Current | Fixed Version | Notes |
|-----------|---------|---------------|-------|
| log4j-core | 2.14.1 | 2.17.1+ | Log4Shell |
| spring-core | 5.3.17 | 5.3.18+ | Spring4Shell |

### Priority 2: High (Should Fix)
| Component | Current | Fixed Version | Notes |
|-----------|---------|---------------|-------|
| lodash | 4.17.15 | 4.17.21 | Prototype pollution |
| axios | 0.21.1 | 1.6.0+ | SSRF vulnerability |

### Priority 3: Medium (Plan to Fix)
| Component | Current | Fixed Version | Notes |
|-----------|---------|---------------|-------|
| minimist | 1.2.5 | 1.2.8+ | Prototype pollution |
ステップ 4.2:ベンダーへの連絡

次のテンプレートを使ってベンダー宛てのメッセージを作成します(実際の検出事項を入力してください)。

Subject: Security Vulnerabilities in Software SBOM

Dear [Vendor],

During our security review of [Product Name], we identified the following
vulnerabilities in the provided SBOM:

**Critical Issues (Require Immediate Action)**:
1. [Component] [Version] - [CVE] ([Name])
2. [Component] [Version] - [CVE] ([Name])

**Request**:
1. Provide updated software with patched versions
2. Provide updated SBOM reflecting the changes
3. Confirm expected remediation timeline

We require resolution of critical issues before proceeding with integration.

Regards,
[Your Name]

SBOM の生成(内部プロジェクト)

Snyk CLI を使って自社プロジェクトの SBOM を生成し、スキャンします。

# Generate CycloneDX SBOM
snyk sbom --format=cyclonedx1.5+json > sbom.json

# Generate SPDX SBOM
snyk sbom --format=spdx2.3+json > sbom.json

次に、生成した SBOM をスキャンします。

mcp_snyk_snyk_sbom_scan(file="sbom.json")

エラー処理

無効な SBOM 形式
Error: Unable to parse SBOM file

Solutions:
1. Verify file is valid JSON
2. Check SBOM format (CycloneDX/SPDX)
3. Validate against schema
4. Request corrected SBOM from source
Package URL の欠落
Warning: X components missing purl - cannot scan

Solutions:
1. Request updated SBOM with purls
2. Manually add purls if components are known
3. Document risk of unscanned components
未対応のバージョン
Error: SBOM version not supported

Supported versions:
- CycloneDX: 1.4, 1.5, 1.6
- SPDX: 2.3

Convert SBOM to supported version if possible.

制約事項

  1. purl が必要:Package URL がないコンポーネントはスキャンできません
  2. JSON のみ:XML 形式は現在サポートされていません
  3. バージョン制限:対応しているのは特定の CycloneDX/SPDX バージョンのみです
  4. ネットワークが必要:脆弱性データベースを照会するには接続が必要です
  5. 特定時点の情報:SBOM は特定のバージョンを反映します。更新時には再スキャンしてください

コメント