脆弱性管理ポリシー
- プラン: Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
脆弱性管理ポリシーを使用して、検出されなくなった脆弱性を自動的に解決します。これにより、脆弱性のトリアージのワークロードを削減できます。
スキャナーがデフォルトブランチの脆弱性を検出すると、スキャナーはステータスがトリアージが必要の脆弱性レコードを作成します。脆弱性が修正された後、次のセキュリティスキャンを実行すると、スキャンによってレコードのアクティビティーログに検出されませんでしたが追加されますが、レコードのステータスは変更されません。ステータスを解決済みに変更するには、手動で、または脆弱性管理ポリシーを使用します。
脆弱性管理ポリシーを使用すると、ルールが一貫して適用されます。たとえば、デフォルトブランチで検出されなくなった脆弱性を解決済みとしてマークするポリシーを作成できますが、その対象はSASTによって検出された低リスクの脆弱性のみです。脆弱性管理ポリシーは、ステータスがトリアージが必要または確認済みの脆弱性にのみ影響します。
脆弱性管理ポリシーは、パイプラインがデフォルトブランチに対して実行されるときに適用されます。同じスキャナーによって検出されなくなり、ポリシーのルールに一致する各脆弱性について:
- 脆弱性レコードのステータスは、GitLab Security Policy Botユーザーによって解決済みに設定されます。
- ステータスの変更に関するメモが、脆弱性のレコードに追加されます。
パイプラインの負荷と時間を制限するために、パイプラインあたり最大1,000個の脆弱性がステータス解決済みに設定されます。検出されなくなった脆弱性がすべて解決済みとマークされるまで、この処理が各パイプラインで繰り返されます。
制限事項
- 各ポリシーに最大5つのルールを割り当てることができます。
- 各セキュリティポリシープロジェクトに最大5つの脆弱性管理ポリシーを割り当てることができます。
- シークレット検出スキャンにより、以前検出されたシークレットキーが検出されなくなった場合でも、その脆弱性は自動解決されません。代わりに、削除されたシークレットキーが既に公開されているため、Needs Triage(トリアージが必要)のままになります。脆弱性のステータスは、シークレットキーが失効またはローテーションされた後にのみ、手動で解決する必要があります。
脆弱性管理ポリシーを作成する
特定の基準に一致する脆弱性を自動的に解決する脆弱性管理ポリシーを作成します。
前提要件:
- デフォルトでは、グループ、サブグループ、またはプロジェクトオーナーのみが、セキュリティポリシープロジェクトを作成または割り当てるために必要な権限を持っています。これは、カスタムロールを使用して変更できます。
脆弱性管理ポリシーを作成するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > ポリシーに移動します。
- 新規ポリシーを選択します。
- 脆弱性管理ポリシーで、ポリシーの選択を選択します。
- フィールドに入力し、ポリシーのステータスを有効に設定します。
- ポリシーの作成を選択します。
- マージリクエストをレビューしてマージします。
脆弱性管理ポリシーが作成されると、ポリシールールがデフォルトブランチのパイプラインに適用されます。
脆弱性管理ポリシーを編集する
ルールを変更するには、脆弱性管理ポリシーを編集します。
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > ポリシーに移動します。
- ポリシーの行で、編集を選択します。
- ポリシーの詳細を編集します。
- 変更を保存を選択します。
- マージリクエストをレビューしてマージします。
脆弱性管理ポリシーが更新されました。次にパイプラインがデフォルトブランチに対して実行されると、ポリシーのルールが適用されます。
スキーマ
脆弱性管理ポリシーが作成または編集されると、脆弱性管理ポリシースキーマに対してチェックされ、有効であることが確認されます。