<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software Development Life Cycle (SDLC) on Brennenstuhl on Security</title><link>https://www.janbrennenstuhl.eu/tags/sdlc/</link><description>Recent content in Software Development Life Cycle (SDLC) on Brennenstuhl on Security</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><lastBuildDate>Thu, 14 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.janbrennenstuhl.eu/tags/sdlc/index.xml" rel="self" type="application/rss+xml"/><item><title>AppSec in the Age of Agentic Engineering</title><link>https://www.janbrennenstuhl.eu/appsec-agentic-engineering/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://www.janbrennenstuhl.eu/appsec-agentic-engineering/</guid><description>&lt;img src="https://www.janbrennenstuhl.eu/appsec-agentic-engineering/agentic-engineering-appsec.webp" alt="Featured image of post AppSec in the Age of Agentic Engineering" /&gt;&lt;p&gt;Agentic engineering is collapsing the Software Development Life-Cycle (SDLC) into fast, autonomous loops. AI-augmented engineers ship code at a volume our security tooling and processes were never built for. Bartosz Ocytko recently mapped &lt;a class="link" href="https://ocytko.net/posts/quo-vadis-agentic-engineering/" title="Quo Vadis, Agentic Engineering?"
 target="_blank" rel="noopener"
 &gt;where agentic engineering is heading&lt;/a&gt;, pointing at bottlenecks in verification, open source, and compute. Reading his piece, one question stayed with me: what does this shift mean for Application Security?&lt;/p&gt;
&lt;p&gt;Agentic shifts &lt;a class="link" href="https://www.linkedin.com/posts/bartoszocytko_agentic-engineering-relocates-engineering-share-7455367680225677313-04IU" title="Bartosz Ocytko via LinkedIn"
 target="_blank" rel="noopener"
 &gt;will reward organizations with strong engineering foundations&lt;/a&gt;: those that can verify, coordinate, and safely absorb machine-generated change. AppSec is part of that foundation. Teams that already build tooling, run large-scale remediation, and treat risk quantitatively are well placed to enable agentic engineering at scale. The threat side reinforces this: as top-tier models &lt;a class="link" href="https://cloud.google.com/blog/topics/threat-intelligence/ai-vulnerability-exploitation-initial-access" title="Google: Adversaries Leverage AI for Vulnerability Exploitation, Augmented Operations, and Initial Access"
 target="_blank" rel="noopener"
 &gt;lower the barrier for attackers&lt;/a&gt;, strong security engineering becomes more valuable, not less.&lt;/p&gt;
&lt;p&gt;Three concrete shifts decide which AppSec teams will thrive:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;From detection to mitigation.&lt;/strong&gt; Fix faster than we discover.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;From policy authors to engineers.&lt;/strong&gt; Ship security tooling into the coding agent&amp;rsquo;s context.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;From gatekeepers to partners.&lt;/strong&gt; Join forces with SRE, platform, and cloud engineering teams to treat risk like reliability.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-mitigation-gap"&gt;&lt;a href="#the-mitigation-gap" class="header-anchor"&gt;&lt;/a&gt;The Mitigation Gap
&lt;/h2&gt;&lt;p&gt;Most mature organizations have solved detection. Scanners cover infrastructure, cloud platforms, application code, and CI/CD pipelines. &lt;a class="link" href="https://www.hackerone.com/blog/ai-vulnerability-discovery-remediation-gap" target="_blank" rel="noopener"
 &gt;AI-powered vulnerability discovery&lt;/a&gt; pushed detection even further. The visibility is there. The ability to fix what we find at scale is not.&lt;/p&gt;
&lt;p&gt;A typical large engineering org sits on millions of findings, tens of thousands of open risk issues, and a handful of critical ones &lt;a class="link" href="https://www.edgescan.com/the-vulnerability-backlog-crisis-why-45-of-enterprise-vulnerabilities-never-get-fixed/" title="The Vulnerability Backlog Crisis"
 target="_blank" rel="noopener"
 &gt;that linger too long&lt;/a&gt;. The bottleneck is not discovery anymore. It is remediation. Detection without mitigation only grows the backlog and extends exposure windows.&lt;/p&gt;
&lt;p&gt;Agentic engineering widens this gap. Coding agents generate code at machine speed, so new findings appear faster too and the &lt;a class="link" href="https://fazy.medium.com/agentic-coding-ais-adolescence-b0d13452f981" title="Verification debt: the hidden cost of AI-generated code"
 target="_blank" rel="noopener"
 &gt;verification debt&lt;/a&gt; grows. If remediation still depends on humans picking up tickets between feature work, the backlog wins. Risk only decreases when we fix faster than we discover.&lt;/p&gt;
