脆弱性レポーター

脆弱性レポートは、デフォルトブランチのスキャンから得られた脆弱性に関する情報を提供します。パイプラインが成功したかどうかに関係なく、成功したすべてのジョブの累積結果が含まれます。パイプラインからのスキャン結果は、パイプライン内のすべてのジョブが完了した後にのみ取り込まれます。

このレポートは、プロジェクト、グループ、セキュリティセンターで適切なロールを持つユーザーが利用できます。

すべてのレベルで、脆弱性レポートには以下の内容が含まれます:

  • 深刻度レベルごとの脆弱性の合計。
  • 共通脆弱性属性のフィルタ。
  • 各脆弱性の詳細を表形式で表示します。

概要については、脆弱性管理を参照してください。

アクティビティ」列には、その行の脆弱性に対して行われたアクティビティ(もしあれば)を示すアイコンが含まれています:

  • イシュー{issues}:脆弱性に対して作成されたイシューへのリンクです。詳細については、脆弱性に対するイシューの作成を参照してください。
  • レンチ:脆弱性が修正されました。
  • 誤検出{false-positive}:スキャナはこの脆弱性を誤検出と判断しました。

脆弱性に対して作成されたイシューを開くには、アクティビティエントリにカーソルを合わせ、リンクを選択してください。課題アイコン({issues}) は課題のステータスを示します。Jira issue サポートが有効になっている場合、アクティビティエントリにある issue リンクは Jira の issue にリンクします。GitLab 課題とは異なり、Jira 課題のステータスは GitLab UI には表示されません。

Example project-level Vulnerability Report

プロジェクトレベルの脆弱性レポート

GitLab 11.1で導入されました

プロジェクトレベルでは、脆弱性レポートにもコンテナが含まれます:

  • 最新のパイプラインへのリンクを含む、更新日時を示すタイムスタンプ。
  • 最新のパイプラインで発生した失敗の数。失敗通知を選択すると、パイプラインのページの [失敗したジョブ] タブが表示されます。

脆弱性が複数プロジェクトのパイプライン設定に起因する場合、このページには選択したプロジェクトに起因する脆弱性が表示されます。

プロジェクトレベルの脆弱性レポートの表示

プロジェクトレベルの脆弱性レポートを表示するには、以下の手順に従います:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. セキュリティ > 脆弱性レポーターを選択します。

脆弱性レポートのアクション

脆弱性レポートでは以下のことが可能です:

脆弱性レポートフィルタ

脆弱性レポートをフィルタリングして、特定の条件に一致する脆弱性だけに焦点を絞ることができます。

使用可能なフィルタは次のとおりです:

フィルタの条件は、すべての条件に一致する脆弱性だけを表示するように組み合わされます。この動作の例外はアクティビティフィルタです。動作の詳細については、アクティビティフィルタを参照してください。

脆弱性リストのフィルタリング

脆弱性リストをフィルタリングします:

  1. フィルタを選択します。
  2. ドロップダウンリストから値を選択します。
  3. 希望するフィルタごとに上記の手順を繰り返します。

各フィルターが選択されたら

  • 一致する脆弱性のリストが更新されます。
  • 脆弱性の深刻度の合計が更新されます。

ツールフィルタ

サードパーティツールフィルターはGitLab 13.12で導入されました。

ツールフィルタでは、選択したツールによって検出された脆弱性に焦点を当てることができます。

ツールフィルタを使用する場合、以下を選択できます:

  • すべてのツール(デフォルト)。
  • GitLabが提供する個別のツール。
  • 統合されたサードパーティツール。

利用可能な各ツールの詳細については、セキュリティスキャンツールを参照してください。

プロジェクトフィルター

プロジェクト] フィルタの内容は、現在のレベルによって異なります:

  • セキュリティセンター個人のセキュリティセンターに追加したプロジェクトのみ。
  • グループレベル:グループ内のすべてのプロジェクト。
  • プロジェクト・レベル:該当なし。

アクティビティフィルター

GitLab 13.9 で導入されました

アクティビティフィルタは他のフィルタとは異なる動作をします。選択された値は相互に排他的なセットを形成し、目的の脆弱性レコードを正確に見つけることができます。さらに、すべてのオプションを組み合わせて選択することはできません。

アクティビティ フィルタ使用時の選択動作:

  • すべて: 任意のアクティビティ状態の脆弱性(このフィルタを無視するのと同じ)。これを選択すると、他のアクティビティフィルタオプションの選択が解除されます。
  • アクティビティなし:関連するイシューがない、または検出されなくなった脆弱性のみ。これを選択すると、他のアクティビティフィルタオプションの選択が解除されます。
  • イシューあり:関連するイシューが 1 つ以上ある脆弱性のみ。検出されなくなった脆弱性は含まれません。
  • 検出されなくなった脆弱性default ブランチの最新のパイプラインスキャンで検出されなくなった脆弱性のみ。関連するイシューが 1 つ以上ある脆弱性は含まれません。
  • イシューがあり、かつ検出されなくなった脆弱性:関連するイシューが 1 つ以上あり、default ブランチの最新のパイプラインスキャンでも検出されなくなった脆弱性のみ。

脆弱性の詳細を見る

