Skip to content

Commit 94a7356

Browse files
dhi: add scanner integration (#23952)
<!--Delete sections as needed --> ## Description Added topic about scanner integrations and moved conceptual info from how to scan to that topic. Refreshed how to scan and vex core concept topics. Added wiz scan. - https://deploy-preview-23952--docsdocker.netlify.app/dhi/explore/scanner-integrations/ - https://deploy-preview-23952--docsdocker.netlify.app/dhi/how-to/scan/ - https://deploy-preview-23952--docsdocker.netlify.app/dhi/core-concepts/vex/ ## Related issues or tickets ENGDOCS-3137 ## Reviews <!-- Notes for reviewers here --> <!-- List applicable reviews (optionally @tag reviewers) --> - [ ] Editorial review - [ ] Product review --------- Signed-off-by: Craig Osterhout <craig.osterhout@docker.com>
1 parent 677f1f0 commit 94a7356

5 files changed

Lines changed: 268 additions & 145 deletions

File tree

_vale/config/vocabularies/Docker/accept.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Anchore
1010
Apple
1111
Artifactory
1212
armhf
13+
[Aa]uditability
1314
auditable
1415
autolock
1516
Azure
@@ -41,6 +42,7 @@ containerd
4142
Couchbase
4243
CouchDB
4344
Crowdstrike
45+
[Cc]ybersecurity
4446
datacenter
4547
Datadog
4648
Ddosify
@@ -76,7 +78,7 @@ Entra
7678
EPERM
7779
ESXi
7880
Ethernet
79-
exploitability
81+
[Ee]xploitability
8082
[Ff]ailover
8183
Fargate
8284
Fedora

content/manuals/dhi/core-concepts/vex.md

Lines changed: 39 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,35 @@ keywords: vex container security, vulnerability exploitability, filter false pos
77

88
## What is VEX?
99

10-
Vulnerability Exploitability eXchange (VEX) is a standardized framework
11-
developed by the U.S. Cybersecurity and Infrastructure Security Agency (CISA) to
12-
document the exploitability of vulnerabilities within software components.
13-
Unlike traditional CVE (Common Vulnerabilities and Exposures) databases, VEX
14-
provides contextual assessments, indicating whether a vulnerability is
15-
exploitable in a given environment. This approach helps organizations prioritize
16-
remediation efforts by distinguishing between vulnerabilities that are
17-
exploitable and those that are not relevant to their specific use cases.
10+
Vulnerability Exploitability eXchange (VEX) is a specification for documenting
11+
the exploitability status of vulnerabilities within software components. VEX is
12+
primarily defined through industry standards such as CSAF (OASIS) and CycloneDX
13+
VEX, with the U.S. Cybersecurity and Infrastructure Security Agency (CISA)
14+
encouraging its adoption. VEX complements CVE (Common Vulnerabilities and
15+
Exposures) identifiers by adding producer-asserted status information,
16+
indicating whether a vulnerability is exploitable in the product as shipped.
17+
This helps organizations prioritize remediation efforts by identifying
18+
vulnerabilities that do not affect their specific product configurations.
1819

1920
## Why is VEX important?
2021

2122
VEX enhances traditional vulnerability management by:
2223

23-
- Reducing false positives: By providing context-specific assessments, VEX helps
24-
in filtering out vulnerabilities that do not pose a threat in a particular
25-
environment.
24+
- Suppressing non-applicable vulnerabilities: By providing product-level
25+
exploitability assertions from the supplier, VEX helps filter out
26+
vulnerabilities that do not affect the product as shipped.
2627

2728
- Prioritizing remediation: Organizations can focus resources on addressing
28-
vulnerabilities that are exploitable in their specific context, improving
29-
efficiency in vulnerability management.
29+
vulnerabilities that the producer has confirmed are exploitable in the
30+
product, improving efficiency in vulnerability management.
3031

31-
- Enhancing compliance: VEX reports provide detailed information that can assist
32-
in meeting regulatory requirements and internal security standards.
32+
- Supporting vulnerability documentation: VEX statements can support audit
33+
discussions and help document why certain vulnerabilities do not require
34+
remediation.
3335

34-
This approach is particularly beneficial in complex environments where numerous
35-
components and configurations exist, and traditional CVE-based assessments may
36-
lead to unnecessary remediation efforts.
36+
This approach is particularly beneficial when working with complex software
37+
components where not all reported CVEs apply to the specific product
38+
configuration.
3739

3840
## How Docker Hardened Images integrate VEX
3941

@@ -42,54 +44,29 @@ VEX reports, providing context-specific assessments of known vulnerabilities.
4244

4345
This integration allows you to:
4446

45-
- Assess exploitability: Determine whether known vulnerabilities in the image's
46-
components are exploitable in their specific environment.
47+
- Consume producer assertions: Review Docker's assertions about whether known
48+
vulnerabilities in the image's components are exploitable in the product as
49+
shipped.
4750

48-
- Prioritize actions: Focus remediation efforts on vulnerabilities that pose
49-
actual risks, optimizing resource allocation.
51+
- Prioritize actions: Focus remediation efforts on vulnerabilities that Docker
52+
has confirmed are exploitable in the image, optimizing resource allocation.
5053

51-
- Streamline audits: Utilize the detailed information provided by VEX reports to
52-
simplify compliance audits and reporting.
54+
- Support audit documentation: Use VEX statements to document why certain
55+
reported vulnerabilities do not require immediate action.
5356

54-
By combining the security features of DHI with the contextual insights of VEX,
55-
organizations can achieve a more effective and efficient approach to
56-
vulnerability management.
57+
By combining the security features of DHI with VEX's product-level
58+
exploitability assertions, organizations can achieve a more effective and
59+
efficient approach to vulnerability management.
5760

58-
## Use VEX to filter known non-exploitable CVEs
59-
60-
When using Docker Scout or Trivy, VEX statements are automatically applied as
61-
shown in the examples in [Common Vulnerabilities and Exposures (CVEs)](./cves.md).
62-
63-
For Grype, you need to export the VEX attestation to a file first before
64-
scanning, as shown in the [Grype scanning example](./cves.md#scan-a-dhi-using-grype).
65-
66-
> [!NOTE]
61+
> [!TIP]
6762
>
68-
> By default, VEX attestations are fetched from `registry.scout.docker.com`. Ensure that you can access this registry if
69-
> your network has outbound restrictions. You can also mirror the attestations to an alternate registry. For more
70-
> details, see [Mirror a Docker Hardened Image
71-
> repository](../how-to/mirror.md#mirror-from-docker-hub-to-another-registry).
72-
73-
To manually retrieve the VEX attestation for tools that support it:
74-
75-
```console
76-
$ docker scout vex get dhi.io/<image>:<tag> --output vex.json
77-
```
78-
79-
> [!NOTE]
80-
>
81-
> The `docker scout vex get` command requires [Docker Scout
82-
> CLI](https://github.com/docker/scout-cli/) version 1.18.3 or later.
83-
>
84-
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
85-
> `registry://dhi.io/python:3.13` instead of `dhi.io/python:3.13`.
86-
87-
For example:
63+
> To understand which scanners support VEX and why it matters for your security
64+
> workflow, see [Scanner integrations](/manuals/dhi/explore/scanner-integrations.md).
8865
89-
```console
90-
$ docker scout vex get dhi.io/python:3.13 --output vex.json
91-
```
66+
## Use VEX to suppress non-applicable CVEs
9267

93-
This creates a `vex.json` file containing the VEX statements for the specified
94-
image. You can then use this file with tools that support VEX to filter out
95-
known non-exploitable CVEs.
68+
Docker Hardened Images include VEX attestations that can be consumed by
69+
vulnerability scanners to suppress non-applicable CVEs. For detailed
70+
instructions on scanning with VEX support across different tools including
71+
Docker Scout, Trivy, and Grype, see [Scan Docker Hardened
72+
Images](/manuals/dhi/how-to/scan.md).

content/manuals/dhi/explore/_index.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ params:
1313
description: Learn how Docker builds, tests, and maintains Docker Hardened Images through an automated, security-focused pipeline.
1414
icon: build
1515
link: /dhi/explore/build-process/
16+
- title: Image types
17+
description: Learn about the different image types, distributions, and variants offered in the Docker Hardened Images catalog.
18+
icon: view_module
19+
link: /dhi/explore/available/
20+
- title: Scanner integrations
21+
description: Discover which vulnerability scanners integrate with Docker Hardened Images and support open standards like OpenVEX.
22+
icon: security
23+
link: /dhi/explore/scanner-integrations/
1624
- title: Image testing
1725
description: See how Docker Hardened Images are automatically tested for standards compliance, functionality, and security.
1826
icon: science
@@ -21,10 +29,6 @@ params:
2129
description: Understand Docker's role and your responsibilities when using Docker Hardened Images as part of your secure software supply chain.
2230
icon: group
2331
link: /dhi/explore/responsibility/
24-
- title: Image types
25-
description: Learn about the different image types, distributions, and variants offered in the Docker Hardened Images catalog.
26-
icon: view_module
27-
link: /dhi/explore/available/
2832
- title: Give feedback
2933
icon: question_exchange
3034
description: Docker welcomes all contributions and feedback.
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
---
2+
title: Scanner integrations
3+
description: Learn which vulnerability scanners work with Docker Hardened Images and how to choose the right scanner for accurate vulnerability assessment.
4+
keywords: scanner integration, vulnerability scanning, docker scout, trivy, grype, container security scanners
5+
weight: 40
6+
---
7+
8+
Docker Hardened Images work with various vulnerability scanners. However, to get
9+
accurate results that reflect the actual security posture of these images, your
10+
scanner needs to understand the VEX (Vulnerability Exploitability eXchange)
11+
attestations included with each image.
12+
13+
## Scanners with VEX support
14+
15+
The following scanners can read and apply VEX attestations included with Docker
16+
Hardened Images to deliver more accurate vulnerability assessments:
17+
18+
- [Docker Scout](/scout/): Automatically applies VEX statements with
19+
zero configuration. Integrated directly into Docker Desktop and the Docker CLI.
20+
- [Trivy](https://trivy.dev/): Supports VEX through VEX Hub for automatic
21+
updates or local VEX files for air-gapped environments.
22+
- [Grype](https://github.com/anchore/grype): Supports VEX via the `--vex`
23+
flag for local VEX file processing.
24+
- [Wiz](https://www.wiz.io/): Automatically applies VEX statements with
25+
zero configuration.
26+
27+
For step-by-step instructions, see [Scan Docker Hardened Images](/manuals/dhi/how-to/scan.md).
28+
29+
## Choosing a scanner for Docker Hardened Images
30+
31+
When selecting a scanner for use with Docker Hardened Images, whether it
32+
supports open standards like OpenVEX is the key differentiator.
33+
34+
Docker Hardened Images include signed VEX attestations that follow the
35+
[OpenVEX standard](https://openvex.dev/). OpenVEX is an open standard that meets
36+
the minimum requirements for VEX defined by CISA (Cybersecurity and
37+
Infrastructure Security Agency), the U.S. government agency responsible for
38+
cybersecurity guidance. These attestations document which vulnerabilities don't
39+
apply to the image and why, helping you focus on real risks. To understand what
40+
VEX is and how it works, see the [VEX core concept](/manuals/dhi/core-concepts/vex.md).
41+
42+
Because OpenVEX is an open standard with government backing, it has strong
43+
industry momentum and any tool can implement it without vendor-specific
44+
integrations. This matters when you bring in third-party auditors with their own
45+
scanning tools, or when you want to use multiple security tools in your
46+
pipeline. With VEX, these tools can all read and verify the same vulnerability
47+
data directly from your images.
48+
49+
Without open standards like VEX, vendors make exploitability decisions using
50+
proprietary methods, making it difficult to verify claims or compare results
51+
across tools. This fragments your security toolchain and creates inconsistent
52+
vulnerability assessments across different scanning tools.
53+
54+
### Benefits of scanners with VEX support
55+
56+
Scanners that support open standards like OpenVEX and can interpret VEX attestations
57+
from Docker Hardened Images offer the following benefits:
58+
59+
- Accurate vulnerability counts: Automatically filter out vulnerabilities
60+
that don't apply to your specific image, often reducing false positives
61+
dramatically.
62+
- Transparency and auditability: Verify exactly why vulnerabilities are or
63+
aren't flagged; security teams and compliance officers can review the reasoning
64+
rather than trusting a vendor's black box.
65+
- Scanner flexibility: Switch between any VEX-enabled scanner (Docker Scout,
66+
Trivy, Grype, etc.) without losing vulnerability context or rebuilding
67+
exclusion lists.
68+
- Consistent results: VEX-enabled scanners interpret the same data the
69+
same way, eliminating discrepancies between tools.
70+
- Faster workflows: Focus on real risks rather than researching why reported
71+
CVEs don't actually affect your deployment.
72+
73+
### Scanners without VEX support
74+
75+
Scanners that can't read VEX attestations will report vulnerabilities that don't
76+
apply to Docker Hardened Images. This creates operational challenges:
77+
78+
- Manual filtering required: You'll need to maintain scanner-specific ignore
79+
lists to replicate what VEX statements already document.
80+
- Higher false positive rates: Expect to see more reported vulnerabilities
81+
that don't represent real risks.
82+
- Increased investigation time: Security teams spend time researching why
83+
CVEs don't apply instead of addressing actual vulnerabilities. With Docker
84+
Hardened Images, security experts at Docker manage this investigation for
85+
you, thoroughly vetting each justification before adding it to a VEX statement.
86+
- CI/CD friction: Build pipelines may fail on vulnerabilities that aren't
87+
exploitable in your images.
88+
89+
### VEX-based vulnerability handling versus proprietary approaches
90+
91+
Docker Hardened Images use VEX attestations based on the OpenVEX open standard to document vulnerability exploitability. OpenVEX is an open standard that is recognized by government agencies such as CISA. This open standards approach differs from how some other image vendors handle vulnerabilities using proprietary methods.
92+
93+
#### Docker Hardened Images with VEX
94+
95+
The image includes signed attestations that explain which vulnerabilities don't
96+
apply and why. Any VEX-enabled scanner can read these attestations, giving you:
97+
98+
- Tool flexibility: Use any scanner that supports OpenVEX (Docker Scout,
99+
Trivy, Grype, Wiz, etc.)
100+
- Complete transparency: Review the exact reasoning for each vulnerability
101+
assessment
102+
- Full auditability: Security teams and compliance officers can independently
103+
verify all vulnerability assessments and reasoning
104+
- Historical visibility: VEX statements remain with the image, so you can
105+
always check vulnerability status, even for older versions
106+
107+
#### Proprietary vulnerability handling
108+
109+
Some image vendors use proprietary advisory feeds or internal databases instead
110+
of VEX. While this may result in fewer reported vulnerabilities, it creates
111+
significant limitations:
112+
113+
- Tool dependency: You must use the vendor's preferred scanning tools to see
114+
their vulnerability filtering, while standard scanners will still report all
115+
CVEs; scanners must implement proprietary feeds rather than using open
116+
standards that work with all images
117+
- No transparency: Proprietary feeds act as "black boxes" - vulnerabilities
118+
simply disappear from vendor tools with no explanation
119+
- Limited verifiability: Security teams have no way to independently verify
120+
why vulnerabilities are excluded or whether the reasoning is sound
121+
- Maintenance challenges: If you scan older image versions with standard
122+
tools, you can't determine which vulnerabilities actually applied at that
123+
time, making long-term security tracking difficult
124+
- Ecosystem incompatibility: Your existing security tools (SCA, policy
125+
engines, compliance scanners) can't access or verify the vendor's proprietary
126+
vulnerability data
127+
128+
The fundamental difference: VEX-based approaches explain vulnerability
129+
assessments using open standards that any tool can verify and audit. Proprietary
130+
approaches hide vulnerabilities in vendor-specific systems where the reasoning
131+
can't be independently validated.
132+
133+
For Docker Hardened Images, use VEX-enabled scanners to get accurate results
134+
that work across your entire security toolchain.
135+
136+
## What to expect from different scanners
137+
138+
When scanning Docker Hardened Images with different tools, you'll see
139+
significant differences in reported vulnerability counts.
140+
141+
### What VEX-enabled scanners filter automatically
142+
143+
When you scan Docker Hardened Images with VEX-enabled scanners, they
144+
automatically exclude vulnerabilities that don't apply:
145+
146+
- Hardware-specific vulnerabilities: Issues that only affect specific
147+
hardware architectures (for example, Power10 processors) that are irrelevant to
148+
containerized workloads.
149+
- Unreachable code paths: CVEs in code that exists in the package but isn't
150+
executed in the image's runtime configuration.
151+
- Build-time only issues: Vulnerabilities in build tools or dependencies
152+
that don't exist in the final runtime image.
153+
- Temporary identifiers: Placeholder vulnerability IDs (like Debian's
154+
`TEMP-xxxxxxx`) that aren't intended for external tracking.
155+
156+
### Using scanners without VEX support
157+
158+
If your scanner doesn't support VEX, you'll need to manually exclude
159+
vulnerabilities through scanner-specific mechanisms like ignore lists or policy
160+
exceptions. This requires:
161+
162+
- Reviewing VEX statements from Docker Hardened Images
163+
- Translating VEX justifications into your scanner's format
164+
- Maintaining these exclusions as new vulnerabilities are discovered
165+
- Repeating this process if you switch scanners or add additional scanning tools
166+
167+
## What's next
168+
169+
Learn how to [scan Docker Hardened Images](/manuals/dhi/how-to/scan.md) with
170+
VEX-compliant scanners.
171+

0 commit comments

Comments
 (0)