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,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.2.4
|
|
3
|
+
name: external_auth_server
|
|
4
|
+
title: Ensure user management of the package registry is not local
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: access_to_artifacts
|
|
8
|
+
description: >-
|
|
9
|
+
Manage users and their access to the package registry with an external authentication
|
|
10
|
+
server and not with the package registry itself.
|
|
11
|
+
rationale: >-
|
|
12
|
+
Some package registries offer a tool for user management, aside from the main
|
|
13
|
+
Lightweight Directory Access Protocol (LDAP) or Active Directory (AD) server of the
|
|
14
|
+
organization. That tool usually offers simple authentication and role-based permissions,
|
|
15
|
+
which might not be granular enough. Having multiple user management tools in the
|
|
16
|
+
organization could result in confusion and privilege escalation, as there will be more to
|
|
17
|
+
manage. To avoid a situation where users escalate their privileges because someone
|
|
18
|
+
missed them, manage user access to the package registry via the main authentication
|
|
19
|
+
server and not locally on the package registry.
|
|
20
|
+
impact: >-
|
|
21
|
+
audit: >-
|
|
22
|
+
For each package registry, verify that its user access is not managed locally, but instead
|
|
23
|
+
with the main authentication server of the organization.
|
|
24
|
+
remediation: >-
|
|
25
|
+
For each package registry, use the main authentication server of the organization for
|
|
26
|
+
user management and do not manage locally.
|
|
27
|
+
default_value:
|
|
28
|
+
references:
|
|
29
|
+
cis_controls:
|
|
30
|
+
- id: 3.3
|
|
31
|
+
version: 8
|
|
32
|
+
name: Configure Data Access Control Lists
|
|
33
|
+
description: >-
|
|
34
|
+
Configure data access control lists based on a user's need to know. Apply data
|
|
35
|
+
access control lists, also known as access permissions, to local and remote file
|
|
36
|
+
systems, databases, and applications.
|
|
37
|
+
implementation_groups:
|
|
38
|
+
- IG1
|
|
39
|
+
- IG2
|
|
40
|
+
- IG3
|
|
41
|
+
- id: 14.6
|
|
42
|
+
version: 7
|
|
43
|
+
name: Protect Information through Access Control Lists
|
|
44
|
+
description: >-
|
|
45
|
+
Protect all information stored on systems with file system, network share,
|
|
46
|
+
claims, application, or database specific access control lists. These controls will
|
|
47
|
+
enforce the principle that only authorized individuals should have access to the
|
|
48
|
+
information based on their need to access the information as a part of their
|
|
49
|
+
responsibilities.
|
|
50
|
+
implementation_groups:
|
|
51
|
+
additional_info: >-
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.2.2
|
|
3
|
+
name: limit_artifact_uploaders
|
|
4
|
+
title: Ensure number of permitted users who may upload new artifacts is minimized
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: access_to_artifacts
|
|
8
|
+
description: >-
|
|
9
|
+
Minimize ability to upload artifacts to the lowest number of trusted users possible.
|
|
10
|
+
rationale: >-
|
|
11
|
+
Artifacts might contain sensitive data. Even the simplest mistake can also lead to trust
|
|
12
|
+
issues with customers and harm the integrity of the product. To decrease these risks,
|
|
13
|
+
allow only trusted and qualified users to upload new artifacts. Those users are less
|
|
14
|
+
likely to make mistakes. Having the lowest number of such users possible will also
|
|
15
|
+
decrease the risk of hacked user accounts, which could lead to a massive breach or
|
|
16
|
+
artifact compromising.
|
|
17
|
+
impact: >-
|
|
18
|
+
audit: |
|
|
19
|
+
Ensure only trusted and qualified users can upload new artifacts, and that their number is the lowest possible.
|
|
20
|
+
• On the left sidebar, select Search or go to and find your project.
|
|
21
|
+
• Select Manage > Members.
|
|
22
|
+
• At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
|
|
23
|
+
• If there are minimum number of members with Owner/Maintainer role in the list, you are compliant.
|
|
24
|
+
remediation: |
|
|
25
|
+
Allow only trusted and qualified users to upload new artifacts and limit them in number.
|
|
26
|
+
• On the left sidebar, select Search or go to and find your project.
|
|
27
|
+
• Select Manage > Members.
|
|
28
|
+
• At the top of the member list, from the dropdown list, select Max role the members have in the group and descending order.
|
|
29
|
+
• Next to the project member you want to remove, select Remove member.
|
|
30
|
+
default_value:
|
|
31
|
+
references:
|
|
32
|
+
cis_controls:
|
|
33
|
+
- id: 3.3
|
|
34
|
+
version: 8
|
|
35
|
+
name: Configure Data Access Control Lists
|
|
36
|
+
description: >-
|
|
37
|
+
Configure data access control lists based on a user's need to know. Apply data
|
|
38
|
+
access control lists, also known as access permissions, to local and remote file
|
|
39
|
+
systems, databases, and applications.
|
|
40
|
+
implementation_groups:
|
|
41
|
+
- IG1
|
|
42
|
+
- IG2
|
|
43
|
+
- IG3
|
|
44
|
+
- id: 14.6
|
|
45
|
+
version: 7
|
|
46
|
+
name: Protect Information through Access Control Lists
|
|
47
|
+
description: >-
|
|
48
|
+
Protect all information stored on systems with file system, network share,
|
|
49
|
+
claims, application, or database specific access control lists. These controls will
|
|
50
|
+
enforce the principle that only authorized individuals should have access to the
|
|
51
|
+
information based on their need to access the information as a part of their
|
|
52
|
+
responsibilities.
|
|
53
|
+
implementation_groups:
|
|
54
|
+
- IG1
|
|
55
|
+
- IG2
|
|
56
|
+
- IG3
|
|
57
|
+
additional_info: >-
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.2.1
|
|
3
|
+
name: limit_certifying_artifacts
|
|
4
|
+
title: Ensure the authority to certify artifacts is limited
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: access_to_artifacts
|
|
8
|
+
description: >-
|
|
9
|
+
Software certification is used to verify the safety of certain software usage and to
|
|
10
|
+
establish trust between the supplier and the consumer. Any artifact can be certified.
|
|
11
|
+
Limit the authority to certify different artifacts.
|
|
12
|
+
rationale: >-
|
|
13
|
+
Artifact certification is a powerful tool in establishing trust. Clients use a software
|
|
14
|
+
certificate to verify that the artifact is safe to use according to their security policies.
|
|
15
|
+
Because of this, certifying artifacts is considered sensitive. If an artifact is for debugging
|
|
16
|
+
or internal use, or if it were compromised, the organization would not want certification.
|
|
17
|
+
An attacker gaining access to both certificate authority and the artifact registry might
|
|
18
|
+
also be able to certify its own artifact and cause a major breach. To prevent these
|
|
19
|
+
issues, limit which artifacts can be certified by which platform so there will be minimal
|
|
20
|
+
access to certification.
|
|
21
|
+
impact: >-
|
|
22
|
+
audit: >-
|
|
23
|
+
Ensure only certain artifacts can be certified by certain parties.
|
|
24
|
+
remediation: >-
|
|
25
|
+
Limit which artifact can be certified by which authority.
|
|
26
|
+
default_value:
|
|
27
|
+
references:
|
|
28
|
+
cis_controls:
|
|
29
|
+
- id: 3.3
|
|
30
|
+
version: 8
|
|
31
|
+
name: Configure Data Access Control Lists
|
|
32
|
+
description: >-
|
|
33
|
+
Configure data access control lists based on a user's need to know. Apply data
|
|
34
|
+
access control lists, also known as access permissions, to local and remote file
|
|
35
|
+
systems, databases, and applications.
|
|
36
|
+
implementation_groups:
|
|
37
|
+
- IG1
|
|
38
|
+
- IG2
|
|
39
|
+
- IG3
|
|
40
|
+
- id: 14.6
|
|
41
|
+
version: 7
|
|
42
|
+
name: Protect Information through Access Control Lists
|
|
43
|
+
description: >-
|
|
44
|
+
Protect all information stored on systems with file system, network share,
|
|
45
|
+
claims, application, or database specific access control lists. These controls will
|
|
46
|
+
enforce the principle that only authorized individuals should have access to the
|
|
47
|
+
information based on their need to access the information as a part of their
|
|
48
|
+
responsibilities.
|
|
49
|
+
implementation_groups:
|
|
50
|
+
- IG1
|
|
51
|
+
- IG2
|
|
52
|
+
- IG3
|
|
53
|
+
additional_info: >-
|
gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/minimum_package_registry_admins.yml
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.2.6
|
|
3
|
+
name: minimum_package_registry_admins
|
|
4
|
+
title: Ensure minimum number of administrators are set for the package registry
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: access_to_artifacts
|
|
8
|
+
description: >-
|
|
9
|
+
Ensure the package registry has a minimum number of administrators.
|
|
10
|
+
rationale: >-
|
|
11
|
+
Package registry admins have the ability to add/remove users, repositories, packages.
|
|
12
|
+
Due to the permissive access granted to an admin, it is highly recommended to keep
|
|
13
|
+
the number of administrator accounts as minimal as possible.
|
|
14
|
+
impact: >-
|
|
15
|
+
Administrator privileges are required to provide and maintain a secure and stable
|
|
16
|
+
platform but allowing extraneous administrator accounts can create a vulnerability.
|
|
17
|
+
audit: >-
|
|
18
|
+
Verify that your package registry has only the minimum number of administrators. For
|
|
19
|
+
each project that you administer on GitLab, you can see every team or person with
|
|
20
|
+
access to the project. Project-level permissions determine actions such as downloading,
|
|
21
|
+
pushing, or deleting packages.
|
|
22
|
+
remediation: >-
|
|
23
|
+
Set the minimum number of administrators in your package registry. To accomplish this:
|
|
24
|
+
For each project that you administer on GitLab, you can see an overview of every team
|
|
25
|
+
or person with access to the repository. Provide access to the appropriate people or
|
|
26
|
+
teams.
|
|
27
|
+
default_value:
|
|
28
|
+
references:
|
|
29
|
+
- https://docs.gitlab.com/ee/user/packages/package_registry
|
|
30
|
+
cis_controls:
|
|
31
|
+
- id: 5.4
|
|
32
|
+
version: 8
|
|
33
|
+
name: Restrict Administrator Privileges to Dedicated Administrator Accounts
|
|
34
|
+
description: >-
|
|
35
|
+
Restrict administrator privileges to dedicated administrator accounts on
|
|
36
|
+
enterprise assets. Conduct general computing activities, such as internet
|
|
37
|
+
browsing, email, and productivity suite use, from the user's primary, non-privileged
|
|
38
|
+
account.
|
|
39
|
+
implementation_groups:
|
|
40
|
+
- IG1
|
|
41
|
+
- IG2
|
|
42
|
+
- IG3
|
|
43
|
+
- id: 4.3
|
|
44
|
+
version: 7
|
|
45
|
+
name: Ensure the Use of Dedicated Administrative Accounts
|
|
46
|
+
description: >-
|
|
47
|
+
Ensure that all users with administrative account access use a dedicated or
|
|
48
|
+
secondary account for elevated activities. This account should only be used for
|
|
49
|
+
administrative activities and not internet browsing, email, or similar activities.
|
|
50
|
+
implementation_groups:
|
|
51
|
+
- IG1
|
|
52
|
+
- IG2
|
|
53
|
+
- IG3
|
|
54
|
+
additional_info: >-
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# 4.2 Access to Artifacts
|
|
2
|
+
|
|
3
|
+
This section consists of security recommendations for access management of artifacts.
|
|
4
|
+
|
|
5
|
+
Artifacts are often stored in registries, some external and some internal. Those registries have user entities that control access and permissions. Artifacts are considered sensitive, because they are being delivered to the costumer, and are prune to many attacks: data theft, dependency confusion, malicious packages and more. That's why their access management should be restrictive and careful.
|
|
6
|
+
|
|
7
|
+
## Recommendations
|
|
8
|
+
|
|
9
|
+
* [4.2.1 - limit_certifying_artifacts.yml](./limit_certifying_artifacts.yml)
|
|
10
|
+
* [4.2.2 - limit_artifact_uploaders.yml](./limit_artifact_uploaders.yml)
|
|
11
|
+
* [4.2.3 - require_mfa_to_package_registry.yml](./require_mfa_to_package_registry.yml)
|
|
12
|
+
* [4.2.4 - external_auth_server.yml](./external_auth_server.yml)
|
|
13
|
+
* [4.2.5 - restrict_anonymous_access.yml](./restrict_anonymous_access.yml)
|
|
14
|
+
* [4.2.6 - minimum_package_registry_admins.yml](./minimum_package_registry_admins.yml)
|
gitlabcis/recommendations/artifacts_4/access_to_artifacts_4_2/require_mfa_to_package_registry.yml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.2.3
|
|
3
|
+
name: require_mfa_to_package_registry
|
|
4
|
+
title: Ensure user access to the package registry utilizes Multi-Factor Authentication (MFA)
|
|
5
|
+
profile: 2
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: access_to_artifacts
|
|
8
|
+
description: >-
|
|
9
|
+
Enforce Multi-Factor Authentication (MFA) for user access to the package registry.
|
|
10
|
+
rationale: >-
|
|
11
|
+
By default, every user authenticates to the system by password only. If a user's
|
|
12
|
+
password is compromised, the user account and all its related packages are in danger
|
|
13
|
+
of data theft and malicious builds. It is therefore recommended that each user enables
|
|
14
|
+
Multi-Factor Authentication. This additional step guarantees that the account stays
|
|
15
|
+
secure even if the user's password is compromised, as it adds another layer of
|
|
16
|
+
authentication.
|
|
17
|
+
impact: >-
|
|
18
|
+
audit: |
|
|
19
|
+
For each package registry in use, verify that Multi-Factor Authentication is enforced and is the only way to authenticate.
|
|
20
|
+
• On the left sidebar, at the bottom, select Admin Area.
|
|
21
|
+
• Select Settings > General.
|
|
22
|
+
• Expand Sign-in restrictions:
|
|
23
|
+
• Check if Enforce two-factor authentication is enabled. If so, you are compliant.
|
|
24
|
+
remediation: |
|
|
25
|
+
For each package registry in use, enforce Multi-Factor Authentication as the only way to authenticate.
|
|
26
|
+
• On the left sidebar, at the bottom, select Admin Area.
|
|
27
|
+
• Select Settings > General.
|
|
28
|
+
• Expand Sign-in restrictions:
|
|
29
|
+
• Select Enforce two-factor authentication to enable this feature.
|
|
30
|
+
default_value:
|
|
31
|
+
references:
|
|
32
|
+
cis_controls:
|
|
33
|
+
- id: 6.3
|
|
34
|
+
version: 8
|
|
35
|
+
name: Require MFA for Externally-Exposed Applications
|
|
36
|
+
description: >-
|
|
37
|
+
Require all externally-exposed enterprise or third-party applications to enforce
|
|
38
|
+
MFA, where supported. Enforcing MFA through a directory service or SSO
|
|
39
|
+
provider is a satisfactory implementation of this Safeguard.
|
|
40
|
+
implementation_groups:
|
|
41
|
+
- IG2
|
|
42
|
+
- IG3
|
|
43
|
+
- id: 4.5
|
|
44
|
+
version: 7
|
|
45
|
+
name: Use Multifactor Authentication For All Administrative Access
|
|
46
|
+
description: >-
|
|
47
|
+
Use multi-factor authentication and encrypted channels for all administrative
|
|
48
|
+
account access.
|
|
49
|
+
implementation_groups:
|
|
50
|
+
- IG2
|
|
51
|
+
- IG3
|
|
52
|
+
additional_info: >-
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.2.5
|
|
3
|
+
name: restrict_anonymous_access
|
|
4
|
+
title: Ensure anonymous access to artifacts is revoked
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: access_to_artifacts
|
|
8
|
+
description: >-
|
|
9
|
+
For GitLab projets anonymous access is not available.
|
|
10
|
+
Verify that all that require access controls are Private or Internal.
|
|
11
|
+
rationale: >-
|
|
12
|
+
Disable the option to view artifacts as an anonymous user in order to protect private
|
|
13
|
+
artifacts from being exposed.
|
|
14
|
+
impact: >-
|
|
15
|
+
Only logged and authorized users will be able to access artifacts.
|
|
16
|
+
audit: |
|
|
17
|
+
Reviewing a project's visibility for artifacts:
|
|
18
|
+
• On the left sidebar, select Search or go to and find your project.
|
|
19
|
+
• Select Settings > General.
|
|
20
|
+
• Expand Visibility, project features, permissions.
|
|
21
|
+
• From the Project visibility dropdown list, review the current selection.
|
|
22
|
+
remediation: |
|
|
23
|
+
Changing a project's visibility for artifacts:
|
|
24
|
+
• On the left sidebar, select Search or go to and find your project.
|
|
25
|
+
• Select Settings > General.
|
|
26
|
+
• Expand Visibility, project features, permissions.
|
|
27
|
+
• From the Project visibility dropdown list, select an option. The visibility setting for a project must be at least as restrictive as the visibility of its parent group.
|
|
28
|
+
• Select Save changes.
|
|
29
|
+
default_value:
|
|
30
|
+
references:
|
|
31
|
+
- https://docs.gitlab.com/ee/user/public_access.html
|
|
32
|
+
cis_controls:
|
|
33
|
+
- id: 2.5
|
|
34
|
+
version: 8
|
|
35
|
+
name: Allowlist Authorized Software
|
|
36
|
+
description: >-
|
|
37
|
+
Use technical controls, such as application allowlisting, to ensure that only
|
|
38
|
+
authorized software can execute or be accessed. Reassess bi-annually, or more
|
|
39
|
+
frequently.
|
|
40
|
+
implementation_groups:
|
|
41
|
+
- IG2
|
|
42
|
+
- IG3
|
|
43
|
+
- id: 2.6
|
|
44
|
+
version: 8
|
|
45
|
+
name: Allowlist Authorized Libraries
|
|
46
|
+
description: >-
|
|
47
|
+
Use technical controls to ensure that only authorized software libraries, such as
|
|
48
|
+
specific .dll, .ocx, .so, etc., files, are allowed to load into a system process. Block
|
|
49
|
+
unauthorized libraries from loading into a system process. Reassess bi-annually, or
|
|
50
|
+
more frequently.
|
|
51
|
+
implementation_groups:
|
|
52
|
+
- IG2
|
|
53
|
+
- IG3
|
|
54
|
+
- id: 14.6
|
|
55
|
+
version: 7
|
|
56
|
+
name: Protect Information through Access Control Lists
|
|
57
|
+
description: >-
|
|
58
|
+
Protect all information stored on systems with file system, network share,
|
|
59
|
+
claims, application, or database specific access control lists. These controls will
|
|
60
|
+
enforce the principle that only authorized individuals should have access to the
|
|
61
|
+
information based on their need to access the information as a part of their
|
|
62
|
+
responsibilities.
|
|
63
|
+
implementation_groups:
|
|
64
|
+
- IG1
|
|
65
|
+
- IG2
|
|
66
|
+
- IG3
|
|
67
|
+
additional_info: >-
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.4.1
|
|
3
|
+
name: artifact_origin_info
|
|
4
|
+
title: Ensure artifacts contain information about their origin
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: origin_traceability
|
|
8
|
+
description: >-
|
|
9
|
+
When delivering artifacts, ensure they have information about their origin. This may be
|
|
10
|
+
done by providing a Software Bill of Manufacture (SBOM) or some metadata files.
|
|
11
|
+
rationale: >-
|
|
12
|
+
Information about artifact origin can be used for verification purposes. Having this kind
|
|
13
|
+
of information allows the user to decide if the organization supplying the artifact is
|
|
14
|
+
trusted. In a case of potential vulnerability or version update, this can be used to verify
|
|
15
|
+
that the organization issuing it is the actual origin and not someone else. If users need
|
|
16
|
+
to report problems with the artifact, they will have an address to contact as well.
|
|
17
|
+
impact: >-
|
|
18
|
+
audit: >-
|
|
19
|
+
For each artifact, ensure it has information about its origin.
|
|
20
|
+
remediation: >-
|
|
21
|
+
For each artifact supplied, supply information about its origin. For each artifact in use,
|
|
22
|
+
ask for information about its origin.
|
|
23
|
+
default_value:
|
|
24
|
+
references:
|
|
25
|
+
cis_controls:
|
|
26
|
+
- id: 1.1
|
|
27
|
+
version: 8
|
|
28
|
+
name: Establish and Maintain Detailed Enterprise Asset Inventory
|
|
29
|
+
description: >-
|
|
30
|
+
Establish and maintain an accurate, detailed, and up-to-date inventory of all
|
|
31
|
+
enterprise assets with the potential to store or process data, to include: end-user
|
|
32
|
+
devices (including portable and mobile), network devices, non-computing/IoT
|
|
33
|
+
devices, and servers. Ensure the inventory records the network address (if static),
|
|
34
|
+
hardware address, machine name, enterprise asset owner, department for each
|
|
35
|
+
asset, and whether the asset has been approved to connect to the network. For
|
|
36
|
+
mobile end-user devices, MDM type tools can support this process, where
|
|
37
|
+
appropriate. This inventory includes assets connected to the infrastructure
|
|
38
|
+
physically, virtually, remotely, and those within cloud environments. Additionally, it
|
|
39
|
+
includes assets that are regularly connected to the enterprise's etwork
|
|
40
|
+
infrastructure, even if they are not under control of the enterprise. Review and
|
|
41
|
+
update the inventory of all enterprise assets bi-annually, or more frequently.
|
|
42
|
+
implementation_groups:
|
|
43
|
+
- IG1
|
|
44
|
+
- IG2
|
|
45
|
+
- IG3
|
|
46
|
+
- id: 1.5
|
|
47
|
+
version: 7
|
|
48
|
+
name: Maintain Asset Inventory Information
|
|
49
|
+
description: >-
|
|
50
|
+
Ensure that the hardware asset inventory records the network address, hardware
|
|
51
|
+
address, machine name, data asset owner, and department for each asset and
|
|
52
|
+
whether the hardware asset has been approved to connect to the network.
|
|
53
|
+
implementation_groups:
|
|
54
|
+
- IG2
|
|
55
|
+
- IG3
|
|
56
|
+
additional_info: >-
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# 4.4 Origin Traceability
|
|
2
|
+
|
|
3
|
+
This section consists of security recommendations for managing the traceability of artifacts. This means ensuring that both the organization and its customers know where this artifact came from, for example with an SBOM (Software Bill Of Materials), and also verifying that it came from the registry it was supposed.
|
|
4
|
+
|
|
5
|
+
## Recommendations
|
|
6
|
+
|
|
7
|
+
* [4.4.1 - artifact_origin_info.yml](./artifact_origin_info.yml)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.3.2
|
|
3
|
+
name: all_artifact_versions_signed
|
|
4
|
+
title: Ensure all versions of an existing artifact have their signatures validated
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: package_registries
|
|
8
|
+
description: >-
|
|
9
|
+
Validate the signature of all versions of an existing artifact.
|
|
10
|
+
rationale: >-
|
|
11
|
+
In order to be certain a version of an existing and trusted artifact is not malicious or
|
|
12
|
+
delivered by someone looking to interfere with the supply chain, it is a good practice to
|
|
13
|
+
validate the signatures of each version. Doing so decreases the risk of using a
|
|
14
|
+
compromised artifact, which might lead to a breach.
|
|
15
|
+
impact: >-
|
|
16
|
+
audit: |
|
|
17
|
+
For each artifact, ensure that all of its versions are signed and validated before it is uploaded or used.
|
|
18
|
+
Ensure every artifact in the package registry has been validated with its signature.
|
|
19
|
+
1. On the left sidebar, select Search or go to and find your project.
|
|
20
|
+
• To review commits for a project, select Code > Commits.
|
|
21
|
+
• To review commits for a merge request, select Code > Merge requests, then select your merge request.
|
|
22
|
+
2. Select Commits.
|
|
23
|
+
3. Identify the commit you want to review. Signed commits show either a Verified or Unverified badge, depending on the verification status of the signature. Unsigned commits do not display a badge.
|
|
24
|
+
remediation: >-
|
|
25
|
+
For each artifact, sign and validate each version before uploading or using the artifact.
|
|
26
|
+
default_value:
|
|
27
|
+
references:
|
|
28
|
+
- https://docs.gitlab.com/ee/user/project/repository/signed_commits/
|
|
29
|
+
cis_controls:
|
|
30
|
+
- id: 7.5
|
|
31
|
+
version: 8
|
|
32
|
+
name: Perform Automated Vulnerability Scans of Internal Enterprise Assets
|
|
33
|
+
description: >-
|
|
34
|
+
Perform automated vulnerability scans of internal enterprise assets on a
|
|
35
|
+
quarterly, or more frequent, basis. Conduct both authenticated and
|
|
36
|
+
unauthenticated scans, using a SCAP-compliant vulnerability scanning tool.
|
|
37
|
+
implementation_groups:
|
|
38
|
+
- IG2
|
|
39
|
+
- IG3
|
|
40
|
+
- id: 7.6
|
|
41
|
+
version: 8
|
|
42
|
+
name: Perform Automated Vulnerability Scans of Externally-Exposed Enterprise Assets
|
|
43
|
+
description: >-
|
|
44
|
+
Perform automated vulnerability scans of externally-exposed enterprise assets
|
|
45
|
+
using a SCAP-compliant vulnerability scanning tool. Perform scans on a monthly,
|
|
46
|
+
or more frequent, basis.
|
|
47
|
+
implementation_groups:
|
|
48
|
+
- IG2
|
|
49
|
+
- IG3
|
|
50
|
+
- id: 3.1
|
|
51
|
+
version: 7
|
|
52
|
+
name: Run Automated Vulnerability Scanning Tools
|
|
53
|
+
description: >-
|
|
54
|
+
Utilize an up-to-date SCAP-compliant vulnerability scanning tool to
|
|
55
|
+
automatically scan all systems on the network on a weekly or more frequent basis
|
|
56
|
+
to identify all potential vulnerabilities on the organization's systems.
|
|
57
|
+
implementation_groups:
|
|
58
|
+
- IG2
|
|
59
|
+
- IG3
|
|
60
|
+
- id: 3.2
|
|
61
|
+
version: 7
|
|
62
|
+
name: Perform Authenticated Vulnerability Scanning
|
|
63
|
+
description: >-
|
|
64
|
+
Perform authenticated vulnerability scanning with agents running locally on
|
|
65
|
+
each system or with remote scanners that are configured with elevated rights on
|
|
66
|
+
the system being tested.
|
|
67
|
+
implementation_groups:
|
|
68
|
+
- IG2
|
|
69
|
+
- IG3
|
|
70
|
+
additional_info: >-
|
gitlabcis/recommendations/artifacts_4/package_registries_4_3/audit_package_registry_config.yml
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.3.3
|
|
3
|
+
name: audit_package_registry_config
|
|
4
|
+
title: Ensure changes in package registry configuration are audited
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: package_registries
|
|
8
|
+
description: >-
|
|
9
|
+
Audit changes of the package registry configuration.
|
|
10
|
+
rationale: >-
|
|
11
|
+
The package registry is a crucial component in the software supply chain. It stores
|
|
12
|
+
artifacts with potentially sensitive data that will eventually be deployed and used in
|
|
13
|
+
production. Every change made to the package registry configuration must be examined
|
|
14
|
+
carefully to ensure no exposure of the registry's sensitive data. This examination also
|
|
15
|
+
ensures no malicious actors have performed modifications to a stored artifact. Auditing
|
|
16
|
+
the configuration and its changes helps in decreasing such risks.
|
|
17
|
+
impact: >-
|
|
18
|
+
audit: >-
|
|
19
|
+
Verify that all changes to the packages registry configuration are audited.
|
|
20
|
+
remediation: >-
|
|
21
|
+
Audit the changes to the package registry configuration.
|
|
22
|
+
default_value: GitHub audits this by default.
|
|
23
|
+
references:
|
|
24
|
+
- https://docs.gitlab.com/ee/administration/audit_event_types.html
|
|
25
|
+
cis_controls:
|
|
26
|
+
- id: 8.5
|
|
27
|
+
version: 8
|
|
28
|
+
name: Collect Detailed Audit Logs
|
|
29
|
+
description: >-
|
|
30
|
+
Configure detailed audit logging for enterprise assets containing sensitive data.
|
|
31
|
+
Include event source, date, username, timestamp, source addresses, destination
|
|
32
|
+
addresses, and other useful elements that could assist in a forensic investigation.
|
|
33
|
+
implementation_groups:
|
|
34
|
+
- IG2
|
|
35
|
+
- IG3
|
|
36
|
+
- id: 6.3
|
|
37
|
+
version: 7
|
|
38
|
+
name: Enable Detailed Logging
|
|
39
|
+
description: >-
|
|
40
|
+
Enable system logging to include detailed information such as an event source,
|
|
41
|
+
date, user, timestamp, source addresses, destination addresses, and other useful
|
|
42
|
+
elements.
|
|
43
|
+
implementation_groups:
|
|
44
|
+
- IG2
|
|
45
|
+
- IG3
|
|
46
|
+
additional_info: >-
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 4.3 Package Registries
|
|
2
|
+
|
|
3
|
+
This section consists of security recommendations for management of package registries and artifacts that are stored in them.
|
|
4
|
+
|
|
5
|
+
Package registries are where the organization artifacts are stored. To keep an artifact safe, you must keep the registry where it is stored safe too. furthermore, you need to ensure that every artifact that reaches the registry is safe to use and doesn't put the registry in danger.
|
|
6
|
+
|
|
7
|
+
## Recommendations
|
|
8
|
+
|
|
9
|
+
* [4.3.1 - validate_signed_artifacts_on_upload.yml](./validate_signed_artifacts_on_upload.yml)
|
|
10
|
+
* [4.3.2 - all_artifact_versions_signed.yml](./all_artifact_versions_signed.yml)
|
|
11
|
+
* [4.3.3 - audit_package_registry_config.yml](./audit_package_registry_config.yml)
|
|
12
|
+
* [4.3.4 - secure_repo_webhooks.yml](./secure_repo_webhooks.yml)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.3.4
|
|
3
|
+
name: secure_repo_webhooks
|
|
4
|
+
title: Ensure webhooks of the repository are secured
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: package_registries
|
|
8
|
+
description: >-
|
|
9
|
+
Use secured webhooks to reduce the possibility of malicious payloads.
|
|
10
|
+
rationale: >-
|
|
11
|
+
Webhooks are used for triggering an HTTP request based on an action made in the
|
|
12
|
+
platform. Typically, package registries feature webhooks when a package receives an
|
|
13
|
+
update. Since webhooks are an HTTP POST request, they can be malformed if not
|
|
14
|
+
secured over SSL. To prevent a potential hack and compromise of the webhook or to
|
|
15
|
+
the registry or web server excepting the request, use only secured webhooks.
|
|
16
|
+
impact: >-
|
|
17
|
+
Reduces the payloads that the web hook can listen for and receive.
|
|
18
|
+
audit: >-
|
|
19
|
+
remediation: >-
|
|
20
|
+
For each webhook in use, change it to secured (over HTTPS).
|
|
21
|
+
default_value:
|
|
22
|
+
references:
|
|
23
|
+
cis_controls:
|
|
24
|
+
- id: 3.10
|
|
25
|
+
version: 8
|
|
26
|
+
name: Encrypt Sensitive Data in Transit
|
|
27
|
+
description: >-
|
|
28
|
+
Encrypt sensitive data in transit. Example implementations can include:
|
|
29
|
+
Transport Layer Security (TLS) and Open Secure Shell (OpenSSH).
|
|
30
|
+
implementation_groups:
|
|
31
|
+
- IG2
|
|
32
|
+
- IG3
|
|
33
|
+
- id: 12.6
|
|
34
|
+
version: 8
|
|
35
|
+
name: Use of Secure Network Management and Communication Protocols
|
|
36
|
+
description: >-
|
|
37
|
+
Use secure network management and communication protocols (e.g.,
|
|
38
|
+
802.1X, Wi-Fi Protected Access 2 (WPA2) Enterprise or greater).
|
|
39
|
+
implementation_groups:
|
|
40
|
+
- IG2
|
|
41
|
+
- IG3
|
|
42
|
+
- id: 14.4
|
|
43
|
+
version: 7
|
|
44
|
+
name: Encrypt All Sensitive Information in Transit
|
|
45
|
+
description: >-
|
|
46
|
+
Encrypt all sensitive information in transit.
|
|
47
|
+
implementation_groups:
|
|
48
|
+
- IG2
|
|
49
|
+
- IG3
|
|
50
|
+
additional_info: >-
|
gitlabcis/recommendations/artifacts_4/package_registries_4_3/validate_signed_artifacts_on_upload.yml
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 4.3.1
|
|
3
|
+
name: validate_signed_artifacts_on_upload
|
|
4
|
+
title: Ensure all signed artifacts are validated upon uploading the package registry
|
|
5
|
+
profile: 1
|
|
6
|
+
category: artifacts
|
|
7
|
+
sub_category: package_registries
|
|
8
|
+
description: >-
|
|
9
|
+
Validate artifact signatures before uploading to the package registry.
|
|
10
|
+
rationale: >-
|
|
11
|
+
Cryptographic signature is a tool to verify artifact authenticity. Every artifact is supposed
|
|
12
|
+
to be signed by its creator in order to confirm that it was not compromised before
|
|
13
|
+
reaching the client. Validating an artifact signature before delivering it is another level of
|
|
14
|
+
protection which ensures the signature has not been changed, meaning no one tried or
|
|
15
|
+
succeeded in tampering with the artifact. This creates trust between the supplier and the
|
|
16
|
+
client.
|
|
17
|
+
impact: >-
|
|
18
|
+
audit: |
|
|
19
|
+
Ensure every artifact in the package registry has been validated with its signature.
|
|
20
|
+
1. On the left sidebar, select Search or go to and find your project.
|
|
21
|
+
• To review commits for a project, select Code > Commits.
|
|
22
|
+
• To review commits for a merge request, select Code > Merge requests, then select your merge request.
|
|
23
|
+
2. Select Commits.
|
|
24
|
+
3. Identify the commit you want to review. Signed commits show either a Verified or Unverified badge, depending on the verification status of the signature. Unsigned commits do not display a badge.
|
|
25
|
+
remediation: >-
|
|
26
|
+
Validate every artifact with its signature before uploading it to the package registry. It is
|
|
27
|
+
recommended to do so automatically.
|
|
28
|
+
default_value: Artifacts are not scanned by default.
|
|
29
|
+
references:
|
|
30
|
+
- https://docs.gitlab.com/ee/user/project/repository/signed_commits/
|
|
31
|
+
cis_controls:
|
|
32
|
+
- id: 7.5
|
|
33
|
+
version: 8
|
|
34
|
+
name: Perform Automated Vulnerability Scans of Internal Enterprise Assets
|
|
35
|
+
description: >-
|
|
36
|
+
Perform automated vulnerability scans of internal enterprise assets on a
|
|
37
|
+
quarterly, or more frequent, basis. Conduct both authenticated and
|
|
38
|
+
unauthenticated scans, using a SCAP-compliant vulnerability scanning tool.
|
|
39
|
+
implementation_groups:
|
|
40
|
+
- IG2
|
|
41
|
+
- IG3
|
|
42
|
+
- id: 7.6
|
|
43
|
+
version: 8
|
|
44
|
+
name: Perform Automated Vulnerability Scans of Externally-Exposed Enterprise Assets
|
|
45
|
+
description: >-
|
|
46
|
+
Perform automated vulnerability scans of externally-exposed enterprise assets
|
|
47
|
+
using a SCAP-compliant vulnerability scanning tool. Perform scans on a monthly,
|
|
48
|
+
or more frequent, basis.
|
|
49
|
+
implementation_groups:
|
|
50
|
+
- IG2
|
|
51
|
+
- IG3
|
|
52
|
+
- id: 3.1
|
|
53
|
+
version: 7
|
|
54
|
+
name: Run Automated Vulnerability Scanning Tools
|
|
55
|
+
description: >-
|
|
56
|
+
Utilize an up-to-date SCAP-compliant vulnerability scanning tool to
|
|
57
|
+
automatically scan all systems on the network on a weekly or more frequent basis
|
|
58
|
+
to identify all potential vulnerabilities on the organization's systems.
|
|
59
|
+
implementation_groups:
|
|
60
|
+
- IG2
|
|
61
|
+
- IG3
|
|
62
|
+
- id: 3.2
|
|
63
|
+
version: 7
|
|
64
|
+
name: Perform Authenticated Vulnerability Scanning
|
|
65
|
+
description: >-
|
|
66
|
+
Perform authenticated vulnerability scanning with agents running locally on
|
|
67
|
+
each system or with remote scanners that are configured with elevated rights on
|
|
68
|
+
the system being tested.
|
|
69
|
+
implementation_groups:
|
|
70
|
+
- IG2
|
|
71
|
+
- IG3
|
|
72
|
+
additional_info: >-
|