gitlabcis 1.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. gitlabcis/__init__.py +12 -0
  2. gitlabcis/__main__.py +7 -0
  3. gitlabcis/benchmarks/__init__.py +8 -0
  4. gitlabcis/benchmarks/artifacts_4/__init__.py +4 -0
  5. gitlabcis/benchmarks/artifacts_4/access_to_artifacts_4_2.py +139 -0
  6. gitlabcis/benchmarks/artifacts_4/origin_traceability_4_4.py +11 -0
  7. gitlabcis/benchmarks/artifacts_4/package_registries_4_3.py +105 -0
  8. gitlabcis/benchmarks/artifacts_4/verification_4_1.py +83 -0
  9. gitlabcis/benchmarks/build_pipelines_2/__init__.py +4 -0
  10. gitlabcis/benchmarks/build_pipelines_2/build_environment_2_1.py +268 -0
  11. gitlabcis/benchmarks/build_pipelines_2/build_worker_2_2.py +129 -0
  12. gitlabcis/benchmarks/build_pipelines_2/pipeline_instructions_2_3.py +444 -0
  13. gitlabcis/benchmarks/build_pipelines_2/pipeline_integrity_2_4.py +146 -0
  14. gitlabcis/benchmarks/dependencies_3/__init__.py +2 -0
  15. gitlabcis/benchmarks/dependencies_3/third_party_packages_3_1.py +171 -0
  16. gitlabcis/benchmarks/dependencies_3/validate_packages_3_2.py +182 -0
  17. gitlabcis/benchmarks/deployment_5/__init__.py +2 -0
  18. gitlabcis/benchmarks/deployment_5/deployment_configuration_5_1.py +165 -0
  19. gitlabcis/benchmarks/deployment_5/deployment_environment_5_2.py +66 -0
  20. gitlabcis/benchmarks/source_code_1/__init__.py +6 -0
  21. gitlabcis/benchmarks/source_code_1/code_changes_1_1.py +665 -0
  22. gitlabcis/benchmarks/source_code_1/code_risks_1_5.py +506 -0
  23. gitlabcis/benchmarks/source_code_1/contribution_access_1_3.py +334 -0
  24. gitlabcis/benchmarks/source_code_1/repository_management_1_2.py +168 -0
  25. gitlabcis/benchmarks/source_code_1/third_party_1_4.py +139 -0
  26. gitlabcis/cli/__init__.py +0 -0
  27. gitlabcis/cli/log.py +30 -0
  28. gitlabcis/cli/main.py +541 -0
  29. gitlabcis/cli/output.py +151 -0
  30. gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/external_auth_server.yml +51 -0
  31. gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/limit_artifact_uploaders.yml +57 -0
  32. gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/limit_certifying_artifacts.yml +53 -0
  33. gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/minimum_package_registry_admins.yml +54 -0
  34. gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/readme.md +14 -0
  35. gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/require_mfa_to_package_registry.yml +52 -0
  36. gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/restrict_anonymous_access.yml +67 -0
  37. gitlabcis/recommendations/artifacts_4/origin_traceability_4_4/artifact_origin_info.yml +56 -0
  38. gitlabcis/recommendations/artifacts_4/origin_traceability_4_4/readme.md +7 -0
  39. gitlabcis/recommendations/artifacts_4/package_registries_4_3/all_artifact_versions_signed.yml +70 -0
  40. gitlabcis/recommendations/artifacts_4/package_registries_4_3/audit_package_registry_config.yml +46 -0
  41. gitlabcis/recommendations/artifacts_4/package_registries_4_3/readme.md +12 -0
  42. gitlabcis/recommendations/artifacts_4/package_registries_4_3/secure_repo_webhooks.yml +50 -0
  43. gitlabcis/recommendations/artifacts_4/package_registries_4_3/validate_signed_artifacts_on_upload.yml +72 -0
  44. gitlabcis/recommendations/artifacts_4/readme.md +12 -0
  45. gitlabcis/recommendations/artifacts_4/verification_4_1/encrypt_artifacts_before_distribution.yml +47 -0
  46. gitlabcis/recommendations/artifacts_4/verification_4_1/only_authorized_platforms_can_decrypt_artifacts.yml +59 -0
  47. gitlabcis/recommendations/artifacts_4/verification_4_1/readme.md +11 -0
  48. gitlabcis/recommendations/artifacts_4/verification_4_1/sign_artifacts_in_build_pipeline.yml +40 -0
  49. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/authenticate_build_access.yml +55 -0
  50. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/build_automation.yml +54 -0
  51. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/build_env_admins.yml +55 -0
  52. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/build_logging.yml +49 -0
  53. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/disable_build_tools_default_passwords.yml +54 -0
  54. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/immutable_pipeline_infrastructure.yml +60 -0
  55. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/limit_build_access.yml +64 -0
  56. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/limit_build_secrets_scope.yml +56 -0
  57. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/readme.md +19 -0
  58. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/secure_build_env_webhooks.yml +43 -0
  59. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/single_responsibility_pipeline.yml +58 -0
  60. gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/vuln_scanning.yml +64 -0
  61. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/build_worker_vuln_scanning.yml +58 -0
  62. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/monitor_worker_resource_consumption.yml +59 -0
  63. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/pass_worker_envs_and_commands.yml +48 -0
  64. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/readme.md +16 -0
  65. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/restrict_worker_connectivity.yml +61 -0
  66. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/segregate_worker_duties.yml +78 -0
  67. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/single_use_workers.yml +47 -0
  68. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/store_worker_config.yml +62 -0
  69. gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/worker_runtime_security.yml +37 -0
  70. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/build_stage_io.yml +49 -0
  71. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/build_steps_as_code.yml +42 -0
  72. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/limit_pipeline_triggers.yml +76 -0
  73. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/pipeline_misconfiguration_scanning.yml +48 -0
  74. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/pipeline_secret_scanning.yml +56 -0
  75. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/pipeline_vuln_scanning.yml +44 -0
  76. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/readme.md +16 -0
  77. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/secure_pipeline_output.yml +52 -0
  78. gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/track_pipeline_files.yml +48 -0
  79. gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/create_reproducible_artifacts.yml +52 -0
  80. gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/lock_dependencies.yml +59 -0
  81. gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/pipeline_produces_sbom.yml +81 -0
  82. gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/pipeline_signs_sbom.yml +38 -0
  83. gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/readme.md +14 -0
  84. gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/sign_artifacts.yml +35 -0
  85. gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/validate_dependencies.yml +63 -0
  86. gitlabcis/recommendations/build_pipelines_2/readme.md +12 -0
  87. gitlabcis/recommendations/dependencies_3/readme.md +10 -0
  88. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/define_package_managers.yml +84 -0
  89. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/dependency_sbom.yml +84 -0
  90. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/monitor_dependencies.yml +61 -0
  91. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/packages_over_60_days_old.yml +95 -0
  92. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/pin_dependency_version.yml +48 -0
  93. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/readme.md +14 -0
  94. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/third_party_sbom_required.yml +70 -0
  95. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/verify_artifacts.yml +45 -0
  96. gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/verify_signed_metadata.yml +41 -0
  97. gitlabcis/recommendations/dependencies_3/validate_packages_3_2/org_wide_dependency_policy.yml +47 -0
  98. gitlabcis/recommendations/dependencies_3/validate_packages_3_2/package_license_scanning.yml +47 -0
  99. gitlabcis/recommendations/dependencies_3/validate_packages_3_2/package_ownership_change.yml +42 -0
  100. gitlabcis/recommendations/dependencies_3/validate_packages_3_2/package_vuln_scanning.yml +62 -0
  101. gitlabcis/recommendations/dependencies_3/validate_packages_3_2/readme.md +10 -0
  102. gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/audit_deployment_config.yml +46 -0
  103. gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/limit_deployment_config_access.yml +51 -0
  104. gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/pin_deployment_config_manifests.yml +59 -0
  105. gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/readme.md +13 -0
  106. gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/scan_iac.yml +72 -0
  107. gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/secret_scan_deployment_config.yml +45 -0
  108. gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/separate_deployment_config.yml +50 -0
  109. gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/verify_deployment_config.yml +49 -0
  110. gitlabcis/recommendations/deployment_5/deployment_environment_5_2/automate_deployment.yml +47 -0
  111. gitlabcis/recommendations/deployment_5/deployment_environment_5_2/disable_default_passwords.yml +63 -0
  112. gitlabcis/recommendations/deployment_5/deployment_environment_5_2/limit_prod_access.yml +45 -0
  113. gitlabcis/recommendations/deployment_5/deployment_environment_5_2/readme.md +12 -0
  114. gitlabcis/recommendations/deployment_5/deployment_environment_5_2/reproducible_deployment.yml +50 -0
  115. gitlabcis/recommendations/deployment_5/readme.md +10 -0
  116. gitlabcis/recommendations/readme.md +24 -0
  117. gitlabcis/recommendations/source_code_1/code_changes_1_1/audit_branch_protections.yml +56 -0
  118. gitlabcis/recommendations/source_code_1/code_changes_1_1/auto_risk_scan_merges.yml +62 -0
  119. gitlabcis/recommendations/source_code_1/code_changes_1_1/branch_protections_for_admins.yml +60 -0
  120. gitlabcis/recommendations/source_code_1/code_changes_1_1/branches_updated_before_merging.yml +56 -0
  121. gitlabcis/recommendations/source_code_1/code_changes_1_1/checks_pass_before_merging.yml +57 -0
  122. gitlabcis/recommendations/source_code_1/code_changes_1_1/code_approval_dismissals.yml +62 -0
  123. gitlabcis/recommendations/source_code_1/code_changes_1_1/code_approvals.yml +65 -0
  124. gitlabcis/recommendations/source_code_1/code_changes_1_1/code_changes_require_code_owners.yml +68 -0
  125. gitlabcis/recommendations/source_code_1/code_changes_1_1/code_dismissal_restrictions.yml +69 -0
  126. gitlabcis/recommendations/source_code_1/code_changes_1_1/code_owners.yml +61 -0
  127. gitlabcis/recommendations/source_code_1/code_changes_1_1/code_tracing.yml +52 -0
  128. gitlabcis/recommendations/source_code_1/code_changes_1_1/comments_resolved_before_merging.yml +59 -0
  129. gitlabcis/recommendations/source_code_1/code_changes_1_1/commits_must_be_signed_before_merging.yml +63 -0
  130. gitlabcis/recommendations/source_code_1/code_changes_1_1/default_branch_protected.yml +85 -0
  131. gitlabcis/recommendations/source_code_1/code_changes_1_1/deny_branch_deletions.yml +76 -0
  132. gitlabcis/recommendations/source_code_1/code_changes_1_1/ensure_force_push_is_denied.yml +59 -0
  133. gitlabcis/recommendations/source_code_1/code_changes_1_1/linear_history_required.yml +56 -0
  134. gitlabcis/recommendations/source_code_1/code_changes_1_1/merging_restrictions.yml +65 -0
  135. gitlabcis/recommendations/source_code_1/code_changes_1_1/readme.md +26 -0
  136. gitlabcis/recommendations/source_code_1/code_changes_1_1/stale_branch_reviews.yml +72 -0
  137. gitlabcis/recommendations/source_code_1/code_changes_1_1/version_control.yml +45 -0
  138. gitlabcis/recommendations/source_code_1/code_risks_1_5/dast_api_scanning.yml +50 -0
  139. gitlabcis/recommendations/source_code_1/code_risks_1_5/dast_web_scanning.yml +51 -0
  140. gitlabcis/recommendations/source_code_1/code_risks_1_5/dependency_scanning.yml +84 -0
  141. gitlabcis/recommendations/source_code_1/code_risks_1_5/enable_secret_detection.yml +45 -0
  142. gitlabcis/recommendations/source_code_1/code_risks_1_5/license_scanning.yml +47 -0
  143. gitlabcis/recommendations/source_code_1/code_risks_1_5/readme.md +14 -0
  144. gitlabcis/recommendations/source_code_1/code_risks_1_5/secure_iac_instructions.yml +81 -0
  145. gitlabcis/recommendations/source_code_1/code_risks_1_5/secure_pipeline_instructions.yml +62 -0
  146. gitlabcis/recommendations/source_code_1/code_risks_1_5/vulnerability_scanning.yml +48 -0
  147. gitlabcis/recommendations/source_code_1/contribution_access_1_3/domain_verification.yml +65 -0
  148. gitlabcis/recommendations/source_code_1/contribution_access_1_3/ensure_2_admins_per_repo.yml +56 -0
  149. gitlabcis/recommendations/source_code_1/contribution_access_1_3/limit_top_level_group_creation.yml +61 -0
  150. gitlabcis/recommendations/source_code_1/contribution_access_1_3/limit_user_registration_domain.yml +58 -0
  151. gitlabcis/recommendations/source_code_1/contribution_access_1_3/minimum_number_of_admins.yml +56 -0
  152. gitlabcis/recommendations/source_code_1/contribution_access_1_3/org_provided_ssh_certs.yml +70 -0
  153. gitlabcis/recommendations/source_code_1/contribution_access_1_3/readme.md +21 -0
  154. gitlabcis/recommendations/source_code_1/contribution_access_1_3/require_mfa_at_org_level.yml +89 -0
  155. gitlabcis/recommendations/source_code_1/contribution_access_1_3/require_mfa_for_contributors.yml +76 -0
  156. gitlabcis/recommendations/source_code_1/contribution_access_1_3/restrict_ip_addresses.yml +84 -0
  157. gitlabcis/recommendations/source_code_1/contribution_access_1_3/review_and_remove_inactive_users.yml +62 -0
  158. gitlabcis/recommendations/source_code_1/contribution_access_1_3/scm_notification_restriction.yml +46 -0
  159. gitlabcis/recommendations/source_code_1/contribution_access_1_3/strict_permissions_for_repo.yml +62 -0
  160. gitlabcis/recommendations/source_code_1/contribution_access_1_3/track_code_anomalies.yml +43 -0
  161. gitlabcis/recommendations/source_code_1/readme.md +13 -0
  162. gitlabcis/recommendations/source_code_1/repository_management_1_2/limit_issue_deletions.yml +57 -0
  163. gitlabcis/recommendations/source_code_1/repository_management_1_2/limit_repo_creations.yml +64 -0
  164. gitlabcis/recommendations/source_code_1/repository_management_1_2/limit_repo_deletions.yml +57 -0
  165. gitlabcis/recommendations/source_code_1/repository_management_1_2/public_repos_have_security_file.yml +59 -0
  166. gitlabcis/recommendations/source_code_1/repository_management_1_2/readme.md +15 -0
  167. gitlabcis/recommendations/source_code_1/repository_management_1_2/review_and_archive_stale_repos.yml +65 -0
  168. gitlabcis/recommendations/source_code_1/repository_management_1_2/track_forks.yml +74 -0
  169. gitlabcis/recommendations/source_code_1/repository_management_1_2/track_project_visibility_status.yml +74 -0
  170. gitlabcis/recommendations/source_code_1/third_party_1_4/README.md +12 -0
  171. gitlabcis/recommendations/source_code_1/third_party_1_4/admin_approval_for_app_installs.yml +83 -0
  172. gitlabcis/recommendations/source_code_1/third_party_1_4/least_privilge_app_permissions.yml +103 -0
  173. gitlabcis/recommendations/source_code_1/third_party_1_4/secure_webhooks.yml +73 -0
  174. gitlabcis/recommendations/source_code_1/third_party_1_4/stale_app_reviews.yml +66 -0
  175. gitlabcis/recommendations/template.yml +30 -0
  176. gitlabcis/tests/__init__.py +0 -0
  177. gitlabcis/tests/input/__init__.py +0 -0
  178. gitlabcis/tests/input/conftest.py +29 -0
  179. gitlabcis/tests/input/no_input_test.py +82 -0
  180. gitlabcis/tests/input/switch_test.py +19 -0
  181. gitlabcis/tests/input/version_test.py +7 -0
  182. gitlabcis/tests/unit/__init__.py +0 -0
  183. gitlabcis/tests/unit/benchmarks/artifacts_4/access_to_artifacts_4_2_test.py +131 -0
  184. gitlabcis/tests/unit/benchmarks/artifacts_4/origin_traceability_4_4_test.py +15 -0
  185. gitlabcis/tests/unit/benchmarks/artifacts_4/package_registries_4_3_test.py +102 -0
  186. gitlabcis/tests/unit/benchmarks/artifacts_4/verification_4_1_test.py +78 -0
  187. gitlabcis/tests/unit/benchmarks/build_pipelines_2/build_environment_2_1_test.py +239 -0
  188. gitlabcis/tests/unit/benchmarks/build_pipelines_2/build_worker_2_2_test.py +105 -0
  189. gitlabcis/tests/unit/benchmarks/build_pipelines_2/pipeline_instructions_2_3_test.py +340 -0
  190. gitlabcis/tests/unit/benchmarks/build_pipelines_2/pipeline_integrity_2_4_test.py +115 -0
  191. gitlabcis/tests/unit/benchmarks/conftest.py +47 -0
  192. gitlabcis/tests/unit/benchmarks/dependencies_3/third_party_packages_3_1_test.py +135 -0
  193. gitlabcis/tests/unit/benchmarks/dependencies_3/validate_packages_3_2_test.py +171 -0
  194. gitlabcis/tests/unit/benchmarks/deployment_5/deployment_configuration_5_1_test.py +140 -0
  195. gitlabcis/tests/unit/benchmarks/deployment_5/deployment_environment_5_2_test.py +60 -0
  196. gitlabcis/tests/unit/benchmarks/function_test.py +24 -0
  197. gitlabcis/tests/unit/benchmarks/source_code_1/code_changes_1_1_test.py +565 -0
  198. gitlabcis/tests/unit/benchmarks/source_code_1/code_risks_1_5_test.py +419 -0
  199. gitlabcis/tests/unit/benchmarks/source_code_1/contribution_access_1_3_test.py +265 -0
  200. gitlabcis/tests/unit/benchmarks/source_code_1/repository_management_1_2_test.py +142 -0
  201. gitlabcis/tests/unit/benchmarks/source_code_1/third_party_1_4_test.py +119 -0
  202. gitlabcis/tests/unit/conftest.py +94 -0
  203. gitlabcis/tests/unit/log/log_test.py +23 -0
  204. gitlabcis/tests/unit/utils/argfilters_test.py +9 -0
  205. gitlabcis/tests/unit/utils/ci_test.py +156 -0
  206. gitlabcis/tests/unit/utils/output_test.py +95 -0
  207. gitlabcis/tests/unit/utils/utils_general_test.py +149 -0
  208. gitlabcis/tests/unit/utils/version_test.py +11 -0
  209. gitlabcis/tests/unit/yaml/bad_file_test.py +15 -0
  210. gitlabcis/tests/unit/yaml/recommendation_test.py +123 -0
  211. gitlabcis/utils/__init__.py +146 -0
  212. gitlabcis/utils/ci.py +132 -0
  213. gitlabcis-1.3.2.dist-info/LICENSE +21 -0
  214. gitlabcis-1.3.2.dist-info/METADATA +241 -0
  215. gitlabcis-1.3.2.dist-info/RECORD +218 -0
  216. gitlabcis-1.3.2.dist-info/WHEEL +5 -0
  217. gitlabcis-1.3.2.dist-info/entry_points.txt +2 -0
  218. gitlabcis-1.3.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: 4.2.4
