devsecops-engine-tools 1.6.7__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.

Files changed (236) hide show
  1. devsecops_engine_tools-1.6.7/PKG-INFO +156 -0
  2. devsecops_engine_tools-1.6.7/README.md +89 -0
  3. devsecops_engine_tools-1.6.7/devsecops_engine_tools/__init__.py +0 -0
  4. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/__init__.py +0 -0
  5. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
  6. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
  7. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +124 -0
  8. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
  9. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
  10. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
  11. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
  12. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +9 -0
  13. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +14 -0
  14. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/finding.py +20 -0
  15. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
  16. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +27 -0
  17. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +7 -0
  18. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +13 -0
  19. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py +7 -0
  20. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +17 -0
  21. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +12 -0
  22. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +3 -0
  23. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +7 -0
  24. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +12 -0
  25. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +20 -0
  26. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
  27. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +375 -0
  28. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +148 -0
  29. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +59 -0
  30. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
  31. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
  32. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py +0 -0
  33. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +52 -0
  34. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +40 -0
  35. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py +0 -0
  36. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +103 -0
  37. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py +0 -0
  38. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +215 -0
  39. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py +0 -0
  40. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +84 -0
  41. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py +0 -0
  42. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +71 -0
  43. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py +0 -0
  44. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +50 -0
  45. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py +0 -0
  46. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +9 -0
  47. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +15 -0
  48. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/__init__.py +0 -0
  49. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/__init__.py +0 -0
  50. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/applications/__init__.py +0 -0
  51. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/deployment/__init__.py +0 -0
  52. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/deployment/infrastructure/__init__.py +0 -0
  53. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/domain/__init__.py +0 -0
  54. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/domain/model/__init__.py +0 -0
  55. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/domain/usecases/__init__.py +0 -0
  56. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py +0 -0
  57. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py +0 -0
  58. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py +0 -0
  59. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py +0 -0
  60. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/__init__.py +0 -0
  61. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/__init__.py +0 -0
  62. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py +0 -0
  63. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py +0 -0
  64. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +30 -0
  65. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py +0 -0
  66. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__init__.py +0 -0
  67. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py +0 -0
  68. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py +0 -0
  69. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +24 -0
  70. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py +0 -0
  71. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +6 -0
  72. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py +0 -0
  73. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +130 -0
  74. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py +0 -0
  75. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py +0 -0
  76. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py +0 -0
  77. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +135 -0
  78. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +35 -0
  79. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +195 -0
  80. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/__init__.py +0 -0
  81. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py +6 -0
  82. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/__init__.py +0 -0
  83. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/file_generator_tool.py +74 -0
  84. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/__init__.py +0 -0
  85. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/__init__.py +0 -0
  86. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/applications/__init__.py +0 -0
  87. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +34 -0
  88. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/__init__.py +0 -0
  89. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure/__init__.py +0 -0
  90. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/__init__.py +0 -0
  91. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +11 -0
  92. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/__init__.py +0 -0
  93. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/__init__.py +0 -0
  94. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py +11 -0
  95. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/git_gateway.py +15 -0
  96. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +16 -0
  97. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py +0 -0
  98. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +72 -0
  99. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py +73 -0
  100. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py +0 -0
  101. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py +0 -0
  102. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/__init__.py +0 -0
  103. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/git_run.py +60 -0
  104. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py +0 -0
  105. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +39 -0
  106. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +104 -0
  107. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py +0 -0
  108. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +11 -0
  109. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/__init__.py +0 -0
  110. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/__init__.py +0 -0
  111. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/__init__.py +0 -0
  112. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py +0 -0
  113. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +45 -0
  114. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py +0 -0
  115. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py +0 -0
  116. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py +0 -0
  117. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/__init__.py +0 -0
  118. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/__init__.py +0 -0
  119. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +8 -0
  120. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py +7 -0
  121. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py +7 -0
  122. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py +0 -0
  123. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +82 -0
  124. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +67 -0
  125. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +76 -0
  126. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py +0 -0
  127. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/__init__.py +0 -0
  128. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/__init__.py +0 -0
  129. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +22 -0
  130. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py +0 -0
  131. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py +123 -0
  132. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +62 -0
  133. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py +0 -0
  134. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +48 -0
  135. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py +114 -0
  136. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py +0 -0
  137. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +40 -0
  138. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py +0 -0
  139. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/images_scanned.py +16 -0
  140. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py +0 -0
  141. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py +0 -0
  142. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py +0 -0
  143. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +32 -0
  144. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py +0 -0
  145. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure/__init__.py +0 -0
  146. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py +0 -0
  147. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/__init__.py +0 -0
  148. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/__init__.py +0 -0
  149. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py +8 -0
  150. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +9 -0
  151. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/__init__.py +0 -0
  152. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +44 -0
  153. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/find_artifacts.py +95 -0
  154. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/find_mono_repos.py +29 -0
  155. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py +90 -0
  156. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py +65 -0
  157. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py +0 -0
  158. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py +0 -0
  159. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py +0 -0
  160. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py +57 -0
  161. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +154 -0
  162. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/__init__.py +0 -0
  163. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +83 -0
  164. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/__init__.py +0 -0
  165. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/__init__.py +0 -0
  166. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/azuredevops/__init__.py +0 -0
  167. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/__init__.py +0 -0
  168. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +67 -0
  169. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +21 -0
  170. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +65 -0
  171. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/azuredevops/models/__init__.py +0 -0
  172. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +5 -0
  173. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py +0 -0
  174. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +37 -0
  175. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +40 -0
  176. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py +40 -0
  177. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py +0 -0
  178. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py +0 -0
  179. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +11 -0
  180. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +55 -0
  181. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +96 -0
  182. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +35 -0
  183. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +12 -0
  184. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py +16 -0
  185. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py +13 -0
  186. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py +21 -0
  187. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/__init__.py +0 -0
  188. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py +95 -0
  189. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +125 -0
  190. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py +0 -0
  191. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +100 -0
  192. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +223 -0
  193. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py +0 -0
  194. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py +59 -0
  195. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py +38 -0
  196. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +133 -0
  197. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py +2 -0
  198. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py +0 -0
  199. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py +0 -0
  200. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +55 -0
  201. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py +55 -0
  202. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py +37 -0
  203. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py +115 -0
  204. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +50 -0
  205. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py +59 -0
  206. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py +65 -0
  207. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py +0 -0
  208. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py +1 -0
  209. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository/__init__.py +0 -0
  210. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/github/__init__.py +0 -0
  211. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py +0 -0
  212. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +49 -0
  213. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/github/models/__init__.py +0 -0
  214. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/input_validations/__init__.py +0 -0
  215. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +10 -0
  216. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py +8 -0
  217. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/settings.py +38 -0
  218. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/ssh/__init__.py +0 -0
  219. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +67 -0
  220. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
  221. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/utils/api_error.py +14 -0
  222. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +84 -0
  223. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +10 -0
  224. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/utils/logger_info.py +109 -0
  225. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +12 -0
  226. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/utils/printers.py +21 -0
  227. devsecops_engine_tools-1.6.7/devsecops_engine_tools/engine_utilities/utils/session_manager.py +14 -0
  228. devsecops_engine_tools-1.6.7/devsecops_engine_tools/version.py +1 -0
  229. devsecops_engine_tools-1.6.7/devsecops_engine_tools.egg-info/PKG-INFO +156 -0
  230. devsecops_engine_tools-1.6.7/devsecops_engine_tools.egg-info/SOURCES.txt +234 -0
  231. devsecops_engine_tools-1.6.7/devsecops_engine_tools.egg-info/dependency_links.txt +1 -0
  232. devsecops_engine_tools-1.6.7/devsecops_engine_tools.egg-info/entry_points.txt +2 -0
  233. devsecops_engine_tools-1.6.7/devsecops_engine_tools.egg-info/requires.txt +13 -0
  234. devsecops_engine_tools-1.6.7/devsecops_engine_tools.egg-info/top_level.txt +1 -0
  235. devsecops_engine_tools-1.6.7/setup.cfg +4 -0
  236. devsecops_engine_tools-1.6.7/setup.py +46 -0
