devsecops-engine-tools 1.24.4__py3-none-any.whl → 1.25.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of devsecops-engine-tools might be problematic. Click here for more details.

@@ -8,6 +8,8 @@ from devsecops_engine_tools.engine_core.src.domain.model.finding import (
8
8
  from dataclasses import dataclass
9
9
  from datetime import datetime
10
10
  import xml.etree.ElementTree as ET
11
+ from packageurl import PackageURL
12
+ from cpe import CPE
11
13
  from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
12
14
  from devsecops_engine_tools.engine_utilities import settings
13
15
 
@@ -37,14 +39,14 @@ class DependencyCheckDeserialize(DeserializatorGateway):
37
39
 
38
40
  id = vulnerability.find('ns:name', namespace).text[:20]
39
41
  cvss = ", ".join(f"{child.tag.split('}')[-1]}: {child.text}" for child in vulnerability.find('ns:cvssV3', namespace)) if vulnerability.find('ns:cvssV3', namespace) else ""
40
- fileName = dependency.find('ns:fileName', namespace).text.split(":")[-1].strip()
42
+ where = self.get_where(dependency, namespace)
41
43
  description = vulnerability.find('ns:description', namespace).text if vulnerability.find('ns:description', namespace).text else ""
42
44
  severity = vulnerability.find('ns:severity', namespace).text.lower()
43
- cvss
45
+
44
46
  finding_open = Finding(
45
47
  id=id,
46
48
  cvss=cvss,
47
- where=fileName,
49
+ where=where,
48
50
  description=description[:120].replace("\n\n", " ").replace("\n", " ").strip() if len(description) > 0 else "No description available",
49
51
  severity=severity,
50
52
  identification_date=datetime.now().strftime("%d%m%Y"),
@@ -86,4 +88,68 @@ class DependencyCheckDeserialize(DeserializatorGateway):
86
88
  for dep in to_remove: dependencies.remove(dep)
87
89
  data_result.write(dependencies_scanned_file, encoding="utf-8", xml_declaration=True)
88
90
 
89
- return dependencies, namespace
91
+ return dependencies, namespace
92
+
93
+ def get_where(self, dependency, namespace):
94
+ identifiers_node = dependency.find("ns:identifiers", namespace)
95
+ if identifiers_node:
96
+ package_node = identifiers_node.find(".//ns:package", namespace)
97
+ if package_node:
98
+ id = package_node.find("ns:id", namespace).text
99
+ purl = PackageURL.from_string(id)
100
+ purl_parts = purl.to_dict()
101
+ component_name = (
102
+ purl_parts["namespace"] + ":"
103
+ if purl_parts["namespace"]
104
+ and len(purl_parts["namespace"]) > 0
105
+ else ""
106
+ )
107
+ component_name += (
108
+ purl_parts["name"]
109
+ if purl_parts["name"] and len(purl_parts["name"]) > 0
110
+ else ""
111
+ )
112
+ component_name = component_name or None
113
+ component_version = (
114
+ purl_parts["version"]
115
+ if purl_parts["version"] and len(purl_parts["version"]) > 0
116
+ else ""
117
+ )
118
+ return f"{component_name}:{component_version}"
119
+
120
+ cpe_node = identifiers_node.find(
121
+ ".//ns:identifier[@type='cpe']", namespace
122
+ )
123
+ if cpe_node:
124
+ id = cpe_node.find("ns:name", namespace).text
125
+ cpe = CPE(id)
126
+ component_name = (
127
+ cpe.get_vendor()[0] + ":"
128
+ if len(cpe.get_vendor()) > 0
129
+ else ""
130
+ )
131
+ component_name += (
132
+ cpe.get_product()[0] if len(cpe.get_product()) > 0 else ""
133
+ )
134
+ component_name = component_name or None
135
+ component_version = (
136
+ cpe.get_version()[0]
137
+ if len(cpe.get_version()) > 0
138
+ else None
139
+ )
140
+ return f"{component_name}:{component_version}"
141
+
142
+ maven_node = identifiers_node.find(
143
+ ".//ns:identifier[@type='maven']", namespace
144
+ )
145
+ if maven_node:
146
+ maven_parts = maven_node.find("ns:name", namespace).text.split(
147
+ ":",
148
+ )
149
+
150
+ if len(maven_parts) == 3:
151
+ component_name = maven_parts[0] + ":" + maven_parts[1]
152
+ component_version = maven_parts[2]
153
+ return f"{component_name}:{component_version}"
154
+
155
+ return ""
@@ -1 +1 @@
1
- version = '1.24.4'
1
+ version = '1.25.0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.24.4
3
+ Version: 1.25.0
4
4
  Summary: Tool for DevSecOps strategy
5
5
  Home-page: https://github.com/bancolombia/devsecops-engine-tools
6
6
  Author: Bancolombia DevSecOps Team
@@ -26,6 +26,8 @@ Requires-Dist: boto3==1.34.157
26
26
  Requires-Dist: docker==7.1.0
27
27
  Requires-Dist: setuptools==72.1.0
28
28
  Requires-Dist: rich==13.9.4
29
+ Requires-Dist: cpe==1.3.1
30
+ Requires-Dist: packageurl-python==0.15.6
29
31
 
30
32
  # DevSecOps Engine Tools
31
33
 
@@ -1,5 +1,5 @@
1
1
  devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- devsecops_engine_tools/version.py,sha256=nxK2BgifENKV6dt-QsgVy0XRMMENjCqihuFovRTFDxo,19
2
+ devsecops_engine_tools/version.py,sha256=H5emCtCaqtHr-9dLv_SG9PwZ_mJKNcZ0wZ2S_f-TQHQ,19
3
3
  devsecops_engine_tools/engine_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  devsecops_engine_tools/engine_core/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  devsecops_engine_tools/engine_core/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -206,7 +206,7 @@ devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_in
206
206
  devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
207
  devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
208
208
  devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
- devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_deserialize.py,sha256=iI9nkJVJaagEGFaZ9AABYflla1PvCgu6afl9LYm35AU,4654
209
+ devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_deserialize.py,sha256=ptNRUxAjTfPf_kkafC2SlLCD6Loddf4que6pxipJNO4,7210
210
210
  devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py,sha256=T34iL4zFjyWYrRKDR0I6dfrXCyzIRM1nrqck4ubXm_w,5121
211
211
  devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
212
  devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py,sha256=ZUk-e1PKzV7uRAT7BpET363pgl2eMnXMCGSpewsOpKg,2236
@@ -308,8 +308,8 @@ devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGax
308
308
  devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=amYAr9YQfYgR6jK9a2l26z3oovFPQ3FAKmhq6BKhEBA,623
309
309
  devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
310
310
  devsecops_engine_tools/engine_utilities/utils/utils.py,sha256=yvCbPKAWa7wxk5S-s_Xkvx9VtnIpv9eWUMG8wtlmrhs,5870
311
- devsecops_engine_tools-1.24.4.dist-info/METADATA,sha256=6PGOMHLoCAB5KfO60Ut4bauTOOUARHLmaAm0u5XhYOM,10943
312
- devsecops_engine_tools-1.24.4.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
313
- devsecops_engine_tools-1.24.4.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
314
- devsecops_engine_tools-1.24.4.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
315
- devsecops_engine_tools-1.24.4.dist-info/RECORD,,
311
+ devsecops_engine_tools-1.25.0.dist-info/METADATA,sha256=oJKPtxsdfGzrdqYgZg1sokubbszwx1AceewY7AJkqWg,11010
312
+ devsecops_engine_tools-1.25.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
313
+ devsecops_engine_tools-1.25.0.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
314
+ devsecops_engine_tools-1.25.0.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
315
+ devsecops_engine_tools-1.25.0.dist-info/RECORD,,