devsecops-engine-tools 1.7.11__py3-none-any.whl → 1.7.12__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.

@@ -128,6 +128,13 @@ class HandleScan:
128
128
  config_tool["ENGINE_SECRET"]["TOOL"],
129
129
  self.devops_platform_gateway
130
130
  )
131
+ if (
132
+ dict_args["use_vulnerability_management"] == "true"
133
+ and input_core.path_file_results
134
+ ):
135
+ self._use_vulnerability_management(
136
+ config_tool, input_core, dict_args, secret_tool, env
137
+ )
131
138
  return findings_list, input_core
132
139
  elif "engine_dependencies" in dict_args["tool"]:
133
140
  if secret_tool is not None:
@@ -53,6 +53,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
53
53
  "CHECKOV": "Checkov Scan",
54
54
  "PRISMA": "Twistlock Image Scan",
55
55
  "XRAY": "JFrog Xray On Demand Binary Scan",
56
+ "TRUFFLEHOG": "Trufflehog Scan",
56
57
  }
57
58
 
58
59
  if any(
@@ -60,7 +61,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
60
61
  for branch in vulnerability_management.config_tool[
61
62
  "VULNERABILITY_MANAGER"
62
63
  ]["BRANCH_FILTER"].split(",")
63
- ):
64
+ ) or (vulnerability_management.dict_args["tool"] == 'engine_secret'):
64
65
  request: ImportScanRequest = Connect.cmdb(
65
66
  cmdb_mapping={
66
67
  "product_type_name": "nombreevc",
@@ -28,16 +28,10 @@ class SecretScan:
28
28
  self.tool_deserialize = tool_deserialize
29
29
  self.git_gateway = git_gateway
30
30
 
31
- def process(self, dict_args, tool):
32
- tool = str(tool).lower()
33
- init_config_tool = self.devops_platform_gateway.get_remote_config(
34
- dict_args["remote_config_repo"], "engine_sast/engine_secret/ConfigTool.json"
35
- )
36
- config_tool, skip_tool = self.complete_config_tool(
37
- init_config_tool, tool
38
- )
31
+ def process(self, skip_tool, config_tool):
39
32
  finding_list = []
40
- if skip_tool == "false":
33
+ file_path_findings = ""
34
+ if skip_tool == False:
41
35
  self.tool_gateway.install_tool(self.devops_platform_gateway.get_variable("os"), self.devops_platform_gateway.get_variable("temp_directory"))
42
36
  files_pullrequest = self.git_gateway.get_files_pull_request(
43
37
  self.devops_platform_gateway.get_variable("work_folder"),
@@ -49,24 +43,40 @@ class SecretScan:
49
43
  self.devops_platform_gateway.get_variable("project_name"),
50
44
  self.devops_platform_gateway.get_variable("repository"),
51
45
  self.devops_platform_gateway.get_variable("repository_provider"))
52
- finding_list = self.tool_deserialize.get_list_vulnerability(
53
- self.tool_gateway.run_tool_secret_scan(
46
+ findings, file_path_findings = self.tool_gateway.run_tool_secret_scan(
54
47
  files_pullrequest,
55
48
  config_tool.exclude_path,
56
49
  self.devops_platform_gateway.get_variable("os"),
57
50
  self.devops_platform_gateway.get_variable("work_folder"),
58
51
  config_tool.number_threads,
59
52
  self.devops_platform_gateway.get_variable("repository")
60
- ),
53
+ )
54
+ finding_list = self.tool_deserialize.get_list_vulnerability(
55
+ findings,
61
56
  self.devops_platform_gateway.get_variable("os"),
62
57
  self.devops_platform_gateway.get_variable("work_folder")
63
58
  )
64
- return finding_list, config_tool
59
+ return finding_list, file_path_findings
65
60
 
66
- def complete_config_tool(self, data_file_tool, tool):
67
- config_tool = DeserializeConfigTool(json_data=data_file_tool, tool=tool)
61
+ def complete_config_tool(self, dict_args, tool):
62
+ tool = str(tool).lower()
63
+ init_config_tool = self.devops_platform_gateway.get_remote_config(
64
+ dict_args["remote_config_repo"], "engine_sast/engine_secret/ConfigTool.json"
65
+ )
66
+ config_tool = DeserializeConfigTool(json_data=init_config_tool, tool=tool)
68
67
  config_tool.scope_pipeline = self.devops_platform_gateway.get_variable("pipeline_name")
69
- skip_tool = "false"
70
- if config_tool.scope_pipeline in config_tool.ignore_search_pattern:
71
- skip_tool = "true"
72
- return config_tool, skip_tool
68
+ return config_tool
69
+
70
+ def skip_from_exclusion(self, exclusions):
71
+ """
72
+ Handle skip tool.
73
+
74
+ Return: bool: True -> skip tool, False -> not skip tool.
75
+ """
76
+ pipeline_name = self.devops_platform_gateway.get_variable("pipeline_name")
77
+ if (pipeline_name in exclusions) and (
78
+ exclusions[pipeline_name].get("SKIP_TOOL", 0)
79
+ ):
80
+ return True
81
+ else:
82
+ return False
@@ -37,19 +37,20 @@ class SetInputCore:
37
37
  list_exclusions = []
38
38
  for key, value in exclusions_data.items():
39
39
  if (key == "All") or (key == pipeline_name):
40
- exclusions = [
41
- Exclusions(
42
- id=item.get("id", ""),
43
- where=item.get("where", ""),
44
- create_date=item.get("create_date", ""),
45
- expired_date=item.get("expired_date", ""),
46
- severity=item.get("severity", ""),
47
- hu=item.get("hu", ""),
48
- reason=item.get("reason", "Risk acceptance"),
49
- )
50
- for item in value[tool]
51
- ]
52
- list_exclusions.extend(exclusions)
40
+ if value.get(tool, 0):
41
+ exclusions = [
42
+ Exclusions(
43
+ id=item.get("id", ""),
44
+ where=item.get("where", ""),
45
+ create_date=item.get("create_date", ""),
46
+ expired_date=item.get("expired_date", ""),
47
+ severity=item.get("severity", ""),
48
+ hu=item.get("hu", ""),
49
+ reason=item.get("reason", "Risk acceptance"),
50
+ )
51
+ for item in value[tool]
52
+ ]
53
+ list_exclusions.extend(exclusions)
53
54
  return list_exclusions
54
55
 
55
56
  def set_input_core(self, finding_list):
@@ -1,4 +1,5 @@
1
1
  import json
2
+ import os
2
3
  import re
3
4
  import subprocess
4
5
  import concurrent.futures
@@ -61,7 +62,8 @@ class TrufflehogRun(ToolGateway):
61
62
  include_paths,
62
63
  [repository_name] * len(include_paths),
63
64
  )
64
- return self.decode_output(results)
65
+ findings, file_findings = self.create_file(self.decode_output(results), agent_work_folder)
66
+ return findings, file_findings
65
67
 
66
68
  def config_include_path(self, files, agent_work_folder):
67
69
  chunks = []
@@ -102,3 +104,15 @@ class TrufflehogRun(ToolGateway):
102
104
  if json_obj not in result:
103
105
  result.append(json_obj)
104
106
  return result
107
+
108
+ def create_file(self, findings, agent_work_folder):
109
+ file_findings = os.path.join(agent_work_folder, "secret_scan_result.json")
110
+ with open(file_findings, "w") as file:
111
+ for find in findings:
112
+ original_where = str(find.get("SourceMetadata").get("Data").get("Filesystem").get("file"))
113
+ original_where = original_where.replace("\\", "/")
114
+ where_text = original_where.replace(agent_work_folder, "")
115
+ find["SourceMetadata"]["Data"]["Filesystem"]["file"] = where_text
116
+ json_str = json.dumps(find)
117
+ file.write(json_str + '\n')
118
+ return findings, file_findings
@@ -6,6 +6,12 @@ from devsecops_engine_tools.engine_sast.engine_secret.src.domain.usecases.set_in
6
6
 
7
7
  def engine_secret_scan(devops_platform_gateway, tool_gateway, dict_args, tool, tool_deserealizator, git_gateway):
8
8
  sys.stdout.reconfigure(encoding='utf-8')
9
- finding_list, config_tool = SecretScan(tool_gateway, devops_platform_gateway, tool_deserealizator, git_gateway).process(dict_args, tool)
9
+ exclusions = devops_platform_gateway.get_remote_config(
10
+ dict_args["remote_config_repo"], "engine_sast/engine_secret/Exclusions.json"
11
+ )
12
+ secret_scan = SecretScan(tool_gateway, devops_platform_gateway, tool_deserealizator, git_gateway)
13
+ config_tool = secret_scan.complete_config_tool(dict_args, tool)
14
+ skip_tool = secret_scan.skip_from_exclusion(exclusions)
15
+ finding_list, file_path_findings = secret_scan.process(skip_tool, config_tool)
10
16
  input_core = SetInputCore(devops_platform_gateway, dict_args, tool, config_tool)
11
- return finding_list, input_core.set_input_core(finding_list)
17
+ return finding_list, input_core.set_input_core(file_path_findings)
@@ -1 +1 @@
1
- version = '1.7.11'
1
+ version = '1.7.12'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.7.11
3
+ Version: 1.7.12
4
4
  Summary: Tool for DevSecOps strategy
5
5
  Home-page: https://github.com/bancolombia/devsecops-engine-tools
6
6
  Author: Bancolombia DevSecOps Team
@@ -1,5 +1,5 @@
1
1
  devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- devsecops_engine_tools/version.py,sha256=kch8pLRhOVDYQb0GPok1AQuGCWQQYxcJ0g6aeebrt9Q,19
2
+ devsecops_engine_tools/version.py,sha256=XbIhoEEUEJTJUiJEPml2J2LjQIi6Frpqax51My0O9Eg,18
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
@@ -26,7 +26,7 @@ devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_manage
26
26
  devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py,sha256=z6lcd-tnb-3QfZ1yf2ZlaRbovwF0YE6nUmS5V92aszc,15534
28
28
  devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py,sha256=EBLEzm-p_lEeB7T8iarn2Fc4_6hY0XAIT1AJATd2JUM,2473
29
- devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=CBk6KR2lpZ_ayitIdZERjJ0yasg1_dICHA0Tw97s-eo,6410
29
+ devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=bcQV-mBGoMwUENtWWCl245baGJNSmLxOLvd50S0C9zc,6702
30
30
  devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py,sha256=Xi0iNnPrFgqd2cBdAA5E_tgouhxs-BTo016aolnGgv8,2413
31
31
  devsecops_engine_tools/engine_core/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -36,7 +36,7 @@ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secret
36
36
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=Ot1j5my-iEpU-ZYy9yNXkwmwLOmJ3f95JyyAUcpFN5g,4967
38
38
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=YxW1Otev5V7REBr9yCW36XCmk9e_v5Y-blXrmRX_rZU,10748
39
+ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=fnyexfnIfFyP4iCLTeMwWa6OaEP_VYcnPg8roANIKGs,10864
40
40
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py,sha256=Tz056qYuIKrdYGKyoPo7xFdOpfN3A0YMd3cCSAGVrYQ,3828
42
42
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -113,17 +113,17 @@ devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gatewa
113
113
  devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/git_gateway.py,sha256=x6LFK8wZuVix-ZCBdBQTzvjQi59nZYVrSOTatCOQbxc,638
114
114
  devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py,sha256=juharYjy__KyB0fFCbU30k_aLd_9cQgsoCMeodq9ebA,593
115
115
  devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
- devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py,sha256=AppRyQD1vTkK46BPTLc6mCqGp9gE4YA0fxkg_pPoR2U,3621
117
- devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py,sha256=AR8bVAyrWEwyeJEJwXCQlsZKZMb790918OJPpxkmwyA,2747
116
+ devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py,sha256=VSeZorNjc98TTqGxD1NKm1ox__DRlCBqLCrA2heTxtM,3907
117
+ devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py,sha256=k0LZd9PJpqEDns6DLYRGu9DzpRZeFsxAnowcjP5Rml4,2838
118
118
  devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
119
  devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
120
  devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
121
  devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/git_run.py,sha256=xKIUAnNK4u0pTHgo5tFrzmnquBegBQgN2-3jU6V6vxQ,2642
122
122
  devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
123
  devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py,sha256=HZcNUa9VvK1InsDY94HiuDQuEH_R6pJIeAN3Zwi8CBA,1825
124
- devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py,sha256=BYbYBdC_DWWxpaxoLWXYdIHiKXDbUJ_zOyExt0coJwA,4544
124
+ devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py,sha256=cvCSKTDN-4oL9H5EZF_-WrP5bNamFt0WfeCwaMO_Nfo,5345
125
125
  devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py,sha256=cSCDXXDptaIDeBn-u9y_j5UbtjEY3AYK1zNXyKi9Ilw,693
126
+ devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py,sha256=g3DNFlvt6NEYG-g0CjSAQAUUh6spWpnkU64Pvi3cjqM,1028
127
127
  devsecops_engine_tools/engine_sca/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  devsecops_engine_tools/engine_sca/engine_container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
129
  devsecops_engine_tools/engine_sca/engine_container/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -242,8 +242,8 @@ devsecops_engine_tools/engine_utilities/utils/logger_info.py,sha256=4Mz8Bwlm9Mku
242
242
  devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGaxYSDe0ZRh6VHRf53H4sXPcb-vNP_i81PUn3I,307
243
243
  devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=GAslbWaBpwP3mP6fBsgVl07TTBgcCggQTy8h2M9ibeo,612
244
244
  devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
245
- devsecops_engine_tools-1.7.11.dist-info/METADATA,sha256=CvJMZOvY8BNEkXrKzS99fzgz-8jNTZDn6GcOZp8oPsg,9927
246
- devsecops_engine_tools-1.7.11.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
247
- devsecops_engine_tools-1.7.11.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
248
- devsecops_engine_tools-1.7.11.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
249
- devsecops_engine_tools-1.7.11.dist-info/RECORD,,
245
+ devsecops_engine_tools-1.7.12.dist-info/METADATA,sha256=kpJhqb5u7IYwXEvJf79--U9cddAzxdHCif-kNijLL04,9927
246
+ devsecops_engine_tools-1.7.12.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
247
+ devsecops_engine_tools-1.7.12.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
248
+ devsecops_engine_tools-1.7.12.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
249
+ devsecops_engine_tools-1.7.12.dist-info/RECORD,,