&lt;p&gt;The way out is also agentic. If review results feed back into the coding agent&amp;rsquo;s evaluation loop, many findings never reach a ticket. The agent rewrites the code mid-task, before it is ever committed. Prevention inside the loop beats remediation after the fact.&lt;/p&gt;
&lt;p&gt;The catch: our tools are not built for that loop. When a coding agent submits a PR in seconds, a security gate that takes minutes is the constraint. Binary gates do not work at this volume either. &lt;em&gt;&amp;ldquo;Block on medium severity&amp;rdquo;&lt;/em&gt; blocks everything. &lt;em&gt;&amp;ldquo;Ignore everything below critical&amp;rdquo;&lt;/em&gt; leaves real risks open.&lt;/p&gt;
&lt;p&gt;We need to move from &lt;em&gt;&amp;ldquo;we found it, you fix it&amp;rdquo;&lt;/em&gt; to &lt;em&gt;&amp;ldquo;we prevent it, and we fix what slips through&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="from-detection-to-mitigation"&gt;&lt;a href="#from-detection-to-mitigation" class="header-anchor"&gt;&lt;/a&gt;From Detection to Mitigation
&lt;/h2&gt;&lt;p&gt;The traditional loop is built for human speed: Code → Scan → Ticket → Human Fix.&lt;/p&gt;
&lt;p&gt;The agentic loop compresses to: Code → Scan → Feedback → Agent Rewrites → Verified. The agent acts on findings in the same context where the code was written. No ticket. No handoff. Designing, building, and maintaining tooling for that loop is the new AppSec day job.&lt;/p&gt;
&lt;p&gt;Distribution changes too. Security scanning can no longer live only in version control platforms and CI pipelines. Every engineer needs SAST, DAST, and LLM-based reviewers available locally so their agents can run checks before opening a PR. AppSec owns the packaging, the configuration, and the policy. The job shifts from tuning the CI scanner to shipping the tooling that runs everywhere coding agents do.&lt;/p&gt;
&lt;h2 id="shift-left-appsec-as-an-engineering-discipline"&gt;&lt;a href="#shift-left-appsec-as-an-engineering-discipline" class="header-anchor"&gt;&lt;/a&gt;Shift-Left: AppSec as an Engineering Discipline
&lt;/h2&gt;&lt;p&gt;AppSec roles shift from vulnerability hunter to engineer who builds and ships security tooling and contributes remediation code directly. This is not about configuring scanners or writing policies that block deployments. It is about building the infrastructure that makes coding agents produce secure code by default.&lt;/p&gt;
&lt;h3 id="campaigns-not-tickets"&gt;&lt;a href="#campaigns-not-tickets" class="header-anchor"&gt;&lt;/a&gt;Campaigns, Not Tickets
&lt;/h3&gt;&lt;p&gt;Handling vulnerabilities one by one does not scale. Campaign-based remediation targets entire vulnerability classes at once: dependency upgrades, IaC misconfigurations, repeated insecure patterns across hundreds of services. Spotify&amp;rsquo;s &lt;a class="link" href="https://engineering.atspotify.com/2023/05/fleet-management-at-spotify-part-3-fleet-wide-refactoring/" target="_blank" rel="noopener"
 &gt;fleetshift&lt;/a&gt; is a good mental model.&lt;/p&gt;
&lt;p&gt;AppSec designs the campaign. &lt;a class="link" href="https://github.blog/news-insights/product-news/secure-code-more-than-three-times-faster-with-copilot-autofix/" title="GitHub Copilot Autofix"
 target="_blank" rel="noopener"
 &gt;Coding agents open&lt;/a&gt;, test, and verify the remediation PRs across the fleet. Impact per engineer-hour goes up by an order of magnitude. We stop being a reporting function and start being an engineering multiplier.&lt;/p&gt;