3
+ name: external_auth_server
4
+ title: Ensure user management of the package registry is not local
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: access_to_artifacts
8
+ description: >-
9
+ Manage users and their access to the package registry with an external authentication
10
+ server and not with the package registry itself.
11
+ rationale: >-
12
+ Some package registries offer a tool for user management, aside from the main
13
+ Lightweight Directory Access Protocol (LDAP) or Active Directory (AD) server of the
14
+ organization. That tool usually offers simple authentication and role-based permissions,
15
+ which might not be granular enough. Having multiple user management tools in the
16
+ organization could result in confusion and privilege escalation, as there will be more to
17
+ manage. To avoid a situation where users escalate their privileges because someone
18
+ missed them, manage user access to the package registry via the main authentication
19
+ server and not locally on the package registry.
20
+ impact: >-
21
+ audit: >-
22
+ For each package registry, verify that its user access is not managed locally, but instead
23
+ with the main authentication server of the organization.
24
+ remediation: >-
25
+ For each package registry, use the main authentication server of the organization for
26
+ user management and do not manage locally.
27
+ default_value:
28
+ references:
29
+ cis_controls:
30
+ - id: 3.3
31
+ version: 8
32
+ name: Configure Data Access Control Lists
33
+ description: >-
34
+ Configure data access control lists based on a user's need to know. Apply data
35
+ access control lists, also known as access permissions, to local and remote file
36
+ systems, databases, and applications.
37
+ implementation_groups:
38
+ - IG1
39
+ - IG2
40
+ - IG3
41
+ - id: 14.6
42
+ version: 7
43
+ name: Protect Information through Access Control Lists
44
+ description: >-
45
+ Protect all information stored on systems with file system, network share,
46
+ claims, application, or database specific access control lists. These controls will
47
+ enforce the principle that only authorized individuals should have access to the
48
+ information based on their need to access the information as a part of their
49
+ responsibilities.
50
+ implementation_groups:
51
+ additional_info: >-
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: 4.2.2
3
+ name: limit_artifact_uploaders
4
+ title: Ensure number of permitted users who may upload new artifacts is minimized
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: access_to_artifacts
8
+ description: >-
9
+ Minimize ability to upload artifacts to the lowest number of trusted users possible.
10
+ rationale: >-
11
+ Artifacts might contain sensitive data. Even the simplest mistake can also lead to trust
12
+ issues with customers and harm the integrity of the product. To decrease these risks,
13
+ allow only trusted and qualified users to upload new artifacts. Those users are less
14
+ likely to make mistakes. Having the lowest number of such users possible will also
15
+ decrease the risk of hacked user accounts, which could lead to a massive breach or
16
+ artifact compromising.
17
+ impact: >-
18
+ audit: |
19
+ Ensure only trusted and qualified users can upload new artifacts, and that their number is the lowest possible.
20
+ • On the left sidebar, select Search or go to and find your project.
21
+ • Select Manage > Members.
22
+ • At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
23
+ • If there are minimum number of members with Owner/Maintainer role in the list, you are compliant.
24
+ remediation: |
25
+ Allow only trusted and qualified users to upload new artifacts and limit them in number.
26
+ • On the left sidebar, select Search or go to and find your project.
27
+ • Select Manage > Members.
28
+ • At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
29
+ • Next to the project member you want to remove, select Remove member.
30
+ default_value:
31
+ references:
32
+ cis_controls:
33
+ - id: 3.3
34
+ version: 8
35
+ name: Configure Data Access Control Lists
36
+ description: >-
37
+ Configure data access control lists based on a user's need to know. Apply data
38
+ access control lists, also known as access permissions, to local and remote file
39
+ systems, databases, and applications.
40
+ implementation_groups:
41
+ - IG1
42
+ - IG2
43
+ - IG3
44
+ - id: 14.6
45
+ version: 7
46
+ name: Protect Information through Access Control Lists
47
+ description: >-
48
+ Protect all information stored on systems with file system, network share,
49
+ claims, application, or database specific access control lists. These controls will
50
+ enforce the principle that only authorized individuals should have access to the
51
+ information based on their need to access the information as a part of their
52
+ responsibilities.
53
+ implementation_groups:
54
+ - IG1
55
+ - IG2
56
+ - IG3
57
+ additional_info: >-
@@ -0,0 +1,53 @@
1
+ ---
2
+ id: 4.2.1
3
+ name: limit_certifying_artifacts
4
+ title: Ensure the authority to certify artifacts is limited
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: access_to_artifacts
8
+ description: >-
9
+ Software certification is used to verify the safety of certain software usage and to
10
+ establish trust between the supplier and the consumer. Any artifact can be certified.
11
+ Limit the authority to certify different artifacts.
12
+ rationale: >-
13
+ Artifact certification is a powerful tool in establishing trust. Clients use a software
14
+ certificate to verify that the artifact is safe to use according to their security policies.
15
+ Because of this, certifying artifacts is considered sensitive. If an artifact is for debugging
16
+ or internal use, or if it were compromised, the organization would not want certification.
17
+ An attacker gaining access to both certificate authority and the artifact registry might
18
+ also be able to certify its own artifact and cause a major breach. To prevent these
19
+ issues, limit which artifacts can be certified by which platform so there will be minimal
20
+ access to certification.
21
+ impact: >-
22
+ audit: >-
23
+ Ensure only certain artifacts can be certified by certain parties.
24
+ remediation: >-
25
+ Limit which artifact can be certified by which authority.
26
+ default_value:
27
+ references:
28
+ cis_controls:
29
+ - id: 3.3
30
+ version: 8
31
+ name: Configure Data Access Control Lists
32
+ description: >-
33
+ Configure data access control lists based on a user's need to know. Apply data
34
+ access control lists, also known as access permissions, to local and remote file
35
+ systems, databases, and applications.
36
+ implementation_groups:
37
+ - IG1
38
+ - IG2
39
+ - IG3
40
+ - id: 14.6
41
+ version: 7
42
+ name: Protect Information through Access Control Lists
43
+ description: >-
44
+ Protect all information stored on systems with file system, network share,
45
+ claims, application, or database specific access control lists. These controls will
46
+ enforce the principle that only authorized individuals should have access to the
47
+ information based on their need to access the information as a part of their
48
+ responsibilities.
49
+ implementation_groups:
50
+ - IG1
51
+ - IG2
52
+ - IG3
53
+ additional_info: >-
@@ -0,0 +1,54 @@
1
+ ---
2
+ id: 4.2.6
3
+ name: minimum_package_registry_admins
4
+ title: Ensure minimum number of administrators are set for the package registry
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: access_to_artifacts
8
+ description: >-
9
+ Ensure the package registry has a minimum number of administrators.
10
+ rationale: >-
11
+ Package registry admins have the ability to add/remove users, repositories, packages.
12
+ Due to the permissive access granted to an admin, it is highly recommended to keep
13
+ the number of administrator accounts as minimal as possible.
14
+ impact: >-
15
+ Administrator privileges are required to provide and maintain a secure and stable
16
+ platform but allowing extraneous administrator accounts can create a vulnerability.
17
+ audit: >-
18
+ Verify that your package registry has only the minimum number of administrators. For
19
+ each project that you administer on GitLab, you can see every team or person with
20
+ access to the project. Project-level permissions determine actions such as downloading,
21
+ pushing, or deleting packages.
22
+ remediation: >-
23
+ Set the minimum number of administrators in your package registry. To accomplish this:
24
+ For each project that you administer on GitLab, you can see an overview of every team
25
+ or person with access to the repository. Provide access to the appropriate people or
26
+ teams.
27
+ default_value:
28
+ references:
29
+ - https://docs.gitlab.com/ee/user/packages/package_registry
30
+ cis_controls:
31
+ - id: 5.4
32
+ version: 8
33
+ name: Restrict Administrator Privileges to Dedicated Administrator Accounts
34
+ description: >-
35
+ Restrict administrator privileges to dedicated administrator accounts on
36
+ enterprise assets. Conduct general computing activities, such as internet
37
+ browsing, email, and productivity suite use, from the user's primary, non-privileged
38
+ account.
39
+ implementation_groups:
40
+ - IG1
41
+ - IG2
42
+ - IG3
43
+ - id: 4.3
44
+ version: 7
45
+ name: Ensure the Use of Dedicated Administrative Accounts
46
+ description: >-
47
+ Ensure that all users with administrative account access use a dedicated or
48
+ secondary account for elevated activities. This account should only be used for
49
+ administrative activities and not internet browsing, email, or similar activities.
50
+ implementation_groups:
51
+ - IG1
52
+ - IG2
53
+ - IG3
54
+ additional_info: >-
@@ -0,0 +1,14 @@
1
+ # 4.2 Access to Artifacts
2
+
3
+ This section consists of security recommendations for access management of artifacts.
4
+
5
+ Artifacts are often stored in registries, some external and some internal. Those registries have user entities that control access and permissions. Artifacts are considered sensitive, because they are being delivered to the costumer, and are prune to many attacks: data theft, dependency confusion, malicious packages and more. That's why their access management should be restrictive and careful.
6
+
7
+ ## Recommendations
8
+
9
+ * [4.2.1 - limit_certifying_artifacts.yml](./limit_certifying_artifacts.yml)
10
+ * [4.2.2 - limit_artifact_uploaders.yml](./limit_artifact_uploaders.yml)
11
+ * [4.2.3 - require_mfa_to_package_registry.yml](./require_mfa_to_package_registry.yml)
12
+ * [4.2.4 - external_auth_server.yml](./external_auth_server.yml)
13
+ * [4.2.5 - restrict_anonymous_access.yml](./restrict_anonymous_access.yml)
14
+ * [4.2.6 - minimum_package_registry_admins.yml](./minimum_package_registry_admins.yml)
@@ -0,0 +1,52 @@
1
+ ---
2
+ id: 4.2.3
3
+ name: require_mfa_to_package_registry
4
+ title: Ensure user access to the package registry utilizes Multi-Factor Authentication (MFA)
5
+ profile: 2
6
+ category: artifacts
7
+ sub_category: access_to_artifacts
8
+ description: >-
9
+ Enforce Multi-Factor Authentication (MFA) for user access to the package registry.
10
+ rationale: >-
11
+ By default, every user authenticates to the system by password only. If a user's
12
+ password is compromised, the user account and all its related packages are in danger
13
+ of data theft and malicious builds. It is therefore recommended that each user enables
14
+ Multi-Factor Authentication. This additional step guarantees that the account stays
15
+ secure even if the user's password is compromised, as it adds another layer of
16
+ authentication.
17
+ impact: >-
18
+ audit: |
19
+ For each package registry in use, verify that Multi-Factor Authentication is enforced and is the only way to authenticate.
20
+ • On the left sidebar, at the bottom, select Admin Area.
21
+ • Select Settings > General.
22
+ • Expand Sign-in restrictions:
23
+ • Check if Enforce two-factor authentication is enabled. If so, you are compliant.
24
+ remediation: |
25
+ For each package registry in use, enforce Multi-Factor Authentication as the only way to authenticate.
26
+ • On the left sidebar, at the bottom, select Admin Area.
27
+ • Select Settings > General.
28
+ • Expand Sign-in restrictions:
29
+ • Select Enforce two-factor authentication to enable this feature.
30
+ default_value:
31
+ references:
32
+ cis_controls:
33
+ - id: 6.3
34
+ version: 8
35
+ name: Require MFA for Externally-Exposed Applications
36
+ description: >-
37
+ Require all externally-exposed enterprise or third-party applications to enforce
38
+ MFA, where supported. Enforcing MFA through a directory service or SSO
39
+ provider is a satisfactory implementation of this Safeguard.
40
+ implementation_groups:
41
+ - IG2
42
+ - IG3
43
+ - id: 4.5
44
+ version: 7
45
+ name: Use Multifactor Authentication For All Administrative Access
46
+ description: >-
47
+ Use multi-factor authentication and encrypted channels for all administrative
48
+ account access.
49
+ implementation_groups:
50
+ - IG2
51
+ - IG3
52
+ additional_info: >-
@@ -0,0 +1,67 @@
1
+ ---
2
+ id: 4.2.5
3
+ name: restrict_anonymous_access
4
+ title: Ensure anonymous access to artifacts is revoked
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: access_to_artifacts
8
+ description: >-
9
+ For GitLab projets anonymous access is not available.
10
+ Verify that all that require access controls are Private or Internal.
11
+ rationale: >-
12
+ Disable the option to view artifacts as an anonymous user in order to protect private
13
+ artifacts from being exposed.
14
+ impact: >-
15
+ Only logged and authorized users will be able to access artifacts.
16
+ audit: |
17
+ Reviewing a project's visibility for artifacts:
18
+ • On the left sidebar, select Search or go to and find your project.
19
+ • Select Settings > General.
20
+ • Expand Visibility, project features, permissions.
21
+ • From the Project visibility dropdown list, review the current selection.
22
+ remediation: |
23
+ Changing a project's visibility for artifacts:
24
+ • On the left sidebar, select Search or go to and find your project.
25
+ • Select Settings > General.
26
+ • Expand Visibility, project features, permissions.
27
+ • From the Project visibility dropdown list, select an option. The visibility setting for a project must be at least as restrictive as the visibility of its parent group.
28
+ • Select Save changes.
29
+ default_value:
30
+ references:
31
+ - https://docs.gitlab.com/ee/user/public_access.html
32
+ cis_controls:
33
+ - id: 2.5
34
+ version: 8
35
+ name: Allowlist Authorized Software
36
+ description: >-
37
+ Use technical controls, such as application allowlisting, to ensure that only
38
+ authorized software can execute or be accessed. Reassess bi-annually, or more
39
+ frequently.
40
+ implementation_groups:
41
+ - IG2
42
+ - IG3
43
+ - id: 2.6
44
+ version: 8
45
+ name: Allowlist Authorized Libraries
46
+ description: >-
47
+ Use technical controls to ensure that only authorized software libraries, such as
48
+ specific .dll, .ocx, .so, etc., files, are allowed to load into a system process. Block
49
+ unauthorized libraries from loading into a system process. Reassess bi-annually, or
50
+ more frequently.
51
+ implementation_groups:
52
+ - IG2
53
+ - IG3
54
+ - id: 14.6
55
+ version: 7
56
+ name: Protect Information through Access Control Lists
57
+ description: >-
58
+ Protect all information stored on systems with file system, network share,
59
+ claims, application, or database specific access control lists. These controls will
60
+ enforce the principle that only authorized individuals should have access to the
61
+ information based on their need to access the information as a part of their
62
+ responsibilities.
63
+ implementation_groups:
64
+ - IG1
65
+ - IG2
66
+ - IG3
67
+ additional_info: >-
@@ -0,0 +1,56 @@
1
+ ---
2
+ id: 4.4.1
3
+ name: artifact_origin_info
4
+ title: Ensure artifacts contain information about their origin
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: origin_traceability
8
+ description: >-
9
+ When delivering artifacts, ensure they have information about their origin. This may be
10
+ done by providing a Software Bill of Manufacture (SBOM) or some metadata files.
11
+ rationale: >-
12
+ Information about artifact origin can be used for verification purposes. Having this kind
13
+ of information allows the user to decide if the organization supplying the artifact is
14
+ trusted. In a case of potential vulnerability or version update, this can be used to verify
15
+ that the organization issuing it is the actual origin and not someone else. If users need
16
+ to report problems with the artifact, they will have an address to contact as well.
17
+ impact: >-
18
+ audit: >-
19
+ For each artifact, ensure it has information about its origin.
20
+ remediation: >-
21
+ For each artifact supplied, supply information about its origin. For each artifact in use,
22
+ ask for information about its origin.
23
+ default_value:
24
+ references:
25
+ cis_controls:
26
+ - id: 1.1
27
+ version: 8
28
+ name: Establish and Maintain Detailed Enterprise Asset Inventory
29
+ description: >-
30
+ Establish and maintain an accurate, detailed, and up-to-date inventory of all
31
+ enterprise assets with the potential to store or process data, to include: end-user
32
+ devices (including portable and mobile), network devices, non-computing/IoT
33
+ devices, and servers. Ensure the inventory records the network address (if static),
34
+ hardware address, machine name, enterprise asset owner, department for each
35
+ asset, and whether the asset has been approved to connect to the network. For
36
+ mobile end-user devices, MDM type tools can support this process, where
37
+ appropriate. This inventory includes assets connected to the infrastructure
38
+ physically, virtually, remotely, and those within cloud environments. Additionally, it
39
+ includes assets that are regularly connected to the enterprise's etwork
40
+ infrastructure, even if they are not under control of the enterprise. Review and
41
+ update the inventory of all enterprise assets bi-annually, or more frequently.
42
+ implementation_groups:
43
+ - IG1
44
+ - IG2
45
+ - IG3
46
+ - id: 1.5
47
+ version: 7
48
+ name: Maintain Asset Inventory Information
49
+ description: >-
50
+ Ensure that the hardware asset inventory records the network address, hardware
51
+ address, machine name, data asset owner, and department for each asset and
52
+ whether the hardware asset has been approved to connect to the network.
53
+ implementation_groups:
54
+ - IG2
55
+ - IG3
56
+ additional_info: >-
@@ -0,0 +1,7 @@
1
+ # 4.4 Origin Traceability
2
+
3
+ This section consists of security recommendations for managing the traceability of artifacts. This means ensuring that both the organization and its customers know where this artifact came from, for example with an SBOM (Software Bill Of Materials), and also verifying that it came from the registry it was supposed.
4
+
5
+ ## Recommendations
6
+
7
+ * [4.4.1 - artifact_origin_info.yml](./artifact_origin_info.yml)
@@ -0,0 +1,70 @@
1
+ ---
2
+ id: 4.3.2
3
+ name: all_artifact_versions_signed
4
+ title: Ensure all versions of an existing artifact have their signatures validated
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: package_registries
8
+ description: >-
9
+ Validate the signature of all versions of an existing artifact.
10
+ rationale: >-
11
+ In order to be certain a version of an existing and trusted artifact is not malicious or
12
+ delivered by someone looking to interfere with the supply chain, it is a good practice to
13
+ validate the signatures of each version. Doing so decreases the risk of using a
14
+ compromised artifact, which might lead to a breach.
15
+ impact: >-
16
+ audit: |
17
+ For each artifact, ensure that all of its versions are signed and validated before it is uploaded or used.
18
+ Ensure every artifact in the package registry has been validated with its signature.
19
+ 1. On the left sidebar, select Search or go to and find your project.
20
+ • To review commits for a project, select Code > Commits.
21
+ • To review commits for a merge request, select Code > Merge requests, then select your merge request.
22
+ 2. Select Commits.
23
+ 3. Identify the commit you want to review. Signed commits show either a Verified or Unverified badge, depending on the verification status of the signature. Unsigned commits do not display a badge.
24
+ remediation: >-
25
+ For each artifact, sign and validate each version before uploading or using the artifact.
26
+ default_value:
27
+ references:
28
+ - https://docs.gitlab.com/ee/user/project/repository/signed_commits/
29
+ cis_controls:
30
+ - id: 7.5
31
+ version: 8
32
+ name: Perform Automated Vulnerability Scans of Internal Enterprise Assets
33
+ description: >-
34
+ Perform automated vulnerability scans of internal enterprise assets on a
35
+ quarterly, or more frequent, basis. Conduct both authenticated and
36
+ unauthenticated scans, using a SCAP-compliant vulnerability scanning tool.
37
+ implementation_groups:
38
+ - IG2
39
+ - IG3
40
+ - id: 7.6
41
+ version: 8
42
+ name: Perform Automated Vulnerability Scans of Externally-Exposed Enterprise Assets
43
+ description: >-
44
+ Perform automated vulnerability scans of externally-exposed enterprise assets
45
+ using a SCAP-compliant vulnerability scanning tool. Perform scans on a monthly,
46
+ or more frequent, basis.
47
+ implementation_groups:
48
+ - IG2
49
+ - IG3
50
+ - id: 3.1
51
+ version: 7
52
+ name: Run Automated Vulnerability Scanning Tools
53
+ description: >-
54
+ Utilize an up-to-date SCAP-compliant vulnerability scanning tool to
55
+ automatically scan all systems on the network on a weekly or more frequent basis
56
+ to identify all potential vulnerabilities on the organization's systems.
57
+ implementation_groups:
58
+ - IG2
59
+ - IG3
60
+ - id: 3.2
61
+ version: 7
62
+ name: Perform Authenticated Vulnerability Scanning
63
+ description: >-
64
+ Perform authenticated vulnerability scanning with agents running locally on
65
+ each system or with remote scanners that are configured with elevated rights on
66
+ the system being tested.
67
+ implementation_groups:
68
+ - IG2
69
+ - IG3
70
+ additional_info: >-
@@ -0,0 +1,46 @@
1
+ ---
2
+ id: 4.3.3
3
+ name: audit_package_registry_config
4
+ title: Ensure changes in package registry configuration are audited
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: package_registries
8
+ description: >-
9
+ Audit changes of the package registry configuration.
10
+ rationale: >-
11
+ The package registry is a crucial component in the software supply chain. It stores
12
+ artifacts with potentially sensitive data that will eventually be deployed and used in
13
+ production. Every change made to the package registry configuration must be examined
14
+ carefully to ensure no exposure of the registry's sensitive data. This examination also
15
+ ensures no malicious actors have performed modifications to a stored artifact. Auditing
16
+ the configuration and its changes helps in decreasing such risks.
17
+ impact: >-
18
+ audit: >-
19
+ Verify that all changes to the packages registry configuration are audited.
20
+ remediation: >-
21
+ Audit the changes to the package registry configuration.
22
+ default_value: GitHub audits this by default.
23
+ references:
24
+ - https://docs.gitlab.com/ee/administration/audit_event_types.html
25
+ cis_controls:
26
+ - id: 8.5
27
+ version: 8
28
+ name: Collect Detailed Audit Logs
29
+ description: >-
30
+ Configure detailed audit logging for enterprise assets containing sensitive data.
31
+ Include event source, date, username, timestamp, source addresses, destination
32
+ addresses, and other useful elements that could assist in a forensic investigation.
33
+ implementation_groups:
34
+ - IG2
35
+ - IG3
36
+ - id: 6.3
37
+ version: 7
38
+ name: Enable Detailed Logging
39
+ description: >-
40
+ Enable system logging to include detailed information such as an event source,
41
+ date, user, timestamp, source addresses, destination addresses, and other useful
42
+ elements.
43
+ implementation_groups:
44
+ - IG2
45
+ - IG3
46
+ additional_info: >-
@@ -0,0 +1,12 @@
1
+ # 4.3 Package Registries
2
+
3
+ This section consists of security recommendations for management of package registries and artifacts that are stored in them.
4
+
5
+ Package registries are where the organization artifacts are stored. To keep an artifact safe, you must keep the registry where it is stored safe too. furthermore, you need to ensure that every artifact that reaches the registry is safe to use and doesn't put the registry in danger.
6
+
7
+ ## Recommendations
8
+
9
+ * [4.3.1 - validate_signed_artifacts_on_upload.yml](./validate_signed_artifacts_on_upload.yml)
10
+ * [4.3.2 - all_artifact_versions_signed.yml](./all_artifact_versions_signed.yml)
11
+ * [4.3.3 - audit_package_registry_config.yml](./audit_package_registry_config.yml)
12
+ * [4.3.4 - secure_repo_webhooks.yml](./secure_repo_webhooks.yml)
@@ -0,0 +1,50 @@
1
+ ---
2
+ id: 4.3.4
3
+ name: secure_repo_webhooks
4
+ title: Ensure webhooks of the repository are secured
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: package_registries
8
+ description: >-
9
+ Use secured webhooks to reduce the possibility of malicious payloads.
10
+ rationale: >-
11
+ Webhooks are used for triggering an HTTP request based on an action made in the
12
+ platform. Typically, package registries feature webhooks when a package receives an
13
+ update. Since webhooks are an HTTP POST request, they can be malformed if not
14
+ secured over SSL. To prevent a potential hack and compromise of the webhook or to
15
+ the registry or web server excepting the request, use only secured webhooks.
16
+ impact: >-
17
+ Reduces the payloads that the web hook can listen for and receive.
18
+ audit: >-
19
+ remediation: >-
20
+ For each webhook in use, change it to secured (over HTTPS).
21
+ default_value:
22
+ references:
23
+ cis_controls:
24
+ - id: 3.10
25
+ version: 8
26
+ name: Encrypt Sensitive Data in Transit
27
+ description: >-
28
+ Encrypt sensitive data in transit. Example implementations can include:
29
+ Transport Layer Security (TLS) and Open Secure Shell (OpenSSH).
30
+ implementation_groups:
31
+ - IG2
32
+ - IG3
33
+ - id: 12.6
34
+ version: 8
35
+ name: Use of Secure Network Management and Communication Protocols
36
+ description: >-
37
+ Use secure network management and communication protocols (e.g.,
38
+ 802.1X, Wi-Fi Protected Access 2 (WPA2) Enterprise or greater).
39
+ implementation_groups:
40
+ - IG2
41
+ - IG3
42
+ - id: 14.4
43
+ version: 7
44
+ name: Encrypt All Sensitive Information in Transit
45
+ description: >-
46
+ Encrypt all sensitive information in transit.
47
+ implementation_groups:
48
+ - IG2
49
+ - IG3
50
+ additional_info: >-
@@ -0,0 +1,72 @@
1
+ ---
2
+ id: 4.3.1
3
+ name: validate_signed_artifacts_on_upload
4
+ title: Ensure all signed artifacts are validated upon uploading the package registry
5
+ profile: 1
6
+ category: artifacts
7
+ sub_category: package_registries
8
+ description: >-
9
+ Validate artifact signatures before uploading to the package registry.
10
+ rationale: >-
11
+ Cryptographic signature is a tool to verify artifact authenticity. Every artifact is supposed
12
+ to be signed by its creator in order to confirm that it was not compromised before
13
+ reaching the client. Validating an artifact signature before delivering it is another level of
14
+ protection which ensures the signature has not been changed, meaning no one tried or
15
+ succeeded in tampering with the artifact. This creates trust between the supplier and the
16
+ client.
17
+ impact: >-
18
+ audit: |
19
+ Ensure every artifact in the package registry has been validated with its signature.
20
+ 1. On the left sidebar, select Search or go to and find your project.
21
+ • To review commits for a project, select Code > Commits.
22
+ • To review commits for a merge request, select Code > Merge requests, then select your merge request.
23
+ 2. Select Commits.
24
+ 3. Identify the commit you want to review. Signed commits show either a Verified or Unverified badge, depending on the verification status of the signature. Unsigned commits do not display a badge.
25
+ remediation: >-
26
+ Validate every artifact with its signature before uploading it to the package registry. It is
27
+ recommended to do so automatically.
28
+ default_value: Artifacts are not scanned by default.
29
+ references:
30
+ - https://docs.gitlab.com/ee/user/project/repository/signed_commits/
31
+ cis_controls:
32
+ - id: 7.5
33
+ version: 8
34
+ name: Perform Automated Vulnerability Scans of Internal Enterprise Assets
35
+ description: >-
36
+ Perform automated vulnerability scans of internal enterprise assets on a
37
+ quarterly, or more frequent, basis. Conduct both authenticated and
38
+ unauthenticated scans, using a SCAP-compliant vulnerability scanning tool.
39
+ implementation_groups:
40
+ - IG2
41
+ - IG3
42
+ - id: 7.6
43
+ version: 8
44
+ name: Perform Automated Vulnerability Scans of Externally-Exposed Enterprise Assets
45
+ description: >-
46
+ Perform automated vulnerability scans of externally-exposed enterprise assets
47
+ using a SCAP-compliant vulnerability scanning tool. Perform scans on a monthly,
48
+ or more frequent, basis.
49
+ implementation_groups:
50
+ - IG2
51
+ - IG3
52
+ - id: 3.1
53
+ version: 7
54
+ name: Run Automated Vulnerability Scanning Tools
55
+ description: >-
56
+ Utilize an up-to-date SCAP-compliant vulnerability scanning tool to
57
+ automatically scan all systems on the network on a weekly or more frequent basis
58
+ to identify all potential vulnerabilities on the organization's systems.
59
+ implementation_groups:
60
+ - IG2
61
+ - IG3
62
+ - id: 3.2
63
+ version: 7
64
+ name: Perform Authenticated Vulnerability Scanning
65
+ description: >-
66
+ Perform authenticated vulnerability scanning with agents running locally on
67
+ each system or with remote scanners that are configured with elevated rights on
68
+ the system being tested.
69
+ implementation_groups:
70
+ - IG2
71
+ - IG3
72
+ additional_info: >-