継続的な脆弱性スキャン
- プラン: Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
継続的脆弱性スキャンは、プロジェクトの依存関係にあるセキュリティ脆弱性を、最新のセキュリティアドバイザリーの情報とコンポーネント名およびバージョンを比較することによって検索します。
継続的脆弱性スキャンが、サポートされているパッケージタイプのコンポーネントを含むすべてのプロジェクトでスキャンをトリガーすると、新しい脆弱性が発生する可能性があります。
継続的脆弱性スキャンによって作成された脆弱性は、GitLab SBoM Vulnerability Scannerをスキャナー名として使用します。
CIベースのセキュリティスキャンとは対照的に、継続的脆弱性スキャンは、CIパイプラインではなく、バックグラウンドジョブ(Sidekiq)を通じて実行され、セキュリティレポートアーティファクトは生成されません。
前提要件
- 継続的脆弱性スキャンでサポートされている依存関係があるプロジェクト。CycloneDX SBOMレポートを生成する方法を参照してください。
- セキュリティアドバイザリーがGitLabインスタンスに同期されました。
サポートされているパッケージタイプ
継続的な脆弱性スキャンは、次のPURLタイプのコンポーネントをサポートしています:
apkcargoconandebgomavennpmnugetpackagistpubpypirpmrubygemswift
Goの疑似バージョンはサポートされていません。Goの疑似バージョンを参照するプロジェクトの依存関係は、誤検出につながる可能性があるため、影響を受けているとは見なされません。
^を含むRPMバージョンはサポートされていません。これらのバージョンをサポートする作業は、イシュー459969で追跡されます。先頭にゼロを含むAPKバージョンはサポートされていません。これらのバージョンをサポートする作業は、イシュー471509で追跡されます。
Red HatディストリビューションのRPMパッケージはサポートされていません。このユースケースをサポートする作業は、エピック12980で追跡されます。
CycloneDX SBOMレポートを生成する方法
CycloneDX SBOM レポートを使用して、プロジェクトのコンポーネントをGitLabに登録します。
GitLabは、GitLabと互換性のあるレポートを生成できるセキュリティアナライザーを提供しています:
新しい脆弱性のチェック
継続的な脆弱性スキャンによって検出された新しい脆弱性は、脆弱性レポートに表示されます。ただし、影響を受けるSBOMコンポーネントが検出されたパイプラインにはリストされていません。
脆弱性は、次のシナリオに従って作成されます:
セキュリティアドバイザリーが追加または更新された後、コードベースが変更されていない場合、対応する脆弱性がプロジェクトに追加されるまでに数時間かかることがあります。継続的な脆弱性スキャンでは、過去14日以内に公開されたアドバイザリーのみが考慮されます。
既存のセキュリティアドバイザリーの場合、新しいコンポーネントが検出され、次のいずれかの条件に該当する場合only(のみ)脆弱性が作成されます:
脆弱性が検出されなくなった場合
継続的脆弱性スキャンは、新しいアドバイザリーが公開されると脆弱性を自動的に作成しますが、プロジェクトに脆弱性が存在しなくなったことを通知することはできません。これを行うために、GitLabは、コンテナスキャンまたは依存関係スキャンスキャンがデフォルトブランチのパイプラインで実行され、最新の情報で生成された対応するセキュリティレポートアーティファクトを持つことを引き続き要求します。これらのレポートが処理され、一部の脆弱性が含まれなくなった場合、継続的な脆弱性スキャンによって作成された場合でも、これらはそのようにフラグが設定されます。この動作は、イシュー441490で17.1で導入され、GitLabによって管理されるスキャナー(Trivy、gemnasium、gemnasium-python、gemnasium-maven)に適用されます。
セキュリティアドバイザリー
継続的脆弱性スキャンは、パッケージメタデータデータベースを使用します。これは、GitLabが管理するサービスであり、ライセンスとセキュリティアドバイザリーデータを集約し、GitLab.comおよびGitLab Self-Managedインスタンスで使用される更新プログラムを定期的に公開します。
GitLab.comでは、同期はGitLabによって管理され、すべてのプロジェクトで利用できます。
GitLab Self-Managedでは、GitLabインスタンスの管理者エリアで同期するパッケージレジストリメタデータを選択できます。
データソース
セキュリティアドバイザリーの現在のデータソースは次のとおりです:
脆弱性データベースにコントリビュートする
脆弱性を検索するには、GitLab advisory databaseを検索します。新しい脆弱性を送信することもできます。