&lt;h3 id="security-tooling-for-coding-agents"&gt;&lt;a href="#security-tooling-for-coding-agents" class="header-anchor"&gt;&lt;/a&gt;Security Tooling for Coding Agents
&lt;/h3&gt;&lt;p&gt;There are at least three categories of tooling that AppSec builds and maintains:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security skills and agent instructions.&lt;/strong&gt; General &lt;a class="link" href="https://github.com/cosai-oasis/project-codeguard" target="_blank" rel="noopener"
 &gt;agentic security skills&lt;/a&gt; cover cryptography, input validation, auth, and supply chain. &lt;a class="link" href="https://agentskills.io/specification" title="Agent Skills Spec"
 target="_blank" rel="noopener"
 &gt;The format is standardised&lt;/a&gt; and coding agents consume them before and during code generation. Organization-specific skill libraries go further: internal policies (&lt;em&gt;&amp;ldquo;use the central auth SDK, not raw JWT handling&amp;rdquo;&lt;/em&gt;), approved libraries, deployment constraints. When a new vulnerability class appears, AppSec publishes a skill update and every agent in the org has it the same day.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Local security scanning infrastructure.&lt;/strong&gt; SAST and DAST available via CLI or &lt;a class="link" href="https://modelcontextprotocol.io/" target="_blank" rel="noopener"
 &gt;MCP&lt;/a&gt;, with centrally managed configuration and policies. The agent self-checks its output locally, before pushing. Engineering teams get scanning that works without setup.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security review agents.&lt;/strong&gt; Specialized agents that combine security skills with local tooling. They enforce org-specific policies and surface issues the coding agent can act on directly. Tools like &lt;a class="link" href="https://www.roborev.io/" target="_blank" rel="noopener"
 &gt;roborev&lt;/a&gt; point in this direction: a local daemon that runs automated agentic code reviews on a post-commit hook, delivering findings with file paths, line numbers, and severity before the code reaches CI.&lt;/p&gt;
&lt;p&gt;The integration pattern is a shared &lt;strong&gt;review ledger&lt;/strong&gt;: every signal source (static analyzer, dynamic scanner, LLM-based reviewer) writes to the same structured log, typically in &lt;a class="link" href="https://sarifweb.azurewebsites.net/" title="Static Analysis Results Interchange Format (SARIF)"
 target="_blank" rel="noopener"
 &gt;SARIF&lt;/a&gt;. The coding agent reads the ledger after each iteration and knows which checks passed, which failed, and what to fix next.&lt;/p&gt;
&lt;h3 id="securing-the-coding-agent"&gt;&lt;a href="#securing-the-coding-agent" class="header-anchor"&gt;&lt;/a&gt;Securing the Coding Agent
&lt;/h3&gt;&lt;p&gt;Coding agents are productive when they can &lt;strong&gt;execute&lt;/strong&gt; the code they write. They implement, run the tests, see the failure, and improve. Every agent task is therefore an untrusted workload running arbitrary code. This creates a large internal Remote Code Execution (RCE) surface that touches workstation setup and engineering practice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sandboxing and prompt injection defense&lt;/strong&gt; are tightly coupled. A coding agent consumes external inputs: dependency metadata, issue descriptions, PR comments, documentation. Each one is a potential &lt;a class="link" href="https://owasp.org/www-project-top-10-for-large-language-model-applications/" title="OWASP Top 10 for LLM Applications"
 target="_blank" rel="noopener"
 &gt;prompt injection&lt;/a&gt; vector. &lt;strong&gt;Micro-VM isolation&lt;/strong&gt; with &lt;a class="link" href="https://firecracker-microvm.github.io/" target="_blank" rel="noopener"
 &gt;Firecracker&lt;/a&gt;, &lt;a class="link" href="https://github.com/webcoyote/sandvault" target="_blank" rel="noopener"
 &gt;Sandvault&lt;/a&gt;, or &lt;a class="link" href="https://docs.docker.com/ai/sandboxes/get-started/" title="Docker Sandboxes"
 target="_blank" rel="noopener"
 &gt;Docker Sandboxes&lt;/a&gt; gives each task a disposable environment. &lt;strong&gt;Kernel-level sandboxing&lt;/strong&gt; with tools like &lt;a class="link" href="https://nono.sh/os-sandbox" target="_blank" rel="noopener"
 &gt;nono&lt;/a&gt; applies irrevocable filesystem allow-lists via Landlock (Linux) and Seatbelt (macOS), without daemons, containers, or runtime overhead. Containers offer &lt;a class="link" href="https://nono.sh/os-sandbox#kernel-sandboxing-vs-the-alternatives" target="_blank" rel="noopener"
 &gt;weaker isolation than their reputation suggests&lt;/a&gt;. AppSec picks the right &lt;a class="link" href="https://mrinal.com/articles/agent-sandboxes/" title="Agent Sandboxes"
 target="_blank" rel="noopener"
 &gt;isolation boundary&lt;/a&gt; per workload type and ships the sandbox setup as a paved-road default, together with platform teams.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Identity brokerage and delegation.&lt;/strong&gt; Coding agents should never hold persistent IAM roles or long-lived API keys. An identity broker issues short-lived, task-scoped credentials on demand and revokes them when the task completes. Beyond internal credentials, coding agents increasingly act on behalf of users across third-party services. That needs proper &lt;a class="link" href="https://oauth.net/2.1/" target="_blank" rel="noopener"
 &gt;delegation and consent&lt;/a&gt; infrastructure with narrow, time-limited permissions the user can revoke at any moment. Without this, teams end up storing tokens in agent contexts or hard-coding service accounts. Both fail the moment an agent is compromised or a prompt misinterpreted. AppSec builds the broker together with the platform and IAM teams, and abstracts it away so coding agents transparently exchange tokens instead of reusing whatever credential is at hand.&lt;/p&gt;
