コンテンツにスキップ

Dependency-Track - 継続的 SBOM 分析 チートシート

Dependency-Track - 継続的 SBOM 分析 チートシート

Dependency-Track (OWASPフラッグシッププロジェクト)は、継続的なソフトウェア サプライチェーン リスク管理のためのプラットフォーム。その定義するアイデア:ビルド時に依存関係を一度スキャンするのではなく、プロジェクト当たりCycloneDX SBOMをアップロードし、プラットフォームは新しい脆弱性が開示されるとコンポーネントを継続的に再評価する。CVEが公開されると、何度も再構築またはスキャンすることなく、どのアプリケーションが影響を受けるコンポーネントを含むかすぐに知っている。

デプロイ

方法コマンド
Docker Composecurl -LO https://dependencytrack.org/docker-compose.yml && docker compose up -d
コンテナ (API)docker run -p 8081:8080 dependencytrack/apiserver
フロントエンドdependencytrack/frontendコンテナ (デフォルトUI 8080)
KubernetesHelm チャート利用可能
要件~4GB+ RAM; 本番用PostgreSQL

コアコンセプト

用語意味
プロジェクト追跡するアプリケーション/サービス
コンポーネントプロジェクト内の依存関係
SBOMアップロードする CycloneDX 部品表
脆弱性コンポーネントに影響するCVE/勧告
ポリシーリスクをゲートするルール (ライセンス、重大度、年齢)
ポートフォリオすべてのプロジェクト、集約

SBOM のアップロード

Syftまたはcyclonedx-*ツール機能を使用して生成し、API経由でアップロード:

# CycloneDX SBOMを生成
syft dir:. -o cyclonedx-json > bom.json

# Dependency-Trackにアップロード
curl -X POST "http://localhost:8081/api/v1/bom" \
  -H "X-Api-Key: $DT_API_KEY" \
  -F "project=$PROJECT_UUID" \
  -F "bom=@bom.json"
エンドポイント目的
POST /api/v1/bomSBOMをアップロード
GET /api/v1/projectプロジェクトをリスト表示
PUT /api/v1/projectプロジェクトを作成
GET /api/v1/vulnerability/project/{uuid}プロジェクトの脆弱性
GET /api/v1/metrics/project/{uuid}/current現在のリスクメトリクス

脆弱性インテリジェンスソース

ソース提供内容
NVDCVE データ
GitHub Advisoriesエコシステム固有の勧告
OSVOpen Source Vulnerabilities データベース
VulnDB商用 (オプション)
内部独自の勧告

プラットフォームはこれらのフィードをミラーし、スケジュールに従ってすべての保存されたコンポーネントを再分析する。

ポリシーエンジン

ポリシー条件
重大度いずれかのCRITICAL脆弱性がある場合失敗
ライセンス所有権のある製品でGPLをブロック
コンポーネント年齢N年間メンテナンスされていない依存関係にフラグ
座標特定のパッケージ/バージョンを禁止
CWE特定の弱点クラスにフラグ

ポリシーは脆弱性と一緒に表示される違反を生成し、ライセンスと衛生リスクが同じ場所で追跡される。

CI/CD統合

# パイプライン:ビルド → SBOM生成 → アップロード → ゲート
syft dir:. -o cyclonedx-json > bom.json
curl -X POST "$DT_URL/api/v1/bom" -H "X-Api-Key: $DT_API_KEY" \
  -F "project=$PROJECT_UUID" -F "bom=@bom.json"

# 分析結果をポーリングし、ポリシー違反でフェイル
統合注記
Jenkins/GitHub Actions公式プラグイン/アクション利用可能
WebhookSlack/Teams/Jiraで新しい結果を通知
VEX利用可能性の決定を記録 (影響を受けない等)

分類と VEX

アクション意味
Not Affected脆弱なコードパスに到達不可
False Positive検出は間違い
Resolvedこのプロジェクトで固定
Suppressed正当性を伴う受け入れられたリスク

これらをVEXとして記録することでノイズを減らし、監査人のために決定を文書化する。

Dependency-Track vs ポイントスキャナー

側面Dependency-TrackGrype/TrivySocket
モデル継続的 SBOM プラットフォームポイントイン タイム走査行動マルウェア検出
再評価新しい CVE で自動実行時のみ依存関係変更時
ポートフォリオビューはい (すべてのプロジェクト)スキャン単位PR単位
最適用途組織全体のサプライチェーン リスクCI走査悪意のあるパッケージ検出

SyftからSBOMをフィードし、ビルド時走査のためにGrypeと組み合わせ、悪意のあるパッケージ検出のためにSocketと組み合わせる。

リソース