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,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 3.1.3
|
|
3
|
+
name: verify_signed_metadata
|
|
4
|
+
title: Ensure signed metadata of the build process is required and verified
|
|
5
|
+
profile: 1
|
|
6
|
+
category: dependencies
|
|
7
|
+
sub_category: third_party_packages
|
|
8
|
+
description: >-
|
|
9
|
+
Require and verify signed metadata of the build process for all dependencies in use.
|
|
10
|
+
rationale: >-
|
|
11
|
+
The metadata of a build process lists every action that took place during an artifact
|
|
12
|
+
build. It is used to ensure that an artifact has not been compromised during the build,
|
|
13
|
+
that no malicious code was injected into it, and that no nefarious dependencies were
|
|
14
|
+
added during the build phase. This creates trust between user and vendor that the
|
|
15
|
+
software supplied is exactly the software that was promised. Signing this metadata adds
|
|
16
|
+
a checksum to ensure there have been no revisions since its creation, as this checksum
|
|
17
|
+
changes when the metadata is altered. Verification of proper metadata signature with
|
|
18
|
+
Certificate Authority confirms that the signature was produced by a trusted entity.
|
|
19
|
+
impact: >-
|
|
20
|
+
audit: >-
|
|
21
|
+
For each artifact used, ensure it was supplied with verified and signed metadata of its
|
|
22
|
+
build process. The signature should be the organizational signature and should be
|
|
23
|
+
verifiable by common Certificate Authority servers.
|
|
24
|
+
remediation: >-
|
|
25
|
+
For each artifact in use, require and verify signed metadata of the build process.
|
|
26
|
+
default_value:
|
|
27
|
+
references:
|
|
28
|
+
cis_controls:
|
|
29
|
+
- id: 0.0
|
|
30
|
+
version: 8
|
|
31
|
+
name: Explicitly Not Mapped
|
|
32
|
+
description: >-
|
|
33
|
+
Explicitly Not Mapped
|
|
34
|
+
implementation_groups:
|
|
35
|
+
- id: 0.0
|
|
36
|
+
version: 7
|
|
37
|
+
name: Explicitly Not Mapped
|
|
38
|
+
description: >-
|
|
39
|
+
Explicitly Not Mapped
|
|
40
|
+
implementation_groups:
|
|
41
|
+
additional_info: >-
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 3.2.1
|
|
3
|
+
name: org_wide_dependency_policy
|
|
4
|
+
title: Ensure an organization-wide dependency usage policy is enforced
|
|
5
|
+
profile: 1
|
|
6
|
+
category: dependencies
|
|
7
|
+
sub_category: validate_packages
|
|
8
|
+
description: >-
|
|
9
|
+
Enforce a policy for dependency usage across the organization. For example, disallow
|
|
10
|
+
the use of packages less than 60 days old.
|
|
11
|
+
rationale: >-
|
|
12
|
+
Enforcing a policy for dependency usage in an organization helps to manage
|
|
13
|
+
dependencies across the organization and ensure that all usage is compliant with
|
|
14
|
+
security policy. If, for example, the policy limits the package managers that can be used,
|
|
15
|
+
enforcing it will make sure that every dependency is installed only from these package
|
|
16
|
+
managers, and limit the risk of installing from any untrusted source.
|
|
17
|
+
impact: >-
|
|
18
|
+
audit: >-
|
|
19
|
+
Verify that a policy for dependency usage is enforced across the organization.
|
|
20
|
+
remediation: >-
|
|
21
|
+
Enforce policies for dependency usage across the organization.
|
|
22
|
+
default_value:
|
|
23
|
+
references:
|
|
24
|
+
cis_controls:
|
|
25
|
+
- id: 16.1
|
|
26
|
+
version: 8
|
|
27
|
+
name: Establish and Maintain a Secure Application Development Process
|
|
28
|
+
description: >-
|
|
29
|
+
Establish and maintain a secure application development process. In the
|
|
30
|
+
process, address such items as: secure application design standards, secure coding
|
|
31
|
+
practices, developer training, vulnerability management, security of third-party code,
|
|
32
|
+
and application security testing procedures. Review and update documentation
|
|
33
|
+
annually, or when significant enterprise changes occur that could impact this
|
|
34
|
+
Safeguard.
|
|
35
|
+
implementation_groups:
|
|
36
|
+
- IG2
|
|
37
|
+
- IG3
|
|
38
|
+
- id: 18.1
|
|
39
|
+
version: 7
|
|
40
|
+
name: Establish and Maintain a Secure Application Development Process
|
|
41
|
+
description: >-
|
|
42
|
+
Establish secure coding practices appropriate to the programming language and
|
|
43
|
+
development environment being used.
|
|
44
|
+
implementation_groups:
|
|
45
|
+
- IG2
|
|
46
|
+
- IG3
|
|
47
|
+
additional_info: >-
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 3.2.3
|
|
3
|
+
name: package_license_scanning
|
|
4
|
+
title: Ensure packages are automatically scanned for license implications
|
|
5
|
+
profile: 1
|
|
6
|
+
category: dependencies
|
|
7
|
+
sub_category: validate_packages
|
|
8
|
+
description: >-
|
|
9
|
+
A software license is a document that provides legal conditions and guidelines for the
|
|
10
|
+
use and distribution of software, usually defined by the author. It is recommended to
|
|
11
|
+
scan for any legal implications automatically.
|
|
12
|
+
rationale: >-
|
|
13
|
+
When using packages with software licenses, especially commercial ones which tend to
|
|
14
|
+
be the strictest, it is important to verify that the use of the package meets the conditions
|
|
15
|
+
of the license. If the use of the package violates the licensing agreement, it exposes the
|
|
16
|
+
organization to possible lawsuits. Scanning used packages for such license implications
|
|
17
|
+
leads to faster detection and quicker fixes of such violations, and also reduces the risk
|
|
18
|
+
for a lawsuit.
|
|
19
|
+
impact: >-
|
|
20
|
+
audit: >-
|
|
21
|
+
Ensure license implication rules are configured and are scanned automatically. Once
|
|
22
|
+
Dependency Scanning is enabled for your project, continuous license scanning is
|
|
23
|
+
enabled.
|
|
24
|
+
remediation: |
|
|
25
|
+
Enable Dependency scanning in order to automatically scan packages for license implications. To enable the analyzer, either:
|
|
26
|
+
• Enable Auto DevOps, which includes dependency scanning.
|
|
27
|
+
• Edit the .gitlab-ci.yml file manually. Use this method if your .gitlab-ci.yml file is complex.
|
|
28
|
+
• Use a preconfigured merge request.
|
|
29
|
+
• Create a scan execution policy that enforces dependency scanning.
|
|
30
|
+
default_value:
|
|
31
|
+
references:
|
|
32
|
+
- https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/index.html
|
|
33
|
+
- https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html#enabling-the-analyzer
|
|
34
|
+
cis_controls:
|
|
35
|
+
- id: 0.0
|
|
36
|
+
version: 8
|
|
37
|
+
name: Explicitly Not Mapped
|
|
38
|
+
description: >-
|
|
39
|
+
Explicitly Not Mapped
|
|
40
|
+
implementation_groups:
|
|
41
|
+
- id: 0.0
|
|
42
|
+
version: 7
|
|
43
|
+
name: Explicitly Not Mapped
|
|
44
|
+
description: >-
|
|
45
|
+
Explicitly Not Mapped
|
|
46
|
+
implementation_groups:
|
|
47
|
+
additional_info: >-
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 3.2.4
|
|
3
|
+
name: package_ownership_change
|
|
4
|
+
title: Ensure packages are automatically scanned for ownership change
|
|
5
|
+
profile: 1
|
|
6
|
+
category: dependencies
|
|
7
|
+
sub_category: validate_packages
|
|
8
|
+
description: >-
|
|
9
|
+
Scan every package automatically for ownership change.
|
|
10
|
+
rationale: >-
|
|
11
|
+
A change in package ownership is not a regular action. In some cases it can lead to a
|
|
12
|
+
massive problem (for example, the "event-stream" incident). Open-source contributors
|
|
13
|
+
are not always trusted, since by its very nature everyone can contribute. This means
|
|
14
|
+
malicious actors can become contributors as well. Package maintainers might transfer
|
|
15
|
+
their ownership to someone they do not know if maintaining the package is too much for
|
|
16
|
+
them, in some cases without the other user's knowledge. This has led to known security
|
|
17
|
+
breaches in the past. It is best to be aware of such activity as soon as it happens and to
|
|
18
|
+
carefully examine the situation before continuing using the package in order to
|
|
19
|
+
determine its safety.
|
|
20
|
+
impact: >-
|
|
21
|
+
audit: >-
|
|
22
|
+
Ensure automatic scanning of packages for ownership change is set.
|
|
23
|
+
remediation: >-
|
|
24
|
+
Set automatic scanning of packages for ownership change.
|
|
25
|
+
default_value:
|
|
26
|
+
references:
|
|
27
|
+
- https://blog.npmjs.org/post/182828408610/the-security-risks-of-changing-package-owners.html
|
|
28
|
+
- https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
|
|
29
|
+
cis_controls:
|
|
30
|
+
- id: 0.0
|
|
31
|
+
version: 8
|
|
32
|
+
name: Explicitly Not Mapped
|
|
33
|
+
description: >-
|
|
34
|
+
Explicitly Not Mapped
|
|
35
|
+
implementation_groups:
|
|
36
|
+
- id: 0.0
|
|
37
|
+
version: 7
|
|
38
|
+
name: Explicitly Not Mapped
|
|
39
|
+
description: >-
|
|
40
|
+
Explicitly Not Mapped
|
|
41
|
+
implementation_groups:
|
|
42
|
+
additional_info: >-
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 3.2.2
|
|
3
|
+
name: package_vuln_scanning
|
|
4
|
+
title: Ensure packages are automatically scanned for known vulnerabilities
|
|
5
|
+
profile: 1
|
|
6
|
+
category: dependencies
|
|
7
|
+
sub_category: validate_packages
|
|
8
|
+
description: >-
|
|
9
|
+
Automatically scan every package for vulnerabilities.
|
|
10
|
+
rationale: >-
|
|
11
|
+
Automatic scanning for vulnerabilities detects known vulnerabilities in packages and
|
|
12
|
+
dependencies in use, allowing faster patching when one is found. Such vulnerabilities
|
|
13
|
+
can lead to a massive breach if not handled as fast as possible, as attackers will also
|
|
14
|
+
know about those vulnerabilities and swiftly try to take advantage of them. Scanning
|
|
15
|
+
packages regularly for vulnerabilities can also verify usage compliance with the
|
|
16
|
+
organization's security policy.
|
|
17
|
+
impact: >-
|
|
18
|
+
audit: >-
|
|
19
|
+
Once Dependency Scanning is enabled for your project, continuous scanning of
|
|
20
|
+
packages for dependency vulnerabilities is enabled.
|
|
21
|
+
remediation: |
|
|
22
|
+
Enable Dependency scanning in order to automatically scan packages for vulnerabilities. To enable the analyzer, either:
|
|
23
|
+
• Enable Auto DevOps, which includes dependency scanning.
|
|
24
|
+
• Edit the .gitlab-ci.yml file manually. Use this method if your .gitlab-ci.yml file is complex.
|
|
25
|
+
• Use a preconfigured merge request.
|
|
26
|
+
• Create a scan execution policy that enforces dependency scanning.
|
|
27
|
+
default_value:
|
|
28
|
+
references:
|
|
29
|
+
- https://docs.gitlab.com/ee/user/application_security/continuous_vulnerability_scanning/
|
|
30
|
+
- https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html#enabling-the-analyzer
|
|
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
|
+
additional_info: >-
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# 3.2 Validate Packages
|
|
2
|
+
|
|
3
|
+
This section consists of security recommendations for managing package validations and checks. Third-party packages and dependencies might put the organization in danger, not only by being vulnerable to attacks, but also by being improperly used and harming license conditions. To protect the software supply chain from these dangers, it is important to validate packages and understand how and if to use them. This section's recommendations cover this topic.
|
|
4
|
+
|
|
5
|
+
## Recommendations
|
|
6
|
+
|
|
7
|
+
* [3.2.1 - org_wide_dependency_policy.yml](./org_wide_dependency_policy.yml)
|
|
8
|
+
* [3.2.2 - package_vuln_scanning.yml](./package_vuln_scanning.yml)
|
|
9
|
+
* [3.2.3 - package_license_scanning.yml](./package_license_scanning.yml)
|
|
10
|
+
* [3.2.4 - package_ownership_change.yml](./package_ownership_change.yml)
|
gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/audit_deployment_config.yml
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 5.1.2
|
|
3
|
+
name: audit_deployment_config
|
|
4
|
+
title: Ensure changes in deployment configuration are audited
|
|
5
|
+
profile: 1
|
|
6
|
+
category: deployment
|
|
7
|
+
sub_category: deployment_configuration
|
|
8
|
+
description: >-
|
|
9
|
+
Audit and track changes made in deployment configuration.
|
|
10
|
+
rationale: >-
|
|
11
|
+
Deployment configuration is sensitive in nature. The tiniest mistake can lead to
|
|
12
|
+
downtime or bugs in production, which consequently may have a direct effect on both
|
|
13
|
+
product integrity and customer trust. Misconfigurations might also be used by malicious
|
|
14
|
+
actors to attack the production platform. Because of this, every change in the
|
|
15
|
+
configuration needs a review and possible "revert" in case of a mistake or malicious
|
|
16
|
+
change. Auditing every change and tracking them helps detect and fix such incidents
|
|
17
|
+
more quickly.
|
|
18
|
+
impact: >-
|
|
19
|
+
audit: >-
|
|
20
|
+
For each deployment configuration, ensure changes made to it are audited and tracked.
|
|
21
|
+
remediation: >-
|
|
22
|
+
For each deployment configuration, track and audit changes made to it.
|
|
23
|
+
default_value:
|
|
24
|
+
references:
|
|
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,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 5.1.4
|
|
3
|
+
name: limit_deployment_config_access
|
|
4
|
+
title: Limit access to deployment configurations
|
|
5
|
+
profile: 1
|
|
6
|
+
category: deployment
|
|
7
|
+
sub_category: deployment_configuration
|
|
8
|
+
description: >-
|
|
9
|
+
Restrict access to the deployment configuration to trusted and qualified users only.
|
|
10
|
+
rationale: >-
|
|
11
|
+
Deployment configurations are sensitive in nature. The tiniest mistake can lead to
|
|
12
|
+
downtime or bugs in production, which can have a direct effect on the product's integrity
|
|
13
|
+
and customer trust. Misconfigurations might also be used by malicious actors to attack
|
|
14
|
+
the production platform. To avoid such harm as much as possible, ensure only trusted
|
|
15
|
+
and qualified users have access to such configurations. This will also reduce the
|
|
16
|
+
number of accounts that might affect the environment in case of an attack.
|
|
17
|
+
impact: >-
|
|
18
|
+
Reducing the number of users who have access to the deployment configuration means
|
|
19
|
+
those users would lose their ability to make direct changes to that configuration.
|
|
20
|
+
audit: >-
|
|
21
|
+
Verify each deployment configuration is accessible only to known and authorized users.
|
|
22
|
+
remediation: >-
|
|
23
|
+
Restrict access to the deployment configuration to trusted and qualified users.
|
|
24
|
+
default_value:
|
|
25
|
+
references:
|
|
26
|
+
cis_controls:
|
|
27
|
+
- id: 3.3
|
|
28
|
+
version: 8
|
|
29
|
+
name: Configure Data Access Control Lists
|
|
30
|
+
description: >-
|
|
31
|
+
Configure data access control lists based on a user's need to know. Apply data
|
|
32
|
+
access control lists, also known as access permissions, to local and remote file
|
|
33
|
+
systems, databases, and applications.
|
|
34
|
+
implementation_groups:
|
|
35
|
+
- IG1
|
|
36
|
+
- IG2
|
|
37
|
+
- IG3
|
|
38
|
+
- id: 14.6
|
|
39
|
+
version: 7
|
|
40
|
+
name: Protect Information through Access Control Lists
|
|
41
|
+
description: >-
|
|
42
|
+
Protect all information stored on systems with file system, network share,
|
|
43
|
+
claims, application, or database specific access control lists. These controls will
|
|
44
|
+
enforce the principle that only authorized individuals should have access to the
|
|
45
|
+
information based on their need to access the information as a part of their
|
|
46
|
+
responsibilities.
|
|
47
|
+
implementation_groups:
|
|
48
|
+
- IG1
|
|
49
|
+
- IG2
|
|
50
|
+
- IG3
|
|
51
|
+
additional_info: >-
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 5.1.7
|
|
3
|
+
name: pin_deployment_config_manifests
|
|
4
|
+
title: Ensure deployment configuration manifests are pinned to a specific, verified version
|
|
5
|
+
profile: 1
|
|
6
|
+
category: deployment
|
|
7
|
+
sub_category: deployment_configuration
|
|
8
|
+
description: >-
|
|
9
|
+
Deployment configuration is often stored in a version control system and is pulled from
|
|
10
|
+
there. Pin the configuration used to a specific, verified version or commit Secure Hash
|
|
11
|
+
Algorithm (SHA). Avoid referring configuration without its version tag specified.
|
|
12
|
+
rationale: >-
|
|
13
|
+
Deployment configuration manifests are often stored in version control systems and
|
|
14
|
+
pulled from there either by automation platforms, for example Ansible, or GitOps
|
|
15
|
+
platforms, such as ArgoCD. When a manifest is pulled from a version control system
|
|
16
|
+
without tag or commit Secure Hash Algorithm (SHA) specified, it is pulled from the
|
|
17
|
+
HEAD revision, which is equal to the 'latest' tag, and pulls the last change made. This
|
|
18
|
+
increases the risk of encountering a new, potentially malicious configuration. If an
|
|
19
|
+
attacker pushes malicious configuration to the version control system, the next user who
|
|
20
|
+
pulls the HEAD revision will pull it and risk attack. To avoid that risk, use a version tag of
|
|
21
|
+
verified version or a commit SHA of a trusted commit, which will ensure this is the only
|
|
22
|
+
version pulled.
|
|
23
|
+
impact: >-
|
|
24
|
+
Changes in deployment configuration will not be pulled unless their version tag or
|
|
25
|
+
commit Secure Hash Algorithm (SHA) is specified. This might slow down the
|
|
26
|
+
deployment process.
|
|
27
|
+
audit: >-
|
|
28
|
+
For every deployment configuration manifest in use, ensure it is pinned to a specific
|
|
29
|
+
version or commit Secure Hash Algorithm (SHA).
|
|
30
|
+
remediation: >-
|
|
31
|
+
For every deployment configuration manifest in use, pin to a specific version or commit
|
|
32
|
+
Secure Hash Algorithm (SHA).
|
|
33
|
+
default_value:
|
|
34
|
+
references:
|
|
35
|
+
cis_controls:
|
|
36
|
+
- id: 4.1
|
|
37
|
+
version: 8
|
|
38
|
+
name: Establish and Maintain a Secure Configuration Process
|
|
39
|
+
description: >-
|
|
40
|
+
Establish and maintain a secure configuration process for enterprise assets
|
|
41
|
+
(end-user devices, including portable and mobile, non-computing/IoT devices, and
|
|
42
|
+
servers) and software (operating systems and applications). Review and update
|
|
43
|
+
documentation annually, or when significant enterprise changes occur that could
|
|
44
|
+
impact this Safeguard.
|
|
45
|
+
implementation_groups:
|
|
46
|
+
- IG1
|
|
47
|
+
- IG2
|
|
48
|
+
- IG3
|
|
49
|
+
- id: 5.1
|
|
50
|
+
version: 7
|
|
51
|
+
name: Establish Secure Configurations
|
|
52
|
+
description: >-
|
|
53
|
+
Maintain documented, standard security configuration standards for all
|
|
54
|
+
authorized operating systems and software.
|
|
55
|
+
implementation_groups:
|
|
56
|
+
- IG1
|
|
57
|
+
- IG2
|
|
58
|
+
- IG3
|
|
59
|
+
additional_info: >-
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 5.1 Deployment Configuration
|
|
2
|
+
|
|
3
|
+
This section consists of security recommendations for the management of the deployment configuration. This consists of the files, instructions, and access management of the deployment configuration. Usually, the configuration files are stored in a version control system, so they need to be protected in it as well.
|
|
4
|
+
|
|
5
|
+
## Recommendations
|
|
6
|
+
|
|
7
|
+
* [5.1.1 - separate_deployment_config.yml](./separate_deployment_config.yml)
|
|
8
|
+
* [5.1.2 - audit_deployment_config.yml](./audit_deployment_config.yml)
|
|
9
|
+
* [5.1.3 - secret_scan_deployment_config.yml](./secret_scan_deployment_config.yml)
|
|
10
|
+
* [5.1.4 - limit_deployment_config_access.yml](./limit_deployment_config_access.yml)
|
|
11
|
+
* [5.1.5 - scan_iac.yml](./scan_iac.yml)
|
|
12
|
+
* [5.1.6 - verify_deployment_config.yml](./verify_deployment_config.yml)
|
|
13
|
+
* [5.1.7 - pin_deployment_config_manifests.yml](./pin_deployment_config_manifests.yml)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 5.1.5
|
|
3
|
+
name: scan_iac
|
|
4
|
+
title: Detect and prevent misconfigurations or insecure instructions in Infrastructure as Code (IaC) files, such as Terraform files.
|
|
5
|
+
profile: 2
|
|
6
|
+
category: deployment
|
|
7
|
+
sub_category: deployment_configuration
|
|
8
|
+
description: >-
|
|
9
|
+
Detect and prevent misconfigurations or insecure instructions in Infrastructure as Code
|
|
10
|
+
(IaC) files, such as Terraform files.
|
|
11
|
+
rationale: >-
|
|
12
|
+
Infrastructure as Code (IaC) files are used for production environment and application
|
|
13
|
+
deployment. These are sensitive parts of the software supply chain because they are
|
|
14
|
+
always in touch with customers, and thus might affect their opinion of or trust in the
|
|
15
|
+
product. Attackers often target these environments. Detecting and fixing
|
|
16
|
+
misconfigurations and/or insecure instructions in IaC files decreases the risk for data
|
|
17
|
+
leak or data theft. It is important to secure IaC instructions in order to prevent further
|
|
18
|
+
problems of deployment, exposed assets, or improper configurations, which might
|
|
19
|
+
ultimately lead to easier ways to attack and steal organization data.
|
|
20
|
+
impact: >-
|
|
21
|
+
audit: >-
|
|
22
|
+
For every Infrastructure as Code (IaC) instructions file, verify that scanners are set to
|
|
23
|
+
identify and prevent misconfigurations and insecure instructions.
|
|
24
|
+
remediation: >-
|
|
25
|
+
For every Infrastructure as Code (IaC) instructions file, set scanners to identify and
|
|
26
|
+
prevent misconfigurations and insecure instructions.
|
|
27
|
+
default_value:
|
|
28
|
+
references:
|
|
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: 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: 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: 18.11
|
|
63
|
+
version: 7
|
|
64
|
+
name: Use Standard Hardening Configuration Templates for Databases
|
|
65
|
+
description: >-
|
|
66
|
+
For applications that rely on a database, use standard hardening configuration
|
|
67
|
+
templates. All systems that are part of critical business processes should also be
|
|
68
|
+
tested.
|
|
69
|
+
implementation_groups:
|
|
70
|
+
- IG2
|
|
71
|
+
- IG3
|
|
72
|
+
additional_info: >-
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 5.1.3
|
|
3
|
+
name: secret_scan_deployment_config
|
|
4
|
+
title: Ensure scanners are in place to identify and prevent sensitive data in deployment configuration
|
|
5
|
+
profile: 1
|
|
6
|
+
category: deployment
|
|
7
|
+
sub_category: deployment_configuration
|
|
8
|
+
description: >-
|
|
9
|
+
Detect and prevent sensitive data - such as confidential ID numbers, passwords, etc. -
|
|
10
|
+
in deployment configurations.
|
|
11
|
+
rationale: >-
|
|
12
|
+
Sensitive data in deployment configurations might create a major incident if an attacker
|
|
13
|
+
gains access to it, as this can cause data loss and theft. It is important to keep sensitive
|
|
14
|
+
data safe and to not expose it in the configuration. In order to prevent a possible
|
|
15
|
+
exposure, set scanners that will identify and prevent such data in deployment
|
|
16
|
+
configurations.
|
|
17
|
+
impact: >-
|
|
18
|
+
audit: >-
|
|
19
|
+
For each deployment configuration file, verify that scanners are set to identify and
|
|
20
|
+
prevent the existence of sensitive data within it.
|
|
21
|
+
remediation: >-
|
|
22
|
+
For each deployment configuration file, set scanners to identify and prevent sensitive
|
|
23
|
+
data within it.
|
|
24
|
+
default_value:
|
|
25
|
+
references:
|
|
26
|
+
cis_controls:
|
|
27
|
+
- id: 16.12
|
|
28
|
+
version: 8
|
|
29
|
+
name: Implement Code-Level Security Checks
|
|
30
|
+
description: >-
|
|
31
|
+
Apply static and dynamic analysis tools within the application life cycle to verify
|
|
32
|
+
that secure coding practices are being followed.
|
|
33
|
+
implementation_groups:
|
|
34
|
+
- IG3
|
|
35
|
+
- id: 3.1
|
|
36
|
+
version: 7
|
|
37
|
+
name: Run Automated Vulnerability Scanning Tools
|
|
38
|
+
description: >-
|
|
39
|
+
Utilize an up-to-date SCAP-compliant vulnerability scanning tool to
|
|
40
|
+
automatically scan all systems on the network on a weekly or more frequent basis
|
|
41
|
+
to identify all potential vulnerabilities on the organization's systems.
|
|
42
|
+
implementation_groups:
|
|
43
|
+
- IG2
|
|
44
|
+
- IG3
|
|
45
|
+
additional_info: >-
|
gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/separate_deployment_config.yml
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 5.1.1
|
|
3
|
+
name: separate_deployment_config
|
|
4
|
+
title: Ensure deployment configuration files are separated from source code
|
|
5
|
+
profile: 2
|
|
6
|
+
category: deployment
|
|
7
|
+
sub_category: deployment_configuration
|
|
8
|
+
description: >-
|
|
9
|
+
Deployment configurations are often stored in a version control system. Separate
|
|
10
|
+
deployment configuration files from source code repositories.
|
|
11
|
+
rationale: >-
|
|
12
|
+
Deployment configuration manifests are often stored in version control systems. Storing
|
|
13
|
+
them in dedicated repositories, separately from source code repositories, has several
|
|
14
|
+
benefits. First, it adds order to both maintenance and version control history. This
|
|
15
|
+
makes it easier to track code or manifest changes, as well as spot any malicious code
|
|
16
|
+
or misconfigurations. Second, it helps achieve the Least Privilege principle. Because
|
|
17
|
+
access can be configured differently for each repository, fewer users will have access to
|
|
18
|
+
this configuration, which is typically sensitive.
|
|
19
|
+
impact: >-
|
|
20
|
+
audit: >-
|
|
21
|
+
Ensure each deployment configuration file is stored separately from source code.
|
|
22
|
+
remediation: >-
|
|
23
|
+
Store each deployment configuration file in a dedicated repository separately from
|
|
24
|
+
source code.
|
|
25
|
+
default_value:
|
|
26
|
+
references:
|
|
27
|
+
cis_controls:
|
|
28
|
+
- id: 16.1
|
|
29
|
+
version: 8
|
|
30
|
+
name: Establish and Maintain a Secure Application Development Process
|
|
31
|
+
description: >-
|
|
32
|
+
Establish and maintain a secure application development process. In the
|
|
33
|
+
process, address such items as: secure application design standards, secure coding
|
|
34
|
+
practices, developer training, vulnerability management, security of third-party code,
|
|
35
|
+
and application security testing procedures. Review and update documentation
|
|
36
|
+
annually, or when significant enterprise changes occur that could impact this
|
|
37
|
+
Safeguard.
|
|
38
|
+
implementation_groups:
|
|
39
|
+
- IG2
|
|
40
|
+
- IG3
|
|
41
|
+
- id: 18.1
|
|
42
|
+
version: 7
|
|
43
|
+
name: Establish and Maintain a Secure Application Development Process
|
|
44
|
+
description: >-
|
|
45
|
+
Establish secure coding practices appropriate to the programming language and
|
|
46
|
+
development environment being used.
|
|
47
|
+
implementation_groups:
|
|
48
|
+
- IG2
|
|
49
|
+
- IG3
|
|
50
|
+
additional_info: >-
|
gitlabcis/recommendations/deployment_5/deployment_configuration_5_1/verify_deployment_config.yml
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: 5.1.6
|
|
3
|
+
name: verify_deployment_config
|
|
4
|
+
title: Ensure deployment configuration manifests are verified
|
|
5
|
+
profile: 1
|
|
6
|
+
category: deployment
|
|
7
|
+
sub_category: deployment_configuration
|
|
8
|
+
description: >-
|
|
9
|
+
Verify the deployment configuration manifests.
|
|
10
|
+
rationale: >-
|
|
11
|
+
To ensure that the configuration manifests used are trusted and have not been infected
|
|
12
|
+
by malicious actors before arriving at the platform, it is important to verify the manifests.
|
|
13
|
+
This may be done by comparing the checksum of the manifest file to its checksum in a
|
|
14
|
+
trusted source. If a difference arises, this is a sign that an unknown actor has interfered
|
|
15
|
+
and may have added malicious instructions. If this manifest is used, it might harm the
|
|
16
|
+
environment and application deployment, which could end in a massive breach and
|
|
17
|
+
leave the organization exposed to data leaks, etc.
|
|
18
|
+
impact: >-
|
|
19
|
+
audit: >-
|
|
20
|
+
For each deployment configuration manifest in use, ensure it has been verified.
|
|
21
|
+
remediation: >-
|
|
22
|
+
Verify each deployment configuration manifest in use.
|
|
23
|
+
default_value:
|
|
24
|
+
references:
|
|
25
|
+
cis_controls:
|
|
26
|
+
- id: 4.1
|
|
27
|
+
version: 8
|
|
28
|
+
name: Establish and Maintain a Secure Configuration Process
|
|
29
|
+
description: >-
|
|
30
|
+
Establish and maintain a secure configuration process for enterprise assets
|
|
31
|
+
(end-user devices, including portable and mobile, non-computing/IoT devices, and
|
|
32
|
+
servers) and software (operating systems and applications). Review and update
|
|
33
|
+
documentation annually, or when significant enterprise changes occur that could
|
|
34
|
+
impact this Safeguard.
|
|
35
|
+
implementation_groups:
|
|
36
|
+
- IG1
|
|
37
|
+
- IG2
|
|
38
|
+
- IG3
|
|
39
|
+
- id: 5.1
|
|
40
|
+
version: 7
|
|
41
|
+
name: Establish Secure Configurations
|
|
42
|
+
description: >-
|
|
43
|
+
Maintain documented, standard security configuration standards for all
|
|
44
|
+
authorized operating systems and software
|
|
45
|
+
implementation_groups:
|
|
46
|
+
- IG1
|
|
47
|
+
- IG2
|
|
48
|
+
- IG3
|
|
49
|
+
additional_info: >-
|