@@ -0,0 +1,156 @@
1
+ Metadata-Version: 2.1
2
+ Name: devsecops-engine-tools
3
+ Version: 1.6.7
4
+ Summary: Tool for DevSecOps strategy
5
+ Home-page: https://github.com/bancolombia/devsecops-engine-tools
6
+ Author: Bancolombia DevSecOps Team
7
+ Author-email: devsecops@bancolombia.com.co
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.8
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: requests==2.31.0
14
+ Requires-Dist: multipledispatch==0.6.0
15
+ Requires-Dist: PyYAML==6.0.1
16
+ Requires-Dist: checkov==2.3.296
17
+ Requires-Dist: pyfiglet==0.7
18
+ Requires-Dist: prettytable==3.8.0
19
+ Requires-Dist: azure-devops==7.1.0b3
20
+ Requires-Dist: marshmallow==3.19.0
21
+ Requires-Dist: pytz==2023.3
22
+ Requires-Dist: python-decouple==3.8
23
+ Requires-Dist: requests_toolbelt==1.0.0
24
+ Requires-Dist: python-dateutil==2.8.2
25
+ Requires-Dist: pexpect==4.9.0
26
+
27
+ # DevSecOps Engine Tools
28
+
29
+ [![Maintained by Bancolombia](https://img.shields.io/badge/maintained_by-Bancolombia-yellow)](#)
30
+ [![Build](https://github.com/bancolombia/devsecops-engine-tools/actions/workflows/build.yml/badge.svg)](https://github.com/bancolombia/devsecops-engine-tools/actions/workflows/build.yml)
31
+ [![Python Version](https://img.shields.io/badge/python%20-%203.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20-blue)](#)
32
+
33
+ # Objective
34
+
35
+ Tool that unifies the evaluation of the different devsecops practices being agnostic to the devops platform, using both open source and market tools.
36
+
37
+ # Component
38
+
39
+ 📦 [tools](https://github.com/bancolombia/devsecops-engine-tools/tree/trunk/tools): DevSecOps Practice Modules
40
+
41
+ # Communications channel
42
+
43
+ Here are the channels we use to communicate about the project:
44
+
45
+ **1. Mailing list:** You can join our mailing list to always be informed at the following link: [CommunityDevsecopsEngine](https://groups.google.com/g/CommunityDevsecopsEngine)
46
+
47
+ **2. Email:** You can write to us by email: MaintainersDevsecopsEngine@googlegroups.com
48
+
49
+ # Getting started
50
+
51
+ ### Requirements
52
+
53
+ - Python >= 3.8
54
+
55
+ ### Installation
56
+
57
+ ```bash
58
+ pip3 install devsecops-engine-tools
59
+ ```
60
+
61
+ ### Scan running - flags (CLI)
62
+
63
+ ```bash
64
+ devsecops-engine-tools --platform_devops ["local","azure"] --remote_config_repo ["remote_config_repo"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container"] --folder_path ["Folder path scan engine_iac"] --platform ["eks","openshift"] --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"]
65
+ ```
66
+
67
+ ### Structure Remote Config
68
+ [example_remote_config_local](https://github.com/bancolombia/devsecops-engine-tools/blob/trunk/example_remote_config_local/)
69
+ ```bash
70
+ 📦Remote_Config
71
+ ┣ 📂engine_core
72
+ ┃ ┗ 📜ConfigTool.json
73
+ ┣ 📂engine_sast
74
+ ┃ ┗ 📂engine_iac
75
+ ┃ ┗ 📜ConfigTool.json
76
+ ┃ ┗ 📜Exclusions.json
77
+ ┃ ┗ 📂engine_secret
78
+ ┃ ┗ 📜ConfigTool.json
79
+ ┣ 📂engine_sca
80
+ ┃ ┗ 📂engine_container
81
+ ┃ ┗ 📜ConfigTool.json
82
+ ┃ ┗ 📜Exclusions.json
83
+ ┃ ┗ 📂engine_dependencies
84
+ ┃ ┗ 📜ConfigTool.json
85
+ ┃ ┗ 📜Exclusions.json
86
+ ```
87
+ ### Scan running sample (CLI) - Local
88
+
89
+ > Complete the value in **.envdetlocal** file a set in execution environment
90
+ ```
91
+ $ set -a
92
+ $ source .envdetlocal
93
+ $ set +a
94
+ ```
95
+
96
+
97
+ ```bash
98
+ devsecops-engine-tools --platform_devops local --remote_config_repo DevSecOps_Remote_Config --tool engine_iac
99
+
100
+ ```
101
+ ### Scan result sample (CLI)
102
+
103
+ ```bash
104
+ ____ _____ ____ ______ _ ______ __
105
+ / __ \___ _ __/ ___/___ _____/ __ \____ _____ / ____/___ ____ _(_)___ ___ /_ __/___ ____ / /____
106
+ / / / / _ \ | / /\__ \/ _ \/ ___/ / / / __ \/ ___/ / __/ / __ \/ __ `/ / __ \/ _ \ / / / __ \/ __ \/ / ___/
107
+ / /_/ / __/ |/ /___/ / __/ /__/ /_/ / /_/ (__ ) / /___/ / / / /_/ / / / / / __/ / / / /_/ / /_/ / (__ )
108
+ /_____/\___/|___//____/\___/\___/\____/ .___/____/ /_____/_/ /_/\__, /_/_/ /_/\___/ /_/ \____/\____/_/____/
109
+ /_/ /____/
110
+
111
+ Secrets manager is not enabled to configure external checks
112
+
113
+ Below are all vulnerabilities detected.
114
+ ╔══════════╦════════════╦════════════════════════════════════════════════════════════════════════════════════╦════════════════════════╗
115
+ ║ Severity ║ ID ║ Description ║ Where ║
116
+ ╠══════════╬════════════╬════════════════════════════════════════════════════════════════════════════════════╬════════════════════════╣
117
+ ║ critical ║ CKV_K8S_37 ║ IAC-CKV_K8S_37 Minimize the admission of containers with capabilities assigned ║ /_AW1234/app.yaml ║
118
+ ║ critical ║ CKV_K8S_20 ║ IAC-CKV_K8S_20 Containers should not run with allowPrivilegeEscalation ║ /_AW1234/app.yaml ║
119
+ ║ critical ║ CKV_K8S_30 ║ IAC-CKV_K8S_30 Apply security context to your containers ║ /_AW1234/app.yaml ║
120
+ ║ critical ║ CKV_K8S_23 ║ IAC-CKV_K8S_23 Minimize the admission of root containers ║ /_AW1234/app.yaml ║
121
+ ║ high ║ CKV_AWS_20 ║ C-S3-005-AWS S3 buckets are accessible to public ║ /_AW1234/template.yaml ║
122
+ ║ high ║ CKV_K8S_22 ║ IAC-CKV_K8S_22 Use read-only filesystem for containers where possible ║ /_AW1234/app.yaml ║
123
+ ║ high ║ CKV_K8S_28 ║ IAC-CKV_K8S_28 Minimize the admission of containers with the NET_RAW capability ║ /_AW1234/app.yaml ║
124
+ ║ high ║ CKV_K8S_38 ║ IAC-CKV_K8S_38 Ensure that Service Account Tokens are only mounted where necessary ║ /_AW1234/app.yaml ║
125
+ ╚══════════╩════════════╩════════════════════════════════════════════════════════════════════════════════════╩════════════════════════╝
126
+ Security count issues (critical: 4, high: 4, medium: 0, low: 0) is greater than or equal to failure criteria (critical: 1, high: 8, medium: 10, low:15, operator: or)
127
+ ✘Failed
128
+
129
+ Below are all compliances issues detected.
130
+ ╔══════════╦═══════════╦════════════════════════════════════════════════════╦═══════════════════╗
131
+ ║ Severity ║ ID ║ Description ║ Where ║
132
+ ╠══════════╬═══════════╬════════════════════════════════════════════════════╬═══════════════════╣
133
+ ║ critical ║ CKV_K8S_8 ║ IAC-CKV_K8S_8 Liveness Probe Should be Configured ║ /_AW1234/app.yaml ║
134
+ ║ critical ║ CKV_K8S_9 ║ IAC-CKV_K8S_9 Readiness Probe Should be Configured ║ /_AW1234/app.yaml ║
135
+ ╚══════════╩═══════════╩════════════════════════════════════════════════════╩═══════════════════╝
136
+ Compliance issues count (critical: 2) is greater than or equal to failure criteria (critical: 1)
137
+ ✘Failed
138
+
139
+ Bellow are all the findings that were accepted.
140
+ ╔══════════╦════════════╦═══════════════════╦═════════════╦══════════════╦══════════════════╗
141
+ ║ Severity ║ ID ║ Where ║ Create Date ║ Expired Date ║ Reason ║
142
+ ╠══════════╬════════════╬═══════════════════╬═════════════╬══════════════╬══════════════════╣
143
+ ║ high ║ CKV_K8S_38 ║ /_AW1234/app.yaml ║ 18/11/2023 ║ 18/03/2024 ║ False Positive ║
144
+ ╚══════════╩════════════╩═══════════════════╩═════════════╩══════════════╩══════════════════╝
145
+
146
+ message custom
147
+ ```
148
+
149
+ # How can I help?
150
+
151
+ Review the issues, we hear new ideas. Read more [Contributing](https://github.com/bancolombia/devsecops-engine-tools/blob/trunk/docs/CONTRIBUTING.md)
152
+
153
+
154
+
155
+
156
+
@@ -0,0 +1,89 @@
1
+ # Introduction
2
+
3
+ DevSecOps Practice Modules
4
+
5
+ # Project layout
6
+
7
+ ```
8
+ devsecops_engine_tools
9
+ ├───engine_core -> Main module.
10
+ | test
11
+ | src
12
+ | applications
13
+ | deployment
14
+ | domain
15
+ | model
16
+ | usecases
17
+ | infraestructure
18
+ | driven_adapters
19
+ | entry_points
20
+ | utils.
21
+ |
22
+ ├───engine_dast -> DAST Practice
23
+ | test
24
+ | src
25
+ | applications
26
+ | deployment
27
+ | domain
28
+ | model
29
+ | usecases
30
+ | infraestructure
31
+ | driven_adapters
32
+ | entry_points
33
+ | utils.
34
+ |
35
+ ├───engine_sast -> SAST Practices
36
+ | engine_iac -> Infrastructure as code
37
+ | src
38
+ | applications
39
+ | deployment
40
+ | domain
41
+ | model
42
+ | usecases
43
+ | infraestructure
44
+ | driven_adapters
45
+ | entry_points
46
+ | utils.
47
+ | engine_secret -> Secret Scanning
48
+ | src
49
+ | applications
50
+ | deployment
51
+ | domain
52
+ | model
53
+ | usecases
54
+ | infraestructure
55
+ | driven_adapters
56
+ | entry_points
57
+ | utils.
58
+ |
59
+ ├───engine_sca -> SCA Practices
60
+ | engine_container -> Container Scanning
61
+ | src
62
+ | applications
63
+ | deployment
64
+ | domain
65
+ | model
66
+ | usecases
67
+ | infraestructure
68
+ | driven_adapters
69
+ | entry_points
70
+ | utils.
71
+ | engine_dependencies -> Dependency Scanning
72
+ | src
73
+ | applications
74
+ | deployment
75
+ | domain
76
+ | model
77
+ | usecases
78
+ | infraestructure
79
+ | driven_adapters
80
+ | entry_points
81
+ | utils.
82
+ ├───engine_utilities -> Utilities transversal.
83
+ | azuredevops
84
+ | defect_dojo
85
+ | github
86
+ | input_validations
87
+ | ssh
88
+ | utils
89
+ ```
@@ -0,0 +1,124 @@
1
+ from devsecops_engine_tools.engine_core.src.infrastructure.entry_points.entry_point_core import (
2
+ init_engine_core,
3
+ )
4
+ from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.defect_dojo.defect_dojo import (
5
+ DefectDojoPlatform,
6
+ )
7
+ from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.aws.secrets_manager import (
8
+ SecretsManager,
9
+ )
10
+ from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.azure.azure_devops import (
11
+ AzureDevops,
12
+ )
13
+ from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.runtime_local.runtime_local import (
14
+ RuntimeLocal,
15
+ )
16
+ from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.aws.s3_manager import (
17
+ S3Manager,
18
+ )
19
+ from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.printer_pretty_table.printer_pretty_table import (
20
+ PrinterPrettyTable,
21
+ )
22
+ import sys
23
+ import argparse
24
+ from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
25
+ from devsecops_engine_tools.engine_utilities import settings
26
+ from devsecops_engine_tools.version import version
27
+
28
+
29
+ logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
30
+
31
+ def get_inputs_from_cli(args):
32
+ parser = argparse.ArgumentParser()
33
+ parser.add_argument("-v", "--version", action='version', version='{version}'.format(version=version))
34
+ parser.add_argument("-pd", "--platform_devops", choices=["azure", "local"], type=str, required=True, help="Platform where is executed")
35
+ parser.add_argument("-rcf" ,"--remote_config_repo", type=str, required=True, help="Name or Folder Path of Config Repo")
36
+ parser.add_argument("-t",
37
+ "--tool",
38
+ choices=[
39
+ "engine_iac",
40
+ "engine_dast",
41
+ "engine_secret",
42
+ "engine_dependencies",
43
+ "engine_container",
44
+ ],
45
+ type=str,
46
+ required=True,
47
+ help="Tool to execute",
48
+ )
49
+ parser.add_argument("-fp", "--folder_path", type=str, required=False, help="Folder Path to scan, only apply engine_iac tool")
50
+ parser.add_argument("-p",
51
+ "--platform", choices=["eks", "openshift"], type=str, required=False, help="Platform to execute, only apply engine_iac tool"
52
+ )
53
+ parser.add_argument(
54
+ "--use_secrets_manager",
55
+ choices=["true", "false"],
56
+ type=str,
57
+ required=False,
58
+ help="Use Secrets Manager to get the tokens",
59
+ )
60
+ parser.add_argument(
61
+ "--use_vulnerability_management",
62
+ choices=["true", "false"],
63
+ type=str,
64
+ required=False,
65
+ help="Use Vulnerability Management to send the vulnerabilities to the platform",
66
+ )
67
+ parser.add_argument(
68
+ "--send_metrics",
69
+ choices=["true", "false"],
70
+ type=str,
71
+ required=False,
72
+ help="Enable or Disable the send metrics to the driven adapter metrics",
73
+ )
74
+ parser.add_argument("--token_cmdb", required=False, help="Token to connect to the CMDB")
75
+ parser.add_argument("--token_vulnerability_management", required=False, help="Token to connect to the Vulnerability Management")
76
+ parser.add_argument("--token_engine_container", required=False, help="Token to execute engine_container if is necessary")
77
+ parser.add_argument("--token_engine_dependencies", required=False, help="Token to execute engine_dependencies if is necessary")
78
+ args = parser.parse_args()
79
+ return {
80
+ "platform_devops": args.platform_devops,
81
+ "remote_config_repo": args.remote_config_repo,
82
+ "tool": args.tool,
83
+ "folder_path": args.folder_path,
84
+ "platform": args.platform,
85
+ "use_secrets_manager": args.use_secrets_manager,
86
+ "use_vulnerability_management": args.use_vulnerability_management,
87
+ "send_metrics": args.send_metrics,
88
+ "token_cmdb": args.token_cmdb,
89
+ "token_vulnerability_management": args.token_vulnerability_management,
90
+ "token_engine_container": args.token_engine_container,
91
+ "token_engine_dependencies": args.token_engine_dependencies,
92
+ }
93
+
94
+ def application_core():
95
+ try:
96
+ # Get inputs from CLI
97
+ args = get_inputs_from_cli(sys.argv[1:])
98
+
99
+ # Define driven adapters for gateways
100
+ vulnerability_management_gateway = DefectDojoPlatform()
101
+ secrets_manager_gateway = SecretsManager()
102
+ devops_platform_gateway = AzureDevops() if args["platform_devops"] == "azure" else RuntimeLocal()
103
+ printer_table_gateway = PrinterPrettyTable()
104
+ metrics_manager_gateway = S3Manager()
105
+
106
+ init_engine_core(
107
+ vulnerability_management_gateway,
108
+ secrets_manager_gateway,
109
+ devops_platform_gateway,
110
+ printer_table_gateway,
111
+ metrics_manager_gateway,
112
+ args
113
+ )
114
+ except Exception as e:
115
+ logger.error("Error SCAN: {0} ".format(str(e)))
116
+ print(
117
+ devops_platform_gateway.message(
118
+ "error", "Error SCAN: {0} ".format(str(e))
119
+ )
120
+ )
121
+ print(devops_platform_gateway.result_pipeline("failed"))
122
+
123
+ if __name__ == "__main__":
124
+ application_core()
@@ -0,0 +1,9 @@
1
+ class ExceptionVulnerabilityManagement(Exception):
2
+ def __init__(self, message):
3
+ self.message = message
4
+ super().__init__(self.message)
5
+
6
+ class ExceptionFindingsExcepted(Exception):
7
+ def __init__(self, message):
8
+ self.message = message
9
+ super().__init__(self.message)
@@ -0,0 +1,14 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class Exclusions:
6
+ def __init__(self, **kwargs):
7
+ self.id = kwargs.get("id", "")
8
+ self.where = kwargs.get("where", "")
9
+ self.cve_id = kwargs.get("cve_id", "")
10
+ self.create_date = kwargs.get("create_date", "")
11
+ self.expired_date = kwargs.get("expired_date", "")
12
+ self.severity = kwargs.get("severity", "")
13
+ self.hu = kwargs.get("hu", "")
14
+ self.reason = kwargs.get("reason", "Risk acceptance")
@@ -0,0 +1,20 @@
1
+ from enum import Enum
2
+ from dataclasses import dataclass
3
+
4
+ class Category(Enum):
5
+ VULNERABILITY = "vulnerability"
6
+ COMPLIANCE = "compliance"
7
+
8
+ @dataclass
9
+ class Finding:
10
+ id: str
11
+ cvss: str
12
+ where: str
13
+ description: str
14
+ severity: str
15
+ identification_date: str
16
+ published_date_cve: str
17
+ module: str
18
+ category: Category
19
+ requirements: str
20
+ tool: str
@@ -0,0 +1,27 @@
1
+ from abc import ABCMeta, abstractmethod
2
+
3
+
4
+ class DevopsPlatformGateway(metaclass=ABCMeta):
5
+ @abstractmethod
6
+ def get_remote_config(self, repository, path):
7
+ "get_remote_config"
8
+
9
+ @abstractmethod
10
+ def message(self, type, message):
11
+ "message"
12
+
13
+ @abstractmethod
14
+ def result_pipeline(self, type):
15
+ "result_pipeline"
16
+
17
+ @abstractmethod
18
+ def get_source_code_management_uri(self):
19
+ "get_source_code_management_uri"
20
+
21
+ @abstractmethod
22
+ def get_base_compact_remote_config_url(self, remote_config_repo):
23
+ "get_base_compact_remote_config_url"
24
+
25
+ @abstractmethod
26
+ def get_variable(self, variable):
27
+ "get_variable"
@@ -0,0 +1,7 @@
1
+ from abc import ABCMeta, abstractmethod
2
+
3
+
4
+ class MetricsManagerGateway(metaclass=ABCMeta):
5
+ @abstractmethod
6
+ def send_metrics(self, config_tool, tool, file_path):
7
+ "send_metrics"
@@ -0,0 +1,13 @@
1
+ from abc import ABCMeta, abstractmethod
2
+ from devsecops_engine_tools.engine_core.src.domain.model.finding import (
3
+ Finding,
4
+ )
5
+
6
+ class PrinterTableGateway(metaclass=ABCMeta):
7
+ @abstractmethod
8
+ def print_table_findings(self, finding_list: "list[Finding]"):
9
+ "print_table_findings"
10
+
11
+ @abstractmethod
12
+ def print_table_exclusions(self, exclusions_list):
13
+ "print_table_exclusions"
@@ -0,0 +1,7 @@
1
+ from abc import ABCMeta, abstractmethod
2
+
3
+
4
+ class SecretsManagerGateway(metaclass=ABCMeta):
5
+ @abstractmethod
6
+ def get_secret(self, config_tool):
7
+ "get_secret"
@@ -0,0 +1,17 @@
1
+ from abc import ABCMeta, abstractmethod
2
+
3
+ from devsecops_engine_tools.engine_core.src.domain.model.vulnerability_management import VulnerabilityManagement
4
+
5
+
6
+ class VulnerabilityManagementGateway(metaclass=ABCMeta):
7
+ @abstractmethod
8
+ def send_vulnerability_management(
9
+ self, vulnerability_management: VulnerabilityManagement
10
+ ):
11
+ "send_vulnerability_management"
12
+
13
+ @abstractmethod
14
+ def get_findings_excepted(
15
+ self, service, dict_args, secret_tool, config_tool
16
+ ):
17
+ "get_findings_excepted"
@@ -0,0 +1,12 @@
1
+ from dataclasses import dataclass
2
+ from devsecops_engine_tools.engine_core.src.domain.model.exclusions import Exclusions
3
+ from devsecops_engine_tools.engine_core.src.domain.model.threshold import Threshold
4
+
5
+ @dataclass
6
+ class InputCore:
7
+ totalized_exclusions: "list[Exclusions]"
8
+ threshold_defined: Threshold
9
+ path_file_results: str
10
+ custom_message_break_build: str
11
+ scope_pipeline: str
12
+ stage_pipeline: str
@@ -0,0 +1,3 @@
1
+ class LevelCompliance:
2
+ def __init__(self, data):
3
+ self.critical = data.get("Critical")
@@ -0,0 +1,7 @@
1
+ class LevelVulnerability:
2
+ def __init__(self, data):
3
+ self.critical = data.get("Critical")
4
+ self.high = data.get("High")
5
+ self.medium = data.get("Medium")
6
+ self.low = data.get("Low")
7
+ self.unknown = data.get("Unknown")
@@ -0,0 +1,12 @@
1
+ from devsecops_engine_tools.engine_core.src.domain.model.level_vulnerability import (
2
+ LevelVulnerability,
3
+ )
4
+ from devsecops_engine_tools.engine_core.src.domain.model.level_compliance import (
5
+ LevelCompliance,
6
+ )
7
+
8
+ class Threshold:
9
+ def __init__(self, data):
10
+ self.vulnerability = LevelVulnerability(data.get("VULNERABILITY"))
11
+ self.compliance = LevelCompliance(data.get("COMPLIANCE"))
12
+ self.cve = data.get("CVE",[])
@@ -0,0 +1,20 @@
1
+ from dataclasses import dataclass
2
+
3
+ from devsecops_engine_tools.engine_core.src.domain.model.input_core import InputCore
4
+
5
+
6
+ @dataclass
7
+ class VulnerabilityManagement:
8
+ scan_type: str
9
+ input_core: InputCore
10
+ dict_args: any
11
+ secret_tool: any
12
+ config_tool: any
13
+ source_code_management_uri: str
14
+ base_compact_remote_config_url: str
15
+ access_token: str
16
+ version: str
17
+ build_id: str
18
+ branch_tag: str
19
+ commit_hash: str
20
+ environment: str