Skip to content

Commit 4bfe603

Browse files
committed
Minor updates for clarity and specificity
1 parent 3e8b3d8 commit 4bfe603

File tree

3 files changed

+86
-81
lines changed

3 files changed

+86
-81
lines changed
Lines changed: 38 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,59 @@
11
# Vulnerability Management
2-
Covers Kubernetes wide vulnerability management process, policies and workflows
3-
that tackle known vulnerabilities in kubernetes artifacts
2+
3+
Covers Kubernetes wide vulnerability management process, policies and workflows
4+
that tackle *known* vulnerabilities in Kubernetes artifacts that can be found
5+
via automation
46

57
## Goals
68

7-
1. Identify known vulnerabilities in Kubernetes artifacts by scanning them periodically
8-
2. Leverage the existing triage and resolution process (i.e. Github issues, PRs)
9+
1. Identify known vulnerabilities in Kubernetes artifacts by scanning them
10+
periodically
11+
2. Leverage the existing triage and resolution process (i.e. Github issues, PRs)
912
to document and resolve any vulnerabilities that impact Kubernetes
10-
3. Create community driven awareness and documentation around known
11-
CVEs in Kubernetes related artifacts
12-
13+
3. Create community driven awareness and documentation around known CVEs in
14+
Kubernetes related artifacts
15+
16+
### Vulnerability Triage and Resolution Process
17+
18+
Leverage community driven triage and impact assessment to resolve known
19+
vulnerabilities in Kubernetes artifacts. More details can be
20+
found [here](process-for-vulnerability-triage-and-resolution.md)
21+
1322
### Build Time Dependencies
1423

15-
A tool agnostic periodic scanning of build time dependencies
16-
(typically dependencies found in `go.mod` file) of Kubernetes.
17-
More details can be found [here](build-time-dependencies.md)
24+
A tool agnostic periodic scanning of build time dependencies
25+
(typically dependencies found in `go.mod` file) of Kubernetes. More details can
26+
be found [here](build-time-dependencies.md)
27+
28+
This track is a partnership between SIG
29+
Architecture's [Code Organization](https://github.com/kubernetes/community/tree/master/sig-architecture#code-organization)
30+
sub-project and SIG Security's Tooling sub-project
31+
32+
### Container Images
1833