&lt;h3 id="threat-modeling-and-offensive-testing"&gt;&lt;a href="#threat-modeling-and-offensive-testing" class="header-anchor"&gt;&lt;/a&gt;Threat Modeling and Offensive Testing
&lt;/h3&gt;&lt;p&gt;Traditional scanners catch known CVEs, common misconfigurations, and obvious injection points. They miss logic flaws: broken access control across multi-step workflows, business logic bypasses, race conditions in state. Catching design-level flaws means encoding domain knowledge into agents. Security expertise becomes infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agentic threat modeling&lt;/strong&gt; turns a periodic exercise into a continuous practice. &lt;a class="link" href="https://www.detectionatscale.com/p/threat-modeling-ai-agents-mcp" title="Building Threat Models with MCP and AI Agents"
 target="_blank" rel="noopener"
 &gt;AppSec builds agent setups&lt;/a&gt; that review applications and repositories regularly, analyzing access control patterns, data flow boundaries, and trust assumptions. They run continuously and surface drift against the org&amp;rsquo;s security posture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Continuous offensive simulation&lt;/strong&gt; complements this: agentic pentesting as a service. Not scanners running pattern matching but agents that understand the application&amp;rsquo;s business logic and actively look for the flaws a human pentester would target: authorization boundaries, multi-step attack paths, &lt;a class="link" href="https://labs.secengai.com/p/ai-assisted-web-pentesting-using-claude-code-burp-mcp" title="AI-assisted Web Pentesting Using Claude Code &amp;#43; Burp MCP"
 target="_blank" rel="noopener"
 &gt;privilege escalation opportunities&lt;/a&gt;. Building them means turning years of offensive expertise into repeatable strategies.&lt;/p&gt;
&lt;h2 id="converging-with-sre-and-platform-engineering-risk-as-reliability"&gt;&lt;a href="#converging-with-sre-and-platform-engineering-risk-as-reliability" class="header-anchor"&gt;&lt;/a&gt;Converging with SRE and Platform Engineering: Risk as Reliability
&lt;/h2&gt;&lt;blockquote&gt;
 &lt;p&gt;A system cannot be reliable if it is insecure, and it cannot be secure if it is operationally unreliable.&lt;/p&gt;&lt;span class="cite"&gt;&lt;span&gt;― &lt;/span&gt;&lt;a href="https://google.github.io/building-secure-and-reliable-systems/raw/toc.html"&gt;&lt;cite&gt;Building Secure and Reliable Systems&lt;/cite&gt;&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;Engineering teams already manage &lt;a class="link" href="https://sre.google/sre-book/embracing-risk/" title="Google SRE Book: Embracing Risk"
 target="_blank" rel="noopener"
 &gt;error budgets&lt;/a&gt; for availability, and security can join that model. A &lt;strong&gt;risk budget&lt;/strong&gt; caps how long a high-risk, reachable vulnerability is allowed to exist in production before it burns error budget, just like downtime does. AppSec provides the framework and the tooling; the business owner sets the target like any other &lt;a class="link" href="https://sre.google/sre-book/service-level-objectives/" title="Google SRE Book: Service Level Objectives"
 target="_blank" rel="noopener"
 &gt;SLO&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This directly addresses a problem of the agentic SDLC: coding agents generate change faster than human triage can process it, so without quantitative targets every finding competes for attention equally and nothing gets prioritized. Risk budgets give a decision rule: fix what burns the budget, defer what does not.&lt;/p&gt;
