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,84 @@
1
+ ---
2
+ id: 1.3.12
3
+ name: restrict_ip_addresses
4
+ title: Ensure Git access is limited based on IP addresses
5
+ profile: 2
6
+ category: source_code
7
+ sub_category: contribution_access
8
+ description: >-
9
+ Limit Git access based on IP addresses by having a allowlist of IP addresses from which connection is possible.
10
+ rationale: >-
11
+ Allowing access to Git repositories (source code) only from specific IP addresses adds
12
+ yet another layer of restriction and reduces the risk of unauthorized connection to the
13
+ organization's assets. This will prevent attackers from accessing Source Code
14
+ Management (SCM), as they would first need to know the allowed IP addresses to gain
15
+ access to them.
16
+ impact: >-
17
+ Only members with allowlisted IP addresses will be able to access the organization's Git
18
+ repositories.
19
+ audit: |
20
+ To ensure only people from your organization can access particular resources, you can restrict access to groups by IP address. This top-level group setting applies to:
21
+ The GitLab UI, including subgroups, projects, and issues. It does not apply to GitLab Pages.
22
+
23
+ In GitLab 12.3 and later, the API.
24
+
25
+ In self-managed installations of GitLab 15.1 and later, you can also configure globally-allowed IP address ranges at the group level.
26
+ To determine whether IP restrictions are in place:
27
+ • On the left sidebar, select Search or go to and find your group.
28
+ • Select Settings > General.
29
+ • Expand the Permissions and group features section.
30
+ • In the Restrict access by IP address text box, view the list of IP addresses.
31
+ remediation: |
32
+ To restrict group access by IP address:
33
+ 1. On the left sidebar, select Search or go to and find your group.
34
+ 2. Select Settings > General.
35
+ 3. Expand the Permissions and group features section.
36
+ 4. In the Restrict access by IP address text box, enter a list of IPv4 or IPv6 address ranges in CIDR notation. This list:
37
+ • Has no limit on the number of IP address ranges.
38
+ • Has a size limit of 1 GB.
39
+ • Applies to both SSH or HTTP authorized IP address ranges. You cannot split this list by type of authorization.
40
+ 5. Select Save changes.
41
+ default_value:
42
+ references:
43
+ - https://docs.gitlab.com/ee/user/group/access_and_permissions.html#restrict-group-access-by-ip-address
44
+ cis_controls:
45
+ - id: 2.5
46
+ version: 8
47
+ name: Allowlist Authorized Software
48
+ description: >-
49
+ Use technical controls, such as application allowlisting, to ensure that only
50
+ authorized software can execute or be accessed. Reassess bi-annually, or more
51
+ frequently.
52
+ implementation_groups:
53
+ - IG2
54
+ - IG3
55
+ - id: 2.6
56
+ version: 8
57
+ name: Allowlist Authorized Libraries
58
+ description: >-
59
+ Use technical controls to ensure that only authorized software libraries, such
60
+ as specific .dll, .ocx, .so, etc., files, are allowed to load into a system process.
61
+ Block unauthorized libraries from loading into a system process. Reassess bi-
62
+ annually, or more frequently.
63
+ implementation_groups:
64
+ - IG2
65
+ - IG3
66
+ - id: 2.7
67
+ version: 7
68
+ name: Utilize Application Whitelisting
69
+ description: >-
70
+ Utilize application whitelisting technology on all assets to ensure that only
71
+ authorized software executes and all unauthorized software is blocked from
72
+ executing on assets.
73
+ implementation_groups:
74
+ - IG3
75
+ - id: 2.8
76
+ version: 7
77
+ name: Implement Application Whitelisting of Libraries
78
+ description: >-
79
+ The organization's application whitelisting software must ensure that only
80
+ authorized software libraries (such as *.dll, *.ocx, *.so, etc) are allowed to load into
81
+ a system process.
82
+ implementation_groups:
83
+ - IG3
84
+ additional_info: >-
@@ -0,0 +1,62 @@
1
+ ---
2
+ id: 1.3.1
3
+ name: review_and_remove_inactive_users
4
+ title: Ensure inactive users are reviewed and removed periodically
5
+ profile: 2
6
+ category: source_code
7
+ sub_category: contribution_access
8
+ description: >-
9
+ Track inactive user accounts and periodically remove them.
10
+ rationale: >-
11
+ User accounts that have been inactive for a long period of time are enlarging the
12
+ surface of attack. Inactive users with high-level privileges are of particular concern, as
13
+ these accounts are more likely to be targets for attackers. This could potentially allow
14
+ access to large portions of an organization should such an attack prove successful. It is
15
+ recommended to remove them as soon as possible in order to prevent this.
16
+ impact: >-
17
+ audit: |
18
+ As an Administrator:
19
+ • Navigate to the Admin Area
20
+ • In the sidebar, select Users
21
+ • Select the 'Deactivated' filter tab
22
+ • Identify if any users are present
23
+ • Select the 'Active' filter tab
24
+ • Sort by 'Oldest updated'
25
+ • Use the 'Last activity' column to determine which users are inactive
26
+ remediation: |
27
+ As an Administrator:
28
+ • Navigate to the Admin Area
29
+ • In the sidebar, select Users
30
+ • Next to each inactive user, select the vertical ellipsis
31
+ • Select either 'Block' (recommended), 'Delete user', or 'Delete user and contributions'
32
+
33
+ Perform the following steps as an Administrator to automatically deactivate dormant users:
34
+ • Navigate to the Admin Area
35
+ • Select Settings > General.
36
+ • Expand the Account and limit section.
37
+ • Under Dormant users, check Deactivate dormant users after a period of inactivity.
38
+ • Under Days of inactivity before deactivation, enter the number of days before deactivation. Minimum value is 90 days.
39
+ • Select Save changes.
40
+ default_value:
41
+ references:
42
+ - https://docs.gitlab.com/ee/administration/moderate_users.html
43
+ cis_controls:
44
+ - id: 5.3
45
+ version: 8
46
+ name: Disable Dormant Accounts
47
+ description: >-
48
+ Delete or disable any dormant accounts after a period of 45 days of inactivity, where supported.
49
+ implementation_groups:
50
+ - IG1
51
+ - IG2
52
+ - IG3
53
+ - id: 16.9
54
+ version: 7
55
+ name: Disable Dormant Accounts
56
+ description: >-
57
+ Automatically disable dormant accounts after a set period of inactivity
58
+ implementation_groups:
59
+ - IG1
60
+ - IG2
61
+ - IG3
62
+ additional_info: >-
@@ -0,0 +1,46 @@
1
+ ---
2
+ id: 1.3.10
3
+ name: scm_notification_restriction
4
+ title: Ensure Source Code Management (SCM) email notifications are restricted to verified domains
5
+ profile: 2
6
+ category: source_code
7
+ sub_category: contribution_access
8
+ description: >-
9
+ Restrict the Source Code Management (SCM) organization's email notifications to approved domains only.
10
+ rationale: >-
11
+ Restricting Source Code Management email notifications to verified domains only
12
+ prevents data leaks, as personal emails and custom domains are more prone to
13
+ account takeover via DNS hijacking or password breach.
14
+ impact: >-
15
+ Only members with approved email would be able to receive Source Code Management
16
+ notifications.
17
+ audit: |
18
+ Ensure Source Code Management email notifications are restricted to approved domains only by performing the following:
19
+ • On the left sidebar, select Search or go to and find your top-level group.
20
+ • Select Settings > Domain Verification.
21
+ • When viewing Domain Verification, select the project listed next to the relevant domain.
22
+ • Check if access is limited to the relevant domains.
23
+ remediation: |
24
+ Restrict Source Code Management email notifications to approved domains only by performing the following:
25
+ • On the left sidebar, select Search or go to and find your top-level group.
26
+ • Select Settings > Domain Verification.
27
+ • When viewing Domain Verification, select the project listed next to the relevant domain.
28
+ • Ensure access is limited to the relevant domains.
29
+ default_value:
30
+ references:
31
+ - https://docs.gitlab.com/ee/user/enterprise_user/#verified-domains-for-groups
32
+ - https://docs.gitlab.com/ee/user/group/access_and_permissions.html#restrict-group-access-by-domain
33
+ cis_controls:
34
+ - id: 0.0
35
+ version: 8
36
+ name: Explicitly Not Mapped
37
+ description: >-
38
+ Explicitly Not Mapped
39
+ implementation_groups:
40
+ - id: 0.0
41
+ version: 7
42
+ name: Explicitly Not Mapped
43
+ description: >-
44
+ Explicitly Not Mapped
45
+ implementation_groups:
46
+ additional_info: >-
@@ -0,0 +1,62 @@
1
+ ---
2
+ id: 1.3.8
3
+ name: strict_permissions_for_repo
4
+ title: Ensure strict base permissions are set for repositories
5
+ profile: 1
6
+ category: source_code
7
+ sub_category: contribution_access
8
+ description: >-
9
+ Base permissions define the permission level automatically granted to all organization
10
+ members. Define strict base access permissions for all of the repositories in the
11
+ organization, including new ones.
12
+ rationale: >-
13
+ Defining strict base permissions is the best practice in every role-based access control
14
+ (RBAC) system. If the base permission is high — for example, "write" permission —
15
+ every member of the organization will have "write" permission to every repository in the
16
+ organization. This will apply regardless of the specific permissions a user might need,
17
+ which generally differ between organization repositories. The higher the permission, the
18
+ higher the risk for incidents such as bad code commit or data breach. It is therefore
19
+ recommended to set the base permissions to the strictest level possible.
20
+ impact: >-
21
+ Users might not be able to access organization repositories or perform some acts as
22
+ commits. These specific permissions should be granted individually for each user or
23
+ team, as needed.
24
+ audit: |
25
+ Verify that strict base permissions are set for the organization groups by doing the following:
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
+
30
+ In GitLab, you set the specific role for each new user in your group. Check the roles of your users to determine if it matches the least-privilege principle.
31
+ remediation: |
32
+ Set strict base permissions for the organization groups with the next steps:
33
+ • On the left sidebar, select Search or go to and find your project.
34
+ • Select Manage > Members.
35
+ • At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
36
+ In GitLab, you set the specific role for each new user in your group. Ensure the roles for your users match the least-privilege principle.
37
+ default_value: Read permission
38
+ references:
39
+ cis_controls:
40
+ - id: 16.7
41
+ version: 8
42
+ name: Use Standard Hardening Configuration Templates for Application Infrastructure
43
+ description: >-
44
+ Use standard, industry-recommended hardening configuration templates for
45
+ application infrastructure components. This includes underlying servers, databases,
46
+ and web servers, and applies to cloud containers, Platform as a Service (PaaS)
47
+ components, and SaaS components. Do not allow in-house developed software to
48
+ weaken configuration hardening.
49
+ implementation_groups:
50
+ - IG2
51
+ - IG3
52
+ - id: 18.11
53
+ version: 7
54
+ name: Use Standard Hardening Configuration Templates for Databases
55
+ description: >-
56
+ For applications that rely on a database, use standard hardening configuration
57
+ templates. All systems that are part of critical business processes should also be
58
+ tested.
59
+ implementation_groups:
60
+ - IG2
61
+ - IG3
62
+ additional_info: >-
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: 1.3.13
3
+ name: track_code_anomalies
4
+ title: Ensure anomalous code behavior is tracked
5
+ profile: 1
6
+ category: source_code
7
+ sub_category: contribution_access
8
+ description: >-
9
+ Track code anomalies.
10
+ rationale: >-
11
+ Carefully analyze any code anomalies within the organization. For example, a code
12
+ anomaly could be a push made outside of working hours. Such a code push has a
13
+ higher likelihood of being the result of an attack, as most if not all members of the
14
+ organization would likely be outside the office. Another example is an activity that
15
+ exceeds the average activity of a particular user. Tracking and auditing such behaviors
16
+ creates additional layers of security and can aid in early detection of potential attacks.
17
+ impact: >-
18
+ audit: >-
19
+ For every project in use, ensure code anomalies relevant to the organization are
20
+ promptly investigated.
21
+ remediation: >-
22
+ For every project in use, track and investigate anomalous code behavior and activity.
23
+ default_value:
24
+ references:
25
+ cis_controls:
26
+ - id: 16.12
27
+ version: 8
28
+ name: Implement Code-Level Security Checks
29
+ description: >-
30
+ Apply static and dynamic analysis tools within the application life cycle to
31
+ verify that secure coding practices are being followed.
32
+ implementation_groups:
33
+ - IG3
34
+ - id: 18.7
35
+ version: 7
36
+ name: Apply Static and Dynamic Code Analysis Tools
37
+ description: >-
38
+ Apply static and dynamic analysis tools to verify that secure coding
39
+ practices are being adhered to for internally developed software.
40
+ implementation_groups:
41
+ - IG2
42
+ - IG3
43
+ additional_info: >-
@@ -0,0 +1,13 @@
1
+ # 1 Source Code
2
+
3
+ This section consists of security recommendations for proper source code management of any application developed by the organization. This is the first phase of the software supply chain, and is considered the single source of truth for the rest of the process.
4
+
5
+ It is critical to secure both the source code itself, as well as the platform with which it is managed, in order to protect the integrity of a software release. From the developers who commit changes, to the sensitive data or vulnerabilities that could be placed within it, and ultimately to the source code management platform in which it is stored, verification of the integrity of the source code is imperative in order to keep every software update secure.
6
+
7
+ ## Sections
8
+
9
+ - [1.1 - Code Changes](./code_changes_1_1)
10
+ - [1.2 - Repository Management](./repository_management_1_2)
11
+ - [1.3 - Contribution Access](./contribution_access_1_3)
12
+ - [1.4 - Third Party](./third_party_1_4)
13
+ - [1.5 - Code Risks](./code_risks_1_5)
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: 1.2.4
3
+ name: limit_issue_deletions
4
+ title: Ensure issue deletion is limited to specific users
5
+ profile: 1
6
+ category: source_code
7
+ sub_category: repository_management
8
+ description: >-
9
+ Ensure only trusted and responsible users can delete issues.
10
+ rationale: >-
11
+ Issues are a way to keep track of things happening in repositories, such as setting new
12
+ milestones or requesting urgent fixes. Deleting an issue is not a benign activity, as it
13
+ might harm the development workflow or attempt to hide malicious behavior. Because
14
+ of this, it should be restricted and allowed only by trusted and responsible users.
15
+ impact: >-
16
+ Certain users will not be permitted to delete issues.
17
+ audit: |
18
+ Verify that only a limited number of trusted users can delete issues by performing either of the following steps:
19
+ • On the left sidebar, select Search or go to and find your project.
20
+ • Select Manage > Members.
21
+ • At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
22
+ • If there are minimum number of members with Owner/Maintainer role in the list, you are compliant.
23
+ remediation: |
24
+ Enforce issue deletion by a few trusted and responsible users only by performing either of the following steps:
25
+ • On the left sidebar, select Search or go to and find your project.
26
+ • Select Manage > Members.
27
+ • At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
28
+ • Next to the project member you want to remove, select Remove member.
29
+ default_value: Only organization owners or members with admin privileges can delete issues.
30
+ references:
31
+ - https://docs.gitlab.com/ee/user/permissions.html#project-features-permissions
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,64 @@
1
+ ---
2
+ id: 1.2.2
3
+ name: limit_repo_creations
4
+ title: Ensure repository creation is limited to specific members
5
+ profile: 1
6
+ category: source_code
7
+ sub_category: repository_management
8
+ description: >-
9
+ Limit the ability to create repositories to trusted users and teams.
10
+ rationale: >-
11
+ Restricting repository creation to trusted users and teams is recommended in order to
12
+ keep the organization properly structured, track fewer items, prevent impersonation, and
13
+ to not overload the version-control system. It will allow administrators easier source
14
+ code tracking and management capabilities, as they will have fewer repositories to
15
+ track. The process of detecting potential attacks also becomes far more straightforward,
16
+ as well, since the easier it is to track the source code, the easier it is to detect malicious
17
+ acts within it. Additionally, the possibility of a member creating a public repository and
18
+ sharing the organization's data externally is significantly decreased.
19
+ impact: >-
20
+ Specific users will not be permitted to create repositories.
21
+ audit: |
22
+ Verify that only trusted users and teams can create repositories by performing the following. As an administrator:
23
+ • Navigate to the Admin Area
24
+ • In the sidebar, select Settings > General
25
+ • Expand the Sign-up restrictions section
26
+ • If 'Sign up enabled' is disabled, the instance is compliant.
27
+ • If 'Sign-up enabled' and 'Require admin approval for new sign-ups' are selected, and if 'Email confirmation settings' is set to Hard, the instance is compliant.
28
+ remediation: |
29
+ Ensure that only trusted users and teams can create repositories by performing the following. As an administrator:
30
+ • Navigate to the Admin Area
31
+ • In the sidebar, select Settings > General
32
+ • Expand the Sign-up restrictions section
33
+ • (Option 1) Deselect 'Sign-up enabled', OR
34
+ • (Option 2) Select 'Sign-up enabled', select 'Require admin approval for new sign-ups' are selected, and under 'Email confirmation settings' select 'Hard'
35
+ • Select 'Save changes'
36
+ default_value:
37
+ references:
38
+ - https://docs.gitlab.com/ee/administration/settings/sign_up_restrictions.html
39
+ cis_controls:
40
+ - id: 3.3
41
+ version: 8
42
+ name: Configure Data Access Control Lists
43
+ description: >-
44
+ Configure data access control lists based on a user's need to know. Apply data
45
+ access control lists, also known as access permissions, to local and remote file
46
+ systems, databases, and applications.
47
+ implementation_groups:
48
+ - IG1
49
+ - IG2
50
+ - IG3
51
+ - id: 14.6
52
+ version: 7
53
+ name: Protect Information through Access Control Lists
54
+ description: >-
55
+ Protect all information stored on systems with file system, network share,
56
+ claims, application, or database specific access control lists. These controls will
57
+ enforce the principle that only authorized individuals should have access to the
58
+ information based on their need to access the information as a part of their
59
+ responsibilities.
60
+ implementation_groups:
61
+ - IG1
62
+ - IG2
63
+ - IG3
64
+ additional_info: >-
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: 1.2.3
3
+ name: limit_repo_deletions
4
+ title: Ensure repository deletion is limited to specific users
5
+ profile: 1
6
+ category: source_code
7
+ sub_category: repository_management
8
+ description: >-
9
+ Ensure only a limited number of trusted users can delete repositories.
10
+ rationale: >-
11
+ Restricting the ability to delete repositories protects the organization from intentional
12
+ and unintentional data loss. This ensures that users cannot delete repositories or cause
13
+ other potential damage — whether by accident or due to their account being hacked —
14
+ unless they have the correct privileges.
15
+ impact: >-
16
+ Certain users will not be permitted to delete repositories.
17
+ audit: |
18
+ Verify that only a limited number of trusted users can delete repositories by performing either of the following steps:
19
+ • On the left sidebar, select Search or go to and find your project.
20
+ • Select Manage > Members.
21
+ • At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
22
+ • If there are minimum number of members with Owner/Maintainer role in the list, you are compliant.
23
+ remediation: |
24
+ Enforce repository deletion by a few trusted and responsible users only by performing either of the following steps:
25
+ • On the left sidebar, select Search or go to and find your project.
26
+ • Select Manage > Members.
27
+ • At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
28
+ • Next to the project member you want to remove, select Remove member.
29
+ default_value: Only organization owners or members with admin privileges can delete repositories.
30
+ references:
31
+ - https://docs.gitlab.com/ee/user/permissions.html
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,59 @@
1
+ ---
2
+ id: 1.2.1
3
+ name: public_repos_have_security_file
4
+ title: Ensure all public repositories contain a SECURITY.md file
5
+ profile: 1
6
+ category: source_code
7
+ sub_category: repository_management
8
+ description: >-
9
+ A SECURITY.md file is a security policy file that offers instruction on reporting security
10
+ vulnerabilities in a project. When someone creates an issue within a specific project, a
11
+ link to the SECURITY.md file will subsequently be shown.
12
+ rationale: >-
13
+ A SECURITY.md file provides users with crucial security information. It can also serve
14
+ an important role in project maintenance, encouraging users to think ahead about how
15
+ to properly handle potential security issues, updates, and general security practices.
16
+ impact: >-
17
+ audit: |
18
+ Verify that each public repository has a SECURITY.md file by performing the following:
19
+ • Navigate to the main page of a GitLab repository.
20
+ • Verify that the repository has a SECURITY.md file with crucial security information at the top-level.
21
+ remediation: |
22
+ Ensure that each public repository has a SECURITY.md file by performing the following:
23
+ • Navigate to the main page of a repository without a SECURITY.md file in GitLab.
24
+ • Create a SECURITY.md file (in the web UI or locally) with security information like supported versions of your project and how to report a vulnerability.
25
+ • Commit this file to the repository and push your changes.
26
+ • If you open a merge request to add the SECURITY.md file, make sure this change is merged to your repository's default branch.
27
+ default_value:
28
+ references:
29
+ - https://docs.gitlab.com/ee/api/projects.html
30
+ - https://docs.gitlab.com/ee/api/repository_files.html
31
+ cis_controls:
32
+ - id: 16.2
33
+ version: 8
34
+ name: Establish and Maintain a Process to Accept and Address Software Vulnerabilities
35
+ description: >-
36
+ Establish and maintain a process to accept and address reports of software
37
+ vulnerabilities, including providing a means for external entities to report. The
38
+ process is to include such items as: a vulnerability handling policy that identifies
39
+ reporting process, responsible party for handling vulnerability reports, and a process
40
+ for intake, assignment, remediation, and remediation testing. As part of the process,
41
+ use a vulnerability tracking system that includes severity ratings, and metrics for
42
+ measuring timing for identification, analysis, and remediation of
43
+ vulnerabilities. Review and update documentation annually, or when significant
44
+ enterprise changes occur that could impact this Safeguard. Third-party application
45
+ developers need to consider this an externally-facing policy that helps to set
46
+ expectations for outside stakeholders.
47
+ implementation_groups:
48
+ - IG2
49
+ - IG3
50
+ - id: 18.8
51
+ version: 7
52
+ name: Establish a Process to Accept and Address Reports of Software Vulnerabilities
53
+ description: >-
54
+ Establish a process to accept and address reports of software vulnerabilities,
55
+ including providing a means for external entities to contact your security group.
56
+ implementation_groups:
57
+ - IG2
58
+ - IG3
59
+ additional_info: >-
@@ -0,0 +1,15 @@
1
+ # 1.2 Repository Management
2
+
3
+ This section consists of security recommendations for proper code repository management.
4
+
5
+ Code repositories are where the application code is stored and organized. It is important to keep code repositories organized and maintained to avoid data loss, data theft and other attacks that may happen unknowingly when a repository is not maintained well. The recommendations of this section are setting guides to do so.
6
+
7
+ ## Recommendations
8
+
9
+ * [1.2.1 - public_repos_have_security_file.yml](./public_repos_have_security_file.yml)
10
+ * [1.2.2 - limit_repo_creations.yml](./limit_repo_creations.yml)
11
+ * [1.2.3 - limit_repo_deletions.yml](./limit_repo_deletions.yml)
12
+ * [1.2.4 - limit_issue_deletions.yml](./limit_issue_deletions.yml)
13
+ * [1.2.5 - track_forks.yml](./track_forks.yml)
14
+ * [1.2.6 - track_project_visibility_status.yml](./track_project_visibility_status.yml)
15
+ * [1.2.7 - review_and_archive_stale_repos.yml](./review_and_archive_stale_repos.yml)
@@ -0,0 +1,65 @@
1
+ ---
2
+ id: 1.2.7
3
+ name: review_and_archive_stale_repos
4
+ title: Ensure inactive repositories are reviewed and archived periodically
5
+ profile: 1
6
+ category: source_code
7
+ sub_category: repository_management
8
+ description: >-
9
+ Track inactive repositories and remove them periodically.
10
+ rationale: >-
11
+ Inactive repositories (i.e., no new changes introduced for a long period of time) can
12
+ enlarge the surface of a potential attack or data leak. These repositories are more likely
13
+ to be improperly managed, and thus could possibly be accessed by a large number of
14
+ users in an organization.
15
+ impact: >-
16
+ Bug fixes and deployment of necessary changes could prove complicated for archived repositories.
17
+ audit: |
18
+ Perform the following to ensure that all the projects in the organization are active. For each group:
19
+ • Navigate to the group homepage.
20
+ • Expand any sub-groups.
21
+ • For each project, review the updated date and ensure it has been updated within the last 6 months.
22
+ remediation: |
23
+ Perform the following to remediate the presence of inactive projects. For each inactive project identified during the audit:
24
+ • Navigate to the project homepage.
25
+ • In the sidebar, select Settings > General.
26
+ • In the 'Advanced' section, select 'Expand'.
27
+ • Select 'Archive project'.
28
+ • Read the warning.
29
+ • Select 'Archive project'.
30
+
31
+ To automate the deletion of inactive projects, perform the following steps as an Administrator:
32
+ • On the left sidebar, at the bottom, select Admin Area.
33
+ • Select Settings > Repository.
34
+ • Expand Repository maintenance.
35
+ • In the Inactive project deletion section, select Delete inactive projects.
36
+ • Configure the settings.
37
+ • The warning email is sent to users who have the Owner and Maintainer role for the inactive project.
38
+ • The email duration must be less than the Delete project after duration.
39
+ • Select Save changes.
40
+ default_value:
41
+ references:
42
+ - https://docs.gitlab.com/ee/administration/inactive_project_deletion.html
43
+ cis_controls:
44
+ - id: 4.8
45
+ version: 8
46
+ name: Uninstall or Disable Unnecessary Services on Enterprise Assets and Software
47
+ description: >-
48
+ Uninstall or disable unnecessary services on enterprise assets and software,
49
+ such as an unused file sharing service, web application module, or service function.
50
+ implementation_groups:
51
+ - IG2
52
+ - IG3
53
+ - id: 13.2
54
+ version: 8
55
+ name: Remove Sensitive Data or Systems Not Regularly Accessed by Organization
56
+ description: >-
57
+ Remove sensitive data or systems not regularly accessed by the organization
58
+ from the network. These systems shall only be used as stand alone systems
59
+ (disconnected from the network) by the business unit needing to occasionally use
60
+ the system or completely virtualized and powered off until needed.
61
+ implementation_groups:
62
+ - IG1
63
+ - IG2
64
+ - IG3
65
+ additional_info: >-