メインコンテンツまでスキップ

Black Duck DetectのPoC準備:構成・通信・確認項目

文書番号:2605.00010

この記事の位置づけ​

この記事は、SBOM PoCの始め方 から、Black DuckとSynopsys Detectに関する製品固有の確認事項を切り出したメモなのだ。

PoCの目的、対象選定、評価観点は元記事で扱うのだ。ここでは、Black Duck/Synopsys Detectを使う場合の構成、通信、実行前提を整理するのだ。

用語​

用語意味
SBOMソフトウェア構成部品の一覧。SPDXやCycloneDXなどで表現される
SCAOSS依存関係、脆弱性、ライセンスを解析する行為またはツール領域
Black DuckSCAを実施し、結果管理、可視化、ポリシー評価を行う製品
Synopsys DetectBlack Duckへ解析結果を送るCLIツール。リポジトリ上で実行する
Black Duckサーバー解析結果を受け取り、管理するBlack Duck環境

Synopsys Detectは、Black Duckへ解析結果を送信するCLIツールとして公開されているのだ。1

構成の考え方​

PoCで整理すべき構成要素は次の通りなのだ。

構成要素確認すること
実行端末またはCIDetectをどこで実行するか
対象コードGit、SVN、TFVC、チェックアウト済みコード、成果物
Black DuckサーバーSaaSか自前構築か、URL、証明書、APIトークン
ネットワーク実行元からBlack DuckへHTTPS到達できるか
認証情報APIトークンの保管、権限、期限
出力SBOM、脆弱性、ライセンス、ポリシー違反
証跡実行ログ、結果ID、スキャン対象、実行時刻

自前構築時の通信​

Black DuckサーバーをAWSなどに自前構築する場合、少なくとも次の通信を確認するのだ。

通信用途確認点
開発端末/CI -> Black Duckサーバー解析結果アップロード、API参照HTTPS到達性、証明書信頼、APIトークン
Black Duckサーバー -> 更新元ナレッジベースやシグネチャ更新インターネット疎通、Proxy、DNS
運用者 -> Black Duck UI結果確認、ポリシー確認SSO、管理者権限、監査ログ

製品バージョンにより構成要素や要件は変わるため、実装時は対象バージョンの公式インストールガイドを正とするのだ。

実行対象​

Detectは、チェックアウト済みのコードや成果物を解析対象にできるのだ。PoCでは、リポジトリ方式そのものより、解析時点で対象ファイルが実行環境に揃っているかを確認するのだ。解析対象が欠けると、検出漏れをツール精度の問題と誤認しやすいためなのだ。

対象確認すること
ソースコード依存関係ファイル、lock file、ビルド定義があるか
バイナリ成果物解析が必要か
コンテナイメージイメージスキャンを対象に含めるか
private dependency社内registry、認証、到達性
モノレポプロジェクト分割、除外設定、スキャン時間

実行前チェック​

PoC実行前に次を確認するのだ。

項目確認内容
APIトークンPoC用に発行し、必要最小権限にする
証明書実行元がBlack Duckサーバー証明書を信頼できる
ProxyCIや開発端末から外部通信できる
除外設定node_modules、build成果物、不要ディレクトリを除外する
private registry認証情報と取得経路を確認する
ログDetect実行ログを保管する
撤収PoC後にトークン、権限、テスト設定を削除する

PoCで見るべき結果​

Black Duck/Synopsys DetectのPoCでは、次を確認するのだ。

観点見ること
検出範囲直接依存、間接依存、private dependency
脆弱性既知CVE、重大度、修正候補、誤検知
ライセンスライセンス種別、複数ライセンス、未判定
ポリシー社内基準に照らした違反判定
性能実行時間、対象サイズ、CIへの影響
再現性複数回実行して結果が安定するか

運用上の注意​

Detectを実行できるだけでは、運用に乗ったとは言えないのだ。

  • APIトークンを個人端末に固定しないのだ。
  • CIへ組み込む前に、失敗時にビルドを止める条件を決めるのだ。
  • 誤検知や例外の承認フローを決めるのだ。
  • 脆弱性の修正責任者と期限をチケットへ接続するのだ。
  • ライセンス確認は法務または所管部門の判断へつなげるのだ。
  • PoC用設定を本番運用へ持ち越す場合は、権限と証跡を見直すのだ。

参考資料(出典)​

準備を終えたと判断する条件​

この文書は製品別のPoC準備チェックであり、未実施のスキャン結果を補った実装記録ではないのだ。Detectとサーバーの版、対象コードの版、入力からの除外、期待する依存関係、検出結果ID、再実行結果を記録できる状態を準備完了とするのだ。共通の評価設計はSBOM PoCの始め方を参照するのだ。

Footnotes​

  1. GitHub, blackducksoftware/detect。Synopsys Detect CLIの公式リポジトリ。 https://github.com/blackducksoftware/detect ↩