コンテンツにスキップ
Zenn Dev Canly Articles 61c621c7393dd4

SBOM × Claude Code で、脆弱性対応を「開発者の日常業務」に溶け込ませた話

  • URL: https://zenn.dev/canly/articles/61c621c7393dd4
  • 日付: 2026-06-25
  • Tier: Tier 3
  • 要旨: 複数プロダクトの脆弱性を SBOM(Software Bill of Materials)×grype/xeol で一元検出し、SRE・開発者それぞれに最適な形で届ける2出口システム。トリアージガイド(Severity/Exploitability/Context/Cost の4観点)を人間用ドキュメント+Claude Code の手順書として兼用、重大度+悪用可能性(EPSS)の AND 絞り込みで脆弱性 issue を起票。リポジトリ SBOM と本番コンテナ SBOM を分離、devDependencies の無駄な工数を除外。GitHub Projects ダッシュボードで SRE が対応ステータス・Product・Severity をグルーピング・絞り込み、開発者はコンポーネント×リポジトリ粒度の issue を普段の GitHub から自然に拾う。非同期ワークフロー化で Enabling MTG 依存を解消、進捗管理から同期コミュニケーションを廃止。対応方針(アップデート/WAF/リスク受容)と Fixed In(won’t fix 識別含む)の Custom Field で意思決定の監査可能化。product/owner 単位での GitHub Actions スキャン実行、enable-vuln-fix フラグで段階的適用。

詳細

脆弱性管理の3フェーズ進化:①人がたまたま気づく(検知運任せ)→②Notion レポート×Enabling MTG の同期共有(進捗トラッキング課題)→③ダッシュボード×issue で非同期追跡。基盤は既存の SBOM 生成(aqua/syft/grype/xeol ツールチェーン)で、新規は検出結果の出口を2つに分岐。SRE 観点:ダッシュボード一覧で「未対応のグルーピング、Product スライス絞り込み、Severity ソート」で、巡回・問い合わせなしに全社の状態を一目で把握。開発者観点:自分のリポジトリの issue として届き、通常のスプリント業務と同じ土俵でタスク化。トリアージガイド(4観点の明文化)の活用で Claude Code が CVE/NVD/GitHub Advisories から追加調査・整形・起票まで実行可能(人間は最終判断を保持)。コンテナレベルの SBOM で本番関連性を判定、リポジトリレベルは開発環境専用除外。issue 粒度(コンポーネント×リポジトリ)でアクション単位と一致させ、複数 CVE は1 issue に一覧。初回起票時に解決手順・互換性リスク・代替案を先読み情報として埋め込み。運用改善は PR レビュー可能な形でガイド変更として履歴化、口頭要望ベースから脱却。