継続的依存関係スキャン
- プラン: Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
依存関係スキャンのための継続的脆弱性スキャン(CVS)は、新しいパイプラインの実行を必要とせずに、プロジェクトの依存関係にある脆弱性を、最新のセキュリティアドバイザリーの情報とコンポーネント名およびバージョンを比較することで検索します。パイプラインは、CycloneDX SBOMを介してプロジェクトのコンポーネントを登録するために、デフォルトブランチで少なくとも1回実行される必要があります。その後、CVSは、アドバイザリーが公開されると、それ以上のパイプライン実行なしに、依存関係が変更されるまで実行されます。
新しい脆弱性が発生するのは、継続的脆弱性スキャンがサポートされているパッケージタイプを持つコンポーネントを含むすべてのプロジェクトでスキャンをトリガーする場合です。
依存関係スキャンのための継続的脆弱性スキャンによって作成された脆弱性は、GitLab SBoM Vulnerability Scannerをスキャナー名として、Dependency Scanningを脆弱性タイプとして使用します。
CI/CDベースのセキュリティスキャンとは対照的に、継続的脆弱性スキャンは、CI/CDパイプラインではなくバックグラウンドジョブ(Sidekiq)を通じて実行され、セキュリティレポートアーティファクトは生成されません。
前提条件
- CycloneDX SBOMレポート。
- GitLabインスタンスに同期されたセキュリティアドバイザリー。
サポートされているパッケージタイプ
継続的脆弱性スキャンは、依存関係スキャンのために、以下のPURLタイプを持つコンポーネントをサポートしています:
cargoconangomavennpmnugetpackagistpubpypirubygemswift
Go疑似バージョンはサポートされていません。Go疑似バージョンを参照するプロジェクトの依存関係は、誤検出につながる可能性があるため、影響を受けるとはみなされません。
CycloneDX SBOMレポートを生成する方法
CycloneDX SBOMレポートを使用して、プロジェクトのコンポーネントをGitLabに登録します。
CycloneDXレポートは以下に準拠する必要があります:
- CycloneDX仕様バージョン
1.4、1.5、または1.6。 - GitLab CycloneDXの依存関係スキャン用プロパティ分類。
GitLabは、GitLabと互換性のあるレポートを生成できるセキュリティアナライザーを提供しています:
新しい脆弱性の確認
継続的脆弱性スキャンによって検出された新しい脆弱性は、脆弱性レポートで確認できます。しかし、それらは影響を受けたSBOMコンポーネントが検出されたパイプラインにはリストされません。
セキュリティアドバイザリーが追加または更新された後に脆弱性が作成されますが、コードベースが変更されていない限り、対応する脆弱性がプロジェクトに追加されるまでに数時間かかる場合があります。過去14日以内に公開されたアドバイザリーのみが、継続的脆弱性スキャンの対象となります。
脆弱性が検出されなくなった場合
継続的脆弱性スキャンは、新しいアドバイザリーが公開されると自動的に脆弱性を作成しますが、プロジェクトに脆弱性が存在しなくなった時期を判断することはできません。そのためには、GitLabでは引き続き、デフォルトブランチのパイプラインで依存関係スキャンが実行され、最新の情報を含む対応するセキュリティレポートアーティファクトが生成される必要があります。これらのレポートが処理され、特定の脆弱性を含まなくなった場合、それらは継続的脆弱性スキャンによって作成されたものであっても、そのようにフラグが付けられます。
セキュリティアドバイザリー
継続的脆弱性スキャンは、GitLabによって管理されるサービスであるパッケージメタデータデータベースを使用します。このデータベースは、ライセンスとセキュリティアドバイザリーデータを集約し、GitLab.comおよびGitLab Self-Managedインスタンスで使用される更新を定期的に公開します。
GitLab.comでは、同期はGitLabによって管理され、すべてのプロジェクトで利用可能です。
GitLab Self-Managedでは、GitLabインスタンスの管理者エリアでパッケージレジストリメタデータを同期するように選択できます。
データソース
セキュリティアドバイザリーの現在のデータソースには以下が含まれます:
- GitLabアドバイザリーデータベース(
gemnasium-dbリポジトリでホストされています。これはレガシー名です。)
脆弱性データベースにコントリビュートする
脆弱性を検索するには、GitLab advisory databaseを検索します。新しい脆弱性を送信することもできます。