脆弱性の詳細を表示するには、脆弱性の説明を選択してください。脆弱性の詳細ページが開きます。

脆弱性のソースの場所を表示

GitLab 13.10で導入されました

セキュリティスキャナの中には、脆弱性の可能性のあるファイル名と行番号を出力するものがあります。この情報が利用可能な場合、脆弱性の詳細には、デフォルトブランチにある関連ファイルへのリンクが含まれます。

関連ファイルを表示するには、脆弱性の詳細でファイル名を選択してください。

脆弱性のステータスの変更

  • GitLab 13.10で導入され、全てのステータスが選択可能になりました。
  • GitLab 16.0で導入された、コメントと却下理由の提供。

脆弱性レポートから、1つ以上の脆弱性のステータスを変更することができます。

テーブル内の脆弱性のステータスを変更するには、以下の手順に従います:

  1. ステータスを更新したい脆弱性の横にあるチェックボックスを選択します。すべてを選択するには、表のヘッダのチェックボックスを選択します。
  2. ステータスの設定] ドロップダウン リストで、必要なステータスを選択します。
  3. 解雇」ステータスを選択した場合は、「解雇理由を設定」ドロップダウンリストで希望する理由を選択します。
  4. コメントを追加する]では、コメントを入力できます。解雇」ステータスの場合、コメントは必須です。
  5. ステータスの変更]を選択します。

Project Vulnerability Report

脆弱性を検出した日付で並べ替え

デフォルトでは、脆弱性は深刻度順にソートされ、深刻度が最も高い脆弱性が一番上に表示されます。

各脆弱性が検出された日付順に並べ替えるには、「Detected」列のヘッダを選択します。

脆弱性の詳細のエクスポート

  • GitLab 13.0のセキュリティセンター(以前はインスタンスセキュリティダッシュボード)とプロジェクトレベルの脆弱性レポート(以前はプロジェクトセキュリティダッシュボード)に導入されました
  • GitLab 13.1のグループレベルの脆弱性レポートに導入

脆弱性レポートに記載された脆弱性の詳細をエクスポートすることができます。エクスポート形式はCSV(カンマ区切り値)です。エクスポートにはフィルタが適用されないため、すべての脆弱性が含まれます。

含まれるフィールドは次のとおりです:

  • グループ名
  • プロジェクト名
  • スキャナタイプ
  • スキャナ名
  • ステータス
  • 脆弱性
  • 基本詳細
  • 追加情報
  • 深刻度
  • CVE(共通脆弱性と暴露)
  • CWE(Common Weakness Enumeration:共通脆弱性列挙)
  • その他の識別子
  • 検出場所
  • 設置場所
  • アクティビティ脆弱性がデフォルトのブランチで解決されている場合はtrue を、解決されていない場合はfalse を返します。
  • コメント
note
完全な詳細はアーティファクト API を通して入手可能です。脆弱性が検出されたファイルのパスなどを取得するために、*artifact_path の代わりにgl-*-report.json レポートのファイル名のいずれかを使用してください。

CSV 形式で詳細をエクスポート

脆弱性レポートにリストされたすべての脆弱性の詳細をエクスポートするには、[エクスポート] を選択します。

データベースから詳細が取得され、CSV ファイルがローカル コンピュータにダウンロードされます。

note
プロジェクトに何千もの脆弱性が含まれている場合、ダウンロードが開始されるまで数分かかることがあります。ダウンロードが終了するまで、ページを閉じないでください。

脆弱性の削除

GitLab 12.0では、解任理由を追加するオプションが導入されました。

脆弱性を評価し、それ以上のアクションが必要ないと判断した場合、その脆弱性を却下としてマークすることができます。却下された脆弱性は、今後のスキャンで検出されてもマージリクエストセキュリティウィジェットに表示されません。

プロジェクトまたはグループで脆弱性が却下されると、記録が作成されます:

  • 誰が却下したか
  • 解任された日時
  • オプションで、解任された理由。

脆弱性の記録は削除できないので、永久的な記録が常に残ります。

プロジェクトやグループで脆弱性を却下することができます:

  1. セキュリティダッシュボードで脆弱性を選択します。
  2. 右上の [ステータス] ドロップダウン リストで [却下] を選択します。
  3. オプションです。解任の理由を追加し、「コメントを保存」を選択します。

このアクションを取り消すには、同じメニューから別のステータスを選択します。

脆弱性発見の手動追加

プロジェクトレベルの脆弱性レポートページから新しい脆弱性発見を追加するには:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. セキュリティ > 脆弱性レポーターを選択します。
  3. 脆弱性の送信を選択します。
  4. フィールドに入力し、フォームを送信します。

新しく作成された脆弱性の詳細ページが表示されます。手動で作成したレコードは、グループ、プロジェクト、およびセキュリティセンターの脆弱性レポートに表示されます。フィルタするには、汎用ツールフィルタを使用します。

オペレーション脆弱性

GitLab 14.6で導入されました

オペレーショナル脆弱性タブは、オペレーショナルコンテナスキャンによって発見された脆弱性を一覧表示します。このタブは、プロジェクト、グループ、セキュリティセンターの脆弱性レポートに表示されます。

Operational Vulnerability Tab