19-
### Vulnerability Resolution Policy
34+
Automating triage and resolution of vulnerabilities as it relates to container
35+
images in Kubernetes Github Org. This effort is beginning to take form and is being tracked in
36+
[Issue #5920](https://github.com/kubernetes/community/issues/5920)
2037

21-
Leveraging community driven triage and impact assessment to resolve known
22-
vulnerabilities in Kubernetes artifacts. More details can be found [here](policy-for-vulnerability-resolution.md)
38+
This track is a partnership
39+
between [SIG Release](https://github.com/kubernetes/sig-release)
40+
and SIG Security's Tooling sub-project
2341

24-
*NOTE*: Artifacts here refer to code, images and binaries
42+
**Note**: Artifacts here refer to code, images and binaries
2543

2644
## Non-Goals
2745

2846
1. **Responsible disclosure of vulnerabilities**: This will continue to be the
2947
responsibility
30-
of [Product Security Committee / Security Response Committee](../../../committee-product-security/README.md)
48+
of [Security Response Committee](https://github.com/kubernetes/community/tree/master/committee-product-security/README.md)
3149
2. **Runtime dependencies**: Triaging of vulnerabilities found in components
32-
that are runtime dependencies for an on-premises or _*
33-
-as-a-service_
50+
that are runtime dependencies for an on-premises or *-as-a-service*
3451
Kubernetes deployment. Examples include but are not limited to container
3552
runtimes, container registries, Node OS
3653
3. **Resolving license violations**: Allowed third party license policy can be
37-
found here:
38-
https://github.com/cncf/foundation/blob/master/allowed-third-party-license-policy.md#approved-licenses-for-allowlist
39-
40-
## Upcoming work
41-
42-
Although, more items will be added through community feedback and organic growth of
43-
security needs of the project, currently identified work includes automating
44-
triage and resolution of vulnerabilities as it relates to container
45-
images in Kubernetes repo
46-
47-
### Container Images
48-
49-
The effort is beginning to take form and is being
50-
tracked [Issue #1833](https://github.com/kubernetes/release/issues/1833)
54+
found [here](https://github.com/cncf/foundation/blob/master/allowed-third-party-license-policy.md#approved-licenses-for-allowlist)
5155

52-
*NOTE*: If you have a topic that you think is missing, please hop on over to our
56+
**Note**: If you have a topic that you think is missing, please hop on over to
57+
our
5358
[slack channel](https://kubernetes.slack.com/messages/sig-security-tooling)
54-
to discuss more
59+
to discuss more :-)

sig-security/sig-security-tooling/vulnerability-mgmt/policy-for-vulnerability-resolution.md

Lines changed: 0 additions & 48 deletions
This file was deleted.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Process for Vulnerability Triage and Resolution
2+
3+
Depending on the assessed impact of the vulnerability, appropriate resolution
4+
is triggered to apply the fix to Kubernetes or document the reason for not fixing
5+
6+
## Assumptions
7+
8+
- For undisclosed or non-public vulnerabilities, the
9+
[responsible disclosure process](https://kubernetes.io/docs/reference/issues-security/security/)
10+
is followed
11+
- Reduce the window of opportunity for an attacker for exploiting known
12+
vulnerabilities by shortening the gap between `mean time to detect` and `mean
13+
time to fix`
14+
15+
## Triage process
16+
17+
- The vulnerabilities are triaged in private, by members of
18+
19+
- Membership to this group is restricted due to the confidential nature of the
20+
responsibilities
21+
- Once a vulnerability is found through automation, the group members get
22+
notified via an email about it
23+
- One of the SIG Security Tooling member on rotation triggers assessment of the
24+
reported vulnerability as follows:
25+
26+
|No. | Category | Definition | Partners | Lead | Assessment | Resolution |
27+
|---|---|---|---|---|---|---|
28+
| 1 | False positive | Kubernetes and vulnerable artifact is not impacted by this CVE | Optional | SIG Security Tooling | Open a Github issue and log the resolution as *False Positive* in issue description. Appropriate labels will be added to get attention from code owners when required | Not Applicable
29+
| 2 | True positive: No impact | Artifact version used in Kubernetes is vulnerable, but Kubernetes is not using the vulnerable code | Release Engineering, K8s Code Organization | SIG Security Tooling | Open a Github issue and log the resolution as *True Positive: No Impact* in the issue description with reasoning behind assessed impact | Existing Issue assignment, PR creation, review and approval process is followed to ensure relevant code owners are involved in some capacity. <br> The fix is applied to subsequent release of Kubernetes
30+
| 3 | True positive: Negligible impact | Artifact version used in Kubernetes is vulnerable, and Kubernetes is using the vulnerable code, but the vulnerability does not apply to Kubernetes | Release Engineering, K8s Code Organization, Security Response Committee | SIG Security Tooling | SIG Security Tooling and Security Response Committee discuss the security implications of the vulnerability privately. If needed, the vulnerability is reclassified to Category 4. <br> <br>If the category is unchanged, open a Github issue classifying the vulnerability into category *True Positive: Negligible Impact*. It should also include reasoning behind assessed impact including but not limited to existence of a compensatory control* | Same as category 2
31+
| 4 | True positive: With impact | Artifact version used in Kubernetes is vulnerable, and Kubernetes is using the vulnerable code | Release Engineering, K8s Code Organization, Security Response Committee | SIG Security Tooling | SIG Security Tooling and Security Response Committee discuss the security implications of the vulnerability privately. If needed, the vulnerability is reclassified to Category 3. <br><br> If category is unchanged, open a Github issue classifying the vulnerability into category *True Positive: With Impact*. It should also include the reasoning behind assessed impact, modified CVSS rating for Kubernetes if applicable and any workarounds that completely or partially mitigate the vulnerability | Issue is followed soon with PRs that cherry pick the fixes to master/main and all the supported [versions](https://kubernetes.io/releases/version-skew-policy/#supported-versions). Code Owners if not creating the PR should review, approve and merge the PR within a reasonable time duration depending on severity of impact. <br> The Release managers ensure that the vulnerability fix is then, shipped with the next patch release of Kubernetes.
32+
| 5 | Embargoed vulnerability | No CVE ID is assigned so scanners do not detect it | Release Engineering | Security Response Committee | This category is only mentioned here for completeness | [Security Release Process](https://github.com/kubernetes/security/blob/master/security-release-process.md#disclosures)
33+
34+
*<sub>Example of a compensating control: The vulnerability can be exploited only when unsafe user input can be injected but Kubernetes is doing input verification prior to accepting user input
35+
36+
## Examples
37+
38+
- [CVE-2020-26160](https://github.com/kubernetes/kubernetes/issues/100401)
39+
- [CVE-2021-20206](https://github.com/kubernetes/kubernetes/issues/101758)
40+
41+
## Next Steps
42+
43+
1. Create ignore lists for category 1, 2 and 3. Build a process to evaluate
44+
ignore lists for category 2 and 3 periodically.
45+
2. Formalize or
46+
modify [this](https://github.com/kubernetes/security/blob/master/security-release-process.md#severity-thresholds---how-we-do-vulnerability-scoring)
47+
process from Product Security Committee / Security Response Committee, when
48+
the modifying original CVSS score makes sense

0 commit comments

Comments
 (0)