devopsdays Portland 2026

The Diff That Looked Fine: Catching Malicious IaC Changes Your Scanner Misses
2026-09-10 , Ballroom
All times in US/Pacific

Scanners like Checkov and tfsec are great at flagging the misconfigurations we already have rules for, and nearly useless against the one someone introduces on purpose. After watching SolarWinds and Codecov turn CI/CD pipelines into the front door, I went looking for a better way to catch malicious changes in Terraform, Kubernetes, and GitHub Actions pairing old-fashioned syntax-tree analysis with a small language model that reads a diff in context, the way a security engineer would. This is the real story of what worked, what threw so many false positives it nearly broke developer trust, and where AI earns its keep in DevSecOps versus where it just adds noise.


Every team running infrastructure as code has the same setup: a scanner wired into CI, a wall of findings, and a quiet agreement to ignore most of them. Those tools catch the mistakes we already know about a public S3 bucket, an over-broad IAM policy, a missing encryption flag. They are much weaker against the change someone makes on purpose: a swapped module source, a subtle permission escalation, a workflow step that quietly ships a secret out the door. Look at how SolarWinds and Codecov actually played out and the pipeline itself was the attack surface and most IaC tooling would have waved those changes right through.
So I set out to answer an uncomfortable question: if someone slipped a malicious change into our Terraform, Kubernetes, or GitHub Actions config, would anything stop it? The approach I landed on combines two things that are individually old news abstract syntax trees to understand the structure of a change, and a small, cheap language model to read the diff in context and judge intent. Neither is magic on its own. Together they caught changes that pattern-based scanners never flagged, sorting the boring diffs from the dangerous ones about nine times out of ten in testing.
This is not a victory lap, though. I will spend real time on where it went sideways: legitimate security-hardening changes that looked identical to attacks, refactors that tripped every anomaly check, and a false-positive rate that would've trained developers to click past the tool inside a week if I would let it auto-block. That's why it ended up with a human in the loop for anything ambiguous and automatic blocking only when it was very sure. You'll leave with a grounded sense of where AI helps in DevSecOps and where it's just noise, a way to think about your own IaC as something an attacker will target, and a strong opinion about the fastest way to kill a security tool: make people stop trusting it.

Shalini Sudarsan is a DevSecOps Engineering Leader at KinderCare Learning Companies, Portland, OR, USA. Designing reliable, secure, and cost-optimized data and AI platforms. A Forbes Technology Council Member, Fellow of IETE and Women in Engineering (WIE) Oregon section, she drives enterprise AI adoption with a governed operating model that speeds time-to-market while lowering risk and spend. Shalini’s expertise spans BI strategy, data platform architecture, MLOps, observability, and value realization. She is known for translating complex engineering into measurable business outcomes. Shalini brings deep technical rigor and business expertise in the areas of DevOps and Reliability Engineering.A committed advocate for advancing technology, Shalini regularly presents at international conferences and contributes to IEEE and ACM as a technical reviewer.