Transforming AppSec: Protecting Everything as Code & Emerging Tech
This panel discussion explores the challenges of securing modern development environments where infrastructure, policy, and application logic are defined as code. The speakers analyze the shift in responsibility for security, the impact of emerging technologies like generative AI on software development, and the necessity of integrating security into the CI/CD pipeline. The discussion emphasizes the importance of contextual training for developers and the need for a balanced approach to vulnerability management in complex, automated environments.
Why Your Infrastructure as Code Pipeline is the Newest Attack Vector
TLDR: Modern development environments have blurred the lines between application code and infrastructure, creating a massive, often overlooked, attack surface. When developers define cloud resources, policies, and network configurations in code, they inadvertently introduce vulnerabilities that bypass traditional perimeter defenses. Pentesters and researchers must pivot their focus toward auditing CI/CD pipelines and IaC templates to identify misconfigurations before they reach production.
Security professionals have spent decades obsessing over the application layer, but the ground has shifted beneath our feet. We are no longer just securing binaries or web endpoints; we are securing the entire lifecycle of the infrastructure itself. When everything is defined as code, the distinction between a developer pushing a feature and an engineer deploying a cluster vanishes. This convergence is not just an operational shift, it is a fundamental change in how we need to approach offensive security.
The Infrastructure as Code Blind Spot
Infrastructure as Code (IaC) tools like Terraform and CloudFormation have become the backbone of modern cloud environments. They allow teams to spin up complex, multi-region architectures with a single commit. However, this speed comes at a cost. A single misconfigured template can expose an entire S3 bucket, misconfigure an IAM role, or leave a Kubernetes cluster wide open to the public internet.
During recent engagements, it has become clear that the most critical vulnerabilities are often found in the CI/CD pipeline rather than the application code itself. If a developer commits a template that defines an overly permissive security group, the pipeline will dutifully deploy it. The vulnerability is not in the application logic; it is in the definition of the environment. For a pentester, this means the focus must shift from manual web application testing to auditing the repository and the deployment process.
Shifting Left and the Vulnerability Gap
The industry mantra of "shifting left" has pushed security responsibilities onto developers who are often ill-equipped to handle them. We expect developers to write secure code, manage complex cloud IAM policies, and maintain secure CI/CD configurations simultaneously. This is a recipe for Injection and Broken Access Control at the infrastructure level.
Consider a scenario where a developer uses a third-party library or a base container image from a public registry. If that component contains a vulnerability, it is not just an application-level risk; it is a supply chain compromise that can lead to full environment takeover. When we talk about T1195 - Supply Chain Compromise, we are often talking about these exact dependencies. The risk is compounded when these components are baked into the IaC templates that define your production environment.
Auditing the Pipeline
For those of us in the trenches, the goal is to find the path of least resistance. If you are testing an environment, stop looking only at the web UI. Start by mapping the CI/CD pipeline. Can you influence the build process? Can you inject malicious code into a deployment script? If you can compromise the pipeline, you own the infrastructure.
A common technique involves analyzing the git history for secrets or hardcoded credentials that were accidentally committed. Even if the current version of the template is secure, older commits often contain the keys to the kingdom. Once you have access to the repository, you can modify the IaC files to create a backdoor, such as adding an SSH key to an EC2 instance or creating a new IAM user with administrative privileges.
# Example of checking for exposed secrets in git history
git log -p | grep -E "AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY"
This is not theoretical. We see these types of misconfigurations in bug bounty programs constantly. The impact is rarely limited to a single service; it is almost always a full compromise of the cloud account.
The Human Element of Security
Training developers to be security-conscious is essential, but it is not a silver bullet. We cannot expect developers to be security experts. Instead, we need to build guardrails into the development process. This means implementing automated policy checks that run against IaC templates before they are ever applied. If a template violates a security policy, the build should fail.
However, the real challenge is the "bottleneck" problem. If security teams manually review every pull request, development grinds to a halt. If we automate everything, we risk missing the subtle, context-dependent vulnerabilities that only a human can spot. The solution is a hybrid approach: automate the low-hanging fruit and focus human expertise on the complex, high-risk areas of the architecture.
Moving Forward
We need to stop treating infrastructure as a static entity and start treating it as a dynamic, evolving part of the application. For researchers and pentesters, this is an invitation to expand your scope. The next generation of critical bugs will not be found in a simple SQL injection on a login page; they will be found in the way that infrastructure is defined, deployed, and managed.
If you are not already auditing the CI/CD pipelines of your targets, you are missing the most significant attack surface in the modern enterprise. Start by looking at the IaC templates, the build scripts, and the secrets management practices. The tools are there, the vulnerabilities are there, and the impact is massive. It is time to start looking at the code that builds the world, not just the code that runs in it.
Vulnerability Classes
Tools Used
Target Technologies
Attack Techniques
OWASP Categories
Up Next From This Conference

Breaking Secure Web Gateways for Fun and Profit

Listen to the Whispers: Web Timing Attacks That Actually Work

Abusing Windows Hello Without a Severed Hand
Similar Talks

Unmasking the Snitch Puck: The Creepy IoT Surveillance Tech in the School Bathroom

The Dark Side of Bug Bounty

