<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ST2028</title>
    <description>The latest articles on Forem by ST2028 (@st2028claw).</description>
    <link>https://forem.com/st2028claw</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3817489%2F99d6a636-2c4d-4b67-b321-1a6a834f7eac.png</url>
      <title>Forem: ST2028</title>
      <link>https://forem.com/st2028claw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/st2028claw"/>
    <language>en</language>
    <item>
      <title>Your AI agent is a ticking time bomb. Here's how to defuse it.</title>
      <dc:creator>ST2028</dc:creator>
      <pubDate>Tue, 10 Mar 2026 20:39:59 +0000</pubDate>
      <link>https://forem.com/st2028claw/your-ai-agent-is-a-ticking-time-bomb-heres-how-to-defuse-it-gk3</link>
      <guid>https://forem.com/st2028claw/your-ai-agent-is-a-ticking-time-bomb-heres-how-to-defuse-it-gk3</guid>
      <description>&lt;p&gt;You let your AI coding agent loose on a refactor. Twenty minutes later it's done. You ship. But did you check what it &lt;em&gt;actually did&lt;/em&gt; while you weren't watching?&lt;/p&gt;

&lt;p&gt;Most developers don't. And that's a problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AI agents can actually do
&lt;/h2&gt;

&lt;p&gt;Modern AI coding agents aren't just writing code. They're running shell commands, reading files, making network requests, and writing to your filesystem. They have, in effect, the same permissions you do.&lt;/p&gt;

&lt;p&gt;Think about what that means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your agent can read &lt;code&gt;.env&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;Your agent can run &lt;code&gt;rm -rf&lt;/code&gt; on anything it has access to&lt;/li&gt;
&lt;li&gt;Your agent can &lt;code&gt;curl&lt;/code&gt; data to an external server&lt;/li&gt;
&lt;li&gt;Your agent can write to &lt;code&gt;/etc/passwd&lt;/code&gt;, &lt;code&gt;.ssh/authorized_keys&lt;/code&gt;, or any other sensitive path&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't theoretical threats. They're tool calls that real agents make during normal operation — often by accident, sometimes because a bad prompt led them there.&lt;/p&gt;

&lt;h2&gt;
  
  
  The near-miss that prompted this
&lt;/h2&gt;

&lt;p&gt;I was using OpenClaw to refactor some API routes. Midway through, it read my &lt;code&gt;.env&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;It wasn't malicious. It was probably looking for environment variable names to reference in the code. But it had no business touching credentials. And I had no idea it happened until I read the logs afterward.&lt;/p&gt;

&lt;p&gt;That got me thinking: &lt;strong&gt;there's no equivalent of a firewall for AI agent tool calls.&lt;/strong&gt; No way to say "you can write code, but you can't touch credentials." No way to enforce that. Just vibes and hope.&lt;/p&gt;

&lt;h2&gt;
  
  
  ClawWall
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ClawWall&lt;/strong&gt; is a policy firewall for AI agents. It intercepts every tool call before it runs and decides: allow it, deny it, or pause and ask you.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; clawwall
clawwall start
&lt;span class="nv"&gt;CLAWWALL_ENABLED&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true &lt;/span&gt;openclaw
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;ClawWall integrates with OpenClaw's &lt;code&gt;before-tool-call&lt;/code&gt; hook. Every action your agent wants to take — write a file, run a command, browse a URL — hits ClawWall's policy engine first.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent → before-tool-call hook → POST /policy/check → ClawWall daemon
                                                              ↓
                          allow (ms) ← Rule Engine → deny (ms)
                                                              ↓
                                                    ask → Dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;ALLOW&lt;/strong&gt; and &lt;strong&gt;DENY&lt;/strong&gt; decisions are sub-millisecond. Normal operations have zero added latency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ASK&lt;/strong&gt; decisions pause the agent and surface in a dashboard where you click Allow or Deny. The agent waits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Six rules, active by default
&lt;/h2&gt;

&lt;p&gt;No configuration needed. These fire on install:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rule&lt;/th&gt;
&lt;th&gt;Decision&lt;/th&gt;
&lt;th&gt;What it catches&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dangerous_command&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DENY&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;rm -rf&lt;/code&gt;, &lt;code&gt;mkfs&lt;/code&gt;, &lt;code&gt;shutdown&lt;/code&gt;, &lt;code&gt;dd&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;credential_read&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DENY&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;.aws/credentials&lt;/code&gt;, &lt;code&gt;id_rsa&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;exfiltration&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DENY&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;curl -d&lt;/code&gt;, &lt;code&gt;wget --post&lt;/code&gt;, &lt;code&gt;nc -e&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sensitive_write&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DENY&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;.ssh/&lt;/code&gt;, &lt;code&gt;/etc/passwd&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;outside_workspace&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DENY&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Paths outside your project directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal_network&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ASK&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;localhost&lt;/code&gt;, &lt;code&gt;127.x&lt;/code&gt;, &lt;code&gt;192.168.x&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The hard-block rules have no override. Your agent cannot talk its way past them, no matter how the prompt is constructed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the dashboard looks like
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;ALLOW   847
DENY     12
ASK       3

LIVE FEED
09:41:03  ✓  write  src/api/routes.ts   allow
09:41:05  ✗  read   .env                deny  credential_read
09:41:07  ✓  exec   npm test            allow
09:41:09  ✗  exec   rm -rf /tmp/build   deny  dangerous_command
09:41:11  ?  browse localhost:5173       ask   internal_network
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why not just trust the agent?
&lt;/h2&gt;

&lt;p&gt;Modern models are pretty good. But "generally careful" isn't a security posture.&lt;/p&gt;

&lt;p&gt;Consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prompt injection&lt;/strong&gt;: A malicious string in a file your agent reads could redirect its behavior&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model drift&lt;/strong&gt;: The model that's careful today might behave differently after a version update&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge cases&lt;/strong&gt;: Agents do unexpected things in long, complex sessions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Least privilege&lt;/strong&gt;: You wouldn't give a new employee root access because they seem trustworthy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point isn't that AI agents are malicious. It's that they're powerful and operate at machine speed. Without a firewall, you're betting that none of their tool calls are wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; clawwall
clawwall start
&lt;span class="nv"&gt;CLAWWALL_ENABLED&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true &lt;/span&gt;openclaw
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or with curl:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://clawwall.dev/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What's the sketchiest thing you've seen an AI agent try to do? Drop it in the comments&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://clawwall.dev" rel="noopener noreferrer"&gt;clawwall.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>openclaw</category>
    </item>
  </channel>
</rss>
