index.md 10.3 KB
Newer Older
1 2
---
type: reference, howto
3 4 5
stage: Secure
group: Threat Insights
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
6 7
---

8
# GitLab Security Dashboard **(ULTIMATE)**
9 10

The Security Dashboard is a good place to get an overview of all the security
11
vulnerabilities in your groups, projects, and pipelines.
12

13 14 15
You can also drill down into a vulnerability and get extra information. This includes the project it
comes from, any related file(s), and metadata that helps you analyze the risk it poses. You can also
dismiss a vulnerability or create an issue for it.
16 17

To benefit from the Security Dashboard you must first configure one of the
18
[security scanners](../index.md).
19 20 21

## Supported reports

22
The Security Dashboard displays vulnerabilities detected by scanners such as:
23 24

- [Container Scanning](../container_scanning/index.md)
25
- [Dynamic Application Security Testing](../dast/index.md)
26
- [Dependency Scanning](../dependency_scanning/index.md)
27
- [Static Application Security Testing](../sast/index.md)
28
- And others!
29 30 31

## Requirements

32
To use the instance, group, project, or pipeline security dashboard:
33 34 35

1. At least one project inside a group must be configured with at least one of
   the [supported reports](#supported-reports).
36
1. The configured jobs must use the [new `reports` syntax](../../../ci/pipelines/job_artifacts.md#artifactsreports).
37
1. [GitLab Runner](https://docs.gitlab.com/runner/) 11.5 or newer must be used.
38 39
   If you're using the shared Runners on GitLab.com, this is already the case.

40
## Pipeline Security
41

42
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13496) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.3.
43

44
At the pipeline level, the Security section displays the vulnerabilities present in the branch of the project the pipeline was run against.
45

46
![Pipeline Security Dashboard](img/pipeline_security_dashboard_v13_3.png)
47

48 49 50
Visit the page for any pipeline that ran any of the [supported reports](#supported-reports). To view
the pipeline's security findings, select the **Security** tab when viewing the pipeline.

51 52 53
NOTE: **Note:**
A pipeline consists of multiple jobs, including SAST and DAST scanning. If any job fails to finish for any reason, the security dashboard will not show SAST scanner output. For example, if the SAST job finishes but the DAST job fails, the security dashboard will not show SAST results. The analyzer will output an [exit code](../../../development/integrations/secure.md#exit-code) on failure.

54 55
## Project Security Dashboard

56
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/6165) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.1.
57

58 59
At the project level, the Security Dashboard displays the vulnerabilities merged into your project's
[default branch](../../project/repository/branches/index.md#default-branch). Access it by navigating
60 61
to **Security & Compliance > Security Dashboard**. By default, the Security Dashboard displays all
detected and confirmed vulnerabilities.
62

63
The Security Dashboard first displays the total number of vulnerabilities by severity (for example,
64
Critical, High, Medium, Low, Info, Unknown). Below this, a table shows each vulnerability's status, severity,
65 66
and description. Clicking a vulnerability takes you to its [Vulnerability Details](../vulnerabilities)
page to view more information about that vulnerability.
67

68 69 70
![Project Security Dashboard](img/project_security_dashboard_v13_3.png)

You can filter the vulnerabilities by one or more of the following:
71

72 73
- Status
- Severity
74
- Scanner
75

76
You can also dismiss vulnerabilities in the table:
77

78 79
1. Select the checkbox for each vulnerability you want to dismiss.
1. In the menu that appears, select the reason for dismissal and click **Dismiss Selected**.
80

81
![Project Security Dashboard](img/project_security_dashboard_v13_2.png)
82

83 84
## Group Security Dashboard

85
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/6709) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 11.5.
86

87 88
The group Security Dashboard gives an overview of the vulnerabilities in the default branches of the
projects in a group and its subgroups. Access it by navigating to **Security > Security Dashboard**
89 90
for your group. By default, the Security Dashboard displays all detected and confirmed
vulnerabilities.
91 92 93 94

NOTE: **Note:**
The Security Dashboard only shows projects with [security reports](#supported-reports) enabled in a
group.
95

96
![Dashboard with action buttons and metrics](img/group_security_dashboard_v13_3.png)
97

98
There is a timeline chart that shows how many open
99 100 101 102
vulnerabilities your projects had at various points in time. You can filter among 30, 60, and
90 days, with the default being 90. Hover over the chart to get more details about
the open vulnerabilities at a specific time.

103
Next to the timeline chart is a list of projects, grouped and sorted by the severity of the vulnerability found:
104 105 106 107 108 109 110 111 112 113

- F: 1 or more "critical"
- D: 1 or more "high" or "unknown"
- C: 1 or more "medium"
- B: 1 or more "low"
- A: 0 vulnerabilities

Projects with no vulnerability tests configured will not appear in the list. Additionally, dismissed
vulnerabilities are not included either.

114
Navigate to the group's [Vulnerability Report](#vulnerability-list) to view the vulnerabilities found.
115

116 117
## Instance Security Dashboard

118
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/6953) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.8.
119

120 121 122 123
At the instance level, the Security Dashboard displays the vulnerabilities present in the default
branches of all the projects you configure to display on the dashboard. It includes all the
[group Security Dashboard's](#group-security-dashboard)
features.
124 125 126 127 128 129 130 131 132 133

You can access the Instance Security Dashboard from the menu
bar at the top of the page. Under **More**, select **Security**.

![Instance Security Dashboard navigation link](img/instance_security_dashboard_link_v12_4.png)

### Adding projects to the dashboard

To add projects to the dashboard:

134
1. Click **Settings** in the left navigation bar.
135 136 137
1. Search for and add one or more projects using the **Search your projects** field.
1. Click the **Add projects** button.

138
After you add projects, the Security Dashboard displays the vulnerabilities found in those projects'
139
default branches.
140

141
![Uninitialized Instance Security Dashboard](img/instance_security_dashboard_empty_v13_3.png)
142

143
## Export vulnerabilities
144

145
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/213014) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.10.
146

147 148
You can export all your vulnerabilities in CSV format by clicking the **{upload}** **Export**
button located at top right of the **Security Dashboard**. After the report
149
is built, the CSV report downloads to your local machine. The report contains all
150
vulnerabilities for the projects defined in the **Security Dashboard**,
151 152 153 154 155 156
as filters don't apply to the export function.

NOTE: **Note:**
It may take several minutes for the download to start if your project contains
thousands of vulnerabilities. Do not close the page until the download finishes.

157 158 159 160 161 162 163 164 165 166 167
## Keeping the dashboards up to date

The Security Dashboard displays information from the results of the most recent
security scan on the [default branch](../../project/repository/branches/index.md#default-branch),
which means that security scans are performed every time the branch is updated.

If the default branch is updated infrequently, scans are run infrequently and the
information on the Security Dashboard can become outdated as new vulnerabilities
are discovered.

To ensure the information on the Security Dashboard is regularly updated,
168
[configure a scheduled pipeline](../../../ci/pipelines/schedules.md) to run a
169 170 171 172 173
daily security scan. This will update the information displayed on the Security
Dashboard regardless of how often the default branch is updated.

That way, reports are created even if no code change happens.

174 175 176 177 178 179 180 181
CAUTION: **Warning:**
Running Dependency Scanning from a scheduled pipeline might result in false negatives if your
project doesn't have a lock file and isn't configured for Continuous Delivery. A lock file is a file
that lists all transient dependencies and keeps track of their exact versions. The false negative
can occur because the dependency version resolved during the scan might differ from the ones
resolved when your project was built and released, in a previous pipeline. Java projects can't have
lock files. Python projects can have lock files, but GitLab Secure tools don't support them.

182 183 184
## Security scans using Auto DevOps

When using [Auto DevOps](../../../topics/autodevops/index.md), use
185
[special environment variables](../../../topics/autodevops/customize.md#environment-variables)
186
to configure daily security scans.
187

188 189
## Vulnerability list

190 191
Each dashboard's vulnerability list contains vulnerabilities from the latest scans that were merged
into the default branch.
192 193 194 195 196 197 198 199 200 201 202 203 204

![Vulnerability Report](img/group_vulnerability_report_v13_3.png)

You can filter which vulnerabilities the Security Dashboard displays by:

- Status
- Severity
- Scanner
- Project

Clicking any vulnerability in the table takes you to its
[Vulnerability Details](../vulnerabilities) page to see more information on that vulnerability.
To create an issue associated with the vulnerability, click the **Create Issue** button.
205

206
![Create an issue for the vulnerability](img/vulnerability_page_v13_1.png)
207 208 209 210 211 212

Once you create the issue, the vulnerability list contains a link to the issue and an icon whose
color indicates the issue's status (green for open issues, blue for closed issues).

![Display attached issues](img/vulnerability_list_table_v13_1.png)

213 214 215 216 217 218 219 220 221 222 223
<!-- ## Troubleshooting

Include any troubleshooting steps that you can foresee. If you know beforehand what issues
one might have when setting this up, or when something is changed, or on upgrading, it's
important to describe those, too. Think of things that may go wrong and include them here.
This is important to minimize requests for support, and to avoid doc comments with
questions that you know someone might ask.

Each scenario can be a third-level heading, e.g. `### Getting error message X`.
If you have none to add when creating a doc, leave this section in place
but commented out to help encourage others to add to it in the future. -->
224 225

Read more on how to [interact with the vulnerabilities](../index.md#interacting-with-the-vulnerabilities).