Skip to main content

Controls

R2Devops allows defining controls for GitLab projects, covering both CI/CD configuration and project settings. When a control is not respected, an issue is created.

CI/CD Container Images

ControlProblemImpactSeverityFix Duration
Containers images must come from authorized sourcesVerifies that container images used to run your CI/CD pipelines come from authorized and trusted sources.Helps mitigate security risks introduced by the use of malicious, compromised, or vulnerable images.CriticalMedium
Container images must not use forbidden tagsVerifies that container images used to run your CI/CD pipelines rely on authorized tags.Helps mitigate both security and functional risks introduced by the use of unverified, outdated, or compromised image versions.MediumQuick

CI/CD Variables

ControlProblemImpactSeverityFix Duration
CI/CD variables must be protectedVerifies that CI/CD variables used in a project have the protected field enabled.Ensures sensitive values are restricted to protected branches or tags, reducing unauthorized exposure.MediumQuick
CI/CD variables must be maskedVerifies that CI/CD variables used in a project have the masked field enabled.Prevents variable values from being exposed in pipeline logs, reducing the risk of leaks.MediumQuick

CI/CD Secrets

ControlProblemImpactSeverityFix Duration
Pipeline configuration must not contain secretsUses Gitleaks to verify that both merged and unmerged CI/CD configurations don't have leaked secrets.Prevents exposure of API keys, passwords, or tokens that could lead to unauthorized access.CriticalQuick

Pipeline Composition

ControlProblemImpactSeverityFix Duration
Pipelines must include templatesVerifies that the projects contain specific templates. This control can also allow overriding certain variables in the included templates.Ensures pipelines comply with required security and compliance practices.HighMedium
Pipelines must include componentsVerifies that the projects contain specific GitLab components. This control can also allow overriding certain variables in the included components.Ensures pipelines integrate mandatory security and compliance steps.HighMedium
Pipeline must include required phasesVerifies that the CI/CD pipeline includes a group of job types.Ensures completeness and compliance of the pipeline execution flow.HighLong
Pipeline must not contain hardcoded jobsVerifies that no hardcoded job is used in CI/CD pipelines.Improves maintainability and ensures compliance with best practices.MediumMedium
Pipeline must not use forbidden ref in includesVerifies that the included refs are using specified tags.Prevents reliance on insecure or non-compliant references.MediumQuick
Pipeline must use only up-to-date includesVerifies that the included pipelines are up-to-date compared to their source.Reduces risks from outdated or vulnerable templates.LowQuick

Access and Authorization

ControlProblemImpactSeverityFix Duration
Branch must be protectedVerifies that the project configuration respects the protection, push, merge and owner approval on included branch names.Prevents unauthorized modifications and enforces branch protection standards.CriticalQuick
MR approval rules must have at least N approval requiredVerifies that the project merge request approval rules that cover all protected branches have a minimum number of approval requirements.Prevents unreviewed code from being merged, reducing security risks.HighQuick
MR approval settings must be compliantVerifies that MR approval settings are properly configured.Ensures compliance with review and security requirements.HighQuick
An MR approval rule must be defined to cover all protected branchesVerifies that the protected branches have at least one approval rule.Ensures protected branches cannot bypass review processes.HighQuick
Number of project members must respect a quotaVerifies that the project configuration respects the owner, maintainer and developer quotas.Prevents uncontrolled access that could weaken project security.HighMedium
Number of group members must respect a quotaVerifies that the group configuration respects the owner, maintainer and developer quotas.Prevents uncontrolled access at group level, strengthening governance.HighMedium
MR settings must be compliantVerifies that the project's merge request settings are correct in terms of merge method, resolving differences, squashing, etc.Reduces risk of unauthorized or insecure code changes.MediumQuick

Other Controls

ControlProblemImpactSeverityFix Duration
Project must have a security policy sourceVerifies if the projects have a specific project as their source of security policy.Ensures compliance with security policy and reduces risk of unmanaged vulnerabilities.CriticalQuick