Skip to content

Commit 59916fb

Browse files
committed
update
1 parent 4d518a6 commit 59916fb

2 files changed

Lines changed: 20 additions & 11 deletions

File tree

dojo/tools/trivy/parser.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,34 @@
3333
**Type:** {type}
3434
**Fixed version:** {fixed_version}
3535
36-
{description_text}
36+
{service_text}{description_text}
3737
"""
3838

3939
MISC_DESCRIPTION_TEMPLATE = """**Target:** {target}
4040
**Type:** {type}
4141
42-
{description}
42+
{service_text}{description}
4343
{message}
4444
"""
4545

4646
SECRET_DESCRIPTION_TEMPLATE = """{title}
4747
**Category:** {category}
48-
**Match:** {match}
48+
{service_text}**Match:** {match}
4949
""" # noqa: S105
5050

5151
LICENSE_DESCRIPTION_TEMPLATE = """{title}
5252
**Category:** {category}
53-
**Package:** {package}
53+
{service_text}**Package:** {package}
5454
"""
5555

5656

5757
class TrivyParser:
58+
@staticmethod
59+
def _service_text(service_name):
60+
if service_name:
61+
return f"**Service:** {service_name}\n"
62+
return ""
63+
5864
def get_scan_types(self):
5965
return ["Trivy Scan"]
6066

@@ -319,6 +325,7 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
319325
title=vuln.get("Title", ""),
320326
target=target,
321327
type=vul_type,
328+
service_text=self._service_text(service_name),
322329
fixed_version=mitigation,
323330
description_text=vuln.get("Description", ""),
324331
)
@@ -341,7 +348,6 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
341348
static_finding=True,
342349
dynamic_finding=False,
343350
fix_available=fix_available,
344-
service=service_name,
345351
**status_fields,
346352
)
347353
finding.unsaved_tags = [vul_type, target_class]
@@ -377,6 +383,7 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
377383
description = MISC_DESCRIPTION_TEMPLATE.format(
378384
target=target_target,
379385
type=misc_type,
386+
service_text=self._service_text(service_name),
380387
description=misc_description,
381388
message=misc_message,
382389
)
@@ -400,7 +407,6 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
400407
fix_available=True,
401408
static_finding=True,
402409
dynamic_finding=False,
403-
service=service_name,
404410
)
405411
if misc_avdid:
406412
finding.unsaved_vulnerability_ids = []
@@ -420,6 +426,7 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
420426
description = SECRET_DESCRIPTION_TEMPLATE.format(
421427
title=secret_title,
422428
category=secret_category,
429+
service_text=self._service_text(service_name),
423430
match=secret_match,
424431
)
425432
severity = TRIVY_SEVERITIES[secret_severity]
@@ -434,7 +441,6 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
434441
static_finding=True,
435442
dynamic_finding=False,
436443
fix_available=True,
437-
service=service_name,
438444
)
439445
finding.unsaved_tags = [target_class]
440446
items.append(finding)
@@ -453,6 +459,7 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
453459
description = LICENSE_DESCRIPTION_TEMPLATE.format(
454460
title=license_name,
455461
category=license_category,
462+
service_text=self._service_text(service_name),
456463
package=license_pkgname,
457464
)
458465
severity = TRIVY_SEVERITIES[license_severity]
@@ -468,7 +475,6 @@ def get_result_items(self, test, results, service_name=None, artifact_name=""):
468475
static_finding=True,
469476
dynamic_finding=False,
470477
fix_available=True,
471-
service=service_name,
472478
)
473479
finding.unsaved_tags = [target_class]
474480
items.append(finding)

unittests/tools/test_trivy_parser.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def test_kubernetes(self):
118118
**Type:** debian
119119
**Fixed version:** 1.8.2.2
120120
121+
**Service:** default / Deployment / redis-follower
121122
APT had several integer overflows and underflows while parsing .deb packages, aka GHSL-2020-168 GHSL-2020-169, in files apt-pkg/contrib/extracttar.cc, apt-pkg/deb/debfile.cc, and apt-pkg/contrib/arfile.cc. This issue affects: apt 1.2.32ubuntu0 versions prior to 1.2.32ubuntu0.2; 1.6.12ubuntu0 versions prior to 1.6.12ubuntu0.2; 2.0.2ubuntu0 versions prior to 2.0.2ubuntu0.2; 2.1.10ubuntu0 versions prior to 2.1.10ubuntu0.1;
122123
"""
123124
self.assertEqual(description, finding.description)
@@ -127,7 +128,7 @@ def test_kubernetes(self):
127128
self.assertEqual(["debian", "os-pkgs"], finding.unsaved_tags)
128129
self.assertEqual("apt", finding.component_name)
129130
self.assertEqual("1.8.2.1", finding.component_version)
130-
self.assertEqual("default / Deployment / redis-follower", finding.service)
131+
self.assertIsNone(finding.service)
131132
self.assertEqual(finding.file_path, "gcr.io/google_samples/gb-redis-follower:v2 (debian 10.4)")
132133
finding = findings[5]
133134
self.assertEqual("CVE-2020-27350 apt 1.8.2.1", finding.title)
@@ -137,6 +138,7 @@ def test_kubernetes(self):
137138
**Type:** debian
138139
**Fixed version:** 1.8.2.2
139140
141+
**Service:** default / Deployment / redis-leader
140142
APT had several integer overflows and underflows while parsing .deb packages, aka GHSL-2020-168 GHSL-2020-169, in files apt-pkg/contrib/extracttar.cc, apt-pkg/deb/debfile.cc, and apt-pkg/contrib/arfile.cc. This issue affects: apt 1.2.32ubuntu0 versions prior to 1.2.32ubuntu0.2; 1.6.12ubuntu0 versions prior to 1.6.12ubuntu0.2; 2.0.2ubuntu0 versions prior to 2.0.2ubuntu0.2; 2.1.10ubuntu0 versions prior to 2.1.10ubuntu0.1;
141143
"""
142144
self.assertEqual(description, finding.description)
@@ -146,13 +148,14 @@ def test_kubernetes(self):
146148
self.assertEqual(["debian", "os-pkgs"], finding.unsaved_tags)
147149
self.assertEqual("apt", finding.component_name)
148150
self.assertEqual("1.8.2.1", finding.component_version)
149-
self.assertEqual("default / Deployment / redis-leader", finding.service)
151+
self.assertIsNone(finding.service)
150152
finding = findings[10]
151153
self.assertEqual("KSV001 - Process can elevate its own privileges", finding.title)
152154
self.assertEqual("Medium", finding.severity)
153155
description = """**Target:** Deployment/redis-follower
154156
**Type:** Kubernetes Security Check
155157
158+
**Service:** default / Deployment / redis-follower
156159
A program inside the container can elevate its own privileges and run as root, which might give the program control over the container and node.
157160
Container 'follower' of Deployment 'redis-follower' should set 'securityContext.allowPrivilegeEscalation' to false
158161
Number Content
@@ -174,7 +177,7 @@ def test_kubernetes(self):
174177
self.assertEqual(["kubernetes", "config"], finding.unsaved_tags)
175178
self.assertIsNone(finding.component_name)
176179
self.assertIsNone(finding.component_version)
177-
self.assertEqual("default / Deployment / redis-follower", finding.service)
180+
self.assertIsNone(finding.service)
178181

179182
def test_license_scheme(self):
180183
with sample_path("license_scheme.json").open(encoding="utf-8") as test_file:

0 commit comments

Comments
 (0)