&lt;p&gt;The conversation shifts from &lt;em&gt;&amp;ldquo;fix all the bugs&amp;rdquo;&lt;/em&gt; to &lt;em&gt;&amp;ldquo;manage the exposure window&amp;rdquo;&lt;/em&gt;. Security becomes a shared operational concern rather than a separate checklist.&lt;/p&gt;
&lt;p&gt;Risk budgets only work if we can tell real exposure from noise. That requires &lt;strong&gt;reachability analysis&lt;/strong&gt;: tracing the call graph from vulnerable code to entry points. A CVE in dead code does not burn budget. The same CVE behind a public API does. At the CI gate, this means blocking only changes that introduce &lt;em&gt;reachable&lt;/em&gt; risk instead of failing on raw counts. In production, a monitoring layer tracks how long reachable findings stay open and burns error budget accordingly.&lt;/p&gt;
&lt;p&gt;The convergence goes further than SRE. Platform and cloud engineering teams already ship the paved roads that engineering teams build on: base images, service templates, IaC modules, identity primitives, networking defaults. AppSec wins by shifting security &lt;em&gt;into&lt;/em&gt; &lt;a class="link" href="https://www.redhat.com/en/topics/platform-engineering/golden-paths" title="What is a Golden Path for software development?"
 target="_blank" rel="noopener"
 &gt;those golden pathes&lt;/a&gt;, not by stacking parallel guardrails on top. Hardened base images, secure-by-default service templates, opinionated IaC modules, and central identity primitives carry security with them. The job is co-owned: platform engineering ships the road, AppSec ships the security defaults inside it.&lt;/p&gt;
&lt;p&gt;On the policy side, make security policy machine-readable. The 50-page Security Policy PDF turns into agent instructions, a vector database, or &lt;a class="link" href="https://www.openpolicyagent.org/" target="_blank" rel="noopener"
 &gt;policy-as-code&lt;/a&gt; rules that coding agents check in real time. When policy is code, the agent verifies compliance mid-task without a human gate. AppSec shifts from reviewing individual changes to maintaining the policies and risk models that agents enforce continuously.&lt;/p&gt;
&lt;h2 id="from-gate-to-force-multiplier"&gt;&lt;a href="#from-gate-to-force-multiplier" class="header-anchor"&gt;&lt;/a&gt;From Gate to Force Multiplier
&lt;/h2&gt;&lt;p&gt;The shift from traditional to agentic AppSec touches every part of how we think about security in the SDLC:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Dimension&lt;/th&gt;
 &lt;th&gt;Where we&amp;rsquo;ve been&lt;/th&gt;
 &lt;th&gt;Where we&amp;rsquo;re heading&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Focus&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Detection and reporting&lt;/td&gt;
 &lt;td&gt;Mitigation and prevention&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Verification&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Periodic, gate-based&lt;/td&gt;
 &lt;td&gt;Continuous, real-time&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Remediation&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Human-led via tickets&lt;/td&gt;
 &lt;td&gt;Coding-agent-led auto-fix loops&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Trust Model&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Developer-centric&lt;/td&gt;
 &lt;td&gt;Zero-trust, actor-centric&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Scanners&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Deterministic rules&lt;/td&gt;
 &lt;td&gt;Probabilistic, context-aware&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Scale&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;One issue at a time&lt;/td&gt;
 &lt;td&gt;Campaign-based, fleet-wide&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Velocity&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Slowed down by triage&lt;/td&gt;
 &lt;td&gt;Accelerated by auto-verification&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For years, we carried structural problems that were unsolvable at human scale: too many findings, too few engineers, a feedback loop that was too slow. Agentic engineering does not just create new challenges. It hands us the tools to finally solve the old ones. Auto-remediation loops have the potential to close the gap between finding and fixing. Contextual risk assessment filters the noise. Machine-readable policies spread security expertise beyond the security team. Campaign-based remediation clears backlogs that have grown for years.&lt;/p&gt;
&lt;p&gt;The industry bottleneck is shifting from code generation to verification and mitigation. Agentic shifts will reward AppSec teams with strong engineering foundations: teams that move from detection to mitigation, turn security into a hands-on engineering discipline, and partner with SRE, platform, and cloud engineering to treat risk like reliability. These teams will not just keep pace. They will become the force multipliers that make agentic engineering safe enough to trust at scale.&lt;/p&gt;</description></item></channel></rss>