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.
- gitlabcis/__init__.py +12 -0
- gitlabcis/__main__.py +7 -0
- gitlabcis/benchmarks/__init__.py +8 -0
- gitlabcis/benchmarks/artifacts_4/__init__.py +4 -0
- gitlabcis/benchmarks/artifacts_4/access_to_artifacts_4_2.py +139 -0
- gitlabcis/benchmarks/artifacts_4/origin_traceability_4_4.py +11 -0
- gitlabcis/benchmarks/artifacts_4/package_registries_4_3.py +105 -0
- gitlabcis/benchmarks/artifacts_4/verification_4_1.py +83 -0
- gitlabcis/benchmarks/build_pipelines_2/__init__.py +4 -0
- gitlabcis/benchmarks/build_pipelines_2/build_environment_2_1.py +268 -0
- gitlabcis/benchmarks/build_pipelines_2/build_worker_2_2.py +129 -0
- gitlabcis/benchmarks/build_pipelines_2/pipeline_instructions_2_3.py +444 -0
- gitlabcis/benchmarks/build_pipelines_2/pipeline_integrity_2_4.py +146 -0
- gitlabcis/benchmarks/dependencies_3/__init__.py +2 -0
- gitlabcis/benchmarks/dependencies_3/third_party_packages_3_1.py +171 -0
- gitlabcis/benchmarks/dependencies_3/validate_packages_3_2.py +182 -0
- gitlabcis/benchmarks/deployment_5/__init__.py +2 -0
- gitlabcis/benchmarks/deployment_5/deployment_configuration_5_1.py +165 -0
- gitlabcis/benchmarks/deployment_5/deployment_environment_5_2.py +66 -0
- gitlabcis/benchmarks/source_code_1/__init__.py +6 -0
- gitlabcis/benchmarks/source_code_1/code_changes_1_1.py +665 -0
- gitlabcis/benchmarks/source_code_1/code_risks_1_5.py +506 -0
- gitlabcis/benchmarks/source_code_1/contribution_access_1_3.py +334 -0
- gitlabcis/benchmarks/source_code_1/repository_management_1_2.py +168 -0
- gitlabcis/benchmarks/source_code_1/third_party_1_4.py +139 -0
- gitlabcis/cli/__init__.py +0 -0
- gitlabcis/cli/log.py +30 -0
- gitlabcis/cli/main.py +541 -0
- gitlabcis/cli/output.py +151 -0
- gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/external_auth_server.yml +51 -0
- gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/limit_artifact_uploaders.yml +57 -0
- gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/limit_certifying_artifacts.yml +53 -0
- gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/minimum_package_registry_admins.yml +54 -0
- gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/readme.md +14 -0
- gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/require_mfa_to_package_registry.yml +52 -0
- gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/restrict_anonymous_access.yml +67 -0
- gitlabcis/recommendations/artifacts_4/origin_traceability_4_4/artifact_origin_info.yml +56 -0
- gitlabcis/recommendations/artifacts_4/origin_traceability_4_4/readme.md +7 -0
- gitlabcis/recommendations/artifacts_4/package_registries_4_3/all_artifact_versions_signed.yml +70 -0
- gitlabcis/recommendations/artifacts_4/package_registries_4_3/audit_package_registry_config.yml +46 -0
- gitlabcis/recommendations/artifacts_4/package_registries_4_3/readme.md +12 -0
- gitlabcis/recommendations/artifacts_4/package_registries_4_3/secure_repo_webhooks.yml +50 -0
- gitlabcis/recommendations/artifacts_4/package_registries_4_3/validate_signed_artifacts_on_upload.yml +72 -0
- gitlabcis/recommendations/artifacts_4/readme.md +12 -0
- gitlabcis/recommendations/artifacts_4/verification_4_1/encrypt_artifacts_before_distribution.yml +47 -0
- gitlabcis/recommendations/artifacts_4/verification_4_1/only_authorized_platforms_can_decrypt_artifacts.yml +59 -0
- gitlabcis/recommendations/artifacts_4/verification_4_1/readme.md +11 -0
- gitlabcis/recommendations/artifacts_4/verification_4_1/sign_artifacts_in_build_pipeline.yml +40 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/authenticate_build_access.yml +55 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/build_automation.yml +54 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/build_env_admins.yml +55 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/build_logging.yml +49 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/disable_build_tools_default_passwords.yml +54 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/immutable_pipeline_infrastructure.yml +60 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/limit_build_access.yml +64 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/limit_build_secrets_scope.yml +56 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/readme.md +19 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/secure_build_env_webhooks.yml +43 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/single_responsibility_pipeline.yml +58 -0
- gitlabcis/recommendations/build_pipelines_2/build_environment_2_1/vuln_scanning.yml +64 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/build_worker_vuln_scanning.yml +58 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/monitor_worker_resource_consumption.yml +59 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/pass_worker_envs_and_commands.yml +48 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/readme.md +16 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/restrict_worker_connectivity.yml +61 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/segregate_worker_duties.yml +78 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/single_use_workers.yml +47 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/store_worker_config.yml +62 -0
- gitlabcis/recommendations/build_pipelines_2/build_worker_2_2/worker_runtime_security.yml +37 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/build_stage_io.yml +49 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/build_steps_as_code.yml +42 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/limit_pipeline_triggers.yml +76 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/pipeline_misconfiguration_scanning.yml +48 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/pipeline_secret_scanning.yml +56 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/pipeline_vuln_scanning.yml +44 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/readme.md +16 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/secure_pipeline_output.yml +52 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_instructions_2_3/track_pipeline_files.yml +48 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/create_reproducible_artifacts.yml +52 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/lock_dependencies.yml +59 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/pipeline_produces_sbom.yml +81 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/pipeline_signs_sbom.yml +38 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/readme.md +14 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/sign_artifacts.yml +35 -0
- gitlabcis/recommendations/build_pipelines_2/pipeline_integrity_2_4/validate_dependencies.yml +63 -0
- gitlabcis/recommendations/build_pipelines_2/readme.md +12 -0
- gitlabcis/recommendations/dependencies_3/readme.md +10 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/define_package_managers.yml +84 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/dependency_sbom.yml +84 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/monitor_dependencies.yml +61 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/packages_over_60_days_old.yml +95 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/pin_dependency_version.yml +48 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/readme.md +14 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/third_party_sbom_required.yml +70 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/verify_artifacts.yml +45 -0
- gitlabcis/recommendations/dependencies_3/third_party_packages_3_1/verify_signed_metadata.yml +41 -0
- gitlabcis/recommendations/dependencies_3/validate_packages_3_2/org_wide_dependency_policy.yml +47 -0
- gitlabcis/recommendations/dependencies_3/validate_packages_3_2/package_license_scanning.yml +47 -0
- gitlabcis/recommendations/dependencies_3/validate_packages_3_2/package_ownership_change.yml +42 -0
- gitlabcis/recommendations/dependencies_3/validate_packages_3_2/package_vuln_scanning.yml +62 -0
- gitlabcis/recommendations/dependencies_3/validate_packages_3_2/readme.md +10 -0
- gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/audit_deployment_config.yml +46 -0
- gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/limit_deployment_config_access.yml +51 -0
- gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/pin_deployment_config_manifests.yml +59 -0
- gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/readme.md +13 -0
- gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/scan_iac.yml +72 -0
- gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/secret_scan_deployment_config.yml +45 -0
- gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/separate_deployment_config.yml +50 -0
- gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/verify_deployment_config.yml +49 -0
- gitlabcis/recommendations/deployment_5/deployment_environment_5_2/automate_deployment.yml +47 -0
- gitlabcis/recommendations/deployment_5/deployment_environment_5_2/disable_default_passwords.yml +63 -0
- gitlabcis/recommendations/deployment_5/deployment_environment_5_2/limit_prod_access.yml +45 -0
- gitlabcis/recommendations/deployment_5/deployment_environment_5_2/readme.md +12 -0
- gitlabcis/recommendations/deployment_5/deployment_environment_5_2/reproducible_deployment.yml +50 -0
- gitlabcis/recommendations/deployment_5/readme.md +10 -0
- gitlabcis/recommendations/readme.md +24 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/audit_branch_protections.yml +56 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/auto_risk_scan_merges.yml +62 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/branch_protections_for_admins.yml +60 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/branches_updated_before_merging.yml +56 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/checks_pass_before_merging.yml +57 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/code_approval_dismissals.yml +62 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/code_approvals.yml +65 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/code_changes_require_code_owners.yml +68 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/code_dismissal_restrictions.yml +69 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/code_owners.yml +61 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/code_tracing.yml +52 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/comments_resolved_before_merging.yml +59 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/commits_must_be_signed_before_merging.yml +63 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/default_branch_protected.yml +85 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/deny_branch_deletions.yml +76 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/ensure_force_push_is_denied.yml +59 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/linear_history_required.yml +56 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/merging_restrictions.yml +65 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/readme.md +26 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/stale_branch_reviews.yml +72 -0
- gitlabcis/recommendations/source_code_1/code_changes_1_1/version_control.yml +45 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/dast_api_scanning.yml +50 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/dast_web_scanning.yml +51 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/dependency_scanning.yml +84 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/enable_secret_detection.yml +45 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/license_scanning.yml +47 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/readme.md +14 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/secure_iac_instructions.yml +81 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/secure_pipeline_instructions.yml +62 -0
- gitlabcis/recommendations/source_code_1/code_risks_1_5/vulnerability_scanning.yml +48 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/domain_verification.yml +65 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/ensure_2_admins_per_repo.yml +56 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/limit_top_level_group_creation.yml +61 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/limit_user_registration_domain.yml +58 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/minimum_number_of_admins.yml +56 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/org_provided_ssh_certs.yml +70 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/readme.md +21 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/require_mfa_at_org_level.yml +89 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/require_mfa_for_contributors.yml +76 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/restrict_ip_addresses.yml +84 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/review_and_remove_inactive_users.yml +62 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/scm_notification_restriction.yml +46 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/strict_permissions_for_repo.yml +62 -0
- gitlabcis/recommendations/source_code_1/contribution_access_1_3/track_code_anomalies.yml +43 -0
- gitlabcis/recommendations/source_code_1/readme.md +13 -0
- gitlabcis/recommendations/source_code_1/repository_management_1_2/limit_issue_deletions.yml +57 -0
- gitlabcis/recommendations/source_code_1/repository_management_1_2/limit_repo_creations.yml +64 -0
- gitlabcis/recommendations/source_code_1/repository_management_1_2/limit_repo_deletions.yml +57 -0
- gitlabcis/recommendations/source_code_1/repository_management_1_2/public_repos_have_security_file.yml +59 -0
- gitlabcis/recommendations/source_code_1/repository_management_1_2/readme.md +15 -0
- gitlabcis/recommendations/source_code_1/repository_management_1_2/review_and_archive_stale_repos.yml +65 -0
- gitlabcis/recommendations/source_code_1/repository_management_1_2/track_forks.yml +74 -0
- gitlabcis/recommendations/source_code_1/repository_management_1_2/track_project_visibility_status.yml +74 -0
- gitlabcis/recommendations/source_code_1/third_party_1_4/README.md +12 -0
- gitlabcis/recommendations/source_code_1/third_party_1_4/admin_approval_for_app_installs.yml +83 -0
- gitlabcis/recommendations/source_code_1/third_party_1_4/least_privilge_app_permissions.yml +103 -0
- gitlabcis/recommendations/source_code_1/third_party_1_4/secure_webhooks.yml +73 -0
- gitlabcis/recommendations/source_code_1/third_party_1_4/stale_app_reviews.yml +66 -0
- gitlabcis/recommendations/template.yml +30 -0
- gitlabcis/tests/__init__.py +0 -0
- gitlabcis/tests/input/__init__.py +0 -0
- gitlabcis/tests/input/conftest.py +29 -0
- gitlabcis/tests/input/no_input_test.py +82 -0
- gitlabcis/tests/input/switch_test.py +19 -0
- gitlabcis/tests/input/version_test.py +7 -0
- gitlabcis/tests/unit/__init__.py +0 -0
- gitlabcis/tests/unit/benchmarks/artifacts_4/access_to_artifacts_4_2_test.py +131 -0
- gitlabcis/tests/unit/benchmarks/artifacts_4/origin_traceability_4_4_test.py +15 -0
- gitlabcis/tests/unit/benchmarks/artifacts_4/package_registries_4_3_test.py +102 -0
- gitlabcis/tests/unit/benchmarks/artifacts_4/verification_4_1_test.py +78 -0
- gitlabcis/tests/unit/benchmarks/build_pipelines_2/build_environment_2_1_test.py +239 -0
- gitlabcis/tests/unit/benchmarks/build_pipelines_2/build_worker_2_2_test.py +105 -0
- gitlabcis/tests/unit/benchmarks/build_pipelines_2/pipeline_instructions_2_3_test.py +340 -0
- gitlabcis/tests/unit/benchmarks/build_pipelines_2/pipeline_integrity_2_4_test.py +115 -0
- gitlabcis/tests/unit/benchmarks/conftest.py +47 -0
- gitlabcis/tests/unit/benchmarks/dependencies_3/third_party_packages_3_1_test.py +135 -0
- gitlabcis/tests/unit/benchmarks/dependencies_3/validate_packages_3_2_test.py +171 -0
- gitlabcis/tests/unit/benchmarks/deployment_5/deployment_configuration_5_1_test.py +140 -0
- gitlabcis/tests/unit/benchmarks/deployment_5/deployment_environment_5_2_test.py +60 -0
- gitlabcis/tests/unit/benchmarks/function_test.py +24 -0
- gitlabcis/tests/unit/benchmarks/source_code_1/code_changes_1_1_test.py +565 -0
- gitlabcis/tests/unit/benchmarks/source_code_1/code_risks_1_5_test.py +419 -0
- gitlabcis/tests/unit/benchmarks/source_code_1/contribution_access_1_3_test.py +265 -0
- gitlabcis/tests/unit/benchmarks/source_code_1/repository_management_1_2_test.py +142 -0
- gitlabcis/tests/unit/benchmarks/source_code_1/third_party_1_4_test.py +119 -0
- gitlabcis/tests/unit/conftest.py +94 -0
- gitlabcis/tests/unit/log/log_test.py +23 -0
- gitlabcis/tests/unit/utils/argfilters_test.py +9 -0
- gitlabcis/tests/unit/utils/ci_test.py +156 -0
- gitlabcis/tests/unit/utils/output_test.py +95 -0
- gitlabcis/tests/unit/utils/utils_general_test.py +149 -0
- gitlabcis/tests/unit/utils/version_test.py +11 -0
- gitlabcis/tests/unit/yaml/bad_file_test.py +15 -0
- gitlabcis/tests/unit/yaml/recommendation_test.py +123 -0
- gitlabcis/utils/__init__.py +146 -0
- gitlabcis/utils/ci.py +132 -0
- gitlabcis-1.3.2.dist-info/LICENSE +21 -0
- gitlabcis-1.3.2.dist-info/METADATA +241 -0
- gitlabcis-1.3.2.dist-info/RECORD +218 -0
- gitlabcis-1.3.2.dist-info/WHEEL +5 -0
- gitlabcis-1.3.2.dist-info/entry_points.txt +2 -0
- 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: >-
|
gitlabcis/recommendations/source_code_1/contribution_access_1_3/review_and_remove_inactive_users.yml
ADDED
|
@@ -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: >-
|
gitlabcis/recommendations/source_code_1/contribution_access_1_3/scm_notification_restriction.yml
ADDED
|
@@ -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: >-
|
gitlabcis/recommendations/source_code_1/contribution_access_1_3/strict_permissions_for_repo.yml
ADDED
|
@@ -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)
|
gitlabcis/recommendations/source_code_1/repository_management_1_2/review_and_archive_stale_repos.yml
ADDED
|
@@ -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: >-
|