The Failure You Have Probably Already Seen An enterprise AI agent is deployed against production data. It answers the first ten questions confidently and…
Category: DZone Security Zone
Securing Loop Engineering: Six Trust Boundaries for Autonomous Agents
Opening Scenario: The GitHub Issue That Reprograms the Loop Every morning, an automated system checks a repository’s open GitHub issues, decides which…
Retrieval Augmented Generation With Spring AI 2.0, Claude, and PGvector
Language models become much more useful when they can answer questions about information they were never trained on, including your internal…
How to Protect Your AI Agents from Prompt Injection Attacks: An Active Defense Approach
I’ve spent the past week locked in a room (figuratively, mostly) building a solution for a problem that’s been bugging me since the last AI security…
The Trust Surface: The Missing Complement to Attack Surface
Organizations don’t have an identity crisis. They have a trust accounting crisis. Nobody is keeping the books. Security has gone through two eras of…
Engineering Production Agentic Systems: Part 2: The Guardrails
Tool Surface, Authorization Scopes, and Audit-Trail Engineering This is Part 2 of a three-part field manual on engineering production agentic systems.…
How to Protect Your AI Agents from Prompt Injection Attacks: An Active Defense Approach
I’ve spent the past week locked in a room (figuratively, mostly) building a solution for a problem that’s been bugging me since the last AI security…
Engineering Production Agentic Systems: Part 2: The Guardrails
Tool Surface, Authorization Scopes, and Audit-Trail Engineering This is Part 2 of a three-part field manual on engineering production agentic systems.…
Designing Secure REST APIs With Spring Boot
Most Spring Boot APIs I’ve reviewed have a security configuration that was correct three commits ago. Then somebody added a new endpoint, the security config didn’t get the matching update, and now there’s an unauthenticated path under /api/internal/ that returns…
Securing Model Context Protocol Servers: 4 Gates From Code to Production
I was showing off a support assistant I’d wired up over the Model Context Protocol. Small thing: it could search our docs and open a doc by name. A teammate, being a teammate, pasted this into the chat pretending to…
The Rise of Agentic SRE: Humans, Agents, and Reliability
Site reliability engineering has always been about reducing toil, improving resilience and helping teams respond to incidents with speed and confidence. Agentic SRE takes this idea further, allowing AI systems to observe, reason, and act within operational workflows inside of…
Why AI-Generated Code Fails Security Reviews 45% of the Time
My friend is a junior developer, roughly eight months into her first real job. She said the most enjoyable thing about her week was watching Copilot complete all of her tasks before she would even type the closing bracket. In…
Refresh Token Rotation in Node.js: Stopping Token Theft Without Logging Users Out
JWT-based authentication is simple to start with and surprisingly hard to get right. The naive setup of a long-lived access token stored in the browser is a security liability. The textbook fixes short-lived access tokens plus a refresh token —…
Hardening MCP Gateways: Mitigating July 28 Security Risks in Java Applications
The upcoming release of the July 28 Model Context Protocol (MCP) specification is a massive milestone for AI integration. By shedding the baggage of stateful connections and embracing a streamlined, stateless HTTP paradigm, MCP has finally become enterprise-ready. Developers can…
Why Do Some Proxies Work Fine for Search But Fail Once You Start Filtering Results?
Automated web scraping, market intelligence data gathering, and large-scale search engine extraction platforms frequently hit an invisible wall. A collection of proxy IPs might execute initial search queries flawlessly, yielding a standard 200 OK status code and complete HTML payloads.…
Scaling Row-Level Security With ABAC on Databricks Unity Catalog
Onboarding a new table into row-level security should be four lines of metadata. Not two new objects, a code review, and a platform-team ticket. This post describes a tag-driven attribute-based access control (ABAC) pattern built on Databricks Unity Catalog primitives…
Security Is a Platform Property, Not a Pipeline Step
A few weeks ago, I disabled key authentication on an Azure storage account we used for Terraform state management. It was one of the key security recommendations in Microsoft Defender for Cloud. It made sense to use RBAC-only permissions, enforce…
Fix Circular Dependencies in PostgreSQL Row-Level Security With SECURITY DEFINER Functions
Row-level security in PostgreSQL is one of the more useful features for multi-tenant applications. The idea is straightforward: define a policy on a table that tells PostgreSQL which rows a given user is allowed to see or modify, and the…
The Agent Security Split: Tool Layer vs Sandbox Layer
When an enterprise asks, “Is your agent platform secure?”, the question is almost always a bundle of two distinct architectural concerns: Tool layer: Can the agent only call the tools we approved? Are the tool inputs and outputs validated? Are…
Every SOC Today Is Answering the Wrong Question
Ask most detection engineers what a SOC does, and they’ll say: it finds compromised machines. That’s the wrong question. Attackers stopped compromising machines as the primary objective years ago — machines are just where identities and trust relationships happen to…