devsecops-engine-tools 1.11.2__tar.gz → 1.16.0__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.2 → devsecops_engine_tools-1.16.0}/PKG-INFO +2 -2
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +2 -2
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +2 -2
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +5 -1
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/report.py +3 -1
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +1 -4
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -3
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +51 -24
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +63 -10
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +1 -1
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +46 -4
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +1 -1
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +7 -1
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +25 -23
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/get_exclusions.py +4 -3
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py +6 -17
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +45 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +18 -3
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/file_generator_tool.py +5 -6
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +3 -2
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +4 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +18 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +22 -13
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +16 -5
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +169 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +4 -4
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +6 -8
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_deserialize.py +4 -3
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py +41 -11
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +16 -7
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/get_artifacts.py +4 -3
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +2 -1
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +4 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +30 -9
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/defect_dojo/applications/product.py +14 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +7 -1
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +1 -1
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py +9 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +7 -6
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/applications/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/applications/runner_report_sonar.py +110 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/sonar_gateway.py +63 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py +194 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/sonarqube_report.py +112 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/entry_point_report_sonar.py +37 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/utils.py +8 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/ssh/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/utils/utils.py +13 -0
- devsecops_engine_tools-1.16.0/devsecops_engine_tools/version.py +1 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools.egg-info/PKG-INFO +2 -2
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools.egg-info/SOURCES.txt +20 -1
- devsecops_engine_tools-1.16.0/devsecops_engine_tools.egg-info/entry_points.txt +3 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/setup.py +2 -1
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_core/src/domain/model/custom_level_vulnerability.py +0 -8
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +0 -35
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +0 -16
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +0 -118
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_utilities/utils/utils.py +0 -8
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/version.py +0 -1
- devsecops_engine_tools-1.11.2/devsecops_engine_tools.egg-info/entry_points.txt +0 -2
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/README.md +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/finding.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/add_epss_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/add_data.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/first_epss_csv.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/applications/runner_engine_code.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/code_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/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.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/azuredevops/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/git_cli/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/git_cli/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/git_cli/infrastructure/git_run.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/git_cli/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/git_cli/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/git_cli/model/gateway/git_gateway.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/github/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/github/models/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/input_validations/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/settings.py +0 -0
- {devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_utilities/ssh → devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_utilities/utils → devsecops_engine_tools-1.16.0/devsecops_engine_tools/engine_utilities/sonarqube/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/utils/api_error.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/utils/logger_info.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/utils/printers.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools/engine_utilities/utils/session_manager.py +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools.egg-info/dependency_links.txt +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools.egg-info/requires.txt +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/devsecops_engine_tools.egg-info/top_level.txt +0 -0
- {devsecops_engine_tools-1.11.2 → devsecops_engine_tools-1.16.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.16.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
|
|
@@ -67,7 +67,7 @@ pip3 install devsecops-engine-tools
|
|
|
67
67
|
### Scan running - flags (CLI)
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
|
-
devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container", "engine_risk", "engine_code"] --folder_path ["Folder path scan engine_iac, engine_code and engine_dependencies"] --platform ["k8s","cloudformation","docker", "openapi"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"] --token_external_checks ["token_external_checks"] --xray_mode ["scan", "audit"] --image_to_scan ["image_to_scan"]
|
|
70
|
+
devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container", "engine_risk", "engine_code"] --folder_path ["Folder path scan engine_iac, engine_code and engine_dependencies"] --platform ["k8s","cloudformation","docker", "openapi", "terraform"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"] --token_external_checks ["token_external_checks"] --xray_mode ["scan", "audit"] --image_to_scan ["image_to_scan"]
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
### Structure Remote Config
|
|
@@ -97,7 +97,7 @@ def get_inputs_from_cli(args):
|
|
|
97
97
|
parser.add_argument(
|
|
98
98
|
"-p",
|
|
99
99
|
"--platform",
|
|
100
|
-
type=parse_choices({"all", "docker", "k8s", "cloudformation", "openapi"}),
|
|
100
|
+
type=parse_choices({"all", "docker", "k8s", "cloudformation", "openapi", "terraform"}),
|
|
101
101
|
required=False,
|
|
102
102
|
default="all",
|
|
103
103
|
help="Platform to scan, only apply engine_iac tool",
|
|
@@ -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",
|
|
@@ -5,10 +5,10 @@ from dataclasses import dataclass
|
|
|
5
5
|
class Exclusions:
|
|
6
6
|
def __init__(self, **kwargs):
|
|
7
7
|
self.id = kwargs.get("id", "")
|
|
8
|
-
self.where = kwargs.get("where", "")
|
|
8
|
+
self.where = kwargs.get("where", "all")
|
|
9
9
|
self.cve_id = kwargs.get("cve_id", "")
|
|
10
10
|
self.create_date = kwargs.get("create_date", "")
|
|
11
11
|
self.expired_date = kwargs.get("expired_date", "")
|
|
12
12
|
self.severity = kwargs.get("severity", "")
|
|
13
13
|
self.hu = kwargs.get("hu", "")
|
|
14
|
-
self.reason = kwargs.get("reason", "Risk
|
|
14
|
+
self.reason = kwargs.get("reason", "Risk Accepted")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from abc import ABCMeta, abstractmethod
|
|
2
2
|
|
|
3
3
|
from devsecops_engine_tools.engine_core.src.domain.model.vulnerability_management import VulnerabilityManagement
|
|
4
|
-
|
|
4
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import DevopsPlatformGateway
|
|
5
5
|
|
|
6
6
|
class VulnerabilityManagementGateway(metaclass=ABCMeta):
|
|
7
7
|
@abstractmethod
|
|
@@ -10,6 +10,10 @@ class VulnerabilityManagementGateway(metaclass=ABCMeta):
|
|
|
10
10
|
):
|
|
11
11
|
"send_vulnerability_management"
|
|
12
12
|
|
|
13
|
+
@abstractmethod
|
|
14
|
+
def get_product_type_service(self, service, dict_args, secret_tool, config_tool):
|
|
15
|
+
"get_product_type_service"
|
|
16
|
+
|
|
13
17
|
@abstractmethod
|
|
14
18
|
def get_findings_excepted(
|
|
15
19
|
self, service, dict_args, secret_tool, config_tool
|
|
@@ -31,4 +31,6 @@ class Report:
|
|
|
31
31
|
self.component_name = kwargs.get("component_name", "")
|
|
32
32
|
self.component_version = kwargs.get("component_version", "")
|
|
33
33
|
self.file_path = kwargs.get("file_path", "")
|
|
34
|
-
self.endpoints = kwargs.get("endpoints", "")
|
|
34
|
+
self.endpoints = kwargs.get("endpoints", "")
|
|
35
|
+
self.unique_id_from_tool = kwargs.get("unique_id_from_tool", "")
|
|
36
|
+
self.out_of_scope = kwargs.get("out_of_scope", "")
|
|
@@ -4,13 +4,10 @@ from devsecops_engine_tools.engine_core.src.domain.model.level_vulnerability imp
|
|
|
4
4
|
from devsecops_engine_tools.engine_core.src.domain.model.level_compliance import (
|
|
5
5
|
LevelCompliance,
|
|
6
6
|
)
|
|
7
|
-
from devsecops_engine_tools.engine_core.src.domain.model.custom_level_vulnerability import (
|
|
8
|
-
CustomLevelVulnerability,
|
|
9
|
-
)
|
|
10
7
|
|
|
11
8
|
class Threshold:
|
|
12
9
|
def __init__(self, data):
|
|
13
10
|
self.vulnerability = LevelVulnerability(data.get("VULNERABILITY"))
|
|
14
11
|
self.compliance = LevelCompliance(data.get("COMPLIANCE"))
|
|
15
12
|
self.cve = data.get("CVE",[])
|
|
16
|
-
self.
|
|
13
|
+
self.quality_vulnerability_management = data.get("QUALITY_VULNERABILITY_MANAGEMENT") if data.get("QUALITY_VULNERABILITY_MANAGEMENT") else None
|
|
@@ -67,9 +67,6 @@ class BreakBuild:
|
|
|
67
67
|
"compliances": {},
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
if threshold.custom_vulnerability and bool(re.match(threshold.custom_vulnerability.pattern_apps, input_core.scope_pipeline, re.IGNORECASE)):
|
|
71
|
-
threshold.vulnerability = threshold.custom_vulnerability.vulnerability
|
|
72
|
-
|
|
73
70
|
if len(findings_list) != 0:
|
|
74
71
|
self._apply_policie_exception_new_vulnerability_industry(
|
|
75
72
|
findings_list, exclusions, args
|
|
@@ -63,14 +63,23 @@ class HandleRisk:
|
|
|
63
63
|
]
|
|
64
64
|
check_words_regex = risk_config["HANDLE_SERVICE_NAME"]["REGEX_CHECK_WORDS"]
|
|
65
65
|
min_word_amount = risk_config["HANDLE_SERVICE_NAME"]["MIN_WORD_AMOUNT"]
|
|
66
|
+
endings = risk_config["HANDLE_SERVICE_NAME"]["CHECK_ENDING"]
|
|
67
|
+
|
|
66
68
|
for engagement in engagements:
|
|
67
|
-
if service.lower()
|
|
69
|
+
if service.lower() == engagement.name.lower():
|
|
68
70
|
filtered_engagements += [engagement.name]
|
|
69
71
|
elif re.search(check_words_regex, engagement.name.lower()) and (
|
|
70
72
|
sum(1 for word in words if word.lower() in engagement.name.lower())
|
|
71
73
|
>= min_word_amount
|
|
72
74
|
):
|
|
73
75
|
filtered_engagements += [engagement.name]
|
|
76
|
+
elif endings:
|
|
77
|
+
if any(
|
|
78
|
+
(service.lower() + ending.lower() == engagement.name.lower())
|
|
79
|
+
for ending in endings
|
|
80
|
+
):
|
|
81
|
+
filtered_engagements += [engagement.name]
|
|
82
|
+
|
|
74
83
|
return filtered_engagements
|
|
75
84
|
|
|
76
85
|
def _exclude_services(self, dict_args, pipeline_name, service_list):
|
|
@@ -82,28 +91,54 @@ class HandleRisk:
|
|
|
82
91
|
and risk_exclusions[pipeline_name].get("SKIP_SERVICE", 0)
|
|
83
92
|
and risk_exclusions[pipeline_name]["SKIP_SERVICE"].get("services", 0)
|
|
84
93
|
):
|
|
85
|
-
services_to_exclude =
|
|
86
|
-
"services", []
|
|
94
|
+
services_to_exclude = set(
|
|
95
|
+
risk_exclusions[pipeline_name]["SKIP_SERVICE"].get("services", [])
|
|
87
96
|
)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
service_set = set(service_list)
|
|
98
|
+
|
|
99
|
+
remaining_services = list(service_set - services_to_exclude)
|
|
100
|
+
service_excluded = list(service_set & services_to_exclude)
|
|
101
|
+
|
|
93
102
|
print(f"Services to exclude: {service_excluded}")
|
|
94
103
|
logger.info(f"Services to exclude: {service_excluded}")
|
|
104
|
+
|
|
105
|
+
return remaining_services
|
|
95
106
|
return service_list
|
|
96
107
|
|
|
97
|
-
def
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
108
|
+
def _should_skip_analysis(self, remote_config, pipeline_name, exclusions):
|
|
109
|
+
ignore_pattern = remote_config["IGNORE_ANALYSIS_PATTERN"]
|
|
110
|
+
return re.match(ignore_pattern, pipeline_name, re.IGNORECASE) or (
|
|
111
|
+
pipeline_name in exclusions
|
|
112
|
+
and exclusions[pipeline_name].get("SKIP_TOOL", 0)
|
|
113
|
+
)
|
|
101
114
|
|
|
115
|
+
def process(self, dict_args: any, remote_config: any):
|
|
102
116
|
risk_config = self.devops_platform_gateway.get_remote_config(
|
|
103
117
|
dict_args["remote_config_repo"], "engine_risk/ConfigTool.json"
|
|
104
118
|
)
|
|
105
|
-
|
|
119
|
+
risk_exclusions = self.devops_platform_gateway.get_remote_config(
|
|
120
|
+
dict_args["remote_config_repo"], "engine_risk/Exclusions.json"
|
|
121
|
+
)
|
|
106
122
|
pipeline_name = self.devops_platform_gateway.get_variable("pipeline_name")
|
|
123
|
+
|
|
124
|
+
input_core = InputCore(
|
|
125
|
+
[],
|
|
126
|
+
{},
|
|
127
|
+
"",
|
|
128
|
+
"",
|
|
129
|
+
pipeline_name,
|
|
130
|
+
self.devops_platform_gateway.get_variable("stage").capitalize(),
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
if self._should_skip_analysis(risk_config, pipeline_name, risk_exclusions):
|
|
134
|
+
print("Tool skipped by DevSecOps Policy.")
|
|
135
|
+
logger.info("Tool skipped by DevSecOps Policy.")
|
|
136
|
+
return [], input_core
|
|
137
|
+
|
|
138
|
+
secret_tool = None
|
|
139
|
+
if dict_args["use_secrets_manager"] == "true":
|
|
140
|
+
secret_tool = self.secrets_manager_gateway.get_secret(remote_config)
|
|
141
|
+
|
|
107
142
|
service = pipeline_name
|
|
108
143
|
service_list = []
|
|
109
144
|
|
|
@@ -111,9 +146,7 @@ class HandleRisk:
|
|
|
111
146
|
service = next(
|
|
112
147
|
(
|
|
113
148
|
pipeline_name.replace(ending, "")
|
|
114
|
-
for ending in risk_config["HANDLE_SERVICE_NAME"][
|
|
115
|
-
"ERASE_SERVICE_ENDING"
|
|
116
|
-
]
|
|
149
|
+
for ending in risk_config["HANDLE_SERVICE_NAME"]["CHECK_ENDING"]
|
|
117
150
|
if pipeline_name.endswith(ending)
|
|
118
151
|
),
|
|
119
152
|
pipeline_name,
|
|
@@ -164,15 +197,9 @@ class HandleRisk:
|
|
|
164
197
|
dict_args,
|
|
165
198
|
findings,
|
|
166
199
|
exclusions,
|
|
200
|
+
new_service_list,
|
|
167
201
|
self.devops_platform_gateway,
|
|
168
202
|
self.print_table_gateway,
|
|
169
203
|
)
|
|
170
|
-
|
|
171
|
-
[],
|
|
172
|
-
{},
|
|
173
|
-
"",
|
|
174
|
-
"",
|
|
175
|
-
pipeline_name,
|
|
176
|
-
self.devops_platform_gateway.get_variable("stage").capitalize(),
|
|
177
|
-
)
|
|
204
|
+
|
|
178
205
|
return result, input_core
|
|
@@ -19,6 +19,10 @@ from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform
|
|
|
19
19
|
from devsecops_engine_tools.engine_core.src.domain.model.vulnerability_management import (
|
|
20
20
|
VulnerabilityManagement,
|
|
21
21
|
)
|
|
22
|
+
from devsecops_engine_tools.engine_core.src.domain.model.input_core import InputCore
|
|
23
|
+
from devsecops_engine_tools.engine_core.src.domain.model.level_vulnerability import (
|
|
24
|
+
LevelVulnerability,
|
|
25
|
+
)
|
|
22
26
|
from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions import (
|
|
23
27
|
ExceptionVulnerabilityManagement,
|
|
24
28
|
ExceptionFindingsExcepted,
|
|
@@ -52,6 +56,37 @@ class HandleScan:
|
|
|
52
56
|
self.secrets_manager_gateway = secrets_manager_gateway
|
|
53
57
|
self.devops_platform_gateway = devops_platform_gateway
|
|
54
58
|
|
|
59
|
+
def _define_threshold_quality_vuln(
|
|
60
|
+
self, input_core: InputCore, dict_args, secret_tool, config_tool
|
|
61
|
+
):
|
|
62
|
+
quality_vulnerability_management = (
|
|
63
|
+
input_core.threshold_defined.quality_vulnerability_management
|
|
64
|
+
)
|
|
65
|
+
if quality_vulnerability_management:
|
|
66
|
+
product_type = self.vulnerability_management.get_product_type_service(
|
|
67
|
+
input_core.scope_pipeline, dict_args, secret_tool, config_tool
|
|
68
|
+
)
|
|
69
|
+
if product_type:
|
|
70
|
+
pt_name = product_type.name
|
|
71
|
+
apply_qualitypt = next(
|
|
72
|
+
filter(
|
|
73
|
+
lambda qapt: pt_name in qapt,
|
|
74
|
+
quality_vulnerability_management["PTS"],
|
|
75
|
+
),
|
|
76
|
+
None,
|
|
77
|
+
)
|
|
78
|
+
if apply_qualitypt:
|
|
79
|
+
pt_info = apply_qualitypt[pt_name]
|
|
80
|
+
pt_profile = pt_info["PROFILE"]
|
|
81
|
+
pt_apps = pt_info["APPS"]
|
|
82
|
+
|
|
83
|
+
input_core.threshold_defined.vulnerability = (
|
|
84
|
+
LevelVulnerability(quality_vulnerability_management[pt_profile])
|
|
85
|
+
if pt_apps == "ALL"
|
|
86
|
+
or any(map(lambda pd: pd in input_core.scope_pipeline, pt_apps))
|
|
87
|
+
else input_core.threshold_defined.vulnerability
|
|
88
|
+
)
|
|
89
|
+
|
|
55
90
|
def _use_vulnerability_management(
|
|
56
91
|
self, config_tool, input_core, dict_args, secret_tool, env
|
|
57
92
|
):
|
|
@@ -72,9 +107,14 @@ class HandleScan:
|
|
|
72
107
|
self.devops_platform_gateway.get_variable("build_id"),
|
|
73
108
|
self.devops_platform_gateway.get_variable("branch_tag"),
|
|
74
109
|
self.devops_platform_gateway.get_variable("commit_hash"),
|
|
75
|
-
env
|
|
110
|
+
env,
|
|
76
111
|
)
|
|
77
112
|
)
|
|
113
|
+
|
|
114
|
+
self._define_threshold_quality_vuln(
|
|
115
|
+
input_core, dict_args, secret_tool, config_tool
|
|
116
|
+
)
|
|
117
|
+
|
|
78
118
|
except ExceptionVulnerabilityManagement as ex1:
|
|
79
119
|
logger.error(str(ex1))
|
|
80
120
|
try:
|
|
@@ -92,23 +132,33 @@ class HandleScan:
|
|
|
92
132
|
def process(self, dict_args: any, config_tool: any):
|
|
93
133
|
secret_tool = None
|
|
94
134
|
env = define_env(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
135
|
+
self.devops_platform_gateway.get_variable("environment"),
|
|
136
|
+
self.devops_platform_gateway.get_variable("branch_name"),
|
|
137
|
+
)
|
|
98
138
|
if dict_args["use_secrets_manager"] == "true":
|
|
99
139
|
secret_tool = self.secrets_manager_gateway.get_secret(config_tool)
|
|
100
140
|
if "engine_iac" in dict_args["tool"]:
|
|
101
141
|
findings_list, input_core = runner_engine_iac(
|
|
102
|
-
dict_args,
|
|
142
|
+
dict_args,
|
|
143
|
+
config_tool["ENGINE_IAC"]["TOOL"],
|
|
144
|
+
secret_tool,
|
|
145
|
+
self.devops_platform_gateway,
|
|
146
|
+
env,
|
|
103
147
|
)
|
|
104
|
-
if
|
|
148
|
+
if (
|
|
149
|
+
dict_args["use_vulnerability_management"] == "true"
|
|
150
|
+
and input_core.path_file_results
|
|
151
|
+
):
|
|
105
152
|
self._use_vulnerability_management(
|
|
106
153
|
config_tool, input_core, dict_args, secret_tool, env
|
|
107
154
|
)
|
|
108
155
|
return findings_list, input_core
|
|
109
156
|
elif "engine_container" in dict_args["tool"]:
|
|
110
157
|
findings_list, input_core = runner_engine_container(
|
|
111
|
-
dict_args,
|
|
158
|
+
dict_args,
|
|
159
|
+
config_tool["ENGINE_CONTAINER"]["TOOL"],
|
|
160
|
+
secret_tool,
|
|
161
|
+
self.devops_platform_gateway,
|
|
112
162
|
)
|
|
113
163
|
if (
|
|
114
164
|
dict_args["use_vulnerability_management"] == "true"
|
|
@@ -122,7 +172,9 @@ class HandleScan:
|
|
|
122
172
|
print(MESSAGE_ENABLED)
|
|
123
173
|
elif "engine_code" in dict_args["tool"]:
|
|
124
174
|
findings_list, input_core = runner_engine_code(
|
|
125
|
-
dict_args,
|
|
175
|
+
dict_args,
|
|
176
|
+
config_tool["ENGINE_CODE"]["TOOL"],
|
|
177
|
+
self.devops_platform_gateway,
|
|
126
178
|
)
|
|
127
179
|
if (
|
|
128
180
|
dict_args["use_vulnerability_management"] == "true"
|
|
@@ -136,7 +188,8 @@ class HandleScan:
|
|
|
136
188
|
findings_list, input_core = runner_secret_scan(
|
|
137
189
|
dict_args,
|
|
138
190
|
config_tool["ENGINE_SECRET"]["TOOL"],
|
|
139
|
-
self.devops_platform_gateway
|
|
191
|
+
self.devops_platform_gateway,
|
|
192
|
+
secret_tool
|
|
140
193
|
)
|
|
141
194
|
if (
|
|
142
195
|
dict_args["use_vulnerability_management"] == "true"
|
|
@@ -158,4 +211,4 @@ class HandleScan:
|
|
|
158
211
|
self._use_vulnerability_management(
|
|
159
212
|
config_tool, input_core, dict_args, secret_tool, env
|
|
160
213
|
)
|
|
161
|
-
return findings_list, input_core
|
|
214
|
+
return findings_list, input_core
|
|
@@ -5,12 +5,16 @@ from devsecops_engine_tools.engine_core.src.domain.model.gateway.vulnerability_m
|
|
|
5
5
|
from devsecops_engine_tools.engine_core.src.domain.model.vulnerability_management import (
|
|
6
6
|
VulnerabilityManagement,
|
|
7
7
|
)
|
|
8
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
|
|
9
|
+
DevopsPlatformGateway
|
|
10
|
+
)
|
|
8
11
|
from devsecops_engine_tools.engine_utilities.defect_dojo import (
|
|
9
12
|
DefectDojo,
|
|
10
13
|
ImportScanRequest,
|
|
11
14
|
Connect,
|
|
12
15
|
Finding,
|
|
13
16
|
Engagement,
|
|
17
|
+
Product,
|
|
14
18
|
)
|
|
15
19
|
from devsecops_engine_tools.engine_core.src.domain.model.exclusions import Exclusions
|
|
16
20
|
from devsecops_engine_tools.engine_core.src.domain.model.report import Report
|
|
@@ -19,7 +23,7 @@ from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions impo
|
|
|
19
23
|
ExceptionVulnerabilityManagement,
|
|
20
24
|
ExceptionFindingsExcepted,
|
|
21
25
|
ExceptionGettingFindings,
|
|
22
|
-
ExceptionGettingEngagements
|
|
26
|
+
ExceptionGettingEngagements,
|
|
23
27
|
)
|
|
24
28
|
from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
|
|
25
29
|
format_date,
|
|
@@ -66,7 +70,8 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
66
70
|
"KUBESCAPE": "Kubescape Scanner",
|
|
67
71
|
"KICS": "KICS Scanner",
|
|
68
72
|
"BEARER": "Bearer CLI",
|
|
69
|
-
"DEPENDENCY_CHECK": "Dependency Check Scan"
|
|
73
|
+
"DEPENDENCY_CHECK": "Dependency Check Scan",
|
|
74
|
+
"SONARQUBE": "SonarQube API Import"
|
|
70
75
|
}
|
|
71
76
|
|
|
72
77
|
if any(
|
|
@@ -142,6 +147,38 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
142
147
|
)
|
|
143
148
|
)
|
|
144
149
|
|
|
150
|
+
def get_product_type_service(self, service, dict_args, secret_tool, config_tool):
|
|
151
|
+
try:
|
|
152
|
+
session_manager = self._get_session_manager(
|
|
153
|
+
dict_args, secret_tool, config_tool
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
dd_max_retries = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
157
|
+
"MAX_RETRIES_QUERY"
|
|
158
|
+
]
|
|
159
|
+
|
|
160
|
+
def request_func():
|
|
161
|
+
response = Product.get_product(
|
|
162
|
+
session=session_manager,
|
|
163
|
+
request={
|
|
164
|
+
"name": Connect.get_code_app(
|
|
165
|
+
service,
|
|
166
|
+
config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
167
|
+
"REGEX_EXPRESSION_CMDB"
|
|
168
|
+
],
|
|
169
|
+
),
|
|
170
|
+
"prefetch": "prod_type",
|
|
171
|
+
},
|
|
172
|
+
)
|
|
173
|
+
return response.prefetch.prod_type[str(response.results[0].prod_type)] if response.prefetch else None
|
|
174
|
+
|
|
175
|
+
return self._retries_requests(request_func, dd_max_retries, retry_delay=5)
|
|
176
|
+
|
|
177
|
+
except Exception as ex:
|
|
178
|
+
raise ExceptionVulnerabilityManagement(
|
|
179
|
+
"Error getting product type with the following error: {0} ".format(ex)
|
|
180
|
+
)
|
|
181
|
+
|
|
145
182
|
def get_findings_excepted(self, service, dict_args, secret_tool, config_tool):
|
|
146
183
|
try:
|
|
147
184
|
session_manager = self._get_session_manager(
|
|
@@ -220,7 +257,8 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
220
257
|
all_findings_query_params = {
|
|
221
258
|
"limit": config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
222
259
|
"LIMITS_QUERY"
|
|
223
|
-
]
|
|
260
|
+
],
|
|
261
|
+
"duplicate": "false"
|
|
224
262
|
}
|
|
225
263
|
max_retries = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
226
264
|
"MAX_RETRIES_QUERY"
|
|
@@ -251,7 +289,9 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
251
289
|
"Error getting all findings with the following error: {0} ".format(ex)
|
|
252
290
|
)
|
|
253
291
|
|
|
254
|
-
def get_active_engagements(
|
|
292
|
+
def get_active_engagements(
|
|
293
|
+
self, engagement_name, dict_args, secret_tool, config_tool
|
|
294
|
+
):
|
|
255
295
|
try:
|
|
256
296
|
request_is = ImportScanRequest(
|
|
257
297
|
token_defect_dojo=dict_args.get("token_vulnerability_management")
|
|
@@ -390,6 +430,8 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
390
430
|
risk_accepted=finding.risk_accepted,
|
|
391
431
|
false_p=finding.false_p,
|
|
392
432
|
service=finding.service,
|
|
433
|
+
unique_id_from_tool=finding.unique_id_from_tool,
|
|
434
|
+
out_of_scope=finding.out_of_scope
|
|
393
435
|
)
|
|
394
436
|
|
|
395
437
|
def _format_date_to_dd_format(self, date_string):
|
|
@@ -42,7 +42,7 @@ class RuntimeLocal(DevopsPlatformGateway):
|
|
|
42
42
|
return os.environ.get("DET_SOURCE_CODE_MANAGEMENT_URI")
|
|
43
43
|
|
|
44
44
|
def get_base_compact_remote_config_url(self, remote_config_repo):
|
|
45
|
-
return os.environ.get(
|
|
45
|
+
return f"{os.environ.get('DET_BASE_COMPACT_REMOTE_CONFIG_URL')}?path=/"
|
|
46
46
|
|
|
47
47
|
def get_variable(self, variable):
|
|
48
48
|
env_variables = {
|
|
@@ -13,7 +13,12 @@ logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def runner_engine_risk(
|
|
16
|
-
dict_args,
|
|
16
|
+
dict_args,
|
|
17
|
+
findings,
|
|
18
|
+
vm_exclusions,
|
|
19
|
+
services,
|
|
20
|
+
devops_platform_gateway,
|
|
21
|
+
print_table_gateway,
|
|
17
22
|
):
|
|
18
23
|
add_epss_gateway = FirstCsv()
|
|
19
24
|
|
|
@@ -23,5 +28,6 @@ def runner_engine_risk(
|
|
|
23
28
|
print_table_gateway,
|
|
24
29
|
dict_args,
|
|
25
30
|
findings,
|
|
31
|
+
services,
|
|
26
32
|
vm_exclusions,
|
|
27
33
|
)
|
|
@@ -118,9 +118,11 @@ class BreakBuild:
|
|
|
118
118
|
|
|
119
119
|
def _remediation_rate_control(self, all_report: "list[Report]"):
|
|
120
120
|
remote_config = self.remote_config
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
)
|
|
121
|
+
mitigated = sum(1 for report in all_report if report.mitigated)
|
|
122
|
+
total = len(all_report)
|
|
123
|
+
print(f"Mitigated count: {mitigated} Total count: {total}")
|
|
124
|
+
remediation_rate_value = self._get_percentage(mitigated / total)
|
|
125
|
+
|
|
124
126
|
risk_threshold = remote_config["THRESHOLD"]["REMEDIATION_RATE"]
|
|
125
127
|
self.remediation_rate = remediation_rate_value
|
|
126
128
|
|
|
@@ -151,14 +153,6 @@ class BreakBuild:
|
|
|
151
153
|
def _get_percentage(self, decimal):
|
|
152
154
|
return round(decimal * 100, 3)
|
|
153
155
|
|
|
154
|
-
def _get_applied_exclusion(self, report: Report):
|
|
155
|
-
for exclusion in self.exclusions:
|
|
156
|
-
if exclusion.id and (report.id == exclusion.id):
|
|
157
|
-
return exclusion
|
|
158
|
-
elif exclusion.id and (report.vuln_id_from_tool == exclusion.id):
|
|
159
|
-
return exclusion
|
|
160
|
-
return None
|
|
161
|
-
|
|
162
156
|
def _map_applied_exclusion(self, exclusions: "list[Exclusions]"):
|
|
163
157
|
return [
|
|
164
158
|
{
|
|
@@ -173,22 +167,27 @@ class BreakBuild:
|
|
|
173
167
|
]
|
|
174
168
|
|
|
175
169
|
def _apply_exclusions(self, report_list: "list[Report]"):
|
|
176
|
-
|
|
170
|
+
filtered_reports = []
|
|
177
171
|
applied_exclusions = []
|
|
178
|
-
exclusions_ids = {exclusion.id for exclusion in self.exclusions if exclusion.id}
|
|
179
172
|
|
|
180
173
|
for report in report_list:
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
174
|
+
exclude = False
|
|
175
|
+
for exclusion in self.exclusions:
|
|
176
|
+
if (
|
|
177
|
+
(
|
|
178
|
+
report.vuln_id_from_tool
|
|
179
|
+
and report.vuln_id_from_tool == exclusion.id
|
|
180
|
+
)
|
|
181
|
+
or (report.id and report.id == exclusion.id)
|
|
182
|
+
) and ((exclusion.where in report.where) or (exclusion.where == "all")):
|
|
183
|
+
exclude = True
|
|
184
|
+
applied_exclusions.append(exclusion)
|
|
185
|
+
break
|
|
186
|
+
if not exclude:
|
|
188
187
|
report.reason = "Remediation Rate"
|
|
189
|
-
|
|
188
|
+
filtered_reports.append(report)
|
|
190
189
|
|
|
191
|
-
return
|
|
190
|
+
return filtered_reports, applied_exclusions
|
|
192
191
|
|
|
193
192
|
def _tag_blacklist_control(self, report_list: "list[Report]"):
|
|
194
193
|
remote_config = self.remote_config
|
|
@@ -245,7 +244,10 @@ class BreakBuild:
|
|
|
245
244
|
report.risk_score = round(
|
|
246
245
|
remote_config["WEIGHTS"]["severity"].get(report.severity.lower(), 0)
|
|
247
246
|
+ remote_config["WEIGHTS"]["epss_score"] * report.epss_score
|
|
248
|
-
+
|
|
247
|
+
+ min(
|
|
248
|
+
remote_config["WEIGHTS"]["age"] * report.age,
|
|
249
|
+
remote_config["WEIGHTS"]["max_age"],
|
|
250
|
+
)
|
|
249
251
|
+ sum(
|
|
250
252
|
remote_config["WEIGHTS"]["tags"].get(tag, 0)
|
|
251
253
|
for tag in report.tags
|
|
@@ -11,14 +11,14 @@ class GetExclusions:
|
|
|
11
11
|
findings,
|
|
12
12
|
risk_config,
|
|
13
13
|
risk_exclusions,
|
|
14
|
-
|
|
14
|
+
services,
|
|
15
15
|
):
|
|
16
16
|
self.devops_platform_gateway = devops_platform_gateway
|
|
17
17
|
self.dict_args = dict_args
|
|
18
18
|
self.findings = findings
|
|
19
19
|
self.risk_config = risk_config
|
|
20
20
|
self.risk_exclusions = risk_exclusions
|
|
21
|
-
self.
|
|
21
|
+
self.services = services
|
|
22
22
|
|
|
23
23
|
def process(self):
|
|
24
24
|
core_config = self.devops_platform_gateway.get_remote_config(
|
|
@@ -49,7 +49,8 @@ class GetExclusions:
|
|
|
49
49
|
|
|
50
50
|
def _get_exclusions(self, config, key):
|
|
51
51
|
exclusions = []
|
|
52
|
-
|
|
52
|
+
scope_list = ["All"] + self.services
|
|
53
|
+
for scope in scope_list:
|
|
53
54
|
if config.get(scope, None) and config[scope].get(key, None):
|
|
54
55
|
exclusions.extend(
|
|
55
56
|
[
|