mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-05 20:40:16 -08:00
fix(k8s): skip resources without misconfigs (#7797)
This commit is contained in:
@@ -90,8 +90,13 @@ func (r Report) consolidate() ConsolidatedReport {
|
||||
for _, m := range r.Resources {
|
||||
if vulnerabilitiesOrSecretResource(m) {
|
||||
vulnerabilities = append(vulnerabilities, m)
|
||||
} else {
|
||||
}
|
||||
if misconfigsResource(m) {
|
||||
res, ok := index[m.fullname()]
|
||||
index[m.fullname()] = m
|
||||
if ok {
|
||||
index[m.fullname()].Results[0].Misconfigurations = append(index[m.fullname()].Results[0].Misconfigurations, res.Results[0].Misconfigurations...)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,6 +283,10 @@ func vulnerabilitiesOrSecretResource(resource Resource) bool {
|
||||
return len(resource.Results) > 0 && (len(resource.Results[0].Vulnerabilities) > 0 || len(resource.Results[0].Secrets) > 0)
|
||||
}
|
||||
|
||||
func misconfigsResource(resource Resource) bool {
|
||||
return len(resource.Results) > 0 && len(resource.Results[0].Misconfigurations) > 0
|
||||
}
|
||||
|
||||
func nodeKind(resource Resource) Resource {
|
||||
if nodeInfoResource(resource) {
|
||||
resource.Kind = "Node"
|
||||
|
||||
@@ -119,6 +119,23 @@ var (
|
||||
},
|
||||
}
|
||||
|
||||
orionDeployWithAnotherMisconfig = Resource{
|
||||
Namespace: "default",
|
||||
Kind: "Deploy",
|
||||
Name: "orion",
|
||||
Results: types.Results{
|
||||
{
|
||||
Misconfigurations: []types.DetectedMisconfiguration{
|
||||
{
|
||||
ID: "ID201",
|
||||
Status: types.MisconfStatusFailure,
|
||||
Severity: "HIGH",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
image1WithVulns = Resource{
|
||||
Namespace: "default",
|
||||
Kind: "Pod",
|
||||
@@ -424,6 +441,10 @@ var (
|
||||
)
|
||||
|
||||
func TestReport_consolidate(t *testing.T) {
|
||||
concatenatedResource := orionDeployWithAnotherMisconfig
|
||||
concatenatedResource.Results[0].Misconfigurations = append(concatenatedResource.Results[0].Misconfigurations,
|
||||
deployOrionWithMisconfigs.Results[0].Misconfigurations...)
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
report Report
|
||||
@@ -471,6 +492,18 @@ func TestReport_consolidate(t *testing.T) {
|
||||
"default/cronjob/hello": cronjobHelloWithVulns,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "report with misconfigs in image and pod",
|
||||
report: Report{
|
||||
Resources: []Resource{
|
||||
deployOrionWithMisconfigs,
|
||||
orionDeployWithAnotherMisconfig,
|
||||
},
|
||||
},
|
||||
expectedFindings: map[string]Resource{
|
||||
"default/deploy/orion": concatenatedResource,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "report with multi image pod containing vulnerabilities",
|
||||
report: Report{
|
||||
|
||||
Reference in New Issue
Block a user