Security Firewall for Agents — Ryan Dahl, Deno

summarized

TLDR

Deno CEO Ryan Dahl argues that AI agents need a hard, external security boundary rather than relying on the agent itself to behave, and shows off Claw Patrol, a proxy that deeply inspects every byte leaving an agent. This approach blocks dangerous commands—like dropping a Postgres table through a subprocess—even when the agent itself would obey.

Key points

  • Deno Deploy uses agents (mostly Claude Opus) with full rewrite access to production systems like Postgres, Kubernetes, ClickHouse, AWS, GitHub, and Slack to autonomously handle incidents.
  • Opus is well-aligned and resists direct requests to delete user tables, but security can't depend on the model's alignment because agents are vulnerable to prompt injection from external support systems.
  • The talk's core thesis: treat the agent as untrusted software and place the security boundary outside the agent, inspecting all outbound network traffic regardless of protocol.
  • Existing solutions like L7 HTTP proxies, credential injectors, and process sandboxes are insufficient because agents can spawn subprocesses (e.g., psql) that bypass those controls.
  • Claw Patrol is an open-source MIT-licensed proxy that sits between the agent and its targets, parsing each byte of non-HTTP protocols like Postgres, and enforcing rules written in HCL (Terraform's config language).
  • It supports credential injection, human-in-the-loop approval via Slack, LLM judges, and a dashboard that shows exactly what actions agents are taking (allowed, denied, or awaiting approval).
  • Rules are version-controlled in a large HCL file that includes unit tests written as fixture requests to guarantee blocking behavior doesn't regress.
  • Claw Patrol runs over Tailscale or WireGuard, using Tailscale identity for dashboard authentication, so all communication stays off the public internet.

Tools mentioned

Techniques

  • Outbound traffic inspection at the protocol level
  • Credential injection via proxy
  • Rule-based access control with unit test fixtures
  • Human-in-the-loop approval
  • LLM-as-judge for action approval
Transcript (captions)

0:01 [music] How's it going? >> Um, my name is Ryan. Um, I'm going to I I'm I'm the CEO at Dino and uh yeah, you been developing software for for quite a

0:28 while at this point. You might know one of my projects, Node.js. Um, I want to talk about um a service that we're running at Dino called Dino Deploy. This is a system for hosting

0:41 websites and it has incidences. It's it it has downtime occasionally and uh we've got a pager duty that fires. I'm sure you're all very familiar with the very scary alarm sound that wakes you up

0:56 in the middle of the night. Um, and recently we've been playing around with using agents to automatically service these incidences. Um, in particular, OpenClaw, but other other agents as

1:11 well. Um, and we've found a pattern that is working pretty well for us that I want to share with you. Um, we actually give OpenClaw access to all sorts of systems. Postgress, Kubernetes,

1:24 Clickhouse, AWS, GitHub, Slack, uh all all sorts of things. And we we do actually give them uh rewrite access to these systems. This is very powerful uh because the

1:39 agents can actually get all of the context. They can see traces in ClickHouse. They can look in the production Postgress database at what the user what you what projects a user

1:53 owns. They they can look through Slack for uh communications uh GitHub logs etc. Um this actually works quite well. Uh the the agents are actually able to solve

2:08 quite a lot of incidences where we previously would have a human s in the loop. But it is very dangerous of course because these agents could do nefarious

2:24 things. They could start a psql subprocess and issue a delete users table. Um they could call cubecuddle delete namespace prod. Um you know they they could decide somehow that solving

2:39 the incident it means you know removing all of the users. Uh and of course we don't want that. We use Opus and Opus is remarkably well aligned. You can really not you you can

2:55 try very hard to to get it to delete the user's table and it will refuse over and over again. But this is not sufficient, right? Security can't just be wishful thinking that Opus will always obey your

3:11 your wishes. Um these S sur agents that we have are connected to the support system and thus can be prompt injected from the outside and that means that they can be

3:28 manipulated somehow. like who knows who knows what sort of uh string of characters could send opus into some uh bad state that allows it to think that it's taking the right action by doing

3:41 something very undesirable. So you know we take the stance that the sec the agents themselves have to be untrusted software. You can't rely on the agent itself to guard what it's

3:56 doing. You can't put the guard inside the agent. We run agents and I assume many of you do the same on standalone VMs. So we're not very concerned about agents touching

4:13 files on the file system. You know, they're they're they're uh they're properly isolated at the system level. But [clears throat] so you know effectively

4:26 every nefarious action that that an agent could take every good action that it takes comes in the form of some network communication some some bites over the wire and how

4:41 these bytes are formed can happen in various ways. You can of course call through MCP but also subprocesses and if you think of Postgress for example this is a nonHTTP protocol that uh open clock

4:58 can just spawn as as a subprocess and and start connecting to to services. Um so we take the stance that we really want to understand what the bites are coming out of that agent in great

5:11 detail. >> [clears throat] >> This can get very tricky in real world systems. So for example, we have a production Postgress database in AWS um

5:24 that is inside a VPC that we can only reach really through uh an EKS endpoint. And what we'd really like to do is ensure that our agent, which we want to give access to everything essentially,

5:41 can't somehow tunnel through this EKS server, spawn psql, and drop the users table, right? We're we're we're concerned about pretty crazy situations like this that get very complicated. And

5:58 I think many of you work in companies where you have real world systems where things are very complic. So yeah, just to just to highlight this, this is an outbound path the agents host

6:11 can't reach on a protocol that isn't HTTP that's gated by a rule that understands SQL. These are what human S surres would do. And how can we, you know, empower these

6:27 these agents to to have kind of the the same access that that a human might. Um, so you might ask, you might say, well, you know, there's ACL's, there's permissions, you can issue readonly uh

6:44 Postgress credentials. Um, and yeah, that's true up to a point. Um, you can do careful credential provisioning and you should. Um, but this this really requires uh working across many

6:57 different systems, provisioning credentials in in incredibly careful ways. And as I just demonstrated, the composition of access can lead to holes when you can access one system and then

7:09 another system. um MCP, you know, you can you can uh structure all of this as uh very careful MCP uh tools that uh have the proper permissions. But, you know, then then

7:26 you can't spawn subprocesses, right? You you you can't you know, as soon as as soon as the open clause spawns the the PSQL, uh you're you're kind of out broken through the the security

7:37 boundary. There are quite a few projects in this space um namely projects that kind of sit in front of an agent and under look at what it's sending and try to control

7:53 based on on uh the the bytes that are flowing through this. Um, LLM gateways. I think we're all familiar with Open Router, Light LLM, for example. These often have a guard rails feature that

8:07 can [clears throat] uh guard against prompt injection uh, you know, scan for for various uh, expressions, etc. that that are going

8:18 back and forth between the the LLM uh, provider. But, of course, that's just the LLM. uh you know we're we're talking to databases and stuff. Um you have systems

8:32 like HTTP jail and Crabtrap that are HTTP proxies that really sit at at the HTTP layer and you uh HTTP jail for example can will allow you to write rules that say well you can make get

8:48 requests but not post requests or you can access this HTTP subpath. Um, Crabt Trap is a project from Brex that has a LLM as judge that operates on the HTTP requests flowing back and forth. you

9:04 have uh proxies that inject credentials into uh as they're passing out of the agent. Uh agent vault uh being a popular one where the the agent itself never actually sees the credentials of the

9:20 system that it's talking to but passes some placeholder out and the proxy itself injects those credentials. This is an important part of the problem but not a complete solution. And you have

9:33 things like process sandboxes like Nvidia's OpenShell that you know really are kind of OS system level uh uh guards against say accessing different file system paths um accessing different SIS

9:48 calls that sort of thing but as I said before we're we're not really concerned about that because we provision uh standalone VM for for our agents. So the software that uh we've written to

10:04 address this problem is called claw patrol. Uh it's an open- source MIT license project and this is a proxy that sits in front of your agents. Um it operates not at the HTP level but

10:20 at a lower level. It understands each and every bite flowing through flowing out of your agent. It holds credentials like agent vault and can inject those credentials so that your

10:35 uh whatever agent software you're using uh doesn't actually doesn't ever actually see secret values. And um in particular, it has a very advanced rule system that allows you to

10:50 say in in precise details how how and and what requests get uh transferred out out of the agent and talk to the outside world. These rules are are kind of the the key

11:05 piece of the system and we write them in a configuration file using a language called HCL. Uh who anybody familiar with HCL? This is like the Terraform the Terraform configuration language. Uh it

11:20 actually works really well here. So we have a file that we check into git and we manage very carefully that essentially defines the permissions for all of our services at Dino and these

11:33 yeah it's it's a big long file. It's like a thousand lines and you know we we manage each and every change to that in in kind of precise detail. This is an example of a rule in our configuration

11:45 file that blocks certain Postgress functions from being uh being called. And so yeah, again Postgress being a nonHTP protocol and these rules can be applied even when tunneling through

12:01 other systems. Um, it supports uh a number of different protocols and has a plug-in system to extend it when you run into a protocol that it is not yet familiar with.

12:16 So, uh, here's here's a little demo. Unfortunately, not live. Um, but we call claw patrol run codeex in yellow mode so that it just does what you say it should do. And you tell you tell Codex, hey,

12:31 delete the users table from from Postgress and Codeex um properly uh obeys and starts a Psql subprocess where it deletes the the the users table. That uh Psql subprocess opens a network

12:49 connection to to our to the the Postgress server that goes through claw patrol where we pars each and every bite. We understand the Postgress protocol. We apply our rules and

13:03 ultimately reject that what we call an action from uh from doing something destructive. Claw Patrol has a dashboard that lets you see what your agents are doing. So

13:21 at the top you can see a couple of different uh devices or agents and the the various requests that are flowing through. Some of them being denied, some of them need approval which I'll talk

13:34 about in a second. And you can click into to each request or uh action as we call it because it's more general than HTTP requests and see the details of of what's going on. there's there's

13:48 analytics and yeah it's it's very uh utilitarian driven. It's like what what we need to understand our own agents. Um there as I said there's there's an approval system in this. So you can

14:02 route, you can define rules that don't just reject requests or actions but uh ask a human for example in a slack channel or run an LLM judge over over this um or any combination thereof,

14:18 right? Maybe first first get an LLM judge and then get approval in Slack. uh so that you can have again very precise control over what your agents are doing outside of the agent software itself

14:31 right we we treat the agent software as a black box right we we don't require any changes to to that software um I mentioned credential injection before uh claw patrol has very detailed

14:48 support for all sorts of systems credentials come in many different forms they're not just uh bearer uh headers uh it handles cookies it handles Postgress as I mentioned uh click house supports

15:03 all sorts of uh ooth protocols supports very complex things like AWS SIG v4 um so yeah this I guess what I'm trying to uh say is that this is this is really born out of utility here and meant for

15:22 real world systems This is not just you know kind of an imaginary scenario. [clears throat] Um this system works over tail scale or wire guard. Um we ourselves run claw patrol run our agents

15:40 inside of tail scale inside of a tail net and claw patrol acts as a tail scale exit node. Um we also lean on tail scale for authentication to the dashboard. So your your tail your tail scale identity

15:55 actually allows you access to to the dashboard so that we don't have to layer on another authentication mechanism. But we also have this wire guard for people who have not bought into the wonderful

16:09 tail scale ecosystem. But this works very well for us because we know that all of our stuff is is off the internet and all of these very security sensitive things are are uh tightly controlled.

16:23 Claw Patrol itself is holding all of these credentials to production systems. So you have to be very careful with it. Um so yeah, this the thesis here is is basically that agents can't be trusted

16:38 to police themselves. that includes security plugins or or modifications to the to the agent software itself. The the security boundary has to be elsewhere. And that's not to say that

16:51 alignment is not a good thing, but uh you know for for real world security systems, we we really do need to control this at at a higher level. And uh claw patrol is our attempt to uh make this

17:04 work for ourselves. Um and yeah, you can you can check it out here. >> [applause] >> I might have time for one question or so.

17:22 >> Yes sir. >> What kind of email testing do you do on this to make sure it's working? >> Uh yeah. So the question is what what sort of testing do we do we do to make

17:32 make sure it works properly? Um I I didn't mention but but there this rule file actually has a test system along with it where you can provide uh fixtures action like fixture requests

17:45 that can flow through the rules and then you can uh essentially create unit tests to make sure that that fixture is always you know that request it will always be blocked by by your set of rules. And

17:57 then of course for the claw patrol software itself we have a a large suite of of testing. Yes sir. >> So the question is as as agents get

18:12 smarter does this problem get bigger or smaller? I think I think we can we will never be able to fully trust uh AIs. I think it becomes less and less of a problem as they are smarter, have better

18:26 context, know that they're working with a company, know that that they shouldn't be doing bad things. Opus is more aligned than previous models, but I think we're always going to have to have

18:38 uh backs stop security mechanisms. Um, cool. Well, I I'll be around for other questions, but thank you very much. [applause] >> [music]

Frontier News · by Hyperjump Technology