devsecops-engine-tools 1.11.1__tar.gz → 1.11.2__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.2}/PKG-INFO +6 -2
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +21 -3
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_deserialize.py +62 -0
- devsecops_engine_tools-1.11.2/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.2}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +4 -98
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/get_artifacts.py +107 -0
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/engine_utilities/utils/utils.py +8 -0
- devsecops_engine_tools-1.11.2/devsecops_engine_tools/version.py +1 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools.egg-info/PKG-INFO +6 -2
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/README.md +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/report.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/domain/usecases/add_data.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/domain/usecases/get_exclusions.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_code/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_code/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_code/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sast/engine_code/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sast/engine_iac/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sast/engine_secret/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_secret/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sca/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sca/engine_container/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sca/engine_container/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2/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.2/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.2}/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.2/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.2}/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.2/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.2/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.2/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.2/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2/devsecops_engine_tools/engine_utilities/azuredevops/models}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2/devsecops_engine_tools/engine_utilities/defect_dojo/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2/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.2/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2}/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.2}/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.2/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.2}/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.2}/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.2/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2/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.2}/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.2}/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.2}/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.2}/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.2}/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.2/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.2/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2/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.2}/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.2/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.2/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.2/devsecops_engine_tools/engine_utilities/git_cli/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2/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.2/devsecops_engine_tools/engine_utilities/git_cli/model/gateway}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2/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.2/devsecops_engine_tools/engine_utilities/github/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2/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.2/devsecops_engine_tools/engine_utilities/input_validations}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2}/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.2/devsecops_engine_tools/engine_utilities/ssh}/__init__.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/utils/api_error.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/utils/logger_info.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/utils/printers.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools/engine_utilities/utils/session_manager.py +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools.egg-info/dependency_links.txt +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools.egg-info/entry_points.txt +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools.egg-info/requires.txt +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/devsecops_engine_tools.egg-info/top_level.txt +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/setup.cfg +0 -0
- {devsecops_engine_tools-1.11.1 → devsecops_engine_tools-1.11.2}/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.2
|
|
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>
|
|
@@ -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)
|
|
@@ -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()
|
|
@@ -8,9 +8,8 @@ import requests
|
|
|
8
8
|
import re
|
|
9
9
|
import os
|
|
10
10
|
import json
|
|
11
|
-
import shutil
|
|
12
|
-
import tarfile
|
|
13
11
|
|
|
12
|
+
from devsecops_engine_tools.engine_sca.engine_dependencies.src.infrastructure.helpers.get_artifacts import GetArtifacts
|
|
14
13
|
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
15
14
|
from devsecops_engine_tools.engine_utilities import settings
|
|
16
15
|
|
|
@@ -18,100 +17,6 @@ logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
class XrayScan(ToolGateway):
|
|
21
|
-
def excluded_files(self, remote_config, pipeline_name, exclusions):
|
|
22
|
-
pattern = remote_config["XRAY"]["REGEX_EXPRESSION_EXTENSIONS"]
|
|
23
|
-
if pipeline_name in exclusions:
|
|
24
|
-
for ex in exclusions[pipeline_name]["XRAY"]:
|
|
25
|
-
if ex.get("SKIP_FILES", 0):
|
|
26
|
-
exclusion = ex.get("SKIP_FILES")
|
|
27
|
-
if exclusion.get("files", 0):
|
|
28
|
-
excluded_file_types = exclusion["files"]
|
|
29
|
-
pattern2 = pattern
|
|
30
|
-
for ext in excluded_file_types:
|
|
31
|
-
pattern2 = (
|
|
32
|
-
pattern2.replace("|" + ext, "")
|
|
33
|
-
.replace(ext + "|", "")
|
|
34
|
-
.replace(ext, "")
|
|
35
|
-
)
|
|
36
|
-
pattern = pattern2
|
|
37
|
-
|
|
38
|
-
return pattern
|
|
39
|
-
|
|
40
|
-
def find_packages(self, pattern, packages, working_dir):
|
|
41
|
-
packages_list = []
|
|
42
|
-
files_list = []
|
|
43
|
-
extension_pattern = re.compile(pattern, re.IGNORECASE)
|
|
44
|
-
for root, dirs, files in os.walk(working_dir):
|
|
45
|
-
components = root.split(os.path.sep)
|
|
46
|
-
flag = 0
|
|
47
|
-
for package in packages:
|
|
48
|
-
if not (package in components):
|
|
49
|
-
flag = 1
|
|
50
|
-
if package in dirs:
|
|
51
|
-
packages_list.append(os.path.join(root, package))
|
|
52
|
-
if flag:
|
|
53
|
-
for file in files:
|
|
54
|
-
if extension_pattern.search(file):
|
|
55
|
-
files_list.append(os.path.join(root, file))
|
|
56
|
-
return packages_list, files_list
|
|
57
|
-
|
|
58
|
-
def compress_and_mv(self, tar_path, package):
|
|
59
|
-
try:
|
|
60
|
-
with tarfile.open(tar_path, "w") as tar:
|
|
61
|
-
tar.add(
|
|
62
|
-
package,
|
|
63
|
-
arcname=os.path.basename(package),
|
|
64
|
-
filter=lambda x: None if "/.bin/" in x.name else x,
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
except subprocess.CalledProcessError as e:
|
|
68
|
-
logger.error(f"Error during {package} compression: {e}")
|
|
69
|
-
|
|
70
|
-
def move_files(self, dir_to_scan_path, finded_files):
|
|
71
|
-
for file in finded_files:
|
|
72
|
-
target = os.path.join(dir_to_scan_path, os.path.basename(file))
|
|
73
|
-
shutil.copy2(file, target)
|
|
74
|
-
logger.debug(f"File to scan: {file}")
|
|
75
|
-
|
|
76
|
-
def find_artifacts(self, to_scan, pattern, packages):
|
|
77
|
-
dir_to_scan_path = os.path.join(to_scan, "dependencies_to_scan")
|
|
78
|
-
if os.path.exists(dir_to_scan_path):
|
|
79
|
-
shutil.rmtree(dir_to_scan_path)
|
|
80
|
-
os.makedirs(dir_to_scan_path)
|
|
81
|
-
|
|
82
|
-
packages_list, files_list = self.find_packages(pattern, packages, to_scan)
|
|
83
|
-
|
|
84
|
-
for package in packages_list:
|
|
85
|
-
tar_path = os.path.join(
|
|
86
|
-
dir_to_scan_path,
|
|
87
|
-
"pkg"
|
|
88
|
-
+ str(packages_list.index(package) + 1)
|
|
89
|
-
+ "_"
|
|
90
|
-
+ os.path.basename(package)
|
|
91
|
-
+ ".tar",
|
|
92
|
-
)
|
|
93
|
-
self.compress_and_mv(tar_path, package)
|
|
94
|
-
|
|
95
|
-
if len(files_list):
|
|
96
|
-
self.move_files(dir_to_scan_path, files_list)
|
|
97
|
-
|
|
98
|
-
files = os.listdir(dir_to_scan_path)
|
|
99
|
-
files = [
|
|
100
|
-
file
|
|
101
|
-
for file in files
|
|
102
|
-
if os.path.isfile(os.path.join(dir_to_scan_path, file))
|
|
103
|
-
]
|
|
104
|
-
file_to_scan = None
|
|
105
|
-
if files:
|
|
106
|
-
file_to_scan = os.path.join(dir_to_scan_path, "file_to_scan.tar")
|
|
107
|
-
self.compress_and_mv(file_to_scan, dir_to_scan_path)
|
|
108
|
-
files_string = ", ".join(files)
|
|
109
|
-
logger.debug(f"Files to scan: {files_string}")
|
|
110
|
-
print(f"Files to scan: {files_string}")
|
|
111
|
-
else:
|
|
112
|
-
logger.warning("No artifacts found")
|
|
113
|
-
|
|
114
|
-
return file_to_scan
|
|
115
20
|
|
|
116
21
|
def install_tool_linux(self, prefix, version):
|
|
117
22
|
installed = subprocess.run(
|
|
@@ -241,8 +146,9 @@ class XrayScan(ToolGateway):
|
|
|
241
146
|
):
|
|
242
147
|
token = secret_tool["token_xray"] if secret_tool else token_engine_dependencies
|
|
243
148
|
if dict_args["xray_mode"] == "scan":
|
|
244
|
-
|
|
245
|
-
|
|
149
|
+
get_artifacts = GetArtifacts()
|
|
150
|
+
pattern = get_artifacts.excluded_files(remote_config, pipeline_name, exclusion, "XRAY")
|
|
151
|
+
to_scan = get_artifacts.find_artifacts(
|
|
246
152
|
to_scan, pattern, remote_config["XRAY"]["PACKAGES_TO_SCAN"]
|
|
247
153
|
)
|
|
248
154
|
cwd = os.getcwd()
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import re
|
|
3
|
+
import tarfile
|
|
4
|
+
import subprocess
|
|
5
|
+
import shutil
|
|
6
|
+
|
|
7
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
8
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
9
|
+
|
|
10
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
11
|
+
|
|
12
|
+
class GetArtifacts:
|
|
13
|
+
|
|
14
|
+
def excluded_files(self, remote_config, pipeline_name, exclusions, tool):
|
|
15
|
+
pattern = remote_config[tool]["REGEX_EXPRESSION_EXTENSIONS"]
|
|
16
|
+
if pipeline_name in exclusions:
|
|
17
|
+
for ex in exclusions[pipeline_name][tool]:
|
|
18
|
+
if ex.get("SKIP_FILES", 0):
|
|
19
|
+
exclusion = ex.get("SKIP_FILES")
|
|
20
|
+
if exclusion.get("files", 0):
|
|
21
|
+
excluded_file_types = exclusion["files"]
|
|
22
|
+
pattern2 = pattern
|
|
23
|
+
for ext in excluded_file_types:
|
|
24
|
+
pattern2 = (
|
|
25
|
+
pattern2.replace("|" + ext, "")
|
|
26
|
+
.replace(ext + "|", "")
|
|
27
|
+
.replace(ext, "")
|
|
28
|
+
)
|
|
29
|
+
pattern = pattern2
|
|
30
|
+
|
|
31
|
+
return pattern
|
|
32
|
+
|
|
33
|
+
def find_packages(self, pattern, packages, working_dir):
|
|
34
|
+
packages_list = []
|
|
35
|
+
files_list = []
|
|
36
|
+
extension_pattern = re.compile(pattern, re.IGNORECASE)
|
|
37
|
+
for root, dirs, files in os.walk(working_dir):
|
|
38
|
+
components = root.split(os.path.sep)
|
|
39
|
+
flag = 0
|
|
40
|
+
for package in packages:
|
|
41
|
+
if not (package in components):
|
|
42
|
+
flag = 1
|
|
43
|
+
if package in dirs:
|
|
44
|
+
packages_list.append(os.path.join(root, package))
|
|
45
|
+
if flag:
|
|
46
|
+
for file in files:
|
|
47
|
+
if extension_pattern.search(file):
|
|
48
|
+
files_list.append(os.path.join(root, file))
|
|
49
|
+
return packages_list, files_list
|
|
50
|
+
|
|
51
|
+
def compress_and_mv(self, tar_path, package):
|
|
52
|
+
try:
|
|
53
|
+
with tarfile.open(tar_path, "w") as tar:
|
|
54
|
+
tar.add(
|
|
55
|
+
package,
|
|
56
|
+
arcname=os.path.basename(package),
|
|
57
|
+
filter=lambda x: None if "/.bin/" in x.name else x,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
except subprocess.CalledProcessError as e:
|
|
61
|
+
logger.error(f"Error during {package} compression: {e}")
|
|
62
|
+
|
|
63
|
+
def move_files(self, dir_to_scan_path, finded_files):
|
|
64
|
+
for file in finded_files:
|
|
65
|
+
target = os.path.join(dir_to_scan_path, os.path.basename(file))
|
|
66
|
+
shutil.copy2(file, target)
|
|
67
|
+
logger.debug(f"File to scan: {file}")
|
|
68
|
+
|
|
69
|
+
def find_artifacts(self, to_scan, pattern, packages):
|
|
70
|
+
dir_to_scan_path = os.path.join(to_scan, "dependencies_to_scan")
|
|
71
|
+
if os.path.exists(dir_to_scan_path):
|
|
72
|
+
shutil.rmtree(dir_to_scan_path)
|
|
73
|
+
os.makedirs(dir_to_scan_path)
|
|
74
|
+
|
|
75
|
+
packages_list, files_list = self.find_packages(pattern, packages, to_scan)
|
|
76
|
+
|
|
77
|
+
for package in packages_list:
|
|
78
|
+
tar_path = os.path.join(
|
|
79
|
+
dir_to_scan_path,
|
|
80
|
+
"pkg"
|
|
81
|
+
+ str(packages_list.index(package) + 1)
|
|
82
|
+
+ "_"
|
|
83
|
+
+ os.path.basename(package)
|
|
84
|
+
+ ".tar",
|
|
85
|
+
)
|
|
86
|
+
self.compress_and_mv(tar_path, package)
|
|
87
|
+
|
|
88
|
+
if len(files_list):
|
|
89
|
+
self.move_files(dir_to_scan_path, files_list)
|
|
90
|
+
|
|
91
|
+
files = os.listdir(dir_to_scan_path)
|
|
92
|
+
files = [
|
|
93
|
+
file
|
|
94
|
+
for file in files
|
|
95
|
+
if os.path.isfile(os.path.join(dir_to_scan_path, file))
|
|
96
|
+
]
|
|
97
|
+
file_to_scan = None
|
|
98
|
+
if files:
|
|
99
|
+
file_to_scan = os.path.join(dir_to_scan_path, "file_to_scan.tar")
|
|
100
|
+
self.compress_and_mv(file_to_scan, dir_to_scan_path)
|
|
101
|
+
files_string = ", ".join(files)
|
|
102
|
+
logger.debug(f"Files to scan: {files_string}")
|
|
103
|
+
print(f"Files to scan: {files_string}")
|
|
104
|
+
else:
|
|
105
|
+
logger.warning("No artifacts found")
|
|
106
|
+
|
|
107
|
+
return file_to_scan
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = '1.11.2'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.11.
|
|
3
|
+
Version: 1.11.2
|
|
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>
|