Quay (Pro)

QuayコネクタはProject Quay REST APIを使用して、コンテナリポジトリを検出し、Quay組み込みのClairスキャナが生成した脆弱性レポートをインポートします。DefectDojoは各QuayリポジトリについてRecordを作成し、Syncのたびにアクティブな各タグのイメージマニフェストのClairセキュリティレポートを読み取ります。

前提条件

Quayインスタンスでセキュリティスキャン(Clair)が有効になっている必要があり、QuayのOAuth 2アクセストークンが必要です:

  • Quayで、Organizationを作成(または開き)、Applications に移動し、OAuthアプリケーションを作成し、少なくともRead repositoriesスコープで Generate Token を実行します。DefectDojo専用のアプリケーションを作成することをお勧めします。
  • トークンはすべてのリクエストでBearerトークンとして送信され、ログに記録されることはありません。

Connector Mappings

  1. Location フィールドにQuayのベースURLを入力します。例: https://quay.io またはセルフホストの https://quay.example.com。URLはHTTPSである必要があり、末尾にAPIパスを含めないでください — DefectDojoがAPIパスを自動的に構築します。
  2. Secret フィールドにOAuthアクセストークンを入力します。
  3. 必要に応じて Namespace を設定し、検出範囲を単一のQuay組織またはユーザーに限定します。空欄のままにすると、トークンが読み取れるすべてのリポジトリが検出されます。
  4. 必要に応じて、インポートする検出事項を絞り込むために Minimum Severity を設定します。

DefectDojoは各QuayリポジトリをRecordにマッピングします。各リポジトリについてアクティブなタグを列挙し、それらを一意のイメージマニフェストへと重複排除した上で(複数のタグで共有されるマニフェストは1回だけスキャンされます)、各マニフェストのClairレポートを読み取ります。Clairがまだスキャンを完了していないマニフェスト(例えばマルチアーキテクチャのマニフェストリストや、まだキュー中のイメージ)は、後のSyncまでスキップされます。各Clairの脆弱性は検出事項になります — 影響を受けるパッケージがコンポーネントとなり、修正バージョンが緩和策となり、ClairのNegligible/Unknownの深刻度はInformationalとして記録されます。

詳細については、Project Quay APIドキュメントおよびClairドキュメントを参照してください。