mirror of https://github.com/docker/docs.git
Merge pull request #20596 from dvdksn/scout-policy-consolidate
scout: update ootb policy to match health score rules
This commit is contained in:
commit
32834347d0
|
@ -14,6 +14,7 @@ Autotest
|
||||||
Azure
|
Azure
|
||||||
BuildKit
|
BuildKit
|
||||||
BusyBox
|
BusyBox
|
||||||
|
CISA
|
||||||
CNCF
|
CNCF
|
||||||
CVEs?
|
CVEs?
|
||||||
CentOS
|
CentOS
|
||||||
|
|
|
@ -32,9 +32,9 @@ image analysis feature, interpreting the analysis results against the rules
|
||||||
defined by policies.
|
defined by policies.
|
||||||
|
|
||||||
A policy defines image quality criteria that your artifacts should fulfill.
|
A policy defines image quality criteria that your artifacts should fulfill.
|
||||||
For example, the **No copyleft licenses** policy flags packages distributed under a copyleft license.
|
For example, the **No AGPL v3 licenses** policy flags any image containing packages distributed under the AGPL v3 license.
|
||||||
If an image contains a copyleft-licensed package, that image is non-compliant with this policy.
|
If an image contains such a package, that image is non-compliant with this policy.
|
||||||
Some policies, such as the **No copyleft licenses** policy, are configurable.
|
Some policies, such as the **No AGPL v3 licenses** policy, are configurable.
|
||||||
Configurable policies let you adjust the criteria to better match your organization's needs.
|
Configurable policies let you adjust the criteria to better match your organization's needs.
|
||||||
|
|
||||||
In Docker Scout, policies are designed to help you ratchet forward your
|
In Docker Scout, policies are designed to help you ratchet forward your
|
||||||
|
@ -55,11 +55,12 @@ image up-to-dateness.
|
||||||
Docker Scout ships the following out-of-the-box policies:
|
Docker Scout ships the following out-of-the-box policies:
|
||||||
|
|
||||||
- [No fixable critical or high vulnerabilities](#no-fixable-critical-or-high-vulnerabilities)
|
- [No fixable critical or high vulnerabilities](#no-fixable-critical-or-high-vulnerabilities)
|
||||||
- [No copyleft licenses](#no-copyleft-licenses)
|
- [No AGPL v3 licenses](#no-agpl-v3-licenses)
|
||||||
- [No outdated base images](#no-outdated-base-images)
|
- [No outdated base images](#no-outdated-base-images)
|
||||||
- [No high-profile vulnerabilities](#no-high-profile-vulnerabilities)
|
- [No high-profile vulnerabilities](#no-high-profile-vulnerabilities)
|
||||||
- [Supply chain attestations](#supply-chain-attestations)
|
- [Supply chain attestations](#supply-chain-attestations)
|
||||||
- [Default non-root user](#default-non-root-user)
|
- [Default non-root user](#default-non-root-user)
|
||||||
|
- [No unapproved base images](#no-unapproved-base-images)
|
||||||
|
|
||||||
To give you a head start, Scout enables several policies by default for your
|
To give you a head start, Scout enables several policies by default for your
|
||||||
Scout-enabled repositories. You can customize the default configurations to
|
Scout-enabled repositories. You can customize the default configurations to
|
||||||
|
@ -78,34 +79,34 @@ available. Essentially, this means that there's an easy fix that you can deploy
|
||||||
for images that fail this policy: upgrade the vulnerable package to a version
|
for images that fail this policy: upgrade the vulnerable package to a version
|
||||||
containing a fix for the vulnerability.
|
containing a fix for the vulnerability.
|
||||||
|
|
||||||
By default, this policy only flags critical and high severity vulnerabilities
|
By default, this policy only flags critical and high severity vulnerabilities.
|
||||||
disclosed more than 30 days ago. The rationale for only flagging
|
|
||||||
vulnerabilities of a certain age is that newly discovered vulnerabilities
|
|
||||||
shouldn't cause your evaluations to fail until you've had a chance to address
|
|
||||||
them.
|
|
||||||
|
|
||||||
This policy is unfulfilled if an artifact is affected by one or more critical-
|
This policy is violated if an artifact is affected by one or more critical-
|
||||||
or high-severity vulnerability, where a fix version is available.
|
or high-severity vulnerability, where a fix version is available.
|
||||||
|
|
||||||
You can configure the parameters of this policy by creating a custom version of the policy.
|
You can configure the parameters of this policy by creating a custom version of the policy.
|
||||||
The following policy parameters are configurable in a custom version:
|
The following policy parameters are configurable in a custom version:
|
||||||
|
|
||||||
- Name and description of the policy
|
- **Age**: The minimum number of days since the vulnerability was first published
|
||||||
- Severity levels to consider
|
|
||||||
- Age threshold (set to `0` to flag all vulnerabilities, regardless of age)
|
The rationale for only flagging vulnerabilities of a certain minimum age is
|
||||||
- Whether or not to only report vulnerabilities with a fix version available
|
that newly discovered vulnerabilities shouldn't cause your evaluations to
|
||||||
|
fail until you've had a chance to address them.
|
||||||
|
|
||||||
|
<!-- vale Vale.Spelling = NO -->
|
||||||
|
- **Severities**: Severity levels to consider (default: `Critical, High`)
|
||||||
|
<!-- vale Vale.Spelling = YES -->
|
||||||
|
|
||||||
|
- **Fixable vulnerabilities only**: Whether or not to only report
|
||||||
|
vulnerabilities with a fix version available (enabled by default).
|
||||||
|
|
||||||
For more information about configuring policies, see [Configure policies](./configure.md).
|
For more information about configuring policies, see [Configure policies](./configure.md).
|
||||||
|
|
||||||
### No copyleft licenses
|
### No AGPL v3 licenses
|
||||||
|
|
||||||
The **No copyleft licenses** policy requires that your artifacts don't contain
|
The **No AGPL v3 licenses** policy requires that your artifacts don't contain
|
||||||
packages distributed under an AGPLv3 or GPLv3 license. These licenses are
|
packages distributed under an AGPLv3 license. This policy is violated if
|
||||||
protective [copyleft](https://en.wikipedia.org/wiki/Copyleft), and may be
|
your artifacts contain one or more packages with this license.
|
||||||
unsuitable for use in your software because of the restrictions they enforce.
|
|
||||||
|
|
||||||
This policy is unfulfilled if your artifacts contain one or more packages with
|
|
||||||
a violating license.
|
|
||||||
|
|
||||||
You can configure the list of licenses that this policy should look out for,
|
You can configure the list of licenses that this policy should look out for,
|
||||||
and add exceptions by specifying an allow-list (in the form of PURLs).
|
and add exceptions by specifying an allow-list (in the form of PURLs).
|
||||||
|
@ -116,7 +117,7 @@ See [Configure policies](./configure.md).
|
||||||
The **No outdated base images** policy requires that the base images you use are
|
The **No outdated base images** policy requires that the base images you use are
|
||||||
up-to-date.
|
up-to-date.
|
||||||
|
|
||||||
It's unfulfilled when the tag you used to build your image points to a
|
It's violated when the tag you used to build your image points to a
|
||||||
different digest than what you're using. If there's a mismatch in digests, that
|
different digest than what you're using. If there's a mismatch in digests, that
|
||||||
means the base image you're using is out of date.
|
means the base image you're using is out of date.
|
||||||
|
|
||||||
|
@ -135,11 +136,25 @@ The list includes the following vulnerabilities:
|
||||||
- [CVE-2014-0160 (OpenSSL Heartbleed)](https://scout.docker.com/v/CVE-2014-0160)
|
- [CVE-2014-0160 (OpenSSL Heartbleed)](https://scout.docker.com/v/CVE-2014-0160)
|
||||||
- [CVE-2021-44228 (Log4Shell)](https://scout.docker.com/v/CVE-2021-44228)
|
- [CVE-2021-44228 (Log4Shell)](https://scout.docker.com/v/CVE-2021-44228)
|
||||||
- [CVE-2023-38545 (cURL SOCKS5 heap buffer overflow)](https://scout.docker.com/v/CVE-2023-38545)
|
- [CVE-2023-38545 (cURL SOCKS5 heap buffer overflow)](https://scout.docker.com/v/CVE-2023-38545)
|
||||||
:cc
|
- [CVE-2023-44487 (HTTP/2 Rapid Reset)](https://scout.docker.com/v/CVE-2023-44487)
|
||||||
- [CVE-2024-3094 (XZ backdoor)](https://scout.docker.com/v/CVE-2024-3094)
|
- [CVE-2024-3094 (XZ backdoor)](https://scout.docker.com/v/CVE-2024-3094)
|
||||||
|
|
||||||
You can configure the CVEs included in this list by creating a custom policy.
|
You can configure the CVEs included in this list by creating a custom policy.
|
||||||
For more information, see [Configure policies](./configure.md).
|
Custom configuration options include:
|
||||||
|
|
||||||
|
- **CVEs to avoid**: Specify the CVEs that you want to avoid in your artifacts.
|
||||||
|
|
||||||
|
Default: `CVE-2014-0160`, `CVE-2021-44228`, `CVE-2023-38545`, `CVE-2023-44487`, `CVE-2024-3094`
|
||||||
|
|
||||||
|
- **CISA KEV**: Enable tracking of vulnerabilities from CISA's Known Exploited Vulnerabilities (KEV) catalog
|
||||||
|
|
||||||
|
The [CISA KEV catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
|
||||||
|
includes vulnerabilities that are actively exploited in the wild. When enabled,
|
||||||
|
the policy flags images that contain vulnerabilities from the CISA KEV catalog.
|
||||||
|
|
||||||
|
Enabled by default.
|
||||||
|
|
||||||
|
For more information on policy configuration, see [Configure policies](./configure.md).
|
||||||
|
|
||||||
### Supply chain attestations
|
### Supply chain attestations
|
||||||
|
|
||||||
|
@ -147,7 +162,7 @@ The **Supply chain attestations** policy requires that your artifacts have
|
||||||
[SBOM](../../build/attestations/sbom.md) and
|
[SBOM](../../build/attestations/sbom.md) and
|
||||||
[provenance](../../build/attestations/slsa-provenance.md) attestations.
|
[provenance](../../build/attestations/slsa-provenance.md) attestations.
|
||||||
|
|
||||||
This policy is unfulfilled if an artifact lacks either an SBOM attestation or a
|
This policy is violated if an artifact lacks either an SBOM attestation or a
|
||||||
provenance attestation with max mode. To ensure compliance,
|
provenance attestation with max mode. To ensure compliance,
|
||||||
update your build command to attach these attestations at build-time:
|
update your build command to attach these attestations at build-time:
|
||||||
|
|
||||||
|
@ -236,20 +251,10 @@ ENTRYPOINT ["/app/production"]
|
||||||
{{< /tab >}}
|
{{< /tab >}}
|
||||||
{{< /tabs >}}
|
{{< /tabs >}}
|
||||||
|
|
||||||
## Additional policies
|
|
||||||
|
|
||||||
In addition to the [out-of-the-box policies](#out-of-the-box-policies) enabled
|
|
||||||
by default, Docker Scout supports the following optional policies. Before you
|
|
||||||
can enable these policies, you need to either configure the policies, or
|
|
||||||
configure the integration that the policy requires.
|
|
||||||
|
|
||||||
- [No unapproved base images](#no-unapproved-base-images)
|
|
||||||
- [SonarQube quality gates passed](#sonarqube-quality-gates-passed)
|
|
||||||
|
|
||||||
### No unapproved base images
|
### No unapproved base images
|
||||||
|
|
||||||
The **No unapproved base images** policy lets you restrict which base
|
The **No unapproved base images** policy ensures that the base images you use
|
||||||
images you allow in your builds.
|
in your builds are maintained and secure.
|
||||||
|
|
||||||
This policy checks whether the base images used in your builds match any of the
|
This policy checks whether the base images used in your builds match any of the
|
||||||
patterns specified in the policy configuration. The following table shows a few
|
patterns specified in the policy configuration. The following table shows a few
|
||||||
|
@ -268,15 +273,29 @@ An asterisk (`*`) matches up until the character that follows, or until the end
|
||||||
of the image reference. Note that the `docker.io` prefix is required in order
|
of the image reference. Note that the `docker.io` prefix is required in order
|
||||||
to match Docker Hub images. This is the registry hostname of Docker Hub.
|
to match Docker Hub images. This is the registry hostname of Docker Hub.
|
||||||
|
|
||||||
You can also configure the policy to:
|
This policy is configurable with the following options:
|
||||||
|
|
||||||
- Allow only supported tags of Docker Official Images.
|
- **Approved base image sources**
|
||||||
|
|
||||||
|
Specify the image reference patterns that you want to allow. The policy
|
||||||
|
evaluates the base image references against these patterns.
|
||||||
|
|
||||||
|
Default: `[*]` (any reference is an allowed base image)
|
||||||
|
|
||||||
|
- **Only supported tags**
|
||||||
|
|
||||||
|
Allow only supported tags when using Docker Official Images.
|
||||||
|
|
||||||
When this option is enabled, images using unsupported tags of official images
|
When this option is enabled, images using unsupported tags of official images
|
||||||
trigger a policy violation. Supported tags for official images are listed in
|
as their base image trigger a policy violation. Supported tags for official
|
||||||
the **Supported tags** section of the repository overview on Docker Hub.
|
images are listed in the **Supported tags** section of the repository
|
||||||
|
overview on Docker Hub.
|
||||||
|
|
||||||
- Allow only Docker Official Images of supported distro versions
|
Enabled by default.
|
||||||
|
|
||||||
|
- **Only supported OS distributions**
|
||||||
|
|
||||||
|
Allow only Docker Official Images of supported Linux distribution versions.
|
||||||
|
|
||||||
When this option is enabled, images using unsupported Linux distributions
|
When this option is enabled, images using unsupported Linux distributions
|
||||||
that have reached end of life (such as `ubuntu:18.04`) trigger a policy violation.
|
that have reached end of life (such as `ubuntu:18.04`) trigger a policy violation.
|
||||||
|
@ -284,19 +303,20 @@ You can also configure the policy to:
|
||||||
Enabling this option may cause the policy to report no data
|
Enabling this option may cause the policy to report no data
|
||||||
if the operating system version cannot be determined.
|
if the operating system version cannot be determined.
|
||||||
|
|
||||||
This policy isn't enabled by default. To enable the policy:
|
Enabled by default.
|
||||||
|
|
||||||
1. [Create a new policy](https://scout.docker.com/reports/policies/create?fromDefinition=approved-base-images&fromNamespace=docker) in the Docker Scout Dashboard.
|
|
||||||
2. Under **Approved base image sources**, specify the image reference patterns that you want to allow.
|
|
||||||
3. Select whether you want to allow only supported tags for official images,
|
|
||||||
and supported Linux distribution versions.
|
|
||||||
4. Select **Save and enable**.
|
|
||||||
|
|
||||||
The policy is now enabled for your current organization.
|
|
||||||
|
|
||||||
Your images need provenance attestations for this policy to successfully
|
Your images need provenance attestations for this policy to successfully
|
||||||
evaluate. For more information, see [No base image data](#no-base-image-data).
|
evaluate. For more information, see [No base image data](#no-base-image-data).
|
||||||
|
|
||||||
|
## Additional policies
|
||||||
|
|
||||||
|
In addition to the [out-of-the-box policies](#out-of-the-box-policies) enabled
|
||||||
|
by default, Docker Scout supports the following optional policies. Before you
|
||||||
|
can enable these policies, you need to either configure the policies, or
|
||||||
|
configure the integration that the policy requires.
|
||||||
|
|
||||||
|
- [SonarQube quality gates passed](#sonarqube-quality-gates-passed)
|
||||||
|
|
||||||
### SonarQube quality gates passed
|
### SonarQube quality gates passed
|
||||||
|
|
||||||
The **SonarQube quality gates passed** policy builds on the [SonarQube
|
The **SonarQube quality gates passed** policy builds on the [SonarQube
|
||||||
|
|
|
@ -108,20 +108,10 @@ The policies that influence the score, and their respective weights, are as foll
|
||||||
| [No fixable critical or high vulnerabilities](/scout/policy#no-fixable-critical-or-high-vulnerabilities) | 20 |
|
| [No fixable critical or high vulnerabilities](/scout/policy#no-fixable-critical-or-high-vulnerabilities) | 20 |
|
||||||
| [No high-profile vulnerabilities](/scout/policy#no-high-profile-vulnerabilities) | 20 |
|
| [No high-profile vulnerabilities](/scout/policy#no-high-profile-vulnerabilities) | 20 |
|
||||||
| [Supply chain attestations](/scout/policy#supply-chain-attestations) | 15 |
|
| [Supply chain attestations](/scout/policy#supply-chain-attestations) | 15 |
|
||||||
| [No unapproved base images](/scout/policy/#no-unapproved-base-images) \* | 15 |
|
| [No unapproved base images](/scout/policy/#no-unapproved-base-images) | 15 |
|
||||||
| [No outdated base images](/scout/policy#no-outdated-base-images) | 10 |
|
| [No outdated base images](/scout/policy#no-outdated-base-images) | 10 |
|
||||||
| [Default non-root user](/scout/policy#default-non-root-user) | 5 |
|
| [Default non-root user](/scout/policy#default-non-root-user) | 5 |
|
||||||
| No AGPL v3 licenses \*\* | 5 |
|
| [No AGPL v3 licenses](/scout/policy/_index.md#no-agpl-v3-licenses) | 5 |
|
||||||
|
|
||||||
\* _The **No unapproved base images** policy used for health score evaluation also
|
|
||||||
checks that the tags of Docker Official Images use supported tags and, where
|
|
||||||
applicable, that the Linux distro that the image uses is a supported distro
|
|
||||||
version. This is a policy configuration option that's enabled by default for
|
|
||||||
health score evaluation. For more information, refer to the
|
|
||||||
[Unapproved base images](/scout/policy/#no-unapproved-base-images) policy._
|
|
||||||
|
|
||||||
\*\* _The **No AGPL v3 licenses** policy is a subset of the
|
|
||||||
[Copyleft licenses](./_index.md#no-copyleft-licenses) policy._
|
|
||||||
|
|
||||||
### Evaluation
|
### Evaluation
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,29 @@ Docker Scout platform, including the Dashboard. For CLI release notes, refer to
|
||||||
Take a look at the [Docker Public Roadmap](https://github.com/docker/roadmap/projects/1)
|
Take a look at the [Docker Public Roadmap](https://github.com/docker/roadmap/projects/1)
|
||||||
for what's coming next.
|
for what's coming next.
|
||||||
|
|
||||||
|
## Q3 2024
|
||||||
|
|
||||||
|
New features and enhancements released in the third quarter of 2024.
|
||||||
|
|
||||||
|
### 2024-08-13
|
||||||
|
|
||||||
|
This release changes the out-of-the-box policies to align with the policy
|
||||||
|
configurations used to evaluate Docker Scout [health scores](/scout/policy/scores.md).
|
||||||
|
|
||||||
|
The default out-of-the-box policies are now:
|
||||||
|
|
||||||
|
- **No high-profile vulnerabilities**
|
||||||
|
- **No fixable critical or high vulnerabilities**
|
||||||
|
- **No unapproved base images**
|
||||||
|
- **Default non-root user**
|
||||||
|
- **Supply chain attestations**
|
||||||
|
- **No outdated base images**
|
||||||
|
- **No AGPL v3 licenses**
|
||||||
|
|
||||||
|
The configurations for these policies are now the same as the configurations
|
||||||
|
used to calculate health scores. Previously, the out-of-the-box policies had
|
||||||
|
different configurations than the health score policies.
|
||||||
|
|
||||||
## Q2 2024
|
## Q2 2024
|
||||||
|
|
||||||
New features and enhancements released in the second quarter of 2024.
|
New features and enhancements released in the second quarter of 2024.
|
||||||
|
|
|
@ -124,7 +124,7 @@
|
||||||
- /go/scout-policy/
|
- /go/scout-policy/
|
||||||
"/scout/policy/#no-fixable-critical-or-high-vulnerabilities":
|
"/scout/policy/#no-fixable-critical-or-high-vulnerabilities":
|
||||||
- /go/scout-policy-dsp001/
|
- /go/scout-policy-dsp001/
|
||||||
"/scout/policy/#no-copyleft-licenses":
|
"/scout/policy/#no-agpl-v3-licenses":
|
||||||
- /go/scout-policy-dsp002/
|
- /go/scout-policy-dsp002/
|
||||||
"/scout/policy/#no-outdated-base-images":
|
"/scout/policy/#no-outdated-base-images":
|
||||||
- /go/scout-policy-dsp003/
|
- /go/scout-policy-dsp003/
|
||||||
|
|
Loading…
Reference in New Issue