Inadequate identity and access management, as identified by OWASP's Top 10 CI/CD Security Risks, involves difficulties managing the vast number of identities spread across different systems in the engineering ecosystem, from source control to deployment. The existence of poorly managed identities in the CI/CD environment— both human and machine, or programmatic — increases the potential for compromise, as well as the extent of damage in the event of a security breach.
Inadequate identity and access management, featured in the OWASP Top 10 CI/CD Security Risks, refers to insufficient control over who can access and perform actions within the continuous integration and continuous delivery (CI/CD) environment. Poor practices compromise CI/CD security and can lead to unauthorized access, data breaches, and manipulation of the pipeline.
The paradigm shift from traditional software development to CI/CD pipelines has accelerated software release cycles. While this brings significant efficiency and agility to development, it introduces security challenges.
With manual methods and smaller teams, traditional software engineering tended toward a relatively lax approach to identity and access management (IAM). Developers needed flexibility to make significant changes to code and infrastructure, which often eroded access protocols. But growing awareness of security threats and the increasing complexity of software development has since set precedence for strict IAM scrutiny. Still, many organizations continue to overlook IAM in the fast-paced, automated environment of modern CI/CD pipelines.
In a CI/CD pipeline, IAM governs access at multiple levels — source code repositories, build servers, deployment environments and more. In addition to human users, it handles nonhuman identities such as service accounts, bots, and API keys. An IAM solution must have the capacity to manage complex interactions while adapting to the dynamic nature of CI/CD workflows.
But software delivery processes consist of multiple connected systems designed to move code and artifacts from development to production. Adding to the complexity, each system provides several methods of access and integration — username and password, personal access token, marketplace application, OAuth applications, plugins, and SSH keys.
What’s more, the different types of accounts and means of access can have unique provisioning methods, sets of security policies and authorization models. This creates significant challenges when managing identities throughout the identity lifecycle and attempting to ensure their permissions align with least privilege.
IAM comprises the policies, processes, and tools used to manage digital identities and control access to resources. Key to enforcing the principle of least privilege, IAM ultimately verifies that only authorized individuals and systems can access and interact with resources.
Effective IAM in a CI/CD context incorporates components that include:
By understanding the challenges of IAM in the CI/CD pipeline, organizations can take a vigilant posture and address issues before a security incident occurs.
Overly Permissive Identities
The risk of overly permissive identities arises when applicative and human accounts don’t implement least privilege. In source control management (SCM), for example, this occurs when human and applicative identities are granted more permissions than needed for the repositories they must access.
Stale Identities
Stale identities pose a risk of unauthorized access when human and programmatic accounts for inactive employees and systems aren’t deprovisioned across all CI/CD systems.
Local Identities
Local identities present a risk when systems manage access without a centralized IdP. This makes it difficult to enforce consistent security policies (e.g., password policy, lockout policy, MFA).
External Identities
External identities carry risks when employees register with email addresses from domains not owned or managed by the organization. The security of these accounts may not comply with the organization's security policies.
External Collaborators
When granting system access to external collaborators, the security level of the system extends beyond the organization's control.
Self-Registered Identities
In CI/CD systems that allow self-registration, risks arise when granting access requires only a valid domain address. Using default permissions can potentially expand the attack surface.
Shared Identities
Shared identities between humans and applications increase the footprint of their credentials and pose accountability challenges during investigations.
Inadequate IAM can stem from multiple factors — oversights in planning and implementation, lack of understanding of the IAM principles, usage of outdated tools and processes. In many cases, organizations grant excessive permissions, neglecting the principle of least privilege. Mismanagement of nonhuman identities such as service accounts or failure to revoke access privileges when no longer needed also contribute to inadequacy.
Within the context of CI/CD, IAM controls who can access the pipeline, what they can access, and what operations they can perform. It’s the first line of defense in securing any system.
Inadequate IAM exposes CI/CD pipelines to risks, including unauthorized code changes, tampering with the build process, or even access to sensitive data. Conversely, an effective IAM strategy mitigates unauthorized access, reduces the attack surface, and safeguards the pipeline and its associated processes.
Inadequate IAM gives malicious insiders or external attackers the opportunity to exploit weak access controls, making the entire CI/CD pipeline vulnerable to malicious code injection, data theft and more.
Impact of Inadequate Identity and Access Management on a Large-Scale Deployment
An e-commerce giant experienced a service disruption after an unauthorized user gained access to their deployment environment, causing costly downtime. On investigation, it was found that the company had failed to implement strict IAM controls, and a service account had been granted excessive permissions.
How a Data Breach Occurred Due to Poor Identity and Access Management
A global software firm suffered a data breach when an attacker gained access to its source code repository. The breach was traced back to weak IAM policies, where a developer's credentials had been compromised and multifactor authentication wasn’t enforced.
Indications of inadequate IAM include repeated unauthorized access attempts, unusual user activity or deviations from established access patterns. Additionally, a high incidence of manually managed access changes or the existence of accounts with indefinite access may signal deficiencies in IAM.
Developers and security engineers can use automated testing tools to validate access controls, check user permissions, and identify potential vulnerabilities. These tools play a crucial role in ensuring effective enforcement of IAM policies throughout the CI/CD pipeline.
Secure coding practices can prevent IAM-related vulnerabilities. For instance, limiting hard-coded credentials, using token-based authentication, and securing API keys can mitigate the risk of identity theft and unauthorized access.
Regular audits and reviews help maintain effective IAM by identifying outdated access rights, detecting privilege escalation and ensuring compliance with the set policies. They provide visibility into the IAM status and enable timely remediation of potential vulnerabilities.
The existence of hundreds of identities — human and programmatic — across the CI/CD ecosystem, paired with a lack of strong IAM practices, can create a state where compromising nearly any user account on any system could grant powerful capabilities and expose the production environment. Implement the following recommendation to avoid mishap.
Industry standards for IAM, such as ISO/IEC 27001, provide guidelines to design and manage secure systems. These standards recommend the use of identity federation, privileged access management, role-based access control, and the enforcement of least privilege. They also suggest regular audits and reviews of access privileges.
Tools like identity management systems, single sign-on solutions, and privileged access management software can help enforce IAM best practices. Additionally, multifactor authentication, anomaly detection algorithms, and password management tools can further enhance security.