<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gautier PLANTE, Auteur</title>
	<atom:link href="https://www.riskinsight-wavestone.com/en/author/gautier-plante/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/author/gautier-plante/</link>
	<description>The cybersecurity &#38; digital trust blog by Wavestone&#039;s consultants</description>
	<lastBuildDate>Wed, 08 Jul 2026 07:55:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/Blogs-2024_RI-39x39.png</url>
	<title>Gautier PLANTE, Auteur</title>
	<link>https://www.riskinsight-wavestone.com/author/gautier-plante/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>CI/CD Security: Supply chain attack from a compromised developer</title>
		<link>https://www.riskinsight-wavestone.com/en/2026/07/ci-cd-security-supply-chain-attack-from-a-compromised-developer/</link>
					<comments>https://www.riskinsight-wavestone.com/en/2026/07/ci-cd-security-supply-chain-attack-from-a-compromised-developer/#respond</comments>
		
		<dc:creator><![CDATA[Gautier PLANTE]]></dc:creator>
		<pubDate>Wed, 08 Jul 2026 07:55:12 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[artefacts]]></category>
		<category><![CDATA[artifactory]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[CI/CD attacks]]></category>
		<category><![CDATA[CI/CD security]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud security]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[pipeline]]></category>
		<category><![CDATA[runners]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=30390</guid>

					<description><![CDATA[<p>In modern DevOps environments, CI/CD pipelines automate code development, testing, and deployment, enabling rapid delivery and scalability while significantly expanding the attack surface. CI/CD audits conducted in 2025 and 2026 revealed that credentials leaked in repositories, misconfigured runners, insecure artifact...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2026/07/ci-cd-security-supply-chain-attack-from-a-compromised-developer/">CI/CD Security: Supply chain attack from a compromised developer</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p style="text-align: justify;">In modern <strong>DevOps environments</strong>, <strong>CI/CD pipelines</strong> automate code development, testing, and deployment, enabling rapid delivery and scalability while significantly expanding the attack surface.</p>
<p style="text-align: justify;">CI/CD audits conducted in 2025 and 2026 revealed that<strong> credentials leaked</strong> in repositories, <strong>misconfigured runners</strong>, <strong>insecure artifact stores</strong>, and <strong>overly permissive cloud roles</strong> are all vectors attackers can chain to gain persistent, high-privilege access across the entire infrastructure.</p>
<p style="text-align: justify;">A high-level overview of DevOps tooling is illustrated below:</p>
<figure id="attachment_30393" aria-describedby="caption-attachment-30393" style="width: 911px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="size-full wp-image-30393" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Tools-with-multiple-uses-and-functions-for-DevOps.png" alt="Tools with multiple uses and functions for DevOps" width="911" height="422" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Tools-with-multiple-uses-and-functions-for-DevOps.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Tools-with-multiple-uses-and-functions-for-DevOps-412x191.png 412w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Tools-with-multiple-uses-and-functions-for-DevOps-71x33.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Tools-with-multiple-uses-and-functions-for-DevOps-768x356.png 768w" sizes="(max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30393" class="wp-caption-text">Tools with multiple uses and functions for DevOps</figcaption></figure>
<p style="text-align: justify;">A compromise at any stage of the pipeline can provide a path toward more sensitive systems.</p>
<figure id="attachment_30395" aria-describedby="caption-attachment-30395" style="width: 911px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-30395" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-DevOps-tools-that-can-become-a-faster-way-for-attackers-to-obtain-a-high-privilege-access-on-the-IS.png" alt="DevOps tools that can become a faster way for attackers to obtain a high privilege access on the IS" width="911" height="380" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-DevOps-tools-that-can-become-a-faster-way-for-attackers-to-obtain-a-high-privilege-access-on-the-IS.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-DevOps-tools-that-can-become-a-faster-way-for-attackers-to-obtain-a-high-privilege-access-on-the-IS-437x182.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-DevOps-tools-that-can-become-a-faster-way-for-attackers-to-obtain-a-high-privilege-access-on-the-IS-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-DevOps-tools-that-can-become-a-faster-way-for-attackers-to-obtain-a-high-privilege-access-on-the-IS-768x320.png 768w" sizes="(max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30395" class="wp-caption-text">DevOps tools that can become a faster way for attackers to obtain a high privilege access on the IS</figcaption></figure>
<p style="text-align: justify;">This article walks through a representative <strong>CI/CD attack kill chain based on observed real-world patterns</strong>, highlighting the most commonly exploited vectors and the key hardening measures to reduce the attack surface at every stage of the pipeline, from source code to production deployment.</p>
<p> </p>
<h2>The Kill Chain: from reconnaissance to persistence</h2>
<h3>Reconnaissance and Initial Access</h3>
<p style="text-align: justify;">The kill chain typically begins with <strong>a phishing targeting developers</strong> to <strong>harvest credentials and MFA codes</strong>, though MFA itself can be bypassed through token hijacking or session theft.</p>
<figure id="attachment_30397" aria-describedby="caption-attachment-30397" style="width: 911px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-30397" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Successful-phishing-attack.png" alt="Successful phishing attack" width="911" height="479" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Successful-phishing-attack.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Successful-phishing-attack-363x191.png 363w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Successful-phishing-attack-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Successful-phishing-attack-768x404.png 768w" sizes="(max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30397" class="wp-caption-text">Successful phishing attack</figcaption></figure>
<p style="text-align: justify;">It should be noted that <strong>credential compromise alone is not always sufficient</strong> to directly access sensitive administrative portals. <strong>Security controls protecting Microsoft 365</strong> administrative interfaces have been strengthened through the implementation of MFA and, where applicable, Conditional Access policies, limiting the impact of phishing on highly privileged access.</p>
<p style="text-align: justify;">However, in <strong>modern enterprise environments</strong> where <strong>most business applications</strong> <strong>rely on Single Sign-On (SSO),</strong> the compromise of a Microsoft session (e.g., through session cookie theft) can provide attackers with access to a wide range of interconnected services, including code repositories and CI/CD platforms. Attackers typically use this initial foothold to identify development environments and <strong>establish persistence</strong> through mechanisms such as <strong>Personal Access Tokens (PATs).</strong></p>
<p style="text-align: justify;">A common but often overlooked risk arises when <strong>user accounts are disabled</strong> at the identity provider level (e.g., <strong>Entra ID</strong>) but <strong>not fully deprovisioned</strong> within repository platforms. In such cases, <strong>previously issued PATs</strong> may remain valid, allowing attackers to retain repository access despite account revocation.</p>
<p style="text-align: justify;">Additional entry points include the <strong>exploitation of known CVEs</strong> and poor credential hygiene. Many major vulnerabilities in DevOps tools are regularly discovered, highlighting the need for continuous vulnerability management. Exploiting a <strong>critical</strong> <strong>vulnerability</strong> can <strong>directly</strong> provide <strong>privileged</strong> <strong>access</strong> to a <strong>tool in the chain.</strong></p>
<p style="text-align: justify;">Examples include:</p>
<ul>
<li style="text-align: justify;"><span style="color: #808080;"><a style="color: #808080;" href="https://nvd.nist.gov/vuln/detail/cve-2024-23897"><strong>CVE-2024-23897</strong></a></span><strong> (Jenkins)</strong>, which allows unauthenticated attackers to read arbitrary files on the Jenkins controller file system, leading to exposure of sensitive secrets,</li>
<li style="text-align: justify;"><span style="color: #808080;"><a style="color: #808080;" href="https://nvd.nist.gov/vuln/detail/cve-2023-7028"><strong>CVE-2023-7028</strong></a></span><strong> (GitLab)</strong>, in which user account password reset emails could be delivered to an unverified email address,</li>
<li style="text-align: justify;"><span style="color: #808080;"><a style="color: #808080;" href="https://nvd.nist.gov/vuln/detail/cve-2023-36561"><strong>CVE-2023-36561</strong></a></span><strong> (Azure DevOps Server)</strong>, an elevation of privilege vulnerability allowing attackers to gain unauthorized access to functionalities within Azure DevOps Server, with potential impact on pipelines, secrets, and project-level resources.</li>
</ul>
<p> </p>
<p style="text-align: justify;"><strong><u>REMEDIATION – Strengthen Access Controls for Source Code Repository</u></strong></p>
<p style="text-align: justify;">To mitigate initial access risks, organizations should implement controls to prevent unauthorized access, detect persistence, and enforce strong identity governance.</p>
<p style="text-align: justify;"><em><u>Enforce confidential access policies and network exposure</u></em></p>
<ul style="text-align: justify;">
<li>Avoid the use of <strong>generic or shared accounts</strong>,</li>
<li>Use <strong>dedicated developer identities</strong> separated from standard productivity (email and office) accounts to reduce exposure to phishing attacks and limit the impact of credential compromise in CI/CD environments.</li>
<li><strong>Enforce phishing-resistant MFA mechanisms</strong> (FIDO2 keys, certificate, etc.),</li>
<li><strong>Implement Conditional Access policies</strong> to restrict access based on contextual factors such as network location and device compliance.</li>
</ul>
<p style="text-align: justify;"><em><u>Implement mechanisms to detect persistence attempts</u></em></p>
<ul style="text-align: justify;">
<li>Implement <strong>monitoring mechanisms</strong> to detect suspicious creation or usage of <strong>PATs </strong>in GitLab, anomalous activities such as <strong>deployments occurring at unusual times</strong>, etc.</li>
<li>Monitor the addition of <strong>new authentication methods in Entra ID, </strong>as a potential sign of compromise, particularly <strong>passwordless</strong> ones, after a phishing event.</li>
</ul>
<p style="text-align: justify;"><em><u>Recertify all accesses periodically and remediate unused accounts</u></em></p>
<ul style="text-align: justify;">
<li>Disable or remove<strong> unused or inactive accounts</strong>,</li>
<li>Revoke access for <strong>offboarded employees</strong> across all systems,</li>
<li>Conduct periodic access reviews, at least <strong>every six months</strong> for <strong>high-risk users</strong>.</li>
</ul>
<p> </p>
<h3 style="text-align: justify;">Code Repository and Pipeline Compromise</h3>
<p style="text-align: justify;"><strong>Source code repositories</strong> are often <strong>directly integrated with CI/CD pipelines</strong>, meaning that changes to the codebase can automatically trigger build and deployment processes. As a result, compromising a developer account can influence how applications are built and deployed.</p>
<p style="text-align: justify;">To <strong>reduce the risk of unauthorized changes</strong> <strong>reaching</strong> <strong>production</strong>, organizations typically <strong>protect production branches</strong> (e.g., main or master) through pull requests, approvals, and automated validation checks. In contrast, <strong>development branches </strong>are generally <strong>less strictly controlled</strong> to support faster development and testing.</p>
<p style="text-align: justify;">In the observed scenario, the attacker <strong>targets the development branch </strong>and modifies the pipeline configuration file (gitlab-ci.yml), injecting a <strong>malicious command</strong> (aimed at establishing remote access) into an <strong>existing job</strong>. When the pipeline is executed, this command runs on the CI/CD runner, allowing the attacker to gain remote access to it.</p>
<figure id="attachment_30403" aria-describedby="caption-attachment-30403" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30403" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Code-repository-manipulation.png" alt="Code repository manipulation" width="911" height="396" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Code-repository-manipulation.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Code-repository-manipulation-437x191.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Code-repository-manipulation-71x31.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Code-repository-manipulation-768x334.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30403" class="wp-caption-text">Code repository manipulation</figcaption></figure>
<p style="text-align: justify;">As part of the compromised CI/CD environment credentials, the <strong>attacker gains access</strong> to a <strong>Nexus token,</strong> which is an <strong>artifact management system, </strong>used to store and distribute trusted build artifacts consumed by downstream pipelines.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong><u>REMEDIATION – Harden Code Repository Security Controls</u></strong></p>
<p style="text-align: justify;">Securing the code repository is essential to prevent attackers from abusing CI/CD pipelines after initial access, as repositories directly control how code is built and deployed.</p>
<p style="text-align: justify;"><em><u>Harden code repository to limit pipeline triggers</u></em></p>
<ul style="text-align: justify;">
<li>Configure <strong>protected branches</strong> on the branches used for deployment,</li>
<li><strong>Set up multi-level approval workflows</strong> on merge requests that trigger pipelines and <strong>disable self-approval, </strong></li>
<li>Use <strong>code ownership </strong>to <strong>assign </strong>and <strong>require approval </strong>from <strong>designated owners </strong>on <strong>sensitive files </strong>(e.g. CI/CD job configuration).</li>
</ul>
<p style="text-align: justify;"><em><u>Limit project visibility and permissions</u></em></p>
<ul style="text-align: justify;">
<li><strong>Limit writing permissions</strong> to only those who require them for their role,</li>
<li><strong>Restrict project visibility</strong> based on the <strong>need-to-know principle</strong>, using internal or private (preferred) visibility.</li>
</ul>
<p style="text-align: justify;"><em><u>Establish proper secret management hygiene</u></em></p>
<ul>
<li style="text-align: justify;"><strong>Configure scoped CI/CD secrets the project</strong> level and prefer ephemeral credentials whenever possible,</li>
<li style="text-align: justify;"><strong>Detect secrets in clear text as early as possible </strong>(at commit time or before code is pushed) and revoke immediately if exposed,</li>
<li style="text-align: justify;">Conduct <strong>periodic reviews</strong> (e.g., internal audits or red team exercises) across platforms such as Git repositories, Jira, or Confluence to help identify previously undetected leaks.</li>
</ul>
<p> </p>
<p><strong><u>REMEDIATION – Strengthen Self-Hosted Runner Security Controls</u></strong></p>
<p style="text-align: justify;">Runners are critical components of CI/CD pipelines, as they execute code and handle sensitive data. If compromised, they can be used to move laterally, access secrets, or take control of the environment.</p>
<p style="text-align: justify;"><em><u>Restrict network exposure and execution scope</u></em></p>
<ul style="text-align: justify;">
<li><strong>Restrict runner network traffic </strong>to only what is required for pipeline execution, and enforce <strong>network controls</strong> such as <strong>proxies</strong> and <strong>segmentation</strong> to prevent unrestricted internet access and limit lateral movement within internal networks.</li>
<li><strong>Restrict pipeline triggers</strong> from untrusted or personal repositories.</li>
</ul>
<p style="text-align: justify;"><em><u>Treat runners as sensitive systems</u></em></p>
<ul style="text-align: justify;">
<li>Treat runners as critical servers (<strong>regular OS patching</strong> and <strong>hardening</strong>),</li>
<li>Deploy <strong>Endpoint Detection and Response (EDR)</strong> solutions for process monitoring, including within containerized environments.</li>
</ul>
<p style="text-align: justify;"><em><u>Use dedicated and ephemeral runners</u></em></p>
<ul style="text-align: justify;">
<li>Prefer <strong>dedicated runners per project or environment. </strong>Sharing runners across multiple contexts increases the risk of cross-project contamination and privilege escalation,</li>
<li>Use <strong>ephemeral / autoscaling</strong> runners that are destroyed after each job,</li>
<li>Ensure <strong>VM-based runners</strong> are also <strong>ephemeral</strong> and <strong>isolated </strong>to ensure no residual data or access persists between executions. In addition, rely <strong>only on hardened and trusted base images </strong>(e.g. <strong>golden images</strong> for VM-based runners and approved container images), to prevent execution in compromised or unverified environments.</li>
</ul>
<p style="text-align: justify;"><em><u>Secure container-based runners</u></em></p>
<ul style="text-align: justify;">
<li><strong>Allow only approved and trusted images in pipeline</strong> <strong>executions</strong> to prevent the introduction of malicious code through compromised or unverified images,</li>
<li>Apply <strong>least privilege</strong> in container runtime environments,</li>
<li><strong>Avoid</strong> <strong>privileged mode</strong> and drop unnecessary Linux capabilities,</li>
<li>Use secure build engines <strong>(BuildKit / Buildah) </strong>when <strong>Docker-in-Docker</strong> is required</li>
</ul>
<p style="text-align: justify;"><em><u>Harden Cloud-based runners</u></em></p>
<ul>
<li style="text-align: justify;">When using <strong>cloud-managed runners</strong>, enforce <strong>isolation and identity scoping</strong>, <strong>restrict</strong> <strong>metadata</strong> access to prevent credential exposure from underlying infrastructure, and ensure CI/CD roles are governed by <strong>strict least-privilege IAM policies</strong> to avoid excessive permissions.</li>
</ul>
<p> </p>
<h3>Artifact Poisoning and Dependency Attacks</h3>
<p style="text-align: justify;">In software delivery environments, <strong>artifact management systems </strong>store and distribute <strong>outputs generated by CI/CD pipelines</strong>. These outputs, known as <strong>artifacts</strong>, represent the <strong>packaged results of the build process</strong>, such as compiled binaries, application packages, or deployment images.</p>
<p style="text-align: justify;"><strong>Artifacts</strong> are <strong>stored centrally</strong> to ensure versioning, traceability, and reuse across multiple pipelines. In addition to <strong>application-specific outputs</strong>, these repositories often <strong>also host shared</strong> <strong>components</strong> such as <strong>golden images</strong>, <strong>reusable libraries</strong>, or <strong>common runtime dependencies</strong>. Because they <strong>originate from trusted build processes</strong>, <strong>artifacts</strong> are typically assumed to be safe and are widely <strong>consumed by downstream pipelines</strong> without additional validation.</p>
<p style="text-align: justify;">In the observed scenario, the <strong>attacker uses </strong>previously obtained <strong>credentials</strong> to <strong>authenticate </strong>to the <strong>artifact repository</strong> (<strong>Nexus </strong>in this example) with <strong>excessive</strong> <strong>permissions</strong> (read/write across multiple categories, rather than being limited to a single application scope), and gains access to both production-grade and shared artifacts.</p>
<p style="text-align: justify;">Among these, the attacker identifies a legitimate <strong>Terraform binary</strong> used within the infrastructure deployment process (referred to as the <strong>tofu binary</strong>), which is commonly trusted and consumed by downstream CI/CD pipelines to provision and manage cloud resources.</p>
<figure id="attachment_30405" aria-describedby="caption-attachment-30405" style="width: 1394px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30405" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Legitimate-binary-used-for-infrastructure-deployment.png" alt="Legitimate binary used for infrastructure deployment" width="1394" height="949" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Legitimate-binary-used-for-infrastructure-deployment.png 1394w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Legitimate-binary-used-for-infrastructure-deployment-281x191.png 281w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Legitimate-binary-used-for-infrastructure-deployment-57x39.png 57w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Legitimate-binary-used-for-infrastructure-deployment-768x523.png 768w" sizes="auto, (max-width: 1394px) 100vw, 1394px" /><figcaption id="caption-attachment-30405" class="wp-caption-text">Legitimate binary used for infrastructure deployment</figcaption></figure>
<p style="text-align: justify;">The attacker <strong>downloads this artifact locally</strong> and <strong>modifies its contents</strong> by injecting <strong>malicious logic </strong>while preserving its original functionality, and <strong>embeds hidden behavior</strong> designed to <strong>interact</strong> with <strong>AWS Identity and Access Management (IAM) and AWS Security Token Service (STS) services</strong> to retrieve credentials.</p>
<figure id="attachment_30407" aria-describedby="caption-attachment-30407" style="width: 827px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30407" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-AWS-IAM-and-STS-credential-handling-logic-within-the-Terraform-malicious-binary.png" alt="AWS IAM and STS credential handling logic within the Terraform malicious binary" width="827" height="716" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-AWS-IAM-and-STS-credential-handling-logic-within-the-Terraform-malicious-binary.png 827w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-AWS-IAM-and-STS-credential-handling-logic-within-the-Terraform-malicious-binary-221x191.png 221w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-AWS-IAM-and-STS-credential-handling-logic-within-the-Terraform-malicious-binary-45x39.png 45w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-AWS-IAM-and-STS-credential-handling-logic-within-the-Terraform-malicious-binary-768x665.png 768w" sizes="auto, (max-width: 827px) 100vw, 827px" /><figcaption id="caption-attachment-30407" class="wp-caption-text">AWS IAM and STS credential handling logic within the Terraform malicious binary</figcaption></figure>
<p style="text-align: justify;">The modified binary is then <strong>reuploaded to Nexus</strong>, replacing the legitimate version with a <strong>poisoned artifact.</strong></p>
<figure id="attachment_30409" aria-describedby="caption-attachment-30409" style="width: 744px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30409" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/9-Uploading-the-malicious-binary.png" alt="Uploading the malicious binary" width="744" height="613" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/9-Uploading-the-malicious-binary.png 744w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/9-Uploading-the-malicious-binary-232x191.png 232w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/9-Uploading-the-malicious-binary-47x39.png 47w" sizes="auto, (max-width: 744px) 100vw, 744px" /><figcaption id="caption-attachment-30409" class="wp-caption-text">Uploading the malicious binary</figcaption></figure>
<p style="text-align: justify;">From this point onward, <strong>any CI/CD pipeline consuming the artifact</strong> automatically retrieves the <strong>compromised binary</strong> as part of its dependency resolution, as it’s still considered trusted.</p>
<figure id="attachment_30411" aria-describedby="caption-attachment-30411" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30411" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Malicious-binary-successfully-downloaded-from-Nexus.png" alt="Malicious binary successfully downloaded from Nexus" width="911" height="473" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Malicious-binary-successfully-downloaded-from-Nexus.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Malicious-binary-successfully-downloaded-from-Nexus-368x191.png 368w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Malicious-binary-successfully-downloaded-from-Nexus-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Malicious-binary-successfully-downloaded-from-Nexus-768x399.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30411" class="wp-caption-text">Malicious binary successfully downloaded from Nexus</figcaption></figure>
<p style="text-align: justify;">Upon execution, the <strong>poisoned binary activates the embedded malicious payload, </strong>which is designated to <strong>retrieve the AWS access token</strong> used by the <strong>Terraform execution</strong> context and send it to the attacker-controlled server for exfiltration. It then generates an <strong>obfuscated output encoded in Base32</strong>. Decoding allows reconstruction of a JSON object containing AWS credentials (AccessKeyId, SecretAccessKey, and SessionToken).</p>
<figure id="attachment_30413" aria-describedby="caption-attachment-30413" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30413" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Base32-decoded-payload-revealing-AWS-credentials-after-executing-the-malicious-Terraform-binary.png" alt="Base32-decoded payload revealing AWS credentials after executing the malicious Terraform binary" width="911" height="494" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Base32-decoded-payload-revealing-AWS-credentials-after-executing-the-malicious-Terraform-binary.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Base32-decoded-payload-revealing-AWS-credentials-after-executing-the-malicious-Terraform-binary-352x191.png 352w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Base32-decoded-payload-revealing-AWS-credentials-after-executing-the-malicious-Terraform-binary-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Base32-decoded-payload-revealing-AWS-credentials-after-executing-the-malicious-Terraform-binary-768x416.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30413" class="wp-caption-text">Base32-decoded payload revealing AWS credentials after executing the malicious Terraform binary</figcaption></figure>
<p style="text-align: justify;">The attacker configures these credentials locally and uses <strong>AWS STS</strong> (GetCallerIdentity API call) to confirm identity impersonation of the CI/CD runner. </p>
<figure id="attachment_30415" aria-describedby="caption-attachment-30415" style="width: 910px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30415" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-AWS-access.png" alt="AWS access" width="910" height="182" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-AWS-access.png 910w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-AWS-access-437x87.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-AWS-access-71x14.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-AWS-access-768x154.png 768w" sizes="auto, (max-width: 910px) 100vw, 910px" /><figcaption id="caption-attachment-30415" class="wp-caption-text">AWS access</figcaption></figure>
<p style="text-align: justify;">This illustration shows the attack chain: artifact compromise, injection of malicious logic, propagation through CI/CD pipelines, and eventual AWS credential theft leading environment compromise.</p>
<figure id="attachment_30417" aria-describedby="caption-attachment-30417" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30417" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Artifactory-compromise-dependency-poisoning.png" alt="Artifactory compromise - dependency poisoning" width="911" height="450" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Artifactory-compromise-dependency-poisoning.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Artifactory-compromise-dependency-poisoning-387x191.png 387w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Artifactory-compromise-dependency-poisoning-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Artifactory-compromise-dependency-poisoning-768x379.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30417" class="wp-caption-text">Artifactory compromise &#8211; dependency poisoning</figcaption></figure>
<p style="text-align: justify;">As a result, the attacker gains unauthorized access to AWS resources under the guise of a legitimate identity.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong><u>REMEDIATION – Improve Artifactory Access Management Controls</u></strong></p>
<p style="text-align: justify;">Artifact repositories such as Nexus are key CI/CD components used to store and distribute build dependencies and artifacts. They are high-value targets for supply chain attacks.</p>
<p style="text-align: justify;">Security requires strong access control, dependency governance, and continuous integrity monitoring.</p>
<p style="text-align: justify;"><em><u>Harden the artifact repository platform</u></em></p>
<ul style="text-align: justify;">
<li><strong>Allow wide read on repository only at two conditions:</strong> from needed service (CICD) and if password management in dependency exist,</li>
<li>Highly restrict <strong>writing permission</strong>,</li>
<li>Change <strong>default</strong></li>
</ul>
<p style="text-align: justify;"><em><u>Perform Software Composition Analysis (SCA)</u></em></p>
<ul style="text-align: justify;">
<li><strong>Apply Software Composition Analysis</strong> to both <strong>internal dependencies</strong> (stored in local repositories) and <strong>external ones</strong> (retrieved from remote or proxy repositories) to detect known vulnerabilities and outdated components.</li>
</ul>
<p style="text-align: justify;"><em><u>Restrict artifact sources</u></em></p>
<ul>
<li style="text-align: justify;"><strong>Maintain a whitelist of trusted repositories</strong> to ensure only approved sources are used,</li>
<li style="text-align: justify;"><strong>Enforce repository-level controls </strong>to exclude unapproved or vulnerable versions, for example in <strong>Nexus</strong>, or through exclusion rules in <strong>JFrog</strong> Artifactory,</li>
<li style="text-align: justify;"><strong>Prevent CI/CD pipelines from accessing untrusted external sources</strong> by enforcing strict repository boundaries.</li>
</ul>
<p> </p>
<h3>Cloud Compromise via CI/CD Workload Abuse</h3>
<p style="text-align: justify;">In cloud environments, <strong>CI/CD runners</strong> are typically assigned <strong>privileged IAM roles</strong> to perform deployment operations, including creating, modifying, and deleting infrastructure resources. These roles often include <strong>broad permissions</strong> such as <strong>AdministratorAccess</strong> or overly permissive custom policies, enabling the runner to interact with a wide range of AWS services including compute, storage, and identity management.</p>
<p style="text-align: justify;">When <strong>a CI/CD runner is compromised</strong>, an attacker can <strong>directly abuse these privileges</strong> without requiring further escalation. This can lead to <strong>immediate access</strong> to sensitive resources such as <strong>S3</strong> <strong>buckets</strong> or <strong>RDS databases</strong>, enabling <strong>data exfiltration</strong>. The attacker may also leverage <strong>IAM</strong> <strong>permissions</strong> to assume additional roles across <strong>other AWS accounts</strong> or <strong>projects</strong>, facilitating <strong>lateral</strong> <strong>movement</strong> within the organization. In addition, <strong>access to compute-related services</strong> can be abused to deploy, modify, or persist malicious workloads, ultimately resulting in a <strong>full compromise</strong> of the <strong>cloud environment</strong>.</p>
<p style="text-align: justify;">From developer compromise to Cloud takeover: full CI/CD attack path overview</p>
<p style="text-align: justify;">The CI/CD attack chain starts with the initial compromise of a developer and ends with the full takeover of the cloud environment.</p>
<p style="text-align: justify;">The following illustration highlights <strong>key detection and monitoring opportunities across the CI/CD ecosystem</strong>. It shows how security telemetry can be collected and correlated throughout the <strong>different stages</strong> of the CI/CD attack chain, from development activities to CI/CD <strong>runners, artifact repositories, and cloud IAM operations</strong>.</p>
<figure id="attachment_30419" aria-describedby="caption-attachment-30419" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30419" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Kill-chain-Detection.png" alt="Kill chain - Detection" width="911" height="409" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Kill-chain-Detection.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Kill-chain-Detection-425x191.png 425w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Kill-chain-Detection-71x32.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Kill-chain-Detection-768x345.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30419" class="wp-caption-text">Kill chain &#8211; Detection</figcaption></figure>
<p style="text-align: justify;">Overall, although CI/CD pipelines significantly expand the attack surface, they also provide multiple strategic interception points where centralized logging and security monitoring can enable early detection and response to malicious activity.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">In conclusion, to achieve a <strong>secure CI/CD pipeline</strong>, security must be considered end-to-end, from developers’ environments to production systems.</p>
<p style="text-align: justify;"><strong>Developers are the first link in the chain</strong>, and securing their accounts is essential. This should be supported by good practices such as secure secret management and regular security awareness.</p>
<p style="text-align: justify;">It’s also important to ensure <strong>proper isolation between environments</strong> and to enforce strict <strong>least</strong> <strong>privilege</strong> for both <strong>users</strong> and <strong>service accounts</strong>.</p>
<p style="text-align: justify;">Security issues cannot be fixed by small patches if the overall pipeline design is weak.</p>
<p style="text-align: justify;">Finally<strong>, deployment use cases</strong> should be clearly defined from the start, as they directly drive the architecture and IAM design choices.</p>
<p style="text-align: justify;">Beyond these technical measures, <strong>CI/CD security must be continuously assessed through regular technical audits</strong> as well as <strong>organizational reviews</strong> of the development lifecycle to ensure risks remain under control as the environment evolves.</p>
<p style="text-align: justify;">For a broader perspective and <strong>higher-level recommendations</strong> on positioning CI/CD as a cornerstone of the information system, see the RiskInsight article: “<span style="color: #808080;"><a style="color: #808080;" href="https://www.riskinsight-wavestone.com/en/2025/09/ci-cd-the-new-cornerstone-of-the-information-system/">CI/CD: the new cornerstone of the information system</a></span>”.</p>
<p> </p>


<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2026/07/ci-cd-security-supply-chain-attack-from-a-compromised-developer/">CI/CD Security: Supply chain attack from a compromised developer</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/en/2026/07/ci-cd-security-supply-chain-attack-from-a-compromised-developer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cloud Security: Adapting to a new reality</title>
		<link>https://www.riskinsight-wavestone.com/en/2026/01/cloud-security-adapting-to-a-new-reality/</link>
					<comments>https://www.riskinsight-wavestone.com/en/2026/01/cloud-security-adapting-to-a-new-reality/#respond</comments>
		
		<dc:creator><![CDATA[Gautier PLANTE]]></dc:creator>
		<pubDate>Wed, 28 Jan 2026 09:09:10 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[ABAC]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud security]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[enterprise access model]]></category>
		<category><![CDATA[IAM Cloud]]></category>
		<category><![CDATA[REX RedTeam]]></category>
		<category><![CDATA[Tiering]]></category>
		<category><![CDATA[Trust Core]]></category>
		<category><![CDATA[Trust Core Cloud]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=28917</guid>

					<description><![CDATA[<p>Audits and Red Team assessments led by Wavestone showed a stark imbalance between the maturity of on-premise infrastructure protection and the cloud deployment ones. While on-premise infrastructure are generally well identified, controlled and protected according to proven standards, their cloud...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2026/01/cloud-security-adapting-to-a-new-reality/">Cloud Security: Adapting to a new reality</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p style="text-align: justify;">Audits and Red Team assessments led by Wavestone showed a <strong>stark imbalance between the maturity of on-premise infrastructure protection and the cloud deployment ones.</strong> While on-premise infrastructure are generally well identified, controlled and protected according to proven standards, their cloud counterparts are often underestimated in terms of risks and consequently, insufficiently secured.</p>
<p> </p>
<h2>Is the tiering principle promoted for on-premise infrastructure applicable to the cloud?</h2>
<h3>Evolution of the Security Model</h3>
<p style="text-align: justify;">In on-premises <strong>Active Directory</strong> environments, infrastructure security generally relies on <strong>strict segmentation into three tiers (T0, T1, and T2)</strong>. This allows for the isolation of critical administration systems (T0), servers (T1), and user workstations (T2) in order to limit propagation risks.</p>
<p style="text-align: justify;">This hierarchical and perimeter-based organization is inherent to the AD world and cannot be directly applied to the cloud for the following two main reasons:</p>
<ul style="text-align: justify;">
<li><strong>Portals are centralized</strong>: A wide variety of administrators with different rights.</li>
<li><strong>The boundary between administration levels is more complex</strong>: The principle of granular permissions, whether Role-Based (RBAC), Attribute-Based (ABAC), or conditional (location, risk, compliance, authentication methods, etc.) allows for very precise access configuration, but it complicates and obscures the global view of permissions.</li>
</ul>
<p style="text-align: justify;">To address this new paradigm, Microsoft published its Enterprise Access Model (<span style="color: #333399;"><a style="color: #333399;" href="https://learn.microsoft.com/en-us/security/privileged-access-workstations/privileged-access-access-model">described here</a></span>), highlighting three main planes: the <em>Control Plane</em>, <em>Management Plane</em>, and <em>Data Plane</em>.</p>
<p style="text-align: justify;">This model retains <strong>&#8220;cascading&#8221; criticality</strong> but simplifies it with:</p>
<ul style="text-align: justify;">
<li>the 3 tiers into <strong>2 access types: administrator vs. user</strong>;</li>
<li>the administration flows into portal access;</li>
<li>the server’s criticality is centralized within the <em>Data plane</em><em>.</em></li>
</ul>
<p style="text-align: justify;">Below is a comparative illustration between the old and the new model:</p>
<figure id="attachment_30327" aria-describedby="caption-attachment-30327" style="width: 1087px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30327" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/From-the-three-tier-model-to-cloud-complexity.png" alt="From the three-tier model to cloud complexity" width="1087" height="541" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/From-the-three-tier-model-to-cloud-complexity.png 1087w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/From-the-three-tier-model-to-cloud-complexity-384x191.png 384w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/From-the-three-tier-model-to-cloud-complexity-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/From-the-three-tier-model-to-cloud-complexity-768x382.png 768w" sizes="auto, (max-width: 1087px) 100vw, 1087px" /><figcaption id="caption-attachment-30327" class="wp-caption-text"><em>From the three-tier model to cloud complexity</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">This new model particularly highlights 3 elements:</p>
<ul style="text-align: justify;">
<li><strong>User identity</strong>: privileged access vs. user access;</li>
<li><strong>Data and services</strong>: at the expense of servers;</li>
<li>The <strong>method of access</strong> to web administration portals.</li>
</ul>
<p style="text-align: justify;">The inversion of importance between &#8220;servers&#8221; and &#8220;web portals&#8221; abstracting Active Directory is a radical change.</p>
<p style="text-align: justify;">However, very few (if any) large organizations are at this stage of abandoning their &#8220;legacy&#8221; IS; a large part will be in a transitional state where the information system has been virtualized on a cloud in order to move away from its datacenters, but whose administration methods have remained the same.</p>
<p style="text-align: justify;">These companies must deal with an obsolete tiering model and an Enterprise Access Model disconnected from current security risks and needs.</p>
<p style="text-align: justify;">For the remainder of this article, we will take as an example the <strong>Tartampion</strong> company, which has just completed a <strong>3-year Move-to-Cloud program on AWS</strong>. The outcome is as follows:</p>
<ul>
<li style="text-align: justify;">A Landing Zone was created, applications already on AWS were integrated into it</li>
<li style="text-align: justify;">Given the lack of time and resources, a major part of the IS was incorporated via lift and shift, including business, network, bastion, and AD solutions.</li>
<li style="text-align: justify;">The Data Centers were closed</li>
</ul>
<p> </p>
<h3>A problematic hybrid and virtualized IS</h3>
<p style="text-align: justify;">According to the EAM, Azure and AWS portals are displayed at the same level (<em>the management plane</em>) at the T1 tier, without any other form of distinction. However, these 2 cloud environments are in themselves the support for numerous IS, used by multiple collaborators with very varied levels of rights and impacts.</p>
<p style="text-align: justify;">To illustrate the previous points, let us set aside the <em>Digital Workplace</em> aspect (O365 suite) and take 3 AWS accounts from a Tartampion Landing Zone, supporting different infrastructure services:</p>
<figure id="attachment_28921" aria-describedby="caption-attachment-28921" style="width: 1695px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28921" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Example-of-different-AWS-enterprise-account-types.png" alt="Example of different AWS enterprise account types" width="1695" height="343" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Example-of-different-AWS-enterprise-account-types.png 1695w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Example-of-different-AWS-enterprise-account-types-437x88.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Example-of-different-AWS-enterprise-account-types-71x14.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Example-of-different-AWS-enterprise-account-types-768x155.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Example-of-different-AWS-enterprise-account-types-1536x311.png 1536w" sizes="auto, (max-width: 1695px) 100vw, 1695px" /><figcaption id="caption-attachment-28921" class="wp-caption-text"><em>Example of different AWS enterprise account types</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Based on the framework proposed by Microsoft, these <strong>three AWS accounts should belong to the Management plane</strong> with a T1 security level. However, in the event of a compromise of one of the 3 accounts by an attacker, the impacts would be very different.</p>
<p style="text-align: justify;">If the Landing Zone is correctly implemented, the compromise of a Sandbox account would have very little impact, whereas that of the Master Account would lead to the compromise of all underlying accounts and resources.</p>
<p style="text-align: justify;">A more adequate example of segmentation would be the following:</p>
<figure id="attachment_28923" aria-describedby="caption-attachment-28923" style="width: 1689px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28923" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-extended-to-the-Enterprise-Access-Model.png" alt="Tiering Model extended to the Enterprise Access Model" width="1689" height="713" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-extended-to-the-Enterprise-Access-Model.png 1689w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-extended-to-the-Enterprise-Access-Model-437x184.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-extended-to-the-Enterprise-Access-Model-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-extended-to-the-Enterprise-Access-Model-768x324.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-extended-to-the-Enterprise-Access-Model-1536x648.png 1536w" sizes="auto, (max-width: 1689px) 100vw, 1689px" /><figcaption id="caption-attachment-28923" class="wp-caption-text"><em>Tiering Model extended to the Enterprise Access Model</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Microsoft’s Enterprise Access Model is a <strong>macroscopic framework</strong> that allows for initiating a baseline for cloud service segmentation, but <strong>which remains to be adapted</strong> according to the criticality of the concerned IS.</p>
<p style="text-align: justify;">How can it be made relevant? To answer this, it is necessary to understand the attack scenarios exploiting cloud services.</p>
<p> </p>
<h2>The cloud from an attacker’s perspective</h2>
<h3>5 cloud principles facilitating attacks</h3>
<p style="text-align: justify;">Firstly, <strong>public cloud administration panels are exposed to the Internet by default</strong>, unlike sensitive IS resources. Thus, successful phishing very likely leads to access to the cloud.</p>
<p style="text-align: justify;">Secondly, companies today have <strong>hybrid organizations</strong> (on-premise and cloud):</p>
<ul style="text-align: justify;">
<li>Cloud infrastructures are connected to the rest of the on-premises IS;</li>
<li><strong>Workstations</strong> can also be <strong>hybrid</strong> and managed by a cloud service like Intune. Permissions to use this service are managed in Entra ID;</li>
<li>Identities are often <strong>synchronized accounts</strong>, this also applies to administration accounts.</li>
</ul>
<p style="text-align: justify;">Hybrid organizations can facilitate lateral movement between the cloud and on-premise environments.</p>
<p style="text-align: justify;">Thirdly, <strong>identity management is very complex with different scopes</strong>. For example, Entra ID allows managing access to Azure and M365 for users, as well as for applications and service accounts.</p>
<p style="text-align: justify;">In addition, cybersecurity concepts related to the cloud are still relatively new and unfamiliar to certain &#8220;legacy&#8221; teams, such as the SOC/CERT, network, etc. <strong>The most sensitive cloud resources are not systematically identified, protected, and monitored</strong>.</p>
<p style="text-align: justify;">Finally, even if native detection mechanisms are present, they are <strong>not always interconnected with SIEM/SOAR</strong>, which slows down response capabilities. Moreover, a recent Purple Team operation conducted on Azure and AWS infrastructure confirmed that <strong>native detection tools have limited detection capacity</strong>. This is an observation also found in Red Teams since, with an &#8220;OpSec&#8221; approach,<strong> cloud detection tools are rarely able to identify an ongoing attack</strong>.</p>
<p> </p>
<h3>Feedback from our penetration tests &amp; Red Team</h3>
<p style="text-align: justify;">Derived from recent Red Team operations, these cloud-specific attack paths demonstrate the impact and the ease with which it is possible to escalate privileges to obtain highly permissive access:</p>
<figure id="attachment_28925" aria-describedby="caption-attachment-28925" style="width: 1684px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28925" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Examples-of-Cloud-attack-paths-exploited-in-Red-Team-assessments.png" alt="Examples of Cloud attack paths exploited in Red Team assessments" width="1684" height="803" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Examples-of-Cloud-attack-paths-exploited-in-Red-Team-assessments.png 1684w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Examples-of-Cloud-attack-paths-exploited-in-Red-Team-assessments-401x191.png 401w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Examples-of-Cloud-attack-paths-exploited-in-Red-Team-assessments-71x34.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Examples-of-Cloud-attack-paths-exploited-in-Red-Team-assessments-768x366.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Examples-of-Cloud-attack-paths-exploited-in-Red-Team-assessments-1536x732.png 1536w" sizes="auto, (max-width: 1684px) 100vw, 1684px" /><figcaption id="caption-attachment-28925" class="wp-caption-text"><em>Examples of Cloud attack paths exploited in Red Team assessments</em></figcaption></figure>
<p style="text-align: justify;">The first scenario, carried out on AWS, is described below; the other two were analyzed in a series of Risk Insight articles available <span style="color: #333399;"><a style="color: #333399;" href="https://www.riskinsight-wavestone.com/en/2025/01/enterprise-access-model-1-2-how-to-scope-your-control-plane-to-secure-your-cloud-administration-and-prevent-a-global-cloud-compromise/">here</a></span>.</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">Reconnaissance and Initial Access</span></em></strong></p>
<p style="text-align: justify;">Categories of employees are <strong>generally targeted in order to compromise a person with interesting rights in the IS (Developer, Support, OPS&#8230;)</strong>. A frequently used method is <strong>phishing</strong>. <span style="color: #333399;"><a style="color: #333399;" href="https://www.riskinsight-wavestone.com/en/2025/07/phishing-pushing-evilginx-to-its-limit/">Current phishing</a></span> mechanisms can bypass the use of complex passwords and most MFA (Multi-Factor Authentication) methods.</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">Privilege Escalation and Lateral Movements</span></em></strong></p>
<p style="text-align: justify;">In the first scenario, a compromised developer possessed access to a Citrix farm. <strong>Citrix environments are not simple to completely harden</strong>, and a few breakout vulnerabilities allowed the Red Team to gain access to the underlying server.</p>
<p style="text-align: justify;">Information gathered on the machine indicated that the server could be hosted on AWS. This was verified by trying to <strong>access the server&#8217;s AWS metadata</strong>: the instance had rights on the client&#8217;s AWS account. The Citrix virtual machine possessed the &#8220;<strong>AmazonEC2FullAccess</strong>&#8221; role allowing it management actions on EC2s in the same AWS account.</p>
<p style="text-align: justify;">Using the AWS CLI, the other EC2s were listed. A Domain Controller was present in this AWS account. It is a common practice to regroup services intended to be used by several projects into a single account, generally called &#8220;Shared Services&#8221;. It is nevertheless recommended to <strong>verify that the criticality of shared services is homogeneous to be able to apply adequate hardening</strong> on the account or separate them into several environments.</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">Actions on trophies</span></em></strong></p>
<p style="text-align: justify;">From the Citrix server AWS role, <strong>a snapshot of the domain controller was taken and then downloaded</strong>. Domain controller backups contain all the machine&#8217;s files, including the most sensitive files like the <strong><em>ntds.dit</em></strong> database, which contains the information and secrets of all domain users. The exfiltration of this database translates to the total compromise of the concerned AD domain.</p>
<p style="text-align: justify;">This scenario illustrates one of the attack paths that were exploited during Red Team operations, facilitated by the lack of visibility regarding the impacts that a compromised resource hosted on the cloud can have.</p>
<p> </p>
<h3>Faster and stronger impacts</h3>
<p style="text-align: justify;">Attacks already possible on an on-premises IS can be <strong>reproduced and even accelerated thanks to cloud features</strong>. For example, the encryption of S3 buckets (file storage service) using a KMS (encryption) key from another AWS account mimics massive data encryption, or the use of the &#8220;lifecycle&#8221; feature allows for the deletion of all objects in less than 24 hours, regardless of the amount of data.</p>
<p style="text-align: justify;">New attacks have also appeared, such as &#8220;<strong>Subscription Hijacking</strong>&#8221; which allows <strong>transferring an Azure organization&#8217;s subscription to another</strong> and thus stealing all the data it contains while preventing remediation actions. This attack is achievable in a few clicks from the Azure web interface.</p>
<p> </p>
<h2>Identification and protection of the cloud trust core</h2>
<h3>Identification</h3>
<p style="text-align: justify;">The <strong>trust core </strong>adopts an approach focused on asset prioritization, which differs from the tiering model or Microsoft’s Enterprise Access Model. Unlike these models which offer a predefined segmentation, there is no universal grid: each organization must identify for itself which resources deserve the highest level of protection. The idea is to establish <strong>a restricted circle of critical resources</strong> (whether cloud or on premises) and then <strong>deploy decreasing levels of protection as one moves away from this core</strong>.</p>
<p style="text-align: justify;">The identification of the trust core relies on <strong>two main criteria</strong>:</p>
<ul style="text-align: justify;">
<li><em>Business Criticality</em>: these are the resources that concentrate the value and business continuity of the company. If they were to be lost or compromised, the consequences would be immediate for daily operations and financially. A SharePoint environment containing intellectual property / patents is a common example;</li>
<li><em>IS Criticality</em>: these are the resources that ensure the administration of the information system and which possess a high level of access. Their compromise would have a major impact on the entire IS and would allow for the business impact previously mentioned. Here we find domain controllers or cloud IAM services like Entra ID and AWS Identity Center.</li>
</ul>
<p style="text-align: justify;"><em> </em></p>
<p style="text-align: justify;">This mapping is never totally clear-cut. For certain elements, the posture to adopt remains vague; two examples illustrate this well:</p>
<ul style="text-align: justify;">
<li><em>EDR</em>: an obvious security element of an IS, systematically deployed on both workstations <strong>and</strong> cloud and on-premises servers, its administration console is increasingly exposed to the internet, and allows executing arbitrary commands on the devices equipped with it.</li>
<li><em>CI/CD pipelines</em>: a clever but complex agglomeration of applications calling each other, whose access (the code repository: GitLab, GitHub…) is accessible by all collaborators and the runner permissions are very often administrator over the entire cloud infrastructure. <strong>Out of all Red Teams conducted in 2024 &amp; 2025, 80% exploited vulnerabilities associated</strong> with these solutions to progress in their operation or even obtain compromise trophies through these means.</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">In order to identify the center of the trust core, which we will call the <strong>security foundation</strong>, we can revisit the precepts of the old T0: the compromise of one of its elements would probably lead to that of the others, and by cascade, of the major part of the IS.</p>
<p style="text-align: justify;">Assuming that your applications apply correct inter-user segregation (all of your SharePoint sites are not accessible by everyone, are they?), references to the next applications should be understood as <strong>administrator</strong> <strong>/ super-user access</strong> to them, and not simple user.</p>
<p style="text-align: justify;">Here is one possible representation of a hybrid trust core:</p>
<figure id="attachment_28927" aria-describedby="caption-attachment-28927" style="width: 1681px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28927" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Protect-the-essential-your-core-of-trust.png" alt="Protect the essential, your core of trust" width="1681" height="997" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Protect-the-essential-your-core-of-trust.png 1681w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Protect-the-essential-your-core-of-trust-322x191.png 322w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Protect-the-essential-your-core-of-trust-66x39.png 66w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Protect-the-essential-your-core-of-trust-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Protect-the-essential-your-core-of-trust-768x456.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Protect-the-essential-your-core-of-trust-1536x911.png 1536w" sizes="auto, (max-width: 1681px) 100vw, 1681px" /><figcaption id="caption-attachment-28927" class="wp-caption-text"><em>Protect the essential, your core of trust</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">In this representation, on the on-premise side, we can observe:</p>
<ul style="text-align: justify;">
<li><em>The T0,</em> with its domain controllers, ADCS, and potentially the PKI, the bastion, the EDR console…</li>
<li><em>The T1,</em> integrating additionally high-impact business applications.</li>
</ul>
<p style="text-align: justify;">And on the cloud side, we find:</p>
<ul style="text-align: justify;">
<li>At the core, the <strong>Control Plane</strong> (AWS Orga &amp; Identity Center, Entra ID) as well as the Landing Zone modules supporting <strong>T0</strong> (if part of T0 is hosted in the cloud);</li>
<li>Moving outward, the various <strong>administration consoles</strong> for productivity suites, and for infrastructure or application management.</li>
</ul>
<p style="text-align: justify;">When establishing this diagram, it is important to keep in mind that:</p>
<ul style="text-align: justify;">
<li><strong>IT serves the business</strong>, and even though the central zone of the trust core is mainly occupied by technical components, critical solutions should be included;</li>
<li><strong>Dependency/compromise chains</strong> have a significant impact on <strong>architectural choices</strong>: positioning an AD on AWS, or deploying an EDR on an AD can suddenly create numerous paths for compromise and pivoting between the 2 worlds.</li>
</ul>
<p style="text-align: justify;">Finally, building a trust core cannot be limited to a static classification logic. It must rely on <strong>an approach that evaluates the criticality of each asset and the risk it introduces</strong> (a software development company will surely not position its Git at the same level as a civil engineering company).</p>
<p> </p>
<h3>Protection of the cloud trust core</h3>
<p style="text-align: justify;">The security of the trust core will rely on the two traditional risk factors:</p>
<ul>
<li style="text-align: justify;"><em>Reduce impact</em>: How to prevent a compromised or malicious user from connecting to cloud portals via a browser and performing sensitive actions in a few clicks, such as backing up a domain controller hosted on a VM or deleting production data backups?</li>
<li style="text-align: justify;"><em>Reduce probability:</em> How to reduce the risks of illegitimate access from a session cookie stolen via phishing, workstation compromising, or user password reuse?</li>
</ul>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">Protection of the cloud security foundation</span></em></strong></p>
<p style="text-align: justify;">Regarding the cloud &#8220;security foundation,&#8221; it is possible to prioritize environments by criticality according to this macroscopic scale:</p>
<figure id="attachment_28929" aria-describedby="caption-attachment-28929" style="width: 1680px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28929" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-The-main-levels-of-the-cloud-security-foundation.png" alt="The main levels of the cloud security foundation" width="1680" height="709" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-The-main-levels-of-the-cloud-security-foundation.png 1680w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-The-main-levels-of-the-cloud-security-foundation-437x184.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-The-main-levels-of-the-cloud-security-foundation-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-The-main-levels-of-the-cloud-security-foundation-768x324.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-The-main-levels-of-the-cloud-security-foundation-1536x648.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /><figcaption id="caption-attachment-28929" class="wp-caption-text"><em>The main levels of the cloud security foundation</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Depending on the teams involved and the complexity of including them in a particularly high protection level, some organizations choose to exclude environments whose compromise would not allow for dangerous lateral movement, such as those for FinOps, detection, the Digital Workplace…</p>
<p style="text-align: justify;">Securing the cloud security foundation relies on 2 main points:</p>
<ul style="text-align: justify;">
<li>Impeccable <strong>hygiene</strong>: streamlined IAM configuration, least privilege strategy, deployment procedures, limitation of resources to the strict minimum…</li>
<li>A passive / active security layer: deployment of <strong>policies</strong> (SCP on AWS, Policy on Azure) explicitly forbidding certain actions, or the manipulation of certain resources, and <strong>detection rules</strong> to trigger an alert in the event of a policy modification or the occurrence of one of its protected events.</li>
</ul>
<p style="text-align: justify;">These policies can be effectively associated with a <strong>tagging strategy</strong> to apply, in addition to the RBAC (Role Based Access Control) model, an ABAC (Attribute Based Access Control) model.</p>
<p style="text-align: justify;">For example, it is possible to tag different resources with a &#8220;tiering&#8221; key and a value between &#8220;T0&#8221;, &#8220;T1&#8221;, &#8220;T2&#8221; and then deploy this set of strategies:</p>
<ul style="text-align: justify;">
<li>Prohibit any action targeting a resource tagged &#8220;tiering&#8221; by an identity whose own tiering tag value is not equivalent;</li>
<li>Prohibit the manipulation of tiering tags, except for a specific role.</li>
</ul>
<p style="text-align: justify;">And that is how, with a few tags and 2 SCPs, it is possible to replicate the Microsoft tiering model (some exceptions may occur).</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">Protection of identities and access</span></em></strong></p>
<p style="text-align: justify;">To protect users, 3 hardening themes can be implemented:</p>
<ul style="text-align: justify;">
<li><em>Identity</em>: With which account does the user connect to cloud administration interfaces? How are rights obtained?</li>
<li><em>MFA</em>: Is the identity protected with multi-factor authentication resistant to phishing attacks?</li>
<li><em>Origin</em>: From which platform does the user connect to cloud administration interfaces? Is the platform managed, and healthy?</li>
</ul>
<p style="text-align: justify;">Several levels of protection are conceivable in order to protect cloud administrators:</p>
<figure id="attachment_28931" aria-describedby="caption-attachment-28931" style="width: 1684px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28931" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligning-the-protection-level-with-the-risk-level.png" alt="Aligning the protection level with the risk level" width="1684" height="819" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligning-the-protection-level-with-the-risk-level.png 1684w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligning-the-protection-level-with-the-risk-level-393x191.png 393w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligning-the-protection-level-with-the-risk-level-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligning-the-protection-level-with-the-risk-level-768x374.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligning-the-protection-level-with-the-risk-level-1536x747.png 1536w" sizes="auto, (max-width: 1684px) 100vw, 1684px" /><figcaption id="caption-attachment-28931" class="wp-caption-text"><em>Aligning the protection level with the risk level</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">To protect the <strong>restricted trust core</strong>, represented by the triple padlocks, it is recommended to implement the <strong>most robust authentication factors</strong>. This includes the use of a dedicated account for cloud administration, the activation of physical multi-factor authentication (example: FIDO2 security key), and the use of a workstation specifically reserved for operations on this trust core (this last one is not often implemented).</p>
<p style="text-align: justify;">For <strong>resources further from the center</strong> of the core of trust, symbolized by the double padlocks, <strong>a hardened but proportionate security level can be applied</strong>, in order to strengthen protection to control costs and reduce excessive constraints on the users concerned.</p>
<p style="text-align: justify;">Ultimately, the <strong>most secure methods are also those that imply the most constraints for the people concerned</strong>, usage must be controlled (limiting day-to-day operations) and emergency situations considered.</p>
<p> </p>
<h3>Repeat Operations</h3>
<p style="text-align: justify;">At the end of the identification and protection phases, resources will be distributed across the different layers of the core of trust.</p>
<p style="text-align: justify;">To verify the proper implementation of the core of trust, <strong>an audit can be conducted to verify the proper protection of the critical resources</strong> that compose it.</p>
<p style="text-align: justify;">An information system is always evolving, but the first two phases will have been performed at a given moment. <strong>New critical resources may be added, others modified or even deleted</strong>. It is essential to <strong>regularly re-evaluate the IS</strong> and update the distribution of resources within the core of trust.</p>
<h2 style="text-align: justify;"> </h2>
<p style="text-align: justify;">In conclusion, information system security now operates within a context of <strong>increasing complexity and strong diversification </strong>of infrastructure components and services.</p>
<p style="text-align: justify;">In this context, it appears increasingly complex to define a universal security model. Certain frameworks retain all their relevance within well-identified perimeters: tiering remains a reference for securing Active Directory, just like the EAM for cloud environments strongly centered on the Microsoft ecosystem. Nevertheless, these models quickly reach their limits as soon as one moves away from these specific use cases.</p>
<p style="text-align: justify;">For the majority of information systems, an approach based on risk analysis therefore stands out as the most relevant. Identifying a core of trust, clearly defining critical assets &#8211; <em>the crown jewels</em> &#8211; and deriving security measures from these elements allow for building a more pragmatic security posture, adapted to the reality of the IS and capable of evolving with it. This logic, less normative but more contextualized, undoubtedly constitutes one of the major levers for reconciling security, agility, and sustainability of information systems.</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/en/2026/01/cloud-security-adapting-to-a-new-reality/">Cloud Security: Adapting to a new reality</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com/en/">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/en/2026/01/cloud-security-adapting-to-a-new-reality/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
