devsecops-engine-tools 1.11.1__tar.gz → 1.11.3__tar.gz
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.
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/PKG-INFO +6 -2
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +1 -1
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +2 -1
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +1 -1
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +2 -1
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py +13 -14
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_deserealizator.py +1 -1
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py +6 -7
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +3 -2
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +3 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +5 -4
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +6 -5
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +43 -5
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +2 -2
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +21 -3
- devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_deserialize.py +62 -0
- devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py +120 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +4 -98
- devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/get_artifacts.py +107 -0
- devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
- devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/utils/utils.py +8 -0
- devsecops_engine_tools-1.11.3/devsecops_engine_tools/version.py +1 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools.egg-info/PKG-INFO +6 -2
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools.egg-info/SOURCES.txt +6 -1
- devsecops_engine_tools-1.11.1/devsecops_engine_tools/version.py +0 -1
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/README.md +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/custom_level_vulnerability.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/report.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/add_epss_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/usecases/add_data.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/usecases/get_exclusions.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/first_epss_csv.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/applications/runner_engine_code.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/code_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/file_generator_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/azuredevops → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/azuredevops}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/azuredevops/models → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/applications → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/azuredevops/models}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/domain → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/git_cli → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/git_cli/infrastructure → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/git_cli}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/git_cli/model → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/git_cli/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/git_cli/infrastructure/git_run.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/git_cli/model/gateway → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/git_cli/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/github → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/git_cli/model/gateway}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/git_cli/model/gateway/git_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/github/infrastructure → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/github}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/github/models → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/github/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/input_validations → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/github/models}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/ssh → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/input_validations}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/settings.py +0 -0
- {devsecops_engine_tools-1.11.1/devsecops_engine_tools/engine_utilities/utils → devsecops_engine_tools-1.11.3/devsecops_engine_tools/engine_utilities/ssh}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/utils/api_error.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/utils/logger_info.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/utils/printers.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools/engine_utilities/utils/session_manager.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools.egg-info/dependency_links.txt +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools.egg-info/entry_points.txt +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools.egg-info/requires.txt +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/devsecops_engine_tools.egg-info/top_level.txt +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/setup.cfg +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.3}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.11.
|
|
3
|
+
Version: 1.11.3
|
|
4
4
|
Summary: Tool for DevSecOps strategy
|
|
5
5
|
Home-page: https://github.com/bancolombia/devsecops-engine-tools
|
|
6
6
|
Author: Bancolombia DevSecOps Team
|
|
@@ -144,10 +144,14 @@ devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_con
|
|
|
144
144
|
<td>Free</td>
|
|
145
145
|
</tr>
|
|
146
146
|
<tr>
|
|
147
|
-
<td>ENGINE_DEPENDENCIES</td>
|
|
147
|
+
<td rowspan="2">ENGINE_DEPENDENCIES</td>
|
|
148
148
|
<td><a href="https://jfrog.com/help/r/get-started-with-the-jfrog-platform/jfrog-xray">XRAY</a></td>
|
|
149
149
|
<td>Paid</td>
|
|
150
150
|
</tr>
|
|
151
|
+
<tr>
|
|
152
|
+
<td><a href="https://owasp.org/www-project-dependency-check/">DEPENDENCY CHECK</a></td>
|
|
153
|
+
<td>Free</td>
|
|
154
|
+
</tr>
|
|
151
155
|
<tr>
|
|
152
156
|
<td>ENGINE_CODE</td>
|
|
153
157
|
<td><a href="https://docs.bearer.com/quickstart/">BEARER</a></td>
|
|
@@ -144,7 +144,7 @@ def get_inputs_from_cli(args):
|
|
|
144
144
|
parser.add_argument(
|
|
145
145
|
"--token_external_checks",
|
|
146
146
|
required=False,
|
|
147
|
-
help="Token for downloading external checks from engine_iac if is necessary. Ej: github:token, ssh:privatekey:pass",
|
|
147
|
+
help="Token for downloading external checks from engine_iac or engine_secret if is necessary. Ej: github:token, ssh:privatekey:pass",
|
|
148
148
|
)
|
|
149
149
|
parser.add_argument(
|
|
150
150
|
"--xray_mode",
|
|
@@ -136,7 +136,8 @@ class HandleScan:
|
|
|
136
136
|
findings_list, input_core = runner_secret_scan(
|
|
137
137
|
dict_args,
|
|
138
138
|
config_tool["ENGINE_SECRET"]["TOOL"],
|
|
139
|
-
self.devops_platform_gateway
|
|
139
|
+
self.devops_platform_gateway,
|
|
140
|
+
secret_tool
|
|
140
141
|
)
|
|
141
142
|
if (
|
|
142
143
|
dict_args["use_vulnerability_management"] == "true"
|
|
@@ -65,7 +65,8 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
65
65
|
"TRIVY": "Trivy Scan",
|
|
66
66
|
"KUBESCAPE": "Kubescape Scanner",
|
|
67
67
|
"KICS": "KICS Scanner",
|
|
68
|
-
"BEARER": "Bearer CLI"
|
|
68
|
+
"BEARER": "Bearer CLI",
|
|
69
|
+
"DEPENDENCY_CHECK": "Dependency Check Scan"
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
if any(
|
|
@@ -11,7 +11,7 @@ from devsecops_engine_tools.engine_sast.engine_iac.src.infrastructure.driven_ada
|
|
|
11
11
|
)
|
|
12
12
|
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
13
13
|
from devsecops_engine_tools.engine_utilities import settings
|
|
14
|
-
from devsecops_engine_tools.engine_utilities.
|
|
14
|
+
from devsecops_engine_tools.engine_utilities.utils.utils import Utils
|
|
15
15
|
|
|
16
16
|
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
17
17
|
|
|
@@ -28,7 +28,7 @@ class KicsTool(ToolGateway):
|
|
|
28
28
|
logger.error(f"An error ocurred downloading {file} {ex}")
|
|
29
29
|
|
|
30
30
|
def install_tool(self, file, url, command_prefix):
|
|
31
|
-
|
|
31
|
+
utils = Utils()
|
|
32
32
|
kics = f"./{command_prefix}/kics"
|
|
33
33
|
installed = subprocess.run(
|
|
34
34
|
["which", command_prefix],
|
|
@@ -38,7 +38,7 @@ class KicsTool(ToolGateway):
|
|
|
38
38
|
if installed.returncode == 1:
|
|
39
39
|
try:
|
|
40
40
|
self.download(file, url)
|
|
41
|
-
|
|
41
|
+
utils.unzip_file(file, command_prefix)
|
|
42
42
|
subprocess.run(["chmod", "+x", kics])
|
|
43
43
|
return kics
|
|
44
44
|
except Exception as e:
|
|
@@ -56,9 +56,9 @@ class KicsTool(ToolGateway):
|
|
|
56
56
|
return command_prefix
|
|
57
57
|
except:
|
|
58
58
|
try:
|
|
59
|
-
|
|
59
|
+
utils = Utils()
|
|
60
60
|
self.download(file, url)
|
|
61
|
-
|
|
61
|
+
utils.unzip_file(file, command_prefix)
|
|
62
62
|
return f"./{command_prefix}/kics"
|
|
63
63
|
|
|
64
64
|
except Exception as e:
|
|
@@ -81,34 +81,32 @@ class KicsTool(ToolGateway):
|
|
|
81
81
|
logger.error(f"An error ocurred loading KICS results {ex}")
|
|
82
82
|
return None
|
|
83
83
|
|
|
84
|
-
def select_operative_system(self, os_platform,
|
|
84
|
+
def select_operative_system(self, os_platform, config_tool, path_kics):
|
|
85
85
|
command_prefix = path_kics
|
|
86
86
|
if os_platform == "Linux":
|
|
87
87
|
kics_zip = "kics_linux.zip"
|
|
88
88
|
url_kics = config_tool[self.TOOL_KICS]["KICS_LINUX"]
|
|
89
|
-
|
|
89
|
+
return self.install_tool(kics_zip, url_kics, command_prefix)
|
|
90
90
|
elif os_platform == "Windows":
|
|
91
91
|
kics_zip = "kics_windows.zip"
|
|
92
92
|
url_kics = config_tool[self.TOOL_KICS]["KICS_WINDOWS"]
|
|
93
|
-
|
|
93
|
+
return self.install_tool_windows(kics_zip, url_kics, command_prefix)
|
|
94
94
|
elif os_platform == "Darwin":
|
|
95
95
|
kics_zip = "kics_macos.zip"
|
|
96
96
|
url_kics = config_tool[self.TOOL_KICS]["KICS_MAC"]
|
|
97
|
-
|
|
97
|
+
return self.install_tool(kics_zip, url_kics, command_prefix)
|
|
98
98
|
else:
|
|
99
99
|
logger.warning(f"{os_platform} is not supported.")
|
|
100
100
|
return [], None
|
|
101
101
|
|
|
102
|
-
self.execute_kics(folders_to_scan, command_prefix)
|
|
103
|
-
|
|
104
102
|
def get_assets(self, kics_version):
|
|
105
103
|
name_zip = "assets_compressed.zip"
|
|
106
104
|
assets_url = f"https://github.com/Checkmarx/kics/releases/download/v{kics_version}/extracted-info.zip"
|
|
107
105
|
self.download(name_zip, assets_url)
|
|
108
106
|
|
|
109
107
|
directory_assets = "kics_assets"
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
utils = Utils()
|
|
109
|
+
utils.unzip_file(name_zip, directory_assets)
|
|
112
110
|
|
|
113
111
|
def run_tool(
|
|
114
112
|
self, config_tool, folders_to_scan, **kwargs
|
|
@@ -120,7 +118,8 @@ class KicsTool(ToolGateway):
|
|
|
120
118
|
self.get_assets(kics_version)
|
|
121
119
|
|
|
122
120
|
os_platform = platform.system()
|
|
123
|
-
self.select_operative_system(os_platform,
|
|
121
|
+
command_prefix = self.select_operative_system(os_platform, config_tool, path_kics)
|
|
122
|
+
self.execute_kics(folders_to_scan, command_prefix)
|
|
124
123
|
|
|
125
124
|
data = self.load_results()
|
|
126
125
|
if data:
|
|
@@ -46,7 +46,7 @@ class KubescapeDeserealizator:
|
|
|
46
46
|
resource = resources.get(resource_id)
|
|
47
47
|
|
|
48
48
|
if resource:
|
|
49
|
-
relative_path = resource.get("source", {}).get("
|
|
49
|
+
relative_path = resource.get("source", {}).get("relativePath", "").replace("\\", "/")
|
|
50
50
|
severity_score = self.get_severity_score(frameworks, control_id)
|
|
51
51
|
|
|
52
52
|
result_extracted_data.append({
|
|
@@ -72,30 +72,28 @@ class KubescapeTool(ToolGateway):
|
|
|
72
72
|
logger.error("The JSON result is empty.")
|
|
73
73
|
return None
|
|
74
74
|
|
|
75
|
-
def select_operative_system(self, os_platform,
|
|
75
|
+
def select_operative_system(self, os_platform, base_url):
|
|
76
76
|
if os_platform == "Linux":
|
|
77
77
|
distro_name = distro.name()
|
|
78
78
|
if distro_name == "Ubuntu":
|
|
79
79
|
file = "kubescape-ubuntu-latest"
|
|
80
80
|
self.install_tool(file, base_url + file)
|
|
81
|
-
|
|
81
|
+
return f"./{file}"
|
|
82
82
|
else:
|
|
83
83
|
logger.warning(f"{distro_name} is not supported.")
|
|
84
84
|
return None
|
|
85
85
|
elif os_platform == "Windows":
|
|
86
86
|
file = "kubescape-windows-latest.exe"
|
|
87
87
|
self.install_tool_windows(file, base_url + file)
|
|
88
|
-
|
|
88
|
+
return f"./{file}"
|
|
89
89
|
elif os_platform == "Darwin":
|
|
90
90
|
file = "kubescape-macos-latest"
|
|
91
91
|
self.install_tool(file, base_url + file)
|
|
92
|
-
|
|
92
|
+
return f"./{file}"
|
|
93
93
|
else:
|
|
94
94
|
logger.warning(f"{os_platform} is not supported.")
|
|
95
95
|
return [], None
|
|
96
96
|
|
|
97
|
-
self.execute_kubescape(folders_to_scan, command_prefix)
|
|
98
|
-
|
|
99
97
|
def run_tool(self, config_tool, folders_to_scan, platform_to_scan, **kwargs):
|
|
100
98
|
|
|
101
99
|
if folders_to_scan and "k8s" in platform_to_scan:
|
|
@@ -103,7 +101,8 @@ class KubescapeTool(ToolGateway):
|
|
|
103
101
|
kubescape_version = config_tool["KUBESCAPE"]["VERSION"]
|
|
104
102
|
os_platform = platform.system()
|
|
105
103
|
base_url = f"https://github.com/kubescape/kubescape/releases/download/v{kubescape_version}/"
|
|
106
|
-
self.select_operative_system(os_platform,
|
|
104
|
+
command_prefix = self.select_operative_system(os_platform, base_url)
|
|
105
|
+
self.execute_kubescape(folders_to_scan, command_prefix)
|
|
107
106
|
|
|
108
107
|
json_name = "results_kubescape.json"
|
|
109
108
|
data = self.load_json(json_name)
|
|
@@ -11,7 +11,7 @@ from devsecops_engine_tools.engine_utilities.git_cli.infrastructure.git_run impo
|
|
|
11
11
|
GitRun
|
|
12
12
|
)
|
|
13
13
|
|
|
14
|
-
def runner_secret_scan(dict_args, tool, devops_platform_gateway):
|
|
14
|
+
def runner_secret_scan(dict_args, tool, devops_platform_gateway, secret_tool):
|
|
15
15
|
try:
|
|
16
16
|
tool_deserealizator = None
|
|
17
17
|
tool_gateway = None
|
|
@@ -25,7 +25,8 @@ def runner_secret_scan(dict_args, tool, devops_platform_gateway):
|
|
|
25
25
|
dict_args = dict_args,
|
|
26
26
|
tool=tool,
|
|
27
27
|
tool_deserealizator = tool_deserealizator,
|
|
28
|
-
git_gateway = git_gateway
|
|
28
|
+
git_gateway = git_gateway,
|
|
29
|
+
secret_tool = secret_tool
|
|
29
30
|
)
|
|
30
31
|
except Exception as e:
|
|
31
32
|
raise Exception(f"Error engine_secret : {str(e)}")
|
|
@@ -9,3 +9,6 @@ class DeserializeConfigTool:
|
|
|
9
9
|
self.exclude_path = json_data[tool]["EXCLUDE_PATH"]
|
|
10
10
|
self.number_threads = json_data[tool]["NUMBER_THREADS"]
|
|
11
11
|
self.target_branches = json_data["TARGET_BRANCHES"]
|
|
12
|
+
self.enable_custom_rules = json_data[tool]["ENABLE_CUSTOM_RULES"]
|
|
13
|
+
self.external_dir_owner = json_data[tool]["EXTERNAL_DIR_OWNER"]
|
|
14
|
+
self.external_dir_repo = json_data[tool]["EXTERNAL_DIR_REPOSITORY"]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from abc import ABCMeta, abstractmethod
|
|
2
|
-
|
|
2
|
+
from devsecops_engine_tools.engine_sast.engine_secret.src.domain.model.DeserializeConfigTool import DeserializeConfigTool
|
|
3
3
|
|
|
4
4
|
class ToolGateway(metaclass=ABCMeta):
|
|
5
5
|
@abstractmethod
|
|
@@ -8,9 +8,10 @@ class ToolGateway(metaclass=ABCMeta):
|
|
|
8
8
|
@abstractmethod
|
|
9
9
|
def run_tool_secret_scan(self,
|
|
10
10
|
files_pullrequest: dict,
|
|
11
|
-
exclude_path: dict,
|
|
12
11
|
agent_os: str,
|
|
13
12
|
agent_work_folder: str,
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
repository_name: str,
|
|
14
|
+
config_tool: DeserializeConfigTool,
|
|
15
|
+
secret_tool,
|
|
16
|
+
secret_external_checks) -> str:
|
|
16
17
|
"run tool secret scan"
|
|
@@ -28,9 +28,10 @@ class SecretScan:
|
|
|
28
28
|
self.tool_deserialize = tool_deserialize
|
|
29
29
|
self.git_gateway = git_gateway
|
|
30
30
|
|
|
31
|
-
def process(self, skip_tool, config_tool):
|
|
31
|
+
def process(self, skip_tool, config_tool, secret_tool, dict_args):
|
|
32
32
|
finding_list = []
|
|
33
33
|
file_path_findings = ""
|
|
34
|
+
secret_external_checks=dict_args["token_external_checks"]
|
|
34
35
|
if skip_tool == False:
|
|
35
36
|
self.tool_gateway.install_tool(self.devops_platform_gateway.get_variable("os"), self.devops_platform_gateway.get_variable("temp_directory"))
|
|
36
37
|
files_pullrequest = self.git_gateway.get_files_pull_request(
|
|
@@ -45,12 +46,12 @@ class SecretScan:
|
|
|
45
46
|
self.devops_platform_gateway.get_variable("repository_provider"))
|
|
46
47
|
findings, file_path_findings = self.tool_gateway.run_tool_secret_scan(
|
|
47
48
|
files_pullrequest,
|
|
48
|
-
config_tool.exclude_path,
|
|
49
49
|
self.devops_platform_gateway.get_variable("os"),
|
|
50
50
|
self.devops_platform_gateway.get_variable("path_directory"),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
self.devops_platform_gateway.get_variable("repository"),
|
|
52
|
+
config_tool,
|
|
53
|
+
secret_tool,
|
|
54
|
+
secret_external_checks)
|
|
54
55
|
finding_list = self.tool_deserialize.get_list_vulnerability(
|
|
55
56
|
findings,
|
|
56
57
|
self.devops_platform_gateway.get_variable("os"),
|
|
@@ -7,6 +7,13 @@ import concurrent.futures
|
|
|
7
7
|
from devsecops_engine_tools.engine_sast.engine_secret.src.domain.model.gateway.tool_gateway import (
|
|
8
8
|
ToolGateway,
|
|
9
9
|
)
|
|
10
|
+
from devsecops_engine_tools.engine_utilities.github.infrastructure.github_api import (
|
|
11
|
+
GithubApi,
|
|
12
|
+
)
|
|
13
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
14
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
15
|
+
|
|
16
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
10
17
|
|
|
11
18
|
result = []
|
|
12
19
|
|
|
@@ -40,20 +47,34 @@ class TrufflehogRun(ToolGateway):
|
|
|
40
47
|
def run_tool_secret_scan(
|
|
41
48
|
self,
|
|
42
49
|
files_commits,
|
|
43
|
-
exclude_paths,
|
|
44
50
|
agent_os,
|
|
45
51
|
agent_work_folder,
|
|
46
|
-
num_threads,
|
|
47
52
|
repository_name,
|
|
53
|
+
config_tool,
|
|
54
|
+
secret_tool,
|
|
55
|
+
secret_external_checks
|
|
48
56
|
):
|
|
49
57
|
trufflehog_command = "trufflehog"
|
|
50
58
|
if "Windows" in agent_os:
|
|
51
59
|
trufflehog_command = "C:/Trufflehog/bin/trufflehog.exe"
|
|
52
60
|
with open(f"{agent_work_folder}/excludedPath.txt", "w") as file:
|
|
53
|
-
file.write("\n".join(
|
|
61
|
+
file.write("\n".join(config_tool.exclude_path))
|
|
54
62
|
exclude_path = f"{agent_work_folder}/excludedPath.txt"
|
|
55
63
|
include_paths = self.config_include_path(files_commits, agent_work_folder)
|
|
56
|
-
|
|
64
|
+
enable_custom_rules = config_tool.enable_custom_rules.lower()
|
|
65
|
+
secret = None
|
|
66
|
+
|
|
67
|
+
if secret_tool is not None:
|
|
68
|
+
secret = secret_tool["github_token"] if "github" in secret_tool else None
|
|
69
|
+
elif secret_external_checks is not None:
|
|
70
|
+
secret = secret_external_checks.split("github:")[1] if "github" in secret_external_checks else None
|
|
71
|
+
|
|
72
|
+
if enable_custom_rules == "true" and secret is not None:
|
|
73
|
+
self.configurate_external_checks(config_tool, secret)
|
|
74
|
+
else: #In case that remote config from tool is enable but in the args dont send any type of secrets. So dont modified command
|
|
75
|
+
enable_custom_rules == "false"
|
|
76
|
+
|
|
77
|
+
with concurrent.futures.ThreadPoolExecutor(max_workers=config_tool.number_threads) as executor:
|
|
57
78
|
results = executor.map(
|
|
58
79
|
self.run_trufflehog,
|
|
59
80
|
[trufflehog_command] * len(include_paths),
|
|
@@ -61,6 +82,7 @@ class TrufflehogRun(ToolGateway):
|
|
|
61
82
|
[exclude_path] * len(include_paths),
|
|
62
83
|
include_paths,
|
|
63
84
|
[repository_name] * len(include_paths),
|
|
85
|
+
[enable_custom_rules],
|
|
64
86
|
)
|
|
65
87
|
findings, file_findings = self.create_file(self.decode_output(results), agent_work_folder)
|
|
66
88
|
return findings, file_findings
|
|
@@ -90,8 +112,13 @@ class TrufflehogRun(ToolGateway):
|
|
|
90
112
|
exclude_path,
|
|
91
113
|
include_path,
|
|
92
114
|
repository_name,
|
|
115
|
+
enable_custom_rules
|
|
93
116
|
):
|
|
94
117
|
command = f"{trufflehog_command} filesystem {agent_work_folder + '/' + repository_name} --include-paths {include_path} --exclude-paths {exclude_path} --no-verification --json"
|
|
118
|
+
|
|
119
|
+
if enable_custom_rules == "true":
|
|
120
|
+
command = command.replace("--no-verification --json", "--config /tmp/rules/trufflehog/custom-rules.yaml --no-verification --json")
|
|
121
|
+
|
|
95
122
|
result = subprocess.run(command, capture_output=True, shell=True, text=True)
|
|
96
123
|
return result.stdout.strip()
|
|
97
124
|
|
|
@@ -115,4 +142,15 @@ class TrufflehogRun(ToolGateway):
|
|
|
115
142
|
find["SourceMetadata"]["Data"]["Filesystem"]["file"] = where_text
|
|
116
143
|
json_str = json.dumps(find)
|
|
117
144
|
file.write(json_str + '\n')
|
|
118
|
-
return findings, file_findings
|
|
145
|
+
return findings, file_findings
|
|
146
|
+
|
|
147
|
+
def configurate_external_checks(self, config_tool, secret):
|
|
148
|
+
try:
|
|
149
|
+
github_api = GithubApi(secret)
|
|
150
|
+
github_api.download_latest_release_assets(
|
|
151
|
+
config_tool.external_dir_owner,
|
|
152
|
+
config_tool.external_dir_repo,
|
|
153
|
+
"/tmp",
|
|
154
|
+
)
|
|
155
|
+
except Exception as ex:
|
|
156
|
+
logger.error(f"An error ocurred download external checks {ex}")
|
|
@@ -4,13 +4,13 @@ from devsecops_engine_tools.engine_sast.engine_secret.src.domain.usecases.set_in
|
|
|
4
4
|
SetInputCore,
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
def engine_secret_scan(devops_platform_gateway, tool_gateway, dict_args, tool, tool_deserealizator, git_gateway):
|
|
7
|
+
def engine_secret_scan(devops_platform_gateway, tool_gateway, dict_args, tool, tool_deserealizator, git_gateway, secret_tool):
|
|
8
8
|
exclusions = devops_platform_gateway.get_remote_config(
|
|
9
9
|
dict_args["remote_config_repo"], "engine_sast/engine_secret/Exclusions.json"
|
|
10
10
|
)
|
|
11
11
|
secret_scan = SecretScan(tool_gateway, devops_platform_gateway, tool_deserealizator, git_gateway)
|
|
12
12
|
config_tool = secret_scan.complete_config_tool(dict_args, tool)
|
|
13
13
|
skip_tool = secret_scan.skip_from_exclusion(exclusions)
|
|
14
|
-
finding_list, file_path_findings = secret_scan.process(skip_tool, config_tool)
|
|
14
|
+
finding_list, file_path_findings = secret_scan.process(skip_tool, config_tool, secret_tool, dict_args)
|
|
15
15
|
input_core = SetInputCore(devops_platform_gateway, dict_args, tool, config_tool)
|
|
16
16
|
return finding_list, input_core.set_input_core(file_path_findings)
|
|
@@ -4,6 +4,12 @@ from devsecops_engine_tools.engine_sca.engine_dependencies.src.infrastructure.dr
|
|
|
4
4
|
from devsecops_engine_tools.engine_sca.engine_dependencies.src.infrastructure.driven_adapters.xray_tool.xray_deserialize_output import (
|
|
5
5
|
XrayDeserializator,
|
|
6
6
|
)
|
|
7
|
+
from devsecops_engine_tools.engine_sca.engine_dependencies.src.infrastructure.driven_adapters.dependency_check.dependency_check_tool import (
|
|
8
|
+
DependencyCheckTool,
|
|
9
|
+
)
|
|
10
|
+
from devsecops_engine_tools.engine_sca.engine_dependencies.src.infrastructure.driven_adapters.dependency_check.dependency_check_deserialize import (
|
|
11
|
+
DependencyCheckDeserialize,
|
|
12
|
+
)
|
|
7
13
|
from devsecops_engine_tools.engine_sca.engine_dependencies.src.infrastructure.entry_points.entry_point_tool import (
|
|
8
14
|
init_engine_dependencies,
|
|
9
15
|
)
|
|
@@ -11,9 +17,21 @@ from devsecops_engine_tools.engine_sca.engine_dependencies.src.infrastructure.en
|
|
|
11
17
|
|
|
12
18
|
def runner_engine_dependencies(dict_args, config_tool, secret_tool, devops_platform_gateway):
|
|
13
19
|
try:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
tools_mapping = {
|
|
21
|
+
"XRAY": {
|
|
22
|
+
"tool_run": XrayScan,
|
|
23
|
+
"tool_deserializator": XrayDeserializator
|
|
24
|
+
},
|
|
25
|
+
"DEPENDENCY_CHECK": {
|
|
26
|
+
"tool_run": DependencyCheckTool,
|
|
27
|
+
"tool_deserializator": DependencyCheckDeserialize
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
selected_tool = config_tool["ENGINE_DEPENDENCIES"]["TOOL"]
|
|
32
|
+
tool_run = tools_mapping[selected_tool]["tool_run"]()
|
|
33
|
+
tool_deserializator = tools_mapping[selected_tool]["tool_deserializator"]()
|
|
34
|
+
|
|
17
35
|
|
|
18
36
|
return init_engine_dependencies(
|
|
19
37
|
tool_run,
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_sca.engine_dependencies.src.domain.model.gateways.deserializator_gateway import (
|
|
2
|
+
DeserializatorGateway,
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_core.src.domain.model.finding import (
|
|
5
|
+
Finding,
|
|
6
|
+
Category,
|
|
7
|
+
)
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
from datetime import datetime
|
|
10
|
+
import json
|
|
11
|
+
import os
|
|
12
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
13
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
14
|
+
|
|
15
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
16
|
+
|
|
17
|
+
@dataclass
|
|
18
|
+
class DependencyCheckDeserialize(DeserializatorGateway):
|
|
19
|
+
|
|
20
|
+
def get_list_findings(self, dependencies_scanned_file) -> "list[Finding]":
|
|
21
|
+
filename, extension = os.path.splitext(dependencies_scanned_file)
|
|
22
|
+
if extension.lower() != ".json":
|
|
23
|
+
dependencies_scanned_file = f"{filename}.json"
|
|
24
|
+
|
|
25
|
+
data_result = self.load_results(dependencies_scanned_file)
|
|
26
|
+
|
|
27
|
+
list_open_vulnerabilities = []
|
|
28
|
+
for dependency in data_result.get("dependencies", []):
|
|
29
|
+
for vulnerability in dependency.get("vulnerabilities", []):
|
|
30
|
+
vulnerable_software = vulnerability.get("vulnerableSoftware", [])
|
|
31
|
+
fix = (
|
|
32
|
+
vulnerable_software[0]
|
|
33
|
+
.get("software", {})
|
|
34
|
+
.get("versionEndExcluding", None)
|
|
35
|
+
if vulnerable_software
|
|
36
|
+
else None
|
|
37
|
+
)
|
|
38
|
+
finding_open = Finding(
|
|
39
|
+
id=vulnerability["name"][:20],
|
|
40
|
+
cvss=str(vulnerability.get("cvssv3", {})),
|
|
41
|
+
where=dependency.get("fileName").split(':')[-1].strip(),
|
|
42
|
+
description=vulnerability["description"][:170].replace("\n\n", " "),
|
|
43
|
+
severity=vulnerability["severity"].lower(),
|
|
44
|
+
identification_date=datetime.now().strftime("%d%m%Y"),
|
|
45
|
+
published_date_cve=None,
|
|
46
|
+
module="engine_dependencies",
|
|
47
|
+
category=Category.VULNERABILITY,
|
|
48
|
+
requirements=fix,
|
|
49
|
+
tool="DEPENDENCY_CHECK"
|
|
50
|
+
)
|
|
51
|
+
list_open_vulnerabilities.append(finding_open)
|
|
52
|
+
|
|
53
|
+
return list_open_vulnerabilities
|
|
54
|
+
|
|
55
|
+
def load_results(self, dependencies_scanned_file):
|
|
56
|
+
try:
|
|
57
|
+
with open(dependencies_scanned_file) as f:
|
|
58
|
+
data = json.load(f)
|
|
59
|
+
return data
|
|
60
|
+
except Exception as ex:
|
|
61
|
+
logger.error(f"An error ocurred loading dependency-check results {ex}")
|
|
62
|
+
return None
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_sca.engine_dependencies.src.domain.model.gateways.tool_gateway import (
|
|
2
|
+
ToolGateway,
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
import requests
|
|
6
|
+
import subprocess
|
|
7
|
+
import os
|
|
8
|
+
import platform
|
|
9
|
+
import shutil
|
|
10
|
+
|
|
11
|
+
from devsecops_engine_tools.engine_utilities.utils.utils import Utils
|
|
12
|
+
from devsecops_engine_tools.engine_sca.engine_dependencies.src.infrastructure.helpers.get_artifacts import GetArtifacts
|
|
13
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
14
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
15
|
+
|
|
16
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class DependencyCheckTool(ToolGateway):
|
|
20
|
+
def download_tool(self, cli_version):
|
|
21
|
+
try:
|
|
22
|
+
url = f"https://github.com/jeremylong/DependencyCheck/releases/download/v{cli_version}/dependency-check-{cli_version}-release.zip"
|
|
23
|
+
response = requests.get(url, allow_redirects=True)
|
|
24
|
+
home_directory = os.path.expanduser("~")
|
|
25
|
+
zip_name = os.path.join(home_directory, f"dependency_check_{cli_version}.zip")
|
|
26
|
+
with open(zip_name, "wb") as f:
|
|
27
|
+
f.write(response.content)
|
|
28
|
+
|
|
29
|
+
utils = Utils()
|
|
30
|
+
utils.unzip_file(zip_name, home_directory)
|
|
31
|
+
except Exception as ex:
|
|
32
|
+
logger.error(f"An error ocurred downloading dependency-check {ex}")
|
|
33
|
+
|
|
34
|
+
def install_tool(self, cli_version, is_windows=False):
|
|
35
|
+
command_prefix = "dependency-check.bat" if is_windows else "dependency-check.sh"
|
|
36
|
+
|
|
37
|
+
installed = shutil.which(command_prefix)
|
|
38
|
+
if installed:
|
|
39
|
+
return command_prefix
|
|
40
|
+
|
|
41
|
+
home_directory = os.path.expanduser("~")
|
|
42
|
+
bin_route = os.path.join(home_directory, f"dependency-check/bin/{command_prefix}")
|
|
43
|
+
|
|
44
|
+
if shutil.which(bin_route):
|
|
45
|
+
return bin_route
|
|
46
|
+
|
|
47
|
+
self.download_tool(cli_version)
|
|
48
|
+
|
|
49
|
+
try:
|
|
50
|
+
if os.path.exists(bin_route):
|
|
51
|
+
if not is_windows:
|
|
52
|
+
subprocess.run(["chmod", "+x", bin_route], check=True)
|
|
53
|
+
return bin_route
|
|
54
|
+
except Exception as e:
|
|
55
|
+
logger.error(f"Error installing OWASP dependency check: {e}")
|
|
56
|
+
return None
|
|
57
|
+
|
|
58
|
+
def scan_dependencies(self, command_prefix, file_to_scan, token):
|
|
59
|
+
try:
|
|
60
|
+
command = [command_prefix, "--format", "JSON", "--format", "XML", "--nvdApiKey", token, "--scan", file_to_scan,]
|
|
61
|
+
|
|
62
|
+
if not token:
|
|
63
|
+
print("¡¡Remember!!, it is recommended to use the API key for faster vulnerability database downloads.")
|
|
64
|
+
command = [command_prefix, "--format", "JSON", "--format", "XML", "--scan", file_to_scan,]
|
|
65
|
+
|
|
66
|
+
subprocess.run(command, capture_output=True, check=True)
|
|
67
|
+
except subprocess.CalledProcessError as error:
|
|
68
|
+
logger.error(f"Error executing OWASP dependency check scan: {error}")
|
|
69
|
+
|
|
70
|
+
def select_operative_system(self, cli_version):
|
|
71
|
+
os_platform = platform.system()
|
|
72
|
+
|
|
73
|
+
if os_platform in ["Linux", "Darwin"]:
|
|
74
|
+
return self.install_tool(cli_version, is_windows=False)
|
|
75
|
+
elif os_platform == "Windows":
|
|
76
|
+
return self.install_tool(cli_version, is_windows=True)
|
|
77
|
+
else:
|
|
78
|
+
logger.warning(f"{os_platform} is not supported.")
|
|
79
|
+
return None
|
|
80
|
+
|
|
81
|
+
def search_result(self):
|
|
82
|
+
try:
|
|
83
|
+
file_result = os.path.join(os.getcwd(), "dependency-check-report.xml")
|
|
84
|
+
return file_result
|
|
85
|
+
except Exception as ex:
|
|
86
|
+
logger.error(f"An error ocurred search dependency-check results {ex}")
|
|
87
|
+
return None
|
|
88
|
+
|
|
89
|
+
def is_java_installed(self):
|
|
90
|
+
return shutil.which("java") is not None
|
|
91
|
+
|
|
92
|
+
def run_tool_dependencies_sca(
|
|
93
|
+
self,
|
|
94
|
+
remote_config,
|
|
95
|
+
dict_args,
|
|
96
|
+
exclusion,
|
|
97
|
+
pipeline_name,
|
|
98
|
+
to_scan,
|
|
99
|
+
token,
|
|
100
|
+
token_engine_dependencies
|
|
101
|
+
):
|
|
102
|
+
if not self.is_java_installed():
|
|
103
|
+
logger.error("Java is not installed, please install it to run dependency check")
|
|
104
|
+
return None
|
|
105
|
+
|
|
106
|
+
cli_version = remote_config["DEPENDENCY_CHECK"]["CLI_VERSION"]
|
|
107
|
+
|
|
108
|
+
get_artifacts = GetArtifacts()
|
|
109
|
+
|
|
110
|
+
pattern = get_artifacts.excluded_files(remote_config, pipeline_name, exclusion, "DEPENDENCY_CHECK")
|
|
111
|
+
to_scan = get_artifacts.find_artifacts(
|
|
112
|
+
to_scan, pattern, remote_config["DEPENDENCY_CHECK"]["PACKAGES_TO_SCAN"]
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
if not to_scan:
|
|
116
|
+
return None
|
|
117
|
+
|
|
118
|
+
command_prefix = self.select_operative_system(cli_version)
|
|
119
|
+
self.scan_dependencies(command_prefix, to_scan, token_engine_dependencies)
|
|
120
|
+
return self.search_result()
|