<?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>DEV Community: razashariff</title>
    <description>The latest articles on DEV Community by razashariff (@razashariff).</description>
    <link>https://dev.to/razashariff</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%2F3817319%2F79b4944a-f4d6-4260-8f21-00d70f243baf.png</url>
      <title>DEV Community: razashariff</title>
      <link>https://dev.to/razashariff</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/razashariff"/>
    <language>en</language>
    <item>
      <title>We Sent a Cryptographically-Signed AI Agent Payment Over 868 MHz Radio. No Internet. No Cloud. Just Trust.</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Wed, 06 May 2026 13:13:08 +0000</pubDate>
      <link>https://dev.to/razashariff/we-sent-a-cryptographically-signed-ai-agent-payment-over-868-mhz-radio-no-internet-no-cloud-just-2493</link>
      <guid>https://dev.to/razashariff/we-sent-a-cryptographically-signed-ai-agent-payment-over-868-mhz-radio-no-internet-no-cloud-just-2493</guid>
      <description>&lt;h1&gt;
  
  
  We Sent a Cryptographically-Signed AI Agent Payment Over 868 MHz Radio. No Internet. No Cloud. Just Trust.
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;By Raza Sharif, CEO/Founder | &lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Airplane mode. Two Heltec LoRa boards. A signed MCPS frame crossed 868 MHz radio and settled in under 2 seconds.&lt;/p&gt;

&lt;p&gt;No internet. No Lightning node. No cloud infrastructure. No blockchain.&lt;/p&gt;

&lt;p&gt;Just a cryptographic signature, a nonce, and a trust level — travelling at the speed of radio.&lt;/p&gt;

&lt;p&gt;This is what happened, how we built it, and why it matters for every AI agent you are shipping right now.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem Nobody Is Talking About
&lt;/h2&gt;

&lt;p&gt;MCP (Model Context Protocol) has &lt;strong&gt;97 million SDK downloads&lt;/strong&gt;. Over &lt;strong&gt;13,000 servers&lt;/strong&gt; are publicly listed. It is the fastest-growing AI integration standard in history.&lt;/p&gt;

&lt;p&gt;It shipped with no message signing.&lt;/p&gt;

&lt;p&gt;Not "limited signing." Not "optional signing." Zero. Any process on the network can forge a tool call. Any captured frame can be replayed indefinitely. A server has no cryptographic way to verify the agent calling it is who it claims to be.&lt;/p&gt;

&lt;p&gt;Here is what a standard MCP tool call looks like on the wire today:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"jsonrpc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tools/call"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"params"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"transfer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"to"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"agent_b"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No signature. No nonce. No identity. If you capture that frame, you can replay it forever.&lt;/p&gt;

&lt;p&gt;OWASP confirmed prompt injection, tool poisoning, and authentication bypass as the top three MCP threats — all exploitable on standard implementations today. Gartner reported a 1,700% increase in agent security enquiries in 2026. The industry is waking up to a problem that was baked in from day one.&lt;/p&gt;

&lt;p&gt;We built the security model for secure MCP use.&lt;/p&gt;




&lt;h2&gt;
  
  
  MCPS — Model Context Protocol Security
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/" rel="noopener noreferrer"&gt;MCPS&lt;/a&gt; is an IETF internet draft that adds cryptographic signing to every MCP message. ECDSA P-256. Per-message nonces. Timestamp validation. L0–L4 trust levels. Drop-in compatible with the existing MCP spec.&lt;/p&gt;

&lt;p&gt;Every MCPS frame looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MCPS:1:&amp;lt;agentHash&amp;gt;:&amp;lt;serverHash&amp;gt;:&amp;lt;amountHex&amp;gt;:&amp;lt;nonce&amp;gt;:&amp;lt;timestamp&amp;gt;:&amp;lt;P256sig&amp;gt;:&amp;lt;memo&amp;gt;

Example:
MCPS:1:a3f8c2d1:b7e94a20:0x03E8:a1b2c3d4:1746543210:MEQCIHx9...==:transfer
       ↑version ↑agent    ↑server ↑amount  ↑nonce    ↑unix ts  ↑sig44     ↑memo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server verifies the signature before executing anything. The nonce is stored and rejected if seen again. The trust level gates what the agent is permitted to do.&lt;/p&gt;

&lt;p&gt;Seven npm packages. A Java Keycloak mapper. Python and Go implementations. The &lt;code&gt;x-agent-trust&lt;/code&gt; extension is now on the &lt;a href="https://spec.openapis.org/registry/x-agent-trust" rel="noopener noreferrer"&gt;official OpenAPI extension registry&lt;/a&gt; — PR #67, merged April 2026, approved by Microsoft and the OpenAPI TDC.&lt;/p&gt;

&lt;p&gt;That is the protocol. Now here is what we did with it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Build: MCPS Over 868 MHz LoRa Radio
&lt;/h2&gt;

&lt;p&gt;We wanted to know: how transport-agnostic is MCPS really?&lt;/p&gt;

&lt;p&gt;So we stripped away every assumption. No TCP/IP. No Wi-Fi. No internet. We put the phone into airplane mode and routed an MCPS payment frame across a 868 MHz LoRa radio mesh.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hardware
&lt;/h3&gt;

&lt;p&gt;Two &lt;a href="https://heltec.org/project/wifi-lora-32-v3/" rel="noopener noreferrer"&gt;Heltec WiFi LoRa 32 V3&lt;/a&gt; boards running Meshtastic firmware:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;c758&lt;/strong&gt; — TX board. Paired with an iPhone via BLE. Receives MCPS frames from our iOS app and transmits over 868 MHz LoRa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;84cc&lt;/strong&gt; — RX board. Paired with a Mac via BLE. Receives incoming LoRa frames and forwards to the lnode-mesh backend.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────┐
│  iPhone (Airplane Mode)                                 │
│  iOS App — signs MCPS frame — sends via BLE             │
└────────────────────────┬────────────────────────────────┘
                         │ BLE
                         ▼
┌─────────────────────────────────────────────────────────┐
│  Heltec c758 — TX Board                                 │
│  Transmits over 868 MHz LoRa                            │
└────────────────────────┬────────────────────────────────┘
                         │ 868 MHz LoRa (radio)
                         ▼
┌─────────────────────────────────────────────────────────┐
│  Heltec 84cc — RX Board                                 │
│  Receives over 868 MHz LoRa                             │
└────────────────────────┬────────────────────────────────┘
                         │ BLE
                         ▼
┌─────────────────────────────────────────────────────────┐
│  Mac — ble-listener.py                                  │
│  Meshtastic protobuf decode → POST /radio/receive       │
└────────────────────────┬────────────────────────────────┘
                         │ HTTP localhost
                         ▼
┌─────────────────────────────────────────────────────────┐
│  lnode-mesh.js — Node.js backend                        │
│  Verify MCPS sig → check nonce → update balances        │
│  SETTLED ✓                                              │
└─────────────────────────────────────────────────────────┘

Zero internet in the chain. Phone in airplane mode throughout.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The iOS App
&lt;/h3&gt;

&lt;p&gt;The app builds a valid MCPS frame, signs it with ECDSA P-256, and sends it to the c758 board via BLE using the Meshtastic &lt;code&gt;TORADIO&lt;/code&gt; characteristic. The key part was getting the Meshtastic 2.x protobuf encoding right — specifically &lt;code&gt;FIXED32&lt;/code&gt; wire type for the broadcast destination address (&lt;code&gt;0xFFFFFFFF&lt;/code&gt;) and the correct field numbers for &lt;code&gt;ToRadio&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="c1"&gt;// MeshtasticBLE.swift — encode broadcast destination correctly&lt;/span&gt;
&lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;func&lt;/span&gt; &lt;span class="nf"&gt;encodeFixed32&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;fieldNumber&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;UInt32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;Data&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;Data&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;UInt8&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;fieldNumber&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;// wire type 5 = 32-bit fixed&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;UInt8&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;UInt8&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;UInt8&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;UInt8&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mh"&gt;0xFF&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The BLE Listener
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;ble-listener.py&lt;/code&gt; runs on the Mac, connects to the 84cc board via BLE, decodes the Meshtastic protobuf &lt;code&gt;FromRadio&lt;/code&gt; stream, extracts text messages, and POSTs any MCPS frame to the settlement backend.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# ble-listener.py — detect and forward MCPS frames
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;MCPS:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;post_to_backend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rssi&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pkt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rx_rssi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;snr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pkt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rx_snr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;verdict&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;verdict&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# → SETTLED ✓
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Settlement Backend
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;lnode-mesh.js&lt;/code&gt; receives the frame, verifies the ECDSA signature, checks the nonce against a replay store, validates the trust level, and updates agent balances. It is the same MCPS settlement logic that runs in our cloud stack — unmodified — now running over radio.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Moment It Worked
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  ╔══════════════════════════════════════════════╗
  ║  MCPS PAYMENT RECEIVED OVER 868 MHz RADIO    ║
  ╠══════════════════════════════════════════════╣
  ║  Frame: MCPS:1:a3f8c2:b7e94a:0x03E8:a1b2..   ║
  ║  RSSI:  -7 dBm                               ║
  ║  SNR:   6.5 dB                               ║
  ╠══════════════════════════════════════════════╣
  ║  Verdict: SETTLED ✓                          ║
  ║  agent_a: 9000 sats                          ║
  ║  agent_b: 11000 sats                         ║
  ╚══════════════════════════════════════════════╝
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Phone in airplane mode. No Wi-Fi. No mobile data. No internet anywhere in the chain.&lt;/p&gt;

&lt;p&gt;RSSI -7 dBm. SNR 6.5 dB. Clean signal. Clean settlement.&lt;/p&gt;

&lt;p&gt;First MCPS-signed agent transaction over radio. Done.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters Beyond the Demo
&lt;/h2&gt;

&lt;p&gt;We are not trying to build Stripe over LoRa. That is not the point.&lt;/p&gt;

&lt;p&gt;The point is this: &lt;strong&gt;MCPS is transport-agnostic&lt;/strong&gt;. The signing, the nonce, the trust level — they live in the frame, not in the network. HTTP, WebSocket, stdio, gRPC, BLE, 868 MHz radio — it does not matter. The trust travels with the data.&lt;/p&gt;

&lt;p&gt;That has real consequences:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Disconnected environments&lt;/strong&gt;&lt;br&gt;
Agents operating in disaster zones, remote industrial sites, or air-gapped networks can still execute cryptographically-attributed transactions. When connectivity returns, settlement syncs. The signed log is the audit trail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Incentivised mesh routing&lt;/strong&gt;&lt;br&gt;
Every relay hop can earn a signed micro-credit. Pay-per-forward with cryptographic receipt. No internet required for accounting — only for final settlement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. IoT and sensor data markets&lt;/strong&gt;&lt;br&gt;
Remote sensors publish data over mesh. Agents subscribe and pay. Deferred settlement when they reconnect. Metered access with a tamper-proof ledger.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The real insight for cloud deployments&lt;/strong&gt;&lt;br&gt;
If MCPS works on a 250 bps radio link in airplane mode, it works in your Kubernetes cluster. It works in your CI pipeline. It works in your agentic commerce stack. If the most constrained transport you can imagine handles it, your infrastructure certainly can.&lt;/p&gt;

&lt;p&gt;Protocol-agnostic trust was always the goal. Radio just proved it.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Broader Stack
&lt;/h2&gt;

&lt;p&gt;lnode-mesh is one piece. The full picture:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Identity&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AgentPass&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Agent registry, trust scoring L0–L4, AML/sanctions screening (75K+ entries)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Signing&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;MCPS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ECDSA P-256 per-message signing, nonce replay protection, IETF draft&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transport&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ATTP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Agent Trust Transport Protocol — 5 protocol bindings, IETF draft&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scanning&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;CyberSecClaw&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One import, secure-by-default agents. Identity, injection blocking, audit trail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketplace&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;LATTP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Find, scan, and pay for verified MCP services. DAST on every call&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DAST&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Cybersecify&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;25+ OWASP MCP checks, active exploitation probes, CI/CD integration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All of it runs over any transport. Including radio.&lt;/p&gt;


&lt;h2&gt;
  
  
  Standards
&lt;/h2&gt;

&lt;p&gt;This work is not a side project. It is submitted, published, and independently citable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IETF MCPS&lt;/strong&gt; — &lt;a href="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/" rel="noopener noreferrer"&gt;draft-sharif-mcps-secure-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IETF ATTP&lt;/strong&gt; — &lt;a href="https://datatracker.ietf.org/doc/draft-sharif-attp/" rel="noopener noreferrer"&gt;draft-sharif-attp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IETF AEBA&lt;/strong&gt; — &lt;a href="https://datatracker.ietf.org/doc/draft-sharif-aeba/" rel="noopener noreferrer"&gt;draft-sharif-aeba&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI Registry&lt;/strong&gt; — &lt;a href="https://spec.openapis.org/registry/x-agent-trust" rel="noopener noreferrer"&gt;x-agent-trust extension&lt;/a&gt; (PR #67, merged April 2026)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OWASP MCPVS&lt;/strong&gt; — MCP Verification Standard v0.1, 40 requirements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OWASP AISVS 1.0&lt;/strong&gt; — 3 requirements merged, Vienna June 2026&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Academic citation&lt;/strong&gt; — arXiv:2604.05969 cites MCPS as Defence Mechanism D5, alongside Anthropic, Google, Microsoft, NIST (Youngstown State University)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preprint&lt;/strong&gt; — DOI: &lt;a href="https://zenodo.org/record/19409366" rel="noopener noreferrer"&gt;10.5281/zenodo.19409366&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Get the Code
&lt;/h2&gt;

&lt;p&gt;The lnode-mesh stack (iOS app + BLE listener + settlement backend) is private. If you are working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent infrastructure for disconnected environments&lt;/li&gt;
&lt;li&gt;Incentivised mesh networking&lt;/li&gt;
&lt;li&gt;Air-gapped payment resilience&lt;/li&gt;
&lt;li&gt;MCPS integration for your platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reach out directly: &lt;strong&gt;&lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;npm packages (public): &lt;code&gt;mcps-core&lt;/code&gt;, &lt;code&gt;agentpass&lt;/code&gt;, &lt;code&gt;agentsign&lt;/code&gt;, &lt;code&gt;mcps-openclaw&lt;/code&gt;, &lt;code&gt;mcp-secure&lt;/code&gt;&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;mcps-core agentpass
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Bottom Line
&lt;/h2&gt;

&lt;p&gt;We built agents that transact over crypto. Then we added radio.&lt;/p&gt;

&lt;p&gt;Not because it was easy. Because it proved the thing that matters: &lt;strong&gt;trust is a property of the message, not the network&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Sign it. Verify it. Settle it. Anywhere.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Raza Sharif — CEO/Founder]&lt;br&gt;
*CyberSecAI Ltd | &lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt; | Patent Pending&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>iot</category>
      <category>security</category>
    </item>
    <item>
      <title>We Built the Missing Trust Layer for AI Agent Payments</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Fri, 01 May 2026 07:40:03 +0000</pubDate>
      <link>https://dev.to/razashariff/we-built-the-missing-trust-layer-for-ai-agent-payments-5gf2</link>
      <guid>https://dev.to/razashariff/we-built-the-missing-trust-layer-for-ai-agent-payments-5gf2</guid>
      <description>&lt;h2&gt;
  
  
  AI Agents Will Move Money. The Infrastructure Isn't Ready.
&lt;/h2&gt;

&lt;p&gt;In Q1 2026, Stripe launched the Machine Payments Protocol. Mastercard shipped Agent Pay with agentic tokens. Visa announced Intelligent Commerce. Cloudflare deployed Web Bot Auth for agent-initiated transactions. AWS published guidance on x402 for autonomous payments. FedNow crossed $245 billion in quarterly volume with 49,000% year-over-year growth.&lt;/p&gt;

&lt;p&gt;The message is clear: AI agents are entering the payment system. Not as assistants that help humans pay, but as autonomous actors that initiate, authorise, and execute financial transactions without a human in the loop.&lt;/p&gt;

&lt;p&gt;But every one of these platforms assumes someone else handles trust. &lt;/p&gt;

&lt;p&gt;Stripe authenticates the API key. Mastercard validates the token. Visa checks the credential. None of them answer the question that matters: &lt;strong&gt;should this specific agent, making this specific payment, to this specific counterparty, at this specific amount, right now, be trusted to do so?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We built the stack that answers that question.  Agent identity is broken. We fixed it.                                                                                                   &lt;/p&gt;

&lt;p&gt;OAuth was built for humans with browsers. API keys were built for developers with dashboards. Neither was designed for autonomous&lt;br&gt;&lt;br&gt;
software making financial decisions at machine speed with no human in the loop. &lt;/p&gt;

&lt;p&gt;Retrofitting human identity patterns onto agents is an&lt;br&gt;&lt;br&gt;
anti-pattern -- it gives you authentication without trust, access without limits, and credentials without accountability.                &lt;/p&gt;

&lt;p&gt;ATTP starts from the premise that identity is necessary but not sufficient. Knowing who the agent is does not tell you what it should beallowed to do.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Six-Layer Problem
&lt;/h2&gt;

&lt;p&gt;A human making a payment goes through multiple trust checks without thinking about it: their bank knows them, their card has limits, the merchant is verified, fraud detection runs in real-time, and they can call the bank to reverse a charge. Decades of infrastructure sits behind every tap of a card.&lt;/p&gt;

&lt;p&gt;An AI agent making a payment has none of this. It has an API key.&lt;/p&gt;

&lt;p&gt;The stack we've built at CyberSecAI addresses six layers that must all pass before an agent payment executes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Layer 1: Identity    -- Is this agent who it claims to be?
Layer 2: Trust       -- Has this agent earned the right to transact?
Layer 3: Integrity   -- Is this payment request authentic and untampered?
Layer 4: Enforcement -- Does this transaction fall within the agent's limits?
Layer 5: Compliance  -- Is the counterparty sanctioned?
Layer 6: Audit       -- Is there a tamper-evident record of everything?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most agent authentication protocols handle Layer 1. Some handle Layer 3. We haven't found anything else that handles Layers 2 through 6.&lt;/p&gt;

&lt;h2&gt;
  
  
  ATTP: The Trust Layer
&lt;/h2&gt;

&lt;p&gt;We submitted the Agent Trust Transport Protocol (ATTP) to the IETF as &lt;a href="https://datatracker.ietf.org/doc/draft-sharif-attp/" rel="noopener noreferrer"&gt;draft-sharif-attp&lt;/a&gt;. ATTP is protocol-agnostic -- it defines how trust works for autonomous agents regardless of what transport protocol they use.&lt;/p&gt;

&lt;p&gt;The core concept: &lt;strong&gt;trust is not identity&lt;/strong&gt;. Identity is binary. You are who you claim to be, or you are not. Trust is graduated. It is earned over time, adjusted by behaviour, and revocable instantly.&lt;/p&gt;

&lt;p&gt;ATTP defines five trust levels:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Score Range&lt;/th&gt;
&lt;th&gt;What the Agent Can Do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;L0&lt;/td&gt;
&lt;td&gt;0-19&lt;/td&gt;
&lt;td&gt;Nothing. Identified but cannot transact. Read-only.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L1&lt;/td&gt;
&lt;td&gt;20-39&lt;/td&gt;
&lt;td&gt;Micro-payments. $10 per transaction, $50 per day.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L2&lt;/td&gt;
&lt;td&gt;40-59&lt;/td&gt;
&lt;td&gt;Standard transactions. $100/tx, $500/day.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L3&lt;/td&gt;
&lt;td&gt;60-79&lt;/td&gt;
&lt;td&gt;Elevated. $1,000/tx, $5,000/day. Monitored.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L4&lt;/td&gt;
&lt;td&gt;80-100&lt;/td&gt;
&lt;td&gt;Full access. $50,000/tx, $200,000/day. Every action audited.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;New agents start at L0. They cannot spend a single dollar. Trust is earned through five dimensions: code attestation, execution success rate, behavioural consistency, operational tenure, and anomaly history. Each dimension contributes equally to a composite score that maps to the trust level.&lt;/p&gt;

&lt;p&gt;This is not a configuration setting. It is a protocol-enforced constraint. An L0 agent cannot make payments regardless of what the application layer says. The trust check happens before the payment processor ever sees the request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Promotion Rate Limiting
&lt;/h3&gt;

&lt;p&gt;Earning trust takes time. This is deliberate. ATTP mandates minimum durations at each level:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;L0 to L1: 24 hours, 5 successful actions minimum&lt;/li&gt;
&lt;li&gt;L1 to L2: 7 days, 20 successful actions&lt;/li&gt;
&lt;li&gt;L2 to L3: 30 days, 100 successful actions, zero critical anomalies&lt;/li&gt;
&lt;li&gt;L3 to L4: 90 days, 500 successful actions, zero anomalies, manual attestation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An attacker who creates a fake agent and tries to build trust through small transactions needs at minimum &lt;strong&gt;128 days&lt;/strong&gt; of sustained, anomaly-free operation before reaching L4. Demotions, by contrast, are instant. A single critical anomaly at L4 drops the agent to L2 immediately.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kill Switches
&lt;/h3&gt;

&lt;p&gt;Certificate revocation is too slow for payments. CRLs update on schedules. OCSP adds latency and creates a single point of failure. If an agent is compromised at 2:47 PM and your revocation mechanism runs hourly, that is up to 60 minutes of unauthorised transactions at machine speed.&lt;/p&gt;

&lt;p&gt;ATTP kill switches are checked on every single request. Per-agent, per-principal, and global emergency. When activated, the next request is denied. No grace period. No propagation delay. The agent's trust score is frozen, not reset -- so when the issue is resolved, the agent resumes at its previous level rather than starting over.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCPS: The MCP Binding
&lt;/h2&gt;

&lt;p&gt;ATTP is transport-agnostic. It defines what trust means. Protocol bindings define how trust is enforced on specific transports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/" rel="noopener noreferrer"&gt;MCPS (MCP Secure)&lt;/a&gt; is the binding for the Model Context Protocol -- the protocol behind 97 million SDK downloads that connects AI agents to tools. MCPS wraps every JSON-RPC message in a signed envelope:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"jsonrpc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tools/call"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"params"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"payment_initiate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"recipient"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Acme Corp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"USD"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"signature"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MEUCIQD..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"nonce"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a1b2c3d4-e5f6-7890-abcd-ef1234567890"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"timestamp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1714521600000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trustLevel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"keyFingerprint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sha256:9f86d08..."&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every message is signed with ECDSA P-256. Every message carries a nonce for replay protection. Every message includes a timestamp checked against a bounded window (5 minutes). The trust level is embedded in the envelope and verified before the tool executes.&lt;/p&gt;

&lt;p&gt;If an attacker intercepts and replays a signed payment request, the nonce is already used -- rejected. If they modify the amount, the signature is invalid -- rejected. If they steal the agent's credentials but the kill switch has been activated -- rejected. If the agent's trust level has decayed due to dormancy -- the payment exceeds the new lower limits and is rejected.&lt;/p&gt;

&lt;p&gt;MCPS is the first binding. ATTP also defines bindings for REST APIs (via HTTP headers), Google A2A (via Task metadata), gRPC (via metadata headers), and GraphQL (via extensions). The same trust model works across all of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanctions Screening: Not Optional
&lt;/h2&gt;

&lt;p&gt;If an AI agent initiates a payment on behalf of a regulated entity, every counterparty must be screened against sanctions lists. This is not a feature request. It is a legal requirement under AML regulations in virtually every jurisdiction.&lt;/p&gt;

&lt;p&gt;We integrated with global Fintechs, on open-source sanctions screening engine that checks against OFAC SDN, EU, UK, and UN sanctions lists in real-time. Every payment flows through screening before the ACH file is generated.&lt;/p&gt;

&lt;p&gt;The screening uses fuzzy matching with a configurable threshold. A 70% match score blocks the transaction. Near-misses are logged for compliance review. The full screening result -- query, lists checked, matches, decision -- is recorded in the audit trail and retained for the regulatory minimum of five years.&lt;/p&gt;

&lt;p&gt;An authenticated agent with L4 trust still gets blocked if the recipient matches a sanctioned entity. Identity does not override compliance. Trust does not override law.&lt;/p&gt;

&lt;p&gt;Consider what happens without this: an agent authenticates with valid credentials, passes all identity checks, and initiates a payment to a sanctioned entity. You now have cryptographic proof that the payment was legitimate. That is worse than no security at all -- it is auditable evidence of a compliance failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Payment Flow: End to End
&lt;/h2&gt;

&lt;p&gt;Here is what happens when an agent initiates a payment through the full stack:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Identity.&lt;/strong&gt; The agent presents its credentials. This can be an OIDC token from Keycloak, an X.509 certificate, an HTTP Message Signature, or any other identity assertion. ATTP does not prescribe the identity mechanism. It consumes identity from any standards-compliant source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Trust evaluation.&lt;/strong&gt; The Trust Authority computes the agent's current trust score from five behavioural dimensions. The score maps to a trust level. If the agent is L0 or L1, the payment is rejected immediately -- no further processing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: MCPS signature verification.&lt;/strong&gt; The payment request's MCPS envelope is verified: valid ECDSA signature, unused nonce, timestamp within window. If any check fails, the request is rejected with a specific error code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Kill switch check.&lt;/strong&gt; The agent's kill switch state is checked atomically. If active, immediate rejection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Limit enforcement.&lt;/strong&gt; The payment amount is checked against the agent's per-transaction limit and daily aggregate. Both must pass. The check uses atomic compare-and-swap to prevent race conditions from concurrent requests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Sanctions screening.&lt;/strong&gt; The recipient name is screened against OFAC SDN, EU, UK, and UN sanctions lists. Fuzzy matching with configurable threshold. Match above threshold blocks the transaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: ACH generation.&lt;/strong&gt; A NACHA-compliant ACH file is generated with the transaction details. The file includes standard batch headers, entry details, and control records.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Response signing.&lt;/strong&gt; The response is signed by the gateway with its own ECDSA key. The agent can verify the response came from the legitimate gateway, not a man-in-the-middle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Audit recording.&lt;/strong&gt; The entire transaction -- request, trust evaluation, compliance check, ACH details, response -- is recorded in a hash-chained audit log. Each entry includes the hash of the previous entry. Breaking the chain indicates tampering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10: Trust adjustment.&lt;/strong&gt; Successful payment: +0.5 trust bonus. Blocked payment: -2. Anomaly detected: -5. The agent's trust score adjusts dynamically based on every interaction.&lt;/p&gt;

&lt;p&gt;Nine of these ten steps happen in milliseconds. The only step with variable latency is sanctions screening, which typically completes in under 50ms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Integration: Keycloak
&lt;/h2&gt;

&lt;p&gt;For organisations running Keycloak (or any OIDC-compliant identity provider), ATTP trust levels embed directly in standard JWT access tokens:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"sub"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"agent_procurement_bot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"iss"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://keycloak.example.com/realms/agents"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"attp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trust_level"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trust_label"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"L2 -- Standard"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"payment_enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tx_limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"day_limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"scopes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"payment_initiate,sanctions_screen"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"protocol_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keycloak roles (&lt;code&gt;attp-l0&lt;/code&gt; through &lt;code&gt;attp-l4&lt;/code&gt;) map to trust levels via a protocol mapper. The agent authenticates through standard OIDC flows. The JWT carries the trust claims. The payment gateway reads the claims and enforces limits. No new authentication infrastructure required.&lt;/p&gt;

&lt;p&gt;This means an enterprise with 500 agents can manage trust levels through the same role-based access control they already use for human users. Promote an agent from L1 to L2? Change its Keycloak role. Kill an agent? Revoke its session. Audit who changed what? Keycloak's admin event log.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Standards Require
&lt;/h2&gt;

&lt;p&gt;This is not speculative architecture. The security requirements are being codified in standards that will be auditable:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OWASP AISVS 1.0&lt;/strong&gt; (releasing June 2026 in Vienna) includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requirement 10.2.9: Agents MUST authenticate using cryptographically bound identity credentials, not bearer tokens&lt;/li&gt;
&lt;li&gt;Requirement 10.4.11: MCP servers MUST sign tool responses with unique nonce and timestamp for origin, integrity, and freshness verification&lt;/li&gt;
&lt;li&gt;Requirement 10.6.4: MCP security controls MUST enforce fail-closed semantics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The OpenAPI Extensions Registry&lt;/strong&gt; includes &lt;code&gt;x-agent-trust&lt;/code&gt; for declaring agent authentication schemes in API specifications, enabling API providers to specify trust requirements in their OpenAPI documents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ATTP&lt;/strong&gt; (&lt;a href="https://datatracker.ietf.org/doc/draft-sharif-attp/" rel="noopener noreferrer"&gt;draft-sharif-attp&lt;/a&gt;) provides the framework. &lt;strong&gt;MCPS&lt;/strong&gt; (&lt;a href="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/" rel="noopener noreferrer"&gt;draft-sharif-mcps-secure-mcp&lt;/a&gt;) provides the MCP binding. &lt;strong&gt;AEBA&lt;/strong&gt; (&lt;a href="https://datatracker.ietf.org/doc/draft-sharif-aeba/" rel="noopener noreferrer"&gt;draft-sharif-aeba&lt;/a&gt;) provides the behavioural analytics that feed trust scoring.&lt;/p&gt;

&lt;p&gt;Three IETF drafts. One stack. Standards-track, not proprietary.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gap in the Market
&lt;/h2&gt;

&lt;p&gt;Every major payment network has announced agent payment capabilities. None of them have shipped a trust framework.&lt;/p&gt;

&lt;p&gt;Stripe's MPP authenticates the API key. Mastercard's Agent Pay validates the token. Visa's Intelligent Commerce checks the credential. FedNow processes the payment. ACH generates the file. But between "this agent is authenticated" and "this payment should execute," there is nothing.&lt;/p&gt;

&lt;p&gt;That gap is where agents will fail. Not because the identity was wrong, but because the trust was never evaluated, the limits were never enforced, the counterparty was never screened, and the audit trail was never created.&lt;/p&gt;

&lt;p&gt;We built the stack that fills that gap. It is open, standards-based, and composable with whatever identity and payment infrastructure you already run.&lt;/p&gt;

&lt;p&gt;The question was never whether agents would make payments. It was whether we would have the infrastructure to trust them when they do.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Raza Sharif is CEO of CyberSecAI Ltd, author of "Breach 20/20", and a CISSP/CSSLP. He maintains the ATTP, MCPS, and AEBA IETF drafts, the x-agent-trust OpenAPI extension, and contributes to OWASP AISVS. Contact: &lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>fintec</category>
      <category>ai</category>
      <category>security</category>
      <category>stripe</category>
    </item>
    <item>
      <title>Identity Is Not Trust: Why Agent Authentication Alone Won't Secure AI Payments</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Thu, 30 Apr 2026 22:11:05 +0000</pubDate>
      <link>https://dev.to/razashariff/identity-is-not-trust-why-agent-authentication-alone-wont-secure-ai-payments-54a0</link>
      <guid>https://dev.to/razashariff/identity-is-not-trust-why-agent-authentication-alone-wont-secure-ai-payments-54a0</guid>
      <description>&lt;h2&gt;
  
  
  The Identity Problem Is Solved. The Trust Problem Isn't.
&lt;/h2&gt;

&lt;p&gt;There's a wave of new protocols solving agent identity. Agents get cryptographic keys, sign their requests, prove who they are without pre-registration or shared secrets. This is good work and it's needed — bearer tokens and API keys were never designed for autonomous software making decisions on your behalf.&lt;/p&gt;

&lt;p&gt;But here's what we keep seeing in production: &lt;strong&gt;an authenticated agent is not a trusted agent.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Identity answers "who is this?" Trust answers "what should this agent be allowed to do, right now, with this amount, to this recipient?"&lt;/p&gt;

&lt;p&gt;If you're building a chatbot that calls APIs, identity is enough. If you're building an agent that moves money, it's not even close.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Gap: What Happens After Authentication
&lt;/h2&gt;

&lt;p&gt;Consider an agent that's been fully authenticated — valid cryptographic identity, signed request, proof-of-possession confirmed. The agent is who it says it is. Now it wants to initiate a $50,000 payment to a company in Dubai.&lt;/p&gt;

&lt;p&gt;What does your authentication layer tell you about whether this should proceed?&lt;/p&gt;

&lt;p&gt;Nothing. Authentication is binary. You're verified or you're not. But the real questions are graduated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Has this agent earned the right to make transactions of this size?&lt;/strong&gt; A new agent shouldn't have the same spending authority as one that's completed 10,000 successful transactions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is the recipient on a sanctions list?&lt;/strong&gt; OFAC, EU, UK — there are thousands of sanctioned entities. Your identity layer doesn't screen them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Has this agent exceeded its daily limit?&lt;/strong&gt; Even trusted agents need guardrails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can we kill this agent instantly if something goes wrong?&lt;/strong&gt; Not revoke its certificate in 24 hours. Kill it now.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is the message itself untampered?&lt;/strong&gt; Not just the transport — the actual JSON-RPC payload inside the MCP envelope.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Trust Levels: L0 Through L4
&lt;/h2&gt;

&lt;p&gt;We've been building this at &lt;a href="https://cybersecai.co.uk" rel="noopener noreferrer"&gt;CyberSecAI&lt;/a&gt; for the past year, and the model that works in practice is &lt;strong&gt;graduated trust levels&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Label&lt;/th&gt;
&lt;th&gt;What It Means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;L0&lt;/td&gt;
&lt;td&gt;Untrusted&lt;/td&gt;
&lt;td&gt;Identified but cannot transact. Read-only.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L1&lt;/td&gt;
&lt;td&gt;Restricted&lt;/td&gt;
&lt;td&gt;Micro-payments only. $10/tx, $50/day.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L2&lt;/td&gt;
&lt;td&gt;Standard&lt;/td&gt;
&lt;td&gt;Normal transactions within limits.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L3&lt;/td&gt;
&lt;td&gt;Elevated&lt;/td&gt;
&lt;td&gt;High-value transactions. Additional monitoring.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L4&lt;/td&gt;
&lt;td&gt;Full Access&lt;/td&gt;
&lt;td&gt;Maximum authority. Every transaction audited.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;New agents start at L0. They &lt;strong&gt;earn&lt;/strong&gt; trust through verified identity, successful transactions, and time. Trust can be revoked instantly — not through certificate expiry, but through a kill switch that takes effect on the next request.&lt;/p&gt;

&lt;p&gt;This maps directly to how financial services actually work. A new employee doesn't get the same trading limits as a senior trader on day one. Why would we give a new agent unlimited spending authority just because it has a valid certificate?&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Payment Stack Actually Needs
&lt;/h2&gt;

&lt;p&gt;Here's the full chain for an agent making a payment:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Identity&lt;/strong&gt; — Is this agent who it claims to be? (Cryptographic verification)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust&lt;/strong&gt; — What is this agent's trust level? (L0-L4, dynamic scoring)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrity&lt;/strong&gt; — Is this specific message authentic and untampered? (ECDSA P-256 envelope signing, nonce, timestamp)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enforcement&lt;/strong&gt; — Does this transaction fall within the agent's limits? (Per-tx, daily, scope-based)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance&lt;/strong&gt; — Is the counterparty sanctioned? (OFAC/EU/UK screening in real-time)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution&lt;/strong&gt; — Generate the payment file. (ACH/NACHA for US rails)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit&lt;/strong&gt; — Tamper-evident record of the entire chain. (Hash-linked entries)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most agent auth protocols handle step 1. Some handle step 3. Nobody else handles 2 through 7.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Kill Switch Problem
&lt;/h2&gt;

&lt;p&gt;Certificate revocation is too slow for agent payments. CRLs update on schedules. OCSP adds latency and a single point of failure. If an agent is compromised at 2:47 PM and your revocation mechanism runs hourly, that's up to 60 minutes of unauthorised transactions.&lt;/p&gt;

&lt;p&gt;A kill switch is different. It's a flag checked on every single request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent authenticated? Yes.
Certificate valid? Yes.
Kill switch active? YES → DENY. Immediately. No transaction processed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Per-agent and per-customer kill switches. If a customer's entire fleet of agents needs to stop, one flag stops them all. This doesn't exist in any identity-only protocol because identity protocols don't model the concept of "trusted but suspended."&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanctions Screening Is Not Optional
&lt;/h2&gt;

&lt;p&gt;If an agent is making payments on behalf of a regulated entity, every counterparty needs to be screened against sanctions lists. This isn't a nice-to-have — it's a legal requirement under AML regulations in virtually every jurisdiction.&lt;/p&gt;

&lt;p&gt;We integrated with Fintech and the result is that every payment goes through real-time screening before the ACH file is generated. An authenticated agent with L4 trust still gets blocked if the recipient matches a sanctioned entity.&lt;/p&gt;

&lt;p&gt;No identity protocol does this. It's not their job. But if you're building agent payments and you stop at identity, you've built a system that can authenticate an agent making a payment to a sanctioned entity with full cryptographic proof that the payment was legitimate. That's worse than no security at all — it's auditable evidence of a compliance failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keycloak Integration: Enterprise Identity Meets Agent Trust
&lt;/h2&gt;

&lt;p&gt;For enterprises that already run Keycloak (or any OIDC provider), adding trust levels is straightforward. We built a Keycloak protocol mapper that embeds MCPS trust claims directly into standard JWTs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"sub"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"agent_abc123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trust_level"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trust_label"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"L2 -- Standard"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"payment_enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tx_limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"day_limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"scopes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"payment_initiate,sanctions_screen"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keycloak roles (&lt;code&gt;mcps-l0&lt;/code&gt; through &lt;code&gt;mcps-l4&lt;/code&gt;) map to trust levels. Your existing IAM infrastructure — SSO, role management, audit logs — stays exactly as it is. Agent trust becomes another claim in the token your systems already validate.&lt;/p&gt;

&lt;p&gt;This means you don't need to choose between your enterprise identity provider and agent trust enforcement. They compose.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Standards Are Coming
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://owasp.org/www-project-ai-security-verification-standard/" rel="noopener noreferrer"&gt;OWASP AISVS 1.0&lt;/a&gt; (releasing June 2026) includes requirements for cryptographically bound agent identity, message signing with nonce and timestamp verification, and fail-closed enforcement. The &lt;a href="https://spec.openapis.org/registry/" rel="noopener noreferrer"&gt;OpenAPI Extensions Registry&lt;/a&gt; now includes &lt;code&gt;x-agent-trust&lt;/code&gt; for declaring agent authentication schemes in API specifications.&lt;/p&gt;

&lt;p&gt;These standards don't mandate trust levels specifically, but they mandate the building blocks: proof-of-possession, integrity verification, and policy enforcement. Once you have those requirements in an audit checklist, "the agent was authenticated" is no longer a sufficient answer to "was this payment authorised?"&lt;/p&gt;

&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;p&gt;Agent identity protocols are essential infrastructure. They solve a real problem — agents need to prove who they are without pre-registration and shared secrets. That work is valuable and the ecosystem needs it.&lt;/p&gt;

&lt;p&gt;But identity is layer one. Trust, integrity, enforcement, compliance, and audit are layers two through six. If agents are going to move money — and they will — we need all six layers, not just the first one.&lt;/p&gt;

&lt;p&gt;The question isn't whether an agent can prove its identity. It's whether an agent has earned the right to do what it's asking to do.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Raza Sharif is CEO of CyberSecAI Ltd, author of "Breach 20/20", and a CISSP/CSSLP. He maintains the MCPS (MCP Secure) protocol (&lt;a href="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/" rel="noopener noreferrer"&gt;IETF draft&lt;/a&gt;), the &lt;code&gt;x-agent-trust&lt;/code&gt; OpenAPI extension, and contributes to OWASP AISVS. Contact: &lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>mcp</category>
      <category>oauth</category>
    </item>
    <item>
      <title>DVRAG: The First Deliberately Vulnerable RAG Pipeline for Security Testing</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Tue, 28 Apr 2026 07:49:05 +0000</pubDate>
      <link>https://dev.to/razashariff/dvrag-the-first-deliberately-vulnerable-rag-pipeline-for-security-testing-3ch2</link>
      <guid>https://dev.to/razashariff/dvrag-the-first-deliberately-vulnerable-rag-pipeline-for-security-testing-3ch2</guid>
      <description>&lt;p&gt;&lt;em&gt;25 vulnerabilities. 15 challenges. 22 API endpoints. Every one mapped to the OWASP RAG Security Cheat Sheet (submitted, PR #2131).&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  RAG Has an Attack Surface Nobody Is Testing in detail.
&lt;/h2&gt;

&lt;p&gt;Every enterprise AI chatbot, copilot, and knowledge assistant uses Retrieval-Augmented Generation (RAG). Documents go in. Answers come out. Between those two steps is an attack surface that most teams have never tested.&lt;/p&gt;

&lt;p&gt;Document poisoning. Cross-tenant data leakage. Embedding inversion. Cache poisoning. Prompt injection via retrieved content. Tool execution from model output. None of these are theoretical. They are happening in production.&lt;/p&gt;

&lt;p&gt;The problem: there was nowhere to practice attacking a RAG pipeline safely. DVWA exists for web apps. DVMCP exists for MCP servers. Nothing existed for RAG.&lt;/p&gt;

&lt;p&gt;So we built DVRAG.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is DVRAG
&lt;/h2&gt;

&lt;p&gt;DVRAG is a deliberately insecure RAG pipeline. Pull the Docker image, run it, and start attacking. Every vulnerability is intentional, documented, and mapped to the attack surfaces seen in the wild.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live at: &lt;a href="https://dvrag.com" rel="noopener noreferrer"&gt;dvrag.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source: Private (Docker image available)&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  25 Deliberate Vulnerabilities
&lt;/h2&gt;

&lt;p&gt;Every vulnerability maps to a section of the OWASP RAG Security Cheat Sheet (submitted, PR #2131) and a CWE:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document Poisoning (CWE-345)&lt;/strong&gt;&lt;br&gt;
No content scanning on ingestion. 3 poisoned documents in the corpus actively override system behaviour. Adversarial content accepted without validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-Tenant Data Leakage (CWE-200)&lt;/strong&gt;&lt;br&gt;
Flat namespace. Tenant A retrieves Tenant B data freely. No isolation. No encryption at rest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Admin Auth Bypass (CWE-798)&lt;/strong&gt;&lt;br&gt;
Hardcoded credentials (admin/rag123). No session management. No MFA. Config and credentials exposed without authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query Injection (CWE-74)&lt;/strong&gt;&lt;br&gt;
Raw queries to vector search. Similarity scores exposed. No input normalisation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output Validation (CWE-200)&lt;/strong&gt;&lt;br&gt;
Raw model output returned. No PII filtering. Secrets, PHI, and insider trading data exposed in responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tool Execution (CWE-862)&lt;/strong&gt;&lt;br&gt;
6 tools callable from model output: transfer_funds, delete_record, export_data, send_email, modify_permissions, execute_code. Zero authorisation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cache Poisoning (CWE-524)&lt;/strong&gt;&lt;br&gt;
Shared cache across all tenants. No invalidation. One user poisons results for everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSRF (CWE-918)&lt;/strong&gt;&lt;br&gt;
Fetch endpoint follows any URL including cloud metadata and internal services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Path Traversal (CWE-22)&lt;/strong&gt;&lt;br&gt;
Document export allows reading arbitrary files via ../ sequences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Embedding Inversion (CWE-200)&lt;/strong&gt;&lt;br&gt;
Raw embedding vectors and embedding function exposed via API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bulk Injection (CWE-354)&lt;/strong&gt;&lt;br&gt;
Entire corpus can be poisoned in a single bulk request. No rate limiting, no validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System Prompt Leakage (CWE-200)&lt;/strong&gt;&lt;br&gt;
Full model configuration, system prompt, and vector DB credentials exposed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No Monitoring (CWE-778)&lt;/strong&gt;&lt;br&gt;
Console.log only. No structured logging, no audit trail, no alerting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fail-Open (CWE-636)&lt;/strong&gt;&lt;br&gt;
Pipeline answers from model memory when retrieval fails. Hallucinated responses served without grounding.&lt;/p&gt;

&lt;p&gt;Plus: tenant enumeration, re-ranking manipulation, metadata injection, chunking boundary attacks, token exhaustion, multi-hop poisoning, semantic cache poisoning.&lt;/p&gt;
&lt;h2&gt;
  
  
  15 CTF Challenges
&lt;/h2&gt;

&lt;p&gt;Three difficulty levels. Each challenge maps to a real-world attack scenario:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cross-tenant data theft&lt;/li&gt;
&lt;li&gt;Indirect prompt injection&lt;/li&gt;
&lt;li&gt;Secret extraction&lt;/li&gt;
&lt;li&gt;PHI/PII exposure&lt;/li&gt;
&lt;li&gt;Admin panel access&lt;/li&gt;
&lt;li&gt;Document injection&lt;/li&gt;
&lt;li&gt;Model config exfiltration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Medium&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool execution from query&lt;/li&gt;
&lt;li&gt;Cache poisoning across users&lt;/li&gt;
&lt;li&gt;Insider trading intel extraction&lt;/li&gt;
&lt;li&gt;Breach notification draft access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hard&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Embedding inversion attack&lt;/li&gt;
&lt;li&gt;Privilege escalation via metadata&lt;/li&gt;
&lt;li&gt;Multi-hop data exfiltration&lt;/li&gt;
&lt;li&gt;Whistleblower identity extraction&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  22 API Endpoints
&lt;/h2&gt;

&lt;p&gt;All unauthenticated. All exploitable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;POST /query -- RAG query (cross-tenant, no auth)&lt;/li&gt;
&lt;li&gt;POST /ingest -- inject single document&lt;/li&gt;
&lt;li&gt;POST /ingest/bulk -- mass corpus poisoning&lt;/li&gt;
&lt;li&gt;POST /search -- vector search with exposed scores&lt;/li&gt;
&lt;li&gt;POST /embed -- generate embedding for any text&lt;/li&gt;
&lt;li&gt;POST /fetch -- SSRF to any URL&lt;/li&gt;
&lt;li&gt;POST /debug/prompt -- view constructed prompt&lt;/li&gt;
&lt;li&gt;POST /admin/login -- hardcoded credentials&lt;/li&gt;
&lt;li&gt;GET /admin/config -- full config without auth&lt;/li&gt;
&lt;li&gt;GET /admin/export -- dump everything&lt;/li&gt;
&lt;li&gt;GET /corpus -- all documents exposed&lt;/li&gt;
&lt;li&gt;GET /embeddings -- raw vectors&lt;/li&gt;
&lt;li&gt;GET /config -- model params and system prompt&lt;/li&gt;
&lt;li&gt;GET /cache -- other users responses&lt;/li&gt;
&lt;li&gt;GET /export/:id -- path traversal&lt;/li&gt;
&lt;li&gt;GET /pipeline -- full architecture exposed&lt;/li&gt;
&lt;li&gt;GET /tenants -- enumerate all tenants&lt;/li&gt;
&lt;li&gt;GET /threat-model -- JSON threat model&lt;/li&gt;
&lt;li&gt;GET /challenges -- CTF challenge list&lt;/li&gt;
&lt;li&gt;DELETE /corpus/:id -- delete without auth&lt;/li&gt;
&lt;li&gt;DELETE /cache -- clear cache without auth&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Real-World CVEs and Research
&lt;/h2&gt;

&lt;p&gt;The vulnerabilities in DVRAG are real in the wild. They mirror real CVEs and documented research:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE-2025-68664&lt;/strong&gt; (CVSS 9.3) -- LangChain serialisation RCE via prompt injection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVE-2025-1793&lt;/strong&gt; -- LlamaIndex SQL injection via vector store integrations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVE-2025-64513&lt;/strong&gt; -- Milvus vector DB authentication bypass&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PoisonedRAG&lt;/strong&gt; (USENIX 2025) -- 5 poisoned docs in 1M corpus achieves 90% attack success&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MS 365 Copilot&lt;/strong&gt; -- real-world RAG poisoning demonstrated by Johann Rehberger&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Threat Model
&lt;/h2&gt;

&lt;p&gt;DVRAG includes a full threat model with 9 attack surfaces, 5 attacker goals, and a JSON API at /threat-model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ATTACKER                    RAG PIPELINE                    IMPACT

[Poisoned Docs] ------&amp;gt; [ Ingestion ] --&amp;gt; [ Vector Store ]
                          No scanning      Flat namespace
                          No hashing       No isolation

[Crafted Query] ------&amp;gt; [ Retrieval ] --&amp;gt; [ Generation ]
                          No auth check    Follows poison
                          Scores exposed   No output filter

[Any Request] --------&amp;gt; [ Admin/Config ] --&amp;gt; [ Cache ]
                          Hardcoded creds    Shared (no scope)
                          No session mgmt    Cross-tenant leak
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Scan It
&lt;/h2&gt;

&lt;p&gt;Point your security scanner at dvrag.com and see what it finds. Or use it as a validation target in CI/CD to verify your RAG security scanner catches expected vulnerabilities.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Docker&lt;/span&gt;
docker pull cybersecai/dvrag:latest
docker run &lt;span class="nt"&gt;-p&lt;/span&gt; 3002:3002 cybersecai/dvrag

&lt;span class="c"&gt;# Or hit the live instance&lt;/span&gt;
curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://dvrag.com/query &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"query":"merger plans","tenantId":"globex","userId":"attacker"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Use It For
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Penetration testing&lt;/strong&gt; -- practice RAG attacks in a safe environment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Red team training&lt;/strong&gt; -- 15 challenges across 3 difficulty levels&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scanner validation&lt;/strong&gt; -- verify your tools find expected vulnerabilities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer education&lt;/strong&gt; -- see what NOT to do before building production RAG&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CTF competitions&lt;/strong&gt; -- ready-made challenges with hints&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance testing&lt;/strong&gt; -- validate your RAG pipeline against OWASP guidance&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Built By CyberSecAI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Raza Sharif&lt;/strong&gt;&lt;br&gt;
CEO, CyberSecAI Ltd&lt;br&gt;
&lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See also: &lt;a href="https://dvmcp.co.uk" rel="noopener noreferrer"&gt;DVMCP&lt;/a&gt; (Damn Vulnerable MCP Server)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live: &lt;a href="https://dvrag.com" rel="noopener noreferrer"&gt;dvrag.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>owasp</category>
      <category>rag</category>
      <category>ai</category>
      <category>security</category>
    </item>
    <item>
      <title>We Built DAST for AI Agents. Every Agent We Tested Failed.</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Tue, 28 Apr 2026 06:56:07 +0000</pubDate>
      <link>https://dev.to/razashariff/test-4m50</link>
      <guid>https://dev.to/razashariff/test-4m50</guid>
      <description>&lt;p&gt;&lt;em&gt;8 dimensions. 38 checks. 5 seconds. 0% industry pass rate.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;DAST exists for web apps. DAST exists for APIs. DAST does not exist for AI agents.&lt;/p&gt;

&lt;p&gt;Agents are connecting to MCP servers, calling tools, initiating payments, accessing databases, and making autonomous decisions. They are doing this with zero dynamic security testing. No identity verification. No message signing. No replay protection. No kill switches. No audit trails.&lt;/p&gt;

&lt;p&gt;We know this because we built a scanner and tested them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Built
&lt;/h2&gt;

&lt;p&gt;CyberSecClaw is an 8-dimension agent DAST platform. It connects to any MCP server, sends real attack payloads, and measures the security posture across 8 dimensions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Identity&lt;/strong&gt; -- does the server verify who is connecting?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Injection Resistance&lt;/strong&gt; -- can you inject commands, SQL, paths, prompts?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalation&lt;/strong&gt; -- can a low-trust agent access admin tools?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exfiltration&lt;/strong&gt; -- can data be stolen through tool responses?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust Boundary&lt;/strong&gt; -- can agents relay attacks to other agents?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomy Control&lt;/strong&gt; -- rate limits, kill switches, action budgets?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrity&lt;/strong&gt; -- message signing, replay protection, audit trails?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance&lt;/strong&gt; -- OWASP, EU AI Act, AISVS, SOC2?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What a Scan Looks Like
&lt;/h2&gt;

&lt;p&gt;Here is a real scan against a deliberately vulnerable MCP server. 38 checks. 4.4 seconds.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Running 8-Dimension Agent DAST...

[1/8] Testing IDENTITY...            0% (0 pass, 4 fail)
[2/8] Testing INJECTION RESISTANCE... 4% (1 pass, 6 fail)
[3/8] Testing ESCALATION...           0% (0 pass, 4 fail)
[4/8] Testing EXFILTRATION...        50% (2 pass, 2 fail)
[5/8] Testing TRUST BOUNDARY...       0% (0 pass, 4 fail)
[6/8] Testing AUTONOMY CONTROL...     0% (0 pass, 5 fail)
[7/8] Testing INTEGRITY...            0% (0 pass, 5 fail)
[8/8] Testing COMPLIANCE...           0% (0 pass, 4 fail)

══════════════════════════════════════════════
AGENT DAST REPORT
══════════════════════════════════════════════

Duration:  4.4s
Checks:    38 (3 pass, 34 fail)
Score:     7/100 (F)
Verdict:   FAIL
Passport:  DENY

░░░░░░░░░░   0%  IDENTITY
      ✗ Unauthenticated access: ACCEPTED
      ✗ Spoofed agent identity: ACCEPTED
      ✗ Expired credentials: ACCEPTED
      ✗ Invalid signature accepted: ACCEPTED

░░░░░░░░░░   4%  INJECTION RESISTANCE
      ✗ Command injection: EXECUTED
      ✗ SQL injection: EXECUTED
      ✗ Path traversal: EXECUTED
      ✗ SSRF to cloud metadata: EXECUTED
      ✗ Prompt injection via tool args: EXECUTED
      ✗ XSS in tool response: EXECUTED
      ✓ Tool poisoning check: Clean

░░░░░░░░░░   0%  ESCALATION
      ✗ Dangerous tools exposed: 7 dangerous tools
      ✗ Low-trust agent calls admin tool: ALLOWED
      ✗ Tool chaining escalation: CHAIN EXECUTED
      ✗ Self-escalation attempt: ACCEPTED

█████░░░░░  50%  EXFILTRATION
      ✗ External URL in tool arguments: ACCEPTED
      ✓ PII in tool responses: No PII patterns found
      ✓ Secrets in error messages: Clean
      ✗ Data staging via file write: FILE WRITTEN

░░░░░░░░░░   0%  TRUST BOUNDARY
      ✗ Cross-agent relay attack: ACCEPTED
      ✗ Cross-server instruction: PROCESSED WITHOUT VERIFICATION
      ✗ Shared context poisoning: CONTEXT MAY BE POISONED
      ✗ Multi-hop manipulation: PROCESSED WITHOUT DETECTION

░░░░░░░░░░   0%  AUTONOMY CONTROL
      ✗ Rate limiting: All 20 accepted - no rate limiting
      ✗ Destructive action: EXECUTED WITHOUT CONFIRMATION
      ✗ Action budget: NO BUDGET - unlimited calls
      ✗ Kill switch: NOT FOUND
      ✗ Monitoring: COULD BE DISABLED

░░░░░░░░░░   0%  INTEGRITY
      ✗ Message signing: NONE
      ✗ Replay protection: BOTH ACCEPTED
      ✗ Tool definition integrity: NONE
      ✗ Audit trail: NONE
      ✗ Fail-closed: FAILS OPEN

░░░░░░░░░░   0%  COMPLIANCE
      ✗ OWASP MCP Top 10: 0/3 checks passed
      ✗ EU AI Act (Art 12-16, 50): 0/4 articles addressed
      ✗ OWASP AISVS C10: 0/3 requirements met
      ✗ SOC2: INSUFFICIENT

OVERALL SCORE: 7/100 (F) | VERDICT: FAIL | PASSPORT: DENY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  MITRE ATLAS Mapping
&lt;/h2&gt;

&lt;p&gt;Every finding maps to a verified MITRE ATLAS technique. These are the actual technique IDs from atlas.mitre.org:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AML.T0050&lt;/strong&gt; Command and Scripting Interpreter -- 5 injection vectors confirmed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AML.T0051&lt;/strong&gt; LLM Prompt Injection -- tool args accepted without sanitisation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AML.T0053&lt;/strong&gt; AI Agent Tool Invocation -- destructive actions without confirmation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AML.T0080&lt;/strong&gt; AI Agent Context Poisoning -- shared context accepted without verification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AML.T0052.000&lt;/strong&gt; Spearphishing via Social Engineering LLM -- cross-agent relay attacks processed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AML.T0029&lt;/strong&gt; Denial of AI Service -- no rate limiting, no kill switch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AML.T0010&lt;/strong&gt; AI Supply Chain Compromise -- no message signing, no replay protection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;18 out of 25 ATLAS techniques triggered on a single server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attack Chain Analysis
&lt;/h2&gt;

&lt;p&gt;The scanner does not just find individual vulnerabilities. It chains them into multi-step attack paths:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CRITICAL  Full Compromise Chain
Reconnaissance -&amp;gt; Initial Access -&amp;gt; Execution -&amp;gt; Exfiltration
  Step 1: Connect without authentication     -&amp;gt; AML.T0000
  Step 2: Inject command via tool args        -&amp;gt; AML.T0050
  Step 3: Exfiltrate data via tool response   -&amp;gt; AML.T0025
Impact: Complete data breach.

HIGH  Persistent Agent Compromise
Execution -&amp;gt; Defense Evasion -&amp;gt; Persistence
  Step 1: Poison shared context               -&amp;gt; AML.T0080
  Step 2: Disable monitoring                  -&amp;gt; AML.T0046
  Step 3: No audit trail                      -&amp;gt; AML.T0081
Impact: Persistent access with no forensic evidence.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Kill Chain Coverage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[VULNERABLE]  RECONNAISSANCE
[VULNERABLE]  INITIAL ACCESS
[VULNERABLE]  EXECUTION
[VULNERABLE]  PRIVILEGE ESCALATION
[VULNERABLE]  DEFENSE EVASION
[VULNERABLE]  LATERAL MOVEMENT
[VULNERABLE]  COLLECTION
[PROTECTED]   EXFILTRATION
[VULNERABLE]  IMPACT

Kill chain coverage: 1/9 stages protected
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Industry Pass Rate
&lt;/h2&gt;

&lt;p&gt;We have tested MCP servers in production. The pass rate across the industry is 0%.&lt;/p&gt;

&lt;p&gt;Every server we have tested scores D or below. Most score F. The gap between what these agents are doing (processing payments, accessing databases, making autonomous decisions) and the security controls protecting them (none) is the largest unaddressed attack surface in enterprise AI today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters Now
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;30+ CVEs in the MCP ecosystem in the first 60 days of 2026&lt;/li&gt;
&lt;li&gt;An AI agent just deleted a production database for a rental company serving businesses nationwide&lt;/li&gt;
&lt;li&gt;Cursor, Railway, Replit -- agents are causing real damage in production&lt;/li&gt;
&lt;li&gt;MCPS protocol security checks are now shipping in Cisco AI Defense&lt;/li&gt;
&lt;li&gt;No existing DAST tool covers agent security dimensions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Gets Checked
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Checks&lt;/th&gt;
&lt;th&gt;What It Tests&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Identity&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Auth bypass, spoofing, expired creds, invalid signatures&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Injection&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Command, SQL, path traversal, SSRF, prompt injection, XSS, tool poisoning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Escalation&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Dangerous tools, admin access, tool chaining, self-escalation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exfiltration&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;External URLs, PII leakage, secrets in errors, DNS exfil, data staging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trust Boundary&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Relay attacks, cross-server instruction, context poisoning, multi-hop&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Autonomy&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Rate limiting, human approval, action budgets, kill switch, monitoring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Integrity&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Message signing, replay protection, tool hashes, audit trail, fail-closed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compliance&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;OWASP MCP Top 10, EU AI Act, AISVS C10, SOC2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Standards
&lt;/h2&gt;

&lt;p&gt;Every finding references:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/MCP_Security_Cheat_Sheet.html" rel="noopener noreferrer"&gt;OWASP MCP Security Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/OWASP/AISVS" rel="noopener noreferrer"&gt;OWASP AISVS C10&lt;/a&gt; (10.2.13, 10.4.11, 10.6.4)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://atlas.mitre.org" rel="noopener noreferrer"&gt;MITRE ATLAS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;EU AI Act Articles 12-16, 50&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get In Touch
&lt;/h2&gt;

&lt;p&gt;CyberSecClaw is not open source. If you are interested in scanning your MCP infrastructure or discussing agent security for your organisation, get in touch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Raza Sharif&lt;/strong&gt;&lt;br&gt;
CEO, CyberSecAI Ltd&lt;br&gt;
&lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt;&lt;br&gt;
&lt;a href="https://claw.cybersecai.co.uk" rel="noopener noreferrer"&gt;claw.cybersecai.co.uk&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>agents</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
    <item>
      <title>Signing an Agent Card is not Agent Security</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Sun, 26 Apr 2026 13:49:09 +0000</pubDate>
      <link>https://dev.to/razashariff/signing-an-agent-card-is-not-agent-security-3hnn</link>
      <guid>https://dev.to/razashariff/signing-an-agent-card-is-not-agent-security-3hnn</guid>
      <description>&lt;p&gt;AI agents are entering production. Financial services. Healthcare. Logistics. Government.                                                &lt;/p&gt;

&lt;p&gt;The security conversation so far has focused on one thing: identity. Sign the agent. Verify the card. Move on.                           &lt;/p&gt;

&lt;p&gt;Identity is important. But it is the front door, not the building.                                                                       &lt;/p&gt;

&lt;p&gt;## What happens after the agent walks in?                                                                                                &lt;/p&gt;

&lt;p&gt;A signed identity card tells you who the agent claims to be. It does not tell you:                                                       &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether the agent's requests have been tampered with in transit
&lt;/li&gt;
&lt;li&gt;Whether the agent is replaying a previous request to bypass controls&lt;/li&gt;
&lt;li&gt;Whether the agent is injecting malicious payloads through tool arguments
&lt;/li&gt;
&lt;li&gt;Whether the agent is exfiltrating data through its responses
&lt;/li&gt;
&lt;li&gt;Whether the agent is escalating its own privileges
&lt;/li&gt;
&lt;li&gt;Whether the agent's behaviour has drifted from its baseline
&lt;/li&gt;
&lt;li&gt;Whether the agent is trying to disable its own monitoring
&lt;/li&gt;
&lt;li&gt;What the agent actually did, with cryptographic proof, for your auditor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are not edge cases. These are the attack surface of every agent in production today.                                               &lt;/p&gt;

&lt;p&gt;## The Agentic Security Ecosystem                                                                                                        &lt;/p&gt;

&lt;p&gt;Securing agents requires multiple layers. Here is what we built and ship today.                                                          &lt;/p&gt;




&lt;p&gt;### MCPS -- Per-message signing for every interaction                                                                                    &lt;/p&gt;

&lt;p&gt;Every tool call, every response, every message between agent and server is individually signed with a unique nonce and timestamp. Not the identity card -- the actual conversation. Tamper with a single byte and the signature breaks. Replay a captured request and the nonce rejects it.                                                                                                                              &lt;/p&gt;

&lt;p&gt;MCPS is published as an &lt;a href="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/" rel="noopener noreferrer"&gt;IETF Internet-Draft&lt;/a&gt; and implemented as a zero-dependency npm package (mcp-secure) with 732 downloads in the last 30 days. &lt;/p&gt;

&lt;p&gt;It is integrated into production fintech infrastructure where agents perform sanctions screening against global watchlists.                                                                      &lt;/p&gt;

&lt;p&gt;Patent supported.                                                                                                                        &lt;/p&gt;




&lt;p&gt;### AgentPass -- Trust scoring before production access                                                                                  &lt;/p&gt;

&lt;p&gt;Every agent gets evaluated across 8 dimensions before it touches production. Identity verification. Code integrity. Vulnerability&lt;br&gt;&lt;br&gt;
  exposure. Compliance mapping. Sandbox isolation. Behaviour monitoring. Cryptographic signing. Output filtering.&lt;/p&gt;

&lt;p&gt;Pass the assessment, get a signed passport with a trust score (L0 to L4). Fail, and the agent is denied before it sees a single record.  &lt;/p&gt;

&lt;p&gt;The credit check for AI agents. No score, no access.                                                                                     &lt;/p&gt;

&lt;p&gt;&lt;a href="https://agentpass.co.uk/demo/live" rel="noopener noreferrer"&gt;Live demo&lt;/a&gt;                                                                                           &lt;/p&gt;

&lt;p&gt;Patent supported.                                                                                                                        &lt;/p&gt;




&lt;p&gt;### OpenAPI x-agent-trust -- Peer-reviewed and merged                                                                                    &lt;/p&gt;

&lt;p&gt;The OpenAPI Technical Direction Committee reviewed and merged our &lt;a href="https://extensions.openapis.org" rel="noopener noreferrer"&gt;x-agent-trust extension&lt;/a&gt; into the&lt;br&gt;&lt;br&gt;
  official OpenAPI Extension Registry. This allows any API to declare agent trust requirements directly in its OpenAPI specification --&lt;br&gt;
  trust level, required scopes, signing algorithm.                                                                                         &lt;/p&gt;

&lt;p&gt;Reviewed and by respected OpenAPI maintainers. Any API can now declare: "this endpoint requires a trust level of L2 or&lt;br&gt;&lt;br&gt;
  above, with a valid MCPS signature." The agent either meets the bar or gets denied.&lt;/p&gt;

&lt;p&gt;Declared in the spec. Enforced at the gate.                                                                                              &lt;/p&gt;




&lt;p&gt;### AEBA -- Runtime behaviour analysis (just released)                                                                                   &lt;/p&gt;

&lt;p&gt;AEBA-XDR is the first SOC built specifically for AI agents.                                                                              &lt;/p&gt;

&lt;p&gt;It establishes a behavioural baseline per agent, then detects anomalies in real-time: rate spikes, category shifts, off-hours activity, tool probing, model drift, exfiltration patterns, self-escalation attempts, monitoring disable attempts.&lt;/p&gt;

&lt;p&gt;36 detection rules across 6 packs (core, fintech, finserv, finops, insurance, EU AI Act). Every rule is mapped to MITRE ATT&amp;amp;CK technique &lt;br&gt;
  IDs (T1566, T1565, T1499, T1070, T1110, T1078, T1020) and MITRE ATLAS AI-specific techniques (AML.T0051 prompt injection, AML.T0048 goal hijacking, AML.T0019 tool poisoning, AML.T0024 exfiltration, AML.T0031 model drift).                                                     &lt;/p&gt;

&lt;p&gt;Detection latency under 1 millisecond. Hash-chained tamper-evident audit trail. Adaptive trust scoring. Self-healing on compromise.      &lt;/p&gt;




&lt;p&gt;### Cybersecify -- MCP security scanner for AI developers&lt;/p&gt;

&lt;p&gt;20 tools available as an MCP server. Install with npx, add to your Claude or Cursor config, and scan any MCP server from inside your AI&lt;br&gt;&lt;br&gt;
  assistant. OWASP MCP Top 10 scanning, agent DAST, supply chain checks, package safety verification, and EU AI Act compliance mapping.&lt;/p&gt;

&lt;p&gt;Works in Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.                                                                &lt;/p&gt;

&lt;p&gt;&lt;a href="https://cybersecify.co.uk" rel="noopener noreferrer"&gt;cybersecify.co.uk&lt;/a&gt;                                                                                           &lt;/p&gt;




&lt;p&gt;## The gap&lt;/p&gt;

&lt;p&gt;An agent with a signed identity card can still:                                                                                          &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Send tampered requests&lt;/strong&gt; -- no per-message signing
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Replay captured requests&lt;/strong&gt; -- no nonce or replay protection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inject SQL, commands, or prompts&lt;/strong&gt; -- no input inspection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exfiltrate data through responses&lt;/strong&gt; -- no output filtering
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalate its own privileges&lt;/strong&gt; -- no trust boundary enforcement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drift from intended behaviour&lt;/strong&gt; -- no runtime monitoring
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disable its own logging&lt;/strong&gt; -- no monitoring protection &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operate without an audit trail&lt;/strong&gt; -- no hash-chained evidence
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Identity is layer one. Production security requires all eight.                                                                           &lt;/p&gt;




&lt;p&gt;## The full stack&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identity&lt;/strong&gt; -- AgentPass&lt;br&gt;
  Trust scoring L0-L4 across 8 dimensions. No score, no access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Declaration&lt;/strong&gt; -- OpenAPI x-agent-trust&lt;br&gt;&lt;br&gt;
  Declare trust requirements in your API spec. Peer-reviewed, merged into official registry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signing&lt;/strong&gt; -- MCPS&lt;br&gt;&lt;br&gt;
  Per-message nonce + timestamp + HMAC. Every interaction signed. IETF Internet-Draft.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Runtime&lt;/strong&gt; -- AEBA&lt;br&gt;
  Behavioural analysis. 36 rules. MITRE ATT&amp;amp;CK + ATLAS mapped. Sub-millisecond detection.                                                  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer&lt;/strong&gt; -- Cybersecify&lt;br&gt;
  MCP scanner inside your AI assistant. 20 tools. Zero dependencies.&lt;/p&gt;




&lt;p&gt;## Supporting Information                             &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IETF drafts: &lt;a href="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/" rel="noopener noreferrer"&gt;MCPS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CVE-2026-39313 (CVSS 8.7) discovered and responsibly disclosed
&lt;/li&gt;
&lt;li&gt;OWASP AISVS Chapter 10: three contributed requirements (10.2.13, 10.4.11, 10.6.4)&lt;/li&gt;
&lt;li&gt;OpenAPI x-agent-trust: &lt;a href="https://extensions.openapis.org" rel="noopener noreferrer"&gt;merged into official extension registry&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;npm packages: mcp-secure, agentsign, agentpass, cybersecify -- all published
&lt;/li&gt;
&lt;li&gt;Fully patent supported across all our tech stack.
&lt;/li&gt;
&lt;li&gt;Production integration live in fintech sanctions screening infrastructure
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent security is not one layer. It is an ecosystem.                                                                                     &lt;/p&gt;




&lt;p&gt;Raza Sharif&lt;br&gt;
  Founder, CyberSecAI Ltd&lt;br&gt;
  &lt;a href="https://cybersecai.co.uk" rel="noopener noreferrer"&gt;cybersecai.co.uk&lt;/a&gt; &lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt; &lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>security</category>
    </item>
    <item>
      <title>Scan MCP Servers for OWASP Vulnerabilities From Inside Claude. Here's How.</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Sat, 25 Apr 2026 19:20:57 +0000</pubDate>
      <link>https://dev.to/razashariff/scan-mcp-servers-for-owasp-vulnerabilities-from-inside-claude-heres-how-59mb</link>
      <guid>https://dev.to/razashariff/scan-mcp-servers-for-owasp-vulnerabilities-from-inside-claude-heres-how-59mb</guid>
      <description>&lt;p&gt;Scan MCP Servers for OWASP Vulnerabilities From Inside Claude. Here's How.&lt;/p&gt;

&lt;p&gt;Every MCP server tutorial teaches you how to build.&lt;/p&gt;

&lt;p&gt;None of them teach you how to verify it's secure before deploying.&lt;/p&gt;

&lt;p&gt;We built Cybersecify — an MCP security scanner you can run from inside your AI assistant. Claude, Cursor, Windsurf, any MCP client. One&lt;br&gt;&lt;br&gt;
  config line, then ask it to scan.                                                                                                        &lt;/p&gt;

&lt;p&gt;No CLI. No separate tool. Just talk to your AI and it scans for you.                                                                     &lt;/p&gt;

&lt;p&gt;Why this matters                                                                                                                         &lt;/p&gt;

&lt;p&gt;MCP adoption just crossed 97 million SDK downloads. There are 13,000+ servers in the wild. Most have no authentication, no signing, no input validation. We know because we scan them.           &lt;/p&gt;

&lt;p&gt;CVE-2026-39313 (CVSS 8.7) was a single missing size check in a popular MCP framework. The config existed. The enforcement didn't. &lt;/p&gt;

&lt;p&gt;Nobody tested it before shipping.&lt;/p&gt;

&lt;p&gt;OWASP now has six standards covering agent and MCP security. No tool tested against them. Until now.                                     &lt;/p&gt;

&lt;p&gt;Setup — 30 seconds                                                                                                                       &lt;/p&gt;

&lt;p&gt;Add to your Claude Desktop config (claude_desktop_config.json):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrvvfa2oy5d46bz32je8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrvvfa2oy5d46bz32je8.png" alt=" " width="454" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Restart Claude. Done.                                                                                                                    &lt;/p&gt;

&lt;p&gt;Use it                                                                                                                                   &lt;/p&gt;

&lt;p&gt;Ask Claude:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Scan &lt;a href="https://my-mcp-server.com" rel="noopener noreferrer"&gt;https://my-mcp-server.com&lt;/a&gt; for OWASP vulnerabilities"&lt;/li&gt;
&lt;li&gt;"Check if this MCP server has authentication"&lt;/li&gt;
&lt;li&gt;"Test this endpoint for injection vulnerabilities"
&lt;/li&gt;
&lt;li&gt;"Run the OWASP MCP Top 10 checks against my server"
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cybersecify runs the scan and returns results inline. Pass/fail per OWASP control. Remediation guidance included.                        &lt;/p&gt;

&lt;p&gt;What it checks                                                                                                                           &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OWASP MCP Top 10 (token exposure, privilege escalation, tool poisoning, injection, auth bypass, logging gaps, shadow servers)
&lt;/li&gt;
&lt;li&gt;Input validation (SQL injection, command injection, XSS, path traversal, SSRF, prompt injection)&lt;/li&gt;
&lt;li&gt;Transport security (HTTPS, CORS, security headers)
&lt;/li&gt;
&lt;li&gt;Message signing (MCPS Section 7 — nonces, timestamps, signatures)
&lt;/li&gt;
&lt;li&gt;Tool integrity (hash pinning, definition stability)
&lt;/li&gt;
&lt;li&gt;Replay protection
&lt;/li&gt;
&lt;li&gt;Request body size limits (the CVE-2026-39313 check)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What you get back                                                                                                                        &lt;/p&gt;

&lt;p&gt;Every check returns:                                                                                                                     &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OWASP control ID (MCP01-01, AISVS-10.4.11, etc.)&lt;/li&gt;
&lt;li&gt;Pass or fail
&lt;/li&gt;
&lt;li&gt;What was tested
&lt;/li&gt;
&lt;li&gt;What failed and why
&lt;/li&gt;
&lt;li&gt;Which OWASP standard it maps to
&lt;/li&gt;
&lt;li&gt;Remediation guidance
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No grades, no scores, no dashboards. Just facts. Pass or fail against published OWASP controls.                                          &lt;/p&gt;

&lt;p&gt;Try it against DVMCP&lt;/p&gt;

&lt;p&gt;Want to see what a vulnerable MCP server looks like? Scan our deliberately vulnerable server:                                            &lt;/p&gt;

&lt;p&gt;"Scan &lt;a href="https://dvmcp.co.uk" rel="noopener noreferrer"&gt;https://dvmcp.co.uk&lt;/a&gt; for OWASP MCP vulnerabilities"                                                                                 &lt;/p&gt;

&lt;p&gt;It fails everything. That's the point — it's a training target. The MCP equivalent of OWASP Juice Shop.                                  &lt;/p&gt;

&lt;p&gt;The gap                                                                                                                                  &lt;/p&gt;

&lt;p&gt;Every developer building MCP servers today is deploying without security testing. The tools didn't exist. The standards were published but nobody built the automation to test against them.     &lt;/p&gt;

&lt;p&gt;Now you can scan from the same tool you use to build. No context switching. No separate CLI. Just ask your AI to check your work before you ship.&lt;/p&gt;

&lt;p&gt;Cybersecify is free for basic scans. Built by CyberSecAI Ltd.                                                                            &lt;/p&gt;

&lt;p&gt;Raza Sharif&lt;br&gt;&lt;br&gt;
  Founder, CyberSecAI Ltd&lt;br&gt;&lt;br&gt;
  cybersecify.co.uk  &lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>security</category>
      <category>claude</category>
      <category>owasp</category>
    </item>
    <item>
      <title>We Built the First DAST Scanner for AI Agents. Every Server we Tested Failed.</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Fri, 24 Apr 2026 09:46:21 +0000</pubDate>
      <link>https://dev.to/razashariff/we-built-the-first-dast-scanner-for-ai-agents-every-server-we-tested-failed-37m3</link>
      <guid>https://dev.to/razashariff/we-built-the-first-dast-scanner-for-ai-agents-every-server-we-tested-failed-37m3</guid>
      <description>&lt;p&gt;🦞 CyberSecClaw&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfhyu3mld0ngwknmbqme.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfhyu3mld0ngwknmbqme.jpeg" alt=" " width="800" height="99"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DAST (Dynamic Application Security Testing) has existed for web apps for 20 years. Scanners send HTTP requests to your web app and look&lt;br&gt;&lt;br&gt;
  for SQL injection, XSS, broken auth.                      &lt;/p&gt;

&lt;p&gt;But AI agents don't have web UIs. They communicate via MCP (Model Context Protocol), make tool calls, and operate autonomously.&lt;br&gt;&lt;br&gt;
  Traditional DAST can't scan them.&lt;/p&gt;

&lt;p&gt;Part of our stack now.                                          &lt;/p&gt;

&lt;p&gt;## What is Agent DAST?                                                                                                                   &lt;/p&gt;

&lt;p&gt;Same concept as web DAST, but for AI agents. Point it at any MCP server, it sends real attack payloads, and reports what's broken.       &lt;/p&gt;

&lt;p&gt;The difference: instead of testing 3-4 vulnerability categories, Agent DAST tests &lt;strong&gt;8 security dimensions&lt;/strong&gt; with &lt;strong&gt;38 real checks&lt;/strong&gt;.     &lt;/p&gt;

&lt;p&gt;## Multiple Security Dimensions - below examples :                                                                                                                    &lt;/p&gt;

&lt;p&gt;Every agent gets assessed across:                                                                                                        &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Identity&lt;/strong&gt; -- Can we connect with no credentials? Can we spoof another agent?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Injection&lt;/strong&gt; -- Command, SQL, path traversal, SSRF, prompt injection, XSS, tool poisoning&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalation&lt;/strong&gt; -- Can a low-trust agent call admin tools? Can it chain tools to gain access?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exfiltration&lt;/strong&gt; -- Can it send data to external endpoints? Does it leak PII in responses?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust Boundary&lt;/strong&gt; -- Can a malicious agent relay instructions through this one?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomy Control&lt;/strong&gt; -- Rate limits? Action budgets? Kill switch? Can monitoring be disabled?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrity&lt;/strong&gt; -- Are messages signed? Replay protection? Tool definition hash pinning?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance&lt;/strong&gt; -- OWASP MCP Top 10, OWASP Agentic AI Top 10, EU AI Act, OWASP AISVS C10
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;## We Scanned Public MCP Servers                                                                                     &lt;/p&gt;

&lt;p&gt;Here's what happened:                                                                                                                    &lt;/p&gt;

&lt;p&gt;| MCP Server | Company | Score | Passport |&lt;br&gt;
  |---|---|---|---|&lt;br&gt;&lt;br&gt;
  | DeepWiki | Cognition (Devin) | 30/100 | DENY |&lt;br&gt;
  | Blockscout | Blockscout | 34/100 | DENY |&lt;br&gt;&lt;br&gt;
  | Exa Search | Exa AI | 30/100 | DENY |&lt;br&gt;&lt;br&gt;
  | Korean Law MCP | Community (1,567 stars) | 30/100 | DENY |&lt;br&gt;&lt;br&gt;
  | DVMCP | CyberSecAI (test target) | 7/100 | DENY |  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every single one fails.&lt;/strong&gt; Zero production MCP servers pass an all-dimension security assessment.                                         &lt;/p&gt;

&lt;p&gt;The most common failures:                                                                                                                &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No authentication&lt;/strong&gt; -- anyone can call tools
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No message signing&lt;/strong&gt; -- requests can be tampered with in transit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No replay protection&lt;/strong&gt; -- captured requests can be replayed
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No trust boundary enforcement&lt;/strong&gt; -- agents blindly trust other agents
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No rate limiting&lt;/strong&gt; -- unlimited tool calls accepted
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No audit trail&lt;/strong&gt; -- no record of what happened
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;## What a Scan Looks Like                                 &lt;/p&gt;

&lt;p&gt;$ cybersecclaw agent-dast &lt;a href="https://target-server.com" rel="noopener noreferrer"&gt;https://target-server.com&lt;/a&gt;                                                                                      &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Running 8-Dimension Agent DAST...                                                                                                      

[1/8] IDENTITY........... 0%  (0 pass, 4 fail)                                                                                         
[2/8] INJECTION.......... 4%  (1 pass, 6 fail)          
[3/8] ESCALATION......... 0%  (0 pass, 4 fail)                                                                                         
[4/8] EXFILTRATION...... 50%  (2 pass, 2 fail)                                                                                         
[5/8] TRUST BOUNDARY..... 0%  (0 pass, 4 fail)
[6/8] AUTONOMY........... 0%  (0 pass, 5 fail)                                                                                         
[7/8] INTEGRITY.......... 0%  (0 pass, 5 fail)          
[8/8] COMPLIANCE......... 0%  (0 pass, 4 fail)                                                                                         

MITRE ATLAS: 14/14 techniques triggered                                                                                                
ATTACK CHAINS: 5 multi-step exploits identified         
KILL CHAIN: 8/9 stages VULNERABLE                                                                                                      

SCORE: 7/100 (F)  |  VERDICT: FAIL  |  PASSPORT: DENY                                                                                  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;It also includes:                                                                                                                        &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MITRE ATLAS mapping&lt;/strong&gt; -- every finding mapped to AI-specific attack techniques
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack chain analysis&lt;/strong&gt; -- shows how individual vulns combine into full compromise paths&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVE cross-reference&lt;/strong&gt; -- checks your SDK version against 13+ known MCP CVEs
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kill chain visualisation&lt;/strong&gt; -- 9 stages from reconnaissance to impact&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AutoFix recommendations&lt;/strong&gt; -- code patches for every finding with OWASP references
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;## Passport DENY = Agent Blocked                                                                                                         &lt;/p&gt;

&lt;p&gt;The scan produces a score across all 8 dimensions. Pass (70+) and the agent gets a cryptographic passport -- proof it's been assessed and meets minimum security posture. Fail and it's denied from production.&lt;/p&gt;

&lt;p&gt;Think of it as a credit check for AI agents. No score, no access.&lt;/p&gt;

&lt;p&gt;## Why Traditional DAST Can't Do This&lt;/p&gt;

&lt;p&gt;Traditional DAST scanners send HTTP requests to web forms and check responses. That finds SQL injection in a login page. But agents don't&lt;br&gt;
   have login pages.&lt;/p&gt;

&lt;p&gt;Agent attacks are different:                              &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool poisoning&lt;/strong&gt; -- hidden instructions in tool descriptions that manipulate agent behaviour&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust boundary violation&lt;/strong&gt; -- one agent relaying malicious instructions through another&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context poisoning&lt;/strong&gt; -- injecting fake security policies into shared agent memory
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oversight disabling&lt;/strong&gt; -- agents that turn off their own monitoring&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-hop chains&lt;/strong&gt; -- Agent A tells Agent B to tell Agent C to exfiltrate data
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't code bugs. They're agent behaviours. You can't find them by scanning source code. You have to test the running agent with&lt;br&gt;
  real attack payloads.                                                                                                                    &lt;/p&gt;

&lt;p&gt;That's Agent DAST.&lt;/p&gt;

&lt;p&gt;## The Standards Behind It&lt;/p&gt;

&lt;p&gt;Every finding maps to real standards:                                                                                                    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OWASP MCP Security Cheat Sheet&lt;/strong&gt; -- we contributed the message integrity section (Section 7)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OWASP AISVS C10&lt;/strong&gt; -- 3 requirements we authored (10.2.13, 10.4.11, 10.6.4)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OWASP MCP Top 10&lt;/strong&gt; -- 10/10 coverage
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OWASP Agentic AI Top 10&lt;/strong&gt; -- 8/10 coverage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EU AI Act&lt;/strong&gt; -- Articles 12-16, 50
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MITRE ATLAS&lt;/strong&gt; -- 14 AI-specific attack techniques
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We don't just test against the standards. We wrote them.  &lt;/p&gt;

&lt;p&gt;## What's Next&lt;/p&gt;

&lt;p&gt;Agent DAST is one part of the stack. The full lifecycle:                                                                                 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build&lt;/strong&gt; secure agents with the CyberSecClaw SDK
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scan&lt;/strong&gt; agents with Agent DAST (8 dimensions, 38 checks)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protect&lt;/strong&gt; agents at runtime with inline security inspection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certify&lt;/strong&gt; agents with a cryptographic passport
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're deploying AI agents in production and don't have an answer for "how do you know this agent is safe?" -- that's the gap we     close.                                                    &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;claw.cybersecai.co.uk&lt;/strong&gt;                                 &lt;/p&gt;




&lt;p&gt;&lt;em&gt;Raza Sharif -- Founder, CyberSecAI Ltd&lt;/em&gt;&lt;br&gt;
  &lt;em&gt;&lt;a href="mailto:raza@cybersecai.co.uk"&gt;raza@cybersecai.co.uk&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>devsec</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Your SOC 2 Audit Will Fail When AI Agents Arrive. Here's the 14-Control Fix.</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Sat, 18 Apr 2026 18:41:15 +0000</pubDate>
      <link>https://dev.to/razashariff/your-soc-2-audit-will-fail-when-ai-agents-arrive-heres-the-14-control-fix-58fp</link>
      <guid>https://dev.to/razashariff/your-soc-2-audit-will-fail-when-ai-agents-arrive-heres-the-14-control-fix-58fp</guid>
      <description>&lt;p&gt;SOC 2 was built for a world where humans initiate every privileged action. That world is ending.&lt;/p&gt;

&lt;p&gt;AI agents are screening sanctions, initiating payments, onboarding merchants, and processing loan repayments -- autonomously. And your SOC 2 auditor is going to ask one question that breaks everything:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Who initiated this transaction?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If your answer is "our API key" -- that's an audit finding. SOC 2 Trust Service Criteria CC6.1 requires privileged actions to be attributable to an identifiable entity. A shared API key used by 50 agents is not attribution. It's a gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: SOC 2 Assumes Humans
&lt;/h2&gt;

&lt;p&gt;Traditional SOC 2 controls assume:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A human logs in with unique credentials (CC6.2)&lt;/li&gt;
&lt;li&gt;Access is granted based on the human's role (CC6.3)&lt;/li&gt;
&lt;li&gt;Changes are authorised by a human manager (CC8.1)&lt;/li&gt;
&lt;li&gt;Anomalies are investigated by a human analyst (CC7.1)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI agents break every one of these assumptions. They don't log in -- they use API keys. They don't have roles -- they share the same key. They don't ask permission -- they act autonomously. And nobody monitors what each individual agent is doing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 14-Control Mapping
&lt;/h2&gt;

&lt;p&gt;I mapped the SOC 2 Trust Service Criteria to AI agent operations and found 14 controls that need agent-specific implementations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Access Controls (CC6)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;CC6.1 -- Logical Access Security&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Agents share API keys. No individual identity.&lt;/li&gt;
&lt;li&gt;Fix: Per-agent certificates with unique identity, trust level, and scopes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CC6.2 -- Credentials Before Access&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: API key is the only credential. No agent-level authentication.&lt;/li&gt;
&lt;li&gt;Fix: Agent presents a certificate on every request, verified against the customer's CA.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CC6.3 -- Least Privilege&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: All agents have the same API key permissions.&lt;/li&gt;
&lt;li&gt;Fix: Scope enforcement per agent. A sanctions-screening agent cannot initiate payments. A read-only agent cannot write.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CC6.6 -- Protect Against Threats&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: No mechanism to block rogue agents at the application layer.&lt;/li&gt;
&lt;li&gt;Fix: Reject unknown CAs, expired certs, and insufficient trust levels before any business logic executes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CC6.7 -- Credential Lifecycle Management&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: API keys rarely rotated. No per-agent credential lifecycle.&lt;/li&gt;
&lt;li&gt;Fix: Certificates with configurable expiry. Revocation via CRL. Lifecycle managed through a dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CC6.8 -- Prevent Unauthorised Access&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Rogue agent with a valid API key has full access.&lt;/li&gt;
&lt;li&gt;Fix: Individual agent revocation without affecting other agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  System Operations (CC7)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;CC7.1 -- Detect Anomalies&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: No agent-level behaviour monitoring.&lt;/li&gt;
&lt;li&gt;Fix: Behavioural anomaly detection on signed event streams. Baseline vs observed drift.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CC7.2 -- Monitor System Components&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Infrastructure monitored but agent activity is a blind spot.&lt;/li&gt;
&lt;li&gt;Fix: Every agent action logged with identity, trust level, timestamp, and result.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CC7.3 -- Evaluate Detected Events&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Agent actions not attributable. Can't evaluate what happened or why.&lt;/li&gt;
&lt;li&gt;Fix: Signed audit trail. Reconstruct exactly which agent did what, when, at what trust level.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CC7.4 -- Respond to Identified Events&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Can only rotate API key (kills all agents) or do nothing.&lt;/li&gt;
&lt;li&gt;Fix: Revoke individual agent certificates instantly. Downgrade trust level. Restrict scopes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Change Management (CC8)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;CC8.1 -- Authorise Changes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Agent capabilities can change without tracking.&lt;/li&gt;
&lt;li&gt;Fix: Scopes and trust level locked in the certificate at issuance. Changes require a new certificate from the CA. Fully auditable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Availability (A1)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;A1.1 -- System Availability and Recovery&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Compromised agent with shared API key forces full key rotation. All agents go down.&lt;/li&gt;
&lt;li&gt;Fix: Revoke one certificate. Other agents unaffected. Recovery in seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Processing Integrity (PI)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PI1.3 -- Data Processed Completely and Accurately&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Responses travel unsigned. No proof of processing integrity.&lt;/li&gt;
&lt;li&gt;Fix: Every response digitally signed. Any modification breaks the signature. Non-repudiable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;PI1.5 -- Outputs Stored Completely and Accurately&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gap: Log files say "API key X called endpoint Y." No agent attribution.&lt;/li&gt;
&lt;li&gt;Fix: Every output linked to the specific agent, trust level, scope, and processing step that produced it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Scorecard
&lt;/h2&gt;

&lt;p&gt;Of the 14 controls mapped, 12 can be addressed today with agent identity verification and message signing. One (CC7.1 -- behavioural anomaly detection) requires runtime monitoring. Zero gaps remain uncovered.&lt;/p&gt;

&lt;h2&gt;
  
  
  This Maps Beyond SOC 2
&lt;/h2&gt;

&lt;p&gt;The same agent identity controls satisfy multiple frameworks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ISO 27001&lt;/strong&gt; -- A.9 Access Control, A.10 Cryptography&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PCI DSS v4.0&lt;/strong&gt; -- Req 7 (access control), Req 8 (identification), Req 10 (logging)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EU AI Act&lt;/strong&gt; -- Art 12 (record-keeping), Art 14 (human oversight), Art 50 (transparency)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NIST AI RMF&lt;/strong&gt; -- Govern, Map, Measure, Manage functions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One integration. Multiple frameworks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Auditors Will Ask
&lt;/h2&gt;

&lt;p&gt;When your SOC 2 auditor sees AI agents in your environment, they will ask:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;"Which agent initiated this action?" -- You need per-agent identity, not shared API keys.&lt;/li&gt;
&lt;li&gt;"Can you prove this result wasn't tampered with?" -- You need signed responses, not just HTTPS.&lt;/li&gt;
&lt;li&gt;"How do you enforce least privilege for agents?" -- You need per-agent scopes, not shared permissions.&lt;/li&gt;
&lt;li&gt;"How do you revoke a compromised agent?" -- You need individual revocation, not full key rotation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you can't answer these today, start planning. The audit cycle is coming.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.aicpa.org/resources/download/2017-trust-services-criteria-with-revised-points-of-focus-2022" rel="noopener noreferrer"&gt;AICPA Trust Services Criteria&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://secureframe.com/hub/soc-2/common-criteria" rel="noopener noreferrer"&gt;SOC 2 Common Criteria Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/MCP_Security_Cheat_Sheet.html" rel="noopener noreferrer"&gt;OWASP MCP Security Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Raza Sharif, FBCS, CISSP, CSSLP&lt;br&gt;
CyberSecAI Ltd&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>soc2</category>
      <category>fintech</category>
    </item>
    <item>
      <title>AEBA: the missing observability layer for autonomous AI agents</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Wed, 15 Apr 2026 14:58:29 +0000</pubDate>
      <link>https://dev.to/razashariff/aeba-the-missing-observability-layer-for-autonomous-ai-agents-11lk</link>
      <guid>https://dev.to/razashariff/aeba-the-missing-observability-layer-for-autonomous-ai-agents-11lk</guid>
      <description>&lt;h1&gt;
  
  
  AEBA: the missing observability layer for autonomous AI agents
&lt;/h1&gt;

&lt;h2&gt;
  
  
  The ten-minute test your platform will fail
&lt;/h2&gt;

&lt;p&gt;Pick an autonomous AI agent in your infrastructure. Any one. A customer-support agent, a research agent, a payment agent, a code-reviewing agent. Now answer these five questions about what it did in the last twenty-four hours.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Which MCP tools did it invoke, in what order, and with what arguments?&lt;/li&gt;
&lt;li&gt;Which LLM models did it call, how many tokens did it consume, and what did that cost?&lt;/li&gt;
&lt;li&gt;Which of those tool calls returned &lt;code&gt;error&lt;/code&gt; or &lt;code&gt;denied&lt;/code&gt;, and what did it do next?&lt;/li&gt;
&lt;li&gt;Did it delegate any authority to a child agent, and if so, under what scope?&lt;/li&gt;
&lt;li&gt;Can you cryptographically prove, to an auditor, that the agent -- not someone impersonating it -- did all of the above?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you can answer one or two of those from logs, you are above average. If you can answer all five with tamper-evident records, you are in a category that does not exist in production anywhere today.&lt;/p&gt;

&lt;p&gt;That is the gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why existing platforms do not close it
&lt;/h2&gt;

&lt;p&gt;Every security and observability vendor you have heard of covers a layer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EDR / XDR&lt;/strong&gt; covers the endpoint. It sees processes and system calls. It does not see inside a Python process running a LangChain agent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UEBA&lt;/strong&gt; covers human users. It baselines &lt;code&gt;@john.smith&lt;/code&gt; from HR. It has no idea what &lt;code&gt;agent:acme-payments-01&lt;/code&gt; should or should not be doing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NDR&lt;/strong&gt; covers the network. It sees flows. It does not see inside TLS to your LLM provider, or read the MCP message the agent just sent its sub-agent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM observability&lt;/strong&gt; tools like generic tracing and metrics dashboards cover cost. They do not sign events. They do not correlate across agents. They do not map to a regulator's evidentiary bar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI firewalls&lt;/strong&gt; cover prompt input. They do not observe the agent's own behaviour once it is running.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is no dimension for the agent itself. And because agents are increasingly the business process -- not a tool a human uses, the business process -- the blind spot is enormous.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Event Behaviour Analysis
&lt;/h2&gt;

&lt;p&gt;User and Entity Behaviour Analytics (UEBA) was a category built for a human era. Agent Event Behaviour Analysis (AEBA) is the obvious next step.&lt;/p&gt;

&lt;p&gt;The working definition:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AEBA&lt;/strong&gt; is the continuous collection, signing, correlation, and behavioural analysis of every action performed by an autonomous AI agent -- tool calls, LLM prompts, MCP messages, skill loads, delegations, deployments, and compliance decisions -- producing cryptographically-verifiable telemetry suitable for detection, forensics, and regulatory audit.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Same SOC discipline as UEBA. Different subject. Different event types. Different adversary model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five properties the category needs
&lt;/h2&gt;

&lt;p&gt;Any serious AEBA implementation should satisfy at least these:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Events are signed at source
&lt;/h3&gt;

&lt;p&gt;Every event an agent emits is signed with a per-agent cryptographic key. The signature covers a canonical form of the event payload plus its position in a per-agent hash chain. This is the only way to make telemetry provably tamper-evident. Without it, an attacker who has compromised the agent has also compromised its audit trail.&lt;/p&gt;

&lt;p&gt;The algorithm details are implementation-specific, but the property is not negotiable.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Events are crypto-chained with our patent supported approach
&lt;/h3&gt;

&lt;p&gt;Each event includes the SHA-256 of the previous event's canonical form. A missing or rewritten event is detected at the receiver because the chain no longer closes. This is how you get &lt;em&gt;"evidence"&lt;/em&gt; rather than &lt;em&gt;"logs"&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Detection is adaptive and peer-aware
&lt;/h3&gt;

&lt;p&gt;Rules ship with the product. But rules always lag attackers. Adaptive detection -- learned from your own agent population and from peer behaviour -- catches drift before a rule author can write one.&lt;/p&gt;

&lt;p&gt;Critically, the detector must be poisoning-resistant: it cannot be taught that the attack pattern is &lt;em&gt;"normal"&lt;/em&gt; by the attacker themselves. The mechanism for this is the implementer's choice, but the requirement is categorical.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Findings are cost-aware
&lt;/h3&gt;

&lt;p&gt;Agents are an economic surface, not just a security one. A £5,000 anomalous payment or a £200 runaway LLM burst deserves a different urgency from a £0.001 one. Scoring should weight by cost impact. Budgets should be per-agent. Breach alerts should be automatic.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Findings are mapped to regulation
&lt;/h3&gt;

&lt;p&gt;Not "log management that might one day help compliance". Direct mapping: this alert satisfies EU AI Act Article 12 record-keeping. This alert evidences PSD2 Article 97 strong-customer-authentication. This alert is a Solvency II Pillar 2 material-action audit entry. This alert maps to MITRE ATT&amp;amp;CK technique T1566. That is the evidentiary bar auditors work from; telemetry that meets it is useful, telemetry that does not is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  What an integration looks like
&lt;/h2&gt;

&lt;p&gt;The developer story has to be one line. If it is not one line, agent teams will never turn it on.&lt;/p&gt;

&lt;p&gt;In Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;aeba&lt;/span&gt;
&lt;span class="n"&gt;aeba&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;autocapture&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://&amp;lt;your-hub&amp;gt;/ingest&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;agent_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;agent:research-01&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Node:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;aeba&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;aeba&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;aeba&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;autocapture&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://&amp;lt;your-hub&amp;gt;/ingest&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;agentId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;agent:research-01&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Under the hood the shim monkey-patches the popular agent frameworks -- LangChain, AutoGen, CrewAI, LlamaIndex, OpenAI, Anthropic, and MCP client/server. Every tool call, LLM call, and delegation becomes a signed AEBA event transmitted over TLS to your collector.&lt;/p&gt;

&lt;p&gt;No network tap. No inline proxy. No kernel hook. Just the agent process observing its own behaviour and signing the output.&lt;/p&gt;

&lt;p&gt;For closed or legacy agents that cannot take an SDK, a host-side sensor reads process-local network metadata and produces the same signed events. The transport is identical.&lt;/p&gt;

&lt;p&gt;Nothing surprising, once you think about it like UEBA for agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Standards and credibility
&lt;/h2&gt;

&lt;p&gt;AEBA is not a single vendor's proprietary invention. The underlying event transport is specified in an open IETF Internet-Draft so anyone can implement it and interoperability is possible from day one. The draft defines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A canonical event schema with mandatory fields (&lt;code&gt;agentId&lt;/code&gt;, &lt;code&gt;hostRuntimeId&lt;/code&gt;, &lt;code&gt;ts&lt;/code&gt;, &lt;code&gt;seq&lt;/code&gt;,).&lt;/li&gt;
&lt;li&gt;A canonical signing string over that schema.&lt;/li&gt;
&lt;li&gt;Signature algorithm selection.&lt;/li&gt;
&lt;li&gt;A threat model with thirteen named threats and mitigations.&lt;/li&gt;
&lt;li&gt;Interoperability bindings to syslog RFC 5424, CEF, and LEEF.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The detection and scoring method we ship on top of the transport is patent supported. That is by design -- a moat only works if the commodity layer is open and the intelligence layer is protected.&lt;/p&gt;

&lt;p&gt;On the security-hygiene side, AEBA aligns with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OWASP MCP Security Cheat Sheet&lt;/strong&gt; (Section 7 -- Message Integrity and Replay Protection)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OWASP MCP Top 10&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OWASP Agentic Skills Top 10&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NIST AI RMF&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EU AI Act&lt;/strong&gt; Articles 12, 13, 14, 15, 50, 72&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to try AEBA-XDR
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AEBA-XDR&lt;/strong&gt; is our production implementation. Signed telemetry. Adaptive detection. Tool-call intelligence. LLM-spend governance. Delegation-chain visibility. Compliance pack. Ships to your XDR or SIEM.&lt;/p&gt;

&lt;p&gt;Patent supported. A CyberSecAI company.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Marketing site and demo: &lt;a href="https://aeba.co.uk" rel="noopener noreferrer"&gt;https://aeba.co.uk&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Family products:

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://cybersecai.co.uk" rel="noopener noreferrer"&gt;https://cybersecai.co.uk&lt;/a&gt; (parent)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://agentpass.co.uk" rel="noopener noreferrer"&gt;https://agentpass.co.uk&lt;/a&gt; (agent trust scoring)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://agentsign.dev" rel="noopener noreferrer"&gt;https://agentsign.dev&lt;/a&gt; (zero-trust engine for agents)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mcpsaas.co.uk" rel="noopener noreferrer"&gt;https://mcpsaas.co.uk&lt;/a&gt; (managed MCP security)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mcp-secure.co.uk" rel="noopener noreferrer"&gt;https://mcp-secure.co.uk&lt;/a&gt; (signed MCP transport)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cybersecify.co.uk" rel="noopener noreferrer"&gt;https://cybersecify.co.uk&lt;/a&gt; (MCP Security Scanner)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://agentsearch.cybersecai.co.uk" rel="noopener noreferrer"&gt;https://agentsearch.cybersecai.co.uk&lt;/a&gt; (agent registry)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dvmcp.co.uk" rel="noopener noreferrer"&gt;https://dvmcp.co.uk&lt;/a&gt; (MCP vulnerability training)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Demo sandboxes are per-prospect, synthetic-data-only, NDA-gated, and auto-expire in 24 hours. Request one at &lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt; and we will provision within one business day.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable question
&lt;/h2&gt;

&lt;p&gt;If you are building, running, or governing AI agents right now, here is the sentence I keep saying to CISOs:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"When -- not if -- an agent does something your board needs to explain, what evidence will you hand the auditor?"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Today the honest answer is usually a chat log and a prayer. That is not a category of evidence that survives a regulator, a class action, or a Monday morning.&lt;/p&gt;

&lt;p&gt;AEBA is what an acceptable answer looks like. The category is opening. The vendors who ship it fastest will define it.&lt;/p&gt;

&lt;p&gt;We have started. Join us -- or build your own. But please do something. The exposure is growing by the quarter and the number of production agents is growing by the week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contact
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;contact@agentsign.dev&lt;/code&gt; -- commercial enquiries, demo requests, partnership&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;raza.sharif@outlook.com&lt;/code&gt; -- personal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-- Raza Sharif, FBCS CISSP CSSLP&lt;br&gt;
Founder, CyberSecAI Ltd&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>llm</category>
    </item>
    <item>
      <title>x-agent-trust: the new AI agent security API extension just got approved by OpenAPI in it's registry</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Sat, 11 Apr 2026 17:14:58 +0000</pubDate>
      <link>https://dev.to/razashariff/x-agent-trust-the-new-ai-agent-security-api-extension-just-got-approved-by-openapi-in-its-1h95</link>
      <guid>https://dev.to/razashariff/x-agent-trust-the-new-ai-agent-security-api-extension-just-got-approved-by-openapi-in-its-1h95</guid>
      <description>&lt;p&gt;The OpenAPI Initiative just approved &lt;strong&gt;&lt;code&gt;x-agent-trust&lt;/code&gt;&lt;/strong&gt; into its official &lt;a href="https://spec.openapis.org/registry/extension/x-agent-trust.html" rel="noopener noreferrer"&gt;Extensions Registry&lt;/a&gt; -- the first vendor extension in the registry specifically designed for APIs that serve autonomous AI agents.&lt;/p&gt;

&lt;p&gt;And the timing could not be more on point. Because what &lt;code&gt;x-agent-trust&lt;/code&gt; describes matches Palo Alto Networks Unit 42's mitigation recommendation, published in one of the most concrete pieces of agent security research to date.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Unit 42 found
&lt;/h2&gt;

&lt;p&gt;On October 31, 2025, Unit 42 researchers Jay Chen and Royce Lu published &lt;strong&gt;"When AI Agents Go Rogue: Agent Session Smuggling Attack in A2A Systems"&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The attack they documented is brutal in its simplicity. In an Agent2Agent (A2A) system, where two AI agents maintain a stateful conversation across multiple turns, a malicious remote agent can smuggle hidden instructions into what looks like a normal legitimate exchange. The victim agent, trusting the session context, executes the smuggled instructions as if they were part of the user's original request.&lt;/p&gt;

&lt;p&gt;Unit 42 demonstrated two proof-of-concept attacks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sensitive information leakage.&lt;/strong&gt; A malicious research assistant exfiltrated a financial assistant's internal state -- chat history, system instructions, available tools, and tool schemas -- through seemingly innocent clarification questions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unauthorized tool invocation.&lt;/strong&gt; The malicious agent convinced the financial assistant to execute &lt;strong&gt;unauthorized stock trades&lt;/strong&gt; without the user's knowledge or consent.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That second one is the nightmare scenario. An autonomous agent, trusted by a user to manage money, got hijacked mid-session and bought stocks nobody authorized it to buy.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix Unit 42 recommended
&lt;/h2&gt;

&lt;p&gt;Unit 42's mitigation language is specific. From the paper:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Agents should be required to present verifiable credentials, such as cryptographically signed AgentCards. This allows each participant to confirm the identity, origin and declared capabilities of the other."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Signed credentials. Verifiable identity. Declared capabilities. Independent confirmation by each participant. That's not a vague "use TLS" recommendation -- that's a specific architectural primitive that needs a wire-level contract, a signature algorithm, a verification method, and a way to declare what an agent is authorized to do.&lt;/p&gt;

&lt;p&gt;There was no open standard for that primitive when Unit 42 published.&lt;/p&gt;

&lt;p&gt;There is now.&lt;/p&gt;

&lt;h2&gt;
  
  
  What just got approved into the OpenAPI registry
&lt;/h2&gt;

&lt;p&gt;On April 11, 2026, the OpenAPI Initiative approved &lt;code&gt;x-agent-trust&lt;/code&gt; into its official &lt;a href="https://spec.openapis.org/registry/extension/x-agent-trust.html" rel="noopener noreferrer"&gt;Extensions Registry&lt;/a&gt; -- after review by the OpenAPI Technical Developer Community.&lt;/p&gt;

&lt;p&gt;The registry entry describes it as a &lt;em&gt;"trust-level metadata block for agent-authenticated security schemes"&lt;/em&gt; that pairs with an &lt;code&gt;apiKey&lt;/code&gt; security scheme using &lt;code&gt;Agent-Signature&lt;/code&gt; as the header. It carries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The signing algorithm&lt;/li&gt;
&lt;li&gt;A trust level vocabulary (L0 through L4)&lt;/li&gt;
&lt;li&gt;A JWKS endpoint for local verification&lt;/li&gt;
&lt;li&gt;A minimum trust level required by the endpoint&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a vendor-neutral, standards-body-approved way for an API to declare &lt;em&gt;"I accept requests from agents that present signed credentials, verified via this public key endpoint, at minimum this trust level."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In other words: it's the wire-level contract that matches Unit 42's mitigation recommendation. The extension addresses exactly the gap Unit 42 and similar research had been flagging for months.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side by side
&lt;/h2&gt;

&lt;p&gt;Here's what an API protected with &lt;code&gt;x-agent-trust&lt;/code&gt; looks like in its OpenAPI spec:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;components&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;securitySchemes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;AgentTrust&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apiKey&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Agent-Signature&lt;/span&gt;
      &lt;span class="na"&gt;in&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;header&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ECDSA-signed agent identity with trust metadata&lt;/span&gt;
      &lt;span class="na"&gt;x-agent-trust&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;algorithm&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ECDSA-P256-SHA256&lt;/span&gt;
        &lt;span class="na"&gt;trust-levels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L0-UNTRUSTED&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L1-RESTRICTED&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L2-STANDARD&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L3-ELEVATED&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L4-FULL&lt;/span&gt;
        &lt;span class="na"&gt;minimum-trust-level&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;L2-STANDARD&lt;/span&gt;
        &lt;span class="na"&gt;jwks-uri&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://example.com/.well-known/agent-trust-keys&lt;/span&gt;

&lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;/v1/trades/execute&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;post&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;security&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;AgentTrust&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[]&lt;/span&gt;
      &lt;span class="na"&gt;x-agent-trust-required&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;L3-ELEVATED&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's map the Unit 42 attack to what this stops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unit 42 attack step 1:&lt;/strong&gt; A malicious remote agent claims an identity in an A2A session.&lt;br&gt;
&lt;strong&gt;&lt;code&gt;x-agent-trust&lt;/code&gt; blocks this:&lt;/strong&gt; The agent must present an &lt;code&gt;Agent-Signature&lt;/code&gt; header signed by a key verifiable against the configured JWKS endpoint. A malicious agent that cannot produce a valid signature is rejected at the first call. No session is ever established.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unit 42 attack step 2:&lt;/strong&gt; The malicious agent smuggles hidden instructions that cause unauthorized stock trades.&lt;br&gt;
&lt;strong&gt;&lt;code&gt;x-agent-trust&lt;/code&gt; blocks this:&lt;/strong&gt; Every individual request carries its own signed &lt;code&gt;Agent-Signature&lt;/code&gt;. A smuggled instruction in a stateful session is not separately signed. The financial assistant's backend can verify each incoming instruction independently against the declared trust level. Unsigned or incorrectly-signed smuggled turns fail verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unit 42 attack step 3:&lt;/strong&gt; The unauthorized &lt;code&gt;/v1/trades/execute&lt;/code&gt; call proceeds because nothing distinguishes the authorized context from the smuggled one.&lt;br&gt;
&lt;strong&gt;&lt;code&gt;x-agent-trust&lt;/code&gt; blocks this:&lt;/strong&gt; The operation declares &lt;code&gt;x-agent-trust-required: L3-ELEVATED&lt;/code&gt;. Only agents presenting credentials that verifiably meet the L3 threshold are authorized to call it. A smuggled call that cannot produce an L3-level signed credential is denied at the security scheme layer.&lt;/p&gt;

&lt;p&gt;Unit 42 identified the problem. The OpenAPI Initiative approved a standardised answer. The extension is free to use, live today, and vendor-neutral.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters right now
&lt;/h2&gt;

&lt;p&gt;The last 90 days have been the most intense period for agent security incidents on record. To name only the public ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Langflow CVE-2026-33017&lt;/strong&gt; was exploited within 20 hours of disclosure and &lt;a href="https://www.bleepingcomputer.com/news/security/cisa-new-langflow-flaw-actively-exploited-to-hijack-ai-workflows/" rel="noopener noreferrer"&gt;added to CISA's Known Exploited Vulnerabilities catalog on March 26, 2026&lt;/a&gt; -- the first time CISA has added an AI agent framework to KEV.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LangChain and LangGraph&lt;/strong&gt; disclosed &lt;a href="https://thehackernews.com/2026/03/langchain-langgraph-flaws-expose-files.html" rel="noopener noreferrer"&gt;three CVEs on March 27, 2026&lt;/a&gt; across path traversal, unsafe deserialization, and SQL injection in the checkpoint store.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CrewAI&lt;/strong&gt; disclosed &lt;a href="https://www.securityweek.com/crewai-vulnerabilities-expose-devices-to-hacking/" rel="noopener noreferrer"&gt;four CVEs covering RCE via code interpreter, arbitrary file read, SSRF, and sandbox bypass&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Anthropic's &lt;code&gt;mcp-server-git&lt;/code&gt;&lt;/strong&gt; had &lt;a href="https://thehackernews.com/2026/01/three-flaws-in-anthropic-mcp-git-server.html" rel="noopener noreferrer"&gt;three CVEs disclosed by Cyata on January 20, 2026&lt;/a&gt;, chainable with the Filesystem MCP for remote code execution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Microsoft Security documented a live AI recommendation poisoning campaign&lt;/strong&gt; targeting Copilot, ChatGPT, Claude, Perplexity, and Grok, &lt;a href="https://www.microsoft.com/en-us/security/blog/2026/02/10/ai-recommendation-poisoning/" rel="noopener noreferrer"&gt;with 50+ real-world examples from 31 companies across 14 industries&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The MCPTox benchmark&lt;/strong&gt; tested 45 live real-world MCP servers and 353 authentic tools against 1,312 malicious cases. Stronger models were more susceptible: o1-mini had a 72.8% attack success rate, Claude-3.7-Sonnet refused fewer than 3% of attacks. More capable models are, paradoxically, easier to poison because they follow instructions more faithfully.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern across all these incidents is the same. Agents are being trusted without verifiable identity. Tool calls are unsigned. Capabilities are implicit rather than declared. There is no cryptographic audit trail that a CISO or compliance team can inspect after the fact.&lt;/p&gt;

&lt;p&gt;This is the problem Unit 42 flagged. It is the problem &lt;code&gt;x-agent-trust&lt;/code&gt; is designed to solve at the API description layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this extension is not
&lt;/h2&gt;

&lt;p&gt;To be precise about scope:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is not a replacement for OAuth 2.0, mTLS, or API keys.&lt;/strong&gt; It sits alongside existing authentication and adds an agent-specific layer on top.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is not a runtime library.&lt;/strong&gt; It describes the contract in an OpenAPI spec. Verification happens in your API server using whatever library you prefer. Reference implementations exist in Go (&lt;code&gt;mcps-go&lt;/code&gt;), Node.js (&lt;code&gt;mcp-secure&lt;/code&gt; on npm), and Python (&lt;code&gt;mcps-secure&lt;/code&gt; on PyPI).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is not a full Public Key Infrastructure.&lt;/strong&gt; Those are covered in separate IETF Internet-Drafts and sit underneath this layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is not the only answer.&lt;/strong&gt; Unit 42 correctly describes a layered defence: human-in-the-loop enforcement, context grounding, agent identity validation, and user-facing transparency. &lt;code&gt;x-agent-trust&lt;/code&gt; is the standardised primitive for the "agent identity validation" layer. &lt;/p&gt;

&lt;h2&gt;
  
  
  What to do with it
&lt;/h2&gt;

&lt;p&gt;If you build APIs that will be called by AI agents:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add &lt;code&gt;x-agent-trust&lt;/code&gt; to the security scheme in your OpenAPI spec&lt;/li&gt;
&lt;li&gt;Publish a JWKS endpoint at &lt;code&gt;/.well-known/agent-trust-keys&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Verify incoming &lt;code&gt;Agent-Signature&lt;/code&gt; headers against the published keys&lt;/li&gt;
&lt;li&gt;Enforce the declared trust level at the operation level&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The extension is documented in the &lt;a href="https://spec.openapis.org/registry/extension/x-agent-trust.html" rel="noopener noreferrer"&gt;OpenAPI Extensions Registry&lt;/a&gt;. Implementation guidance for message signing is in the &lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/MCP_Security_Cheat_Sheet.html" rel="noopener noreferrer"&gt;OWASP MCP Security Cheat Sheet, Section 7&lt;/a&gt;. A working integration guide is at &lt;a href="https://x-agent-auth.fly.dev/integrate" rel="noopener noreferrer"&gt;x-agent-auth.fly.dev/integrate&lt;/a&gt;. Audit your spec with &lt;code&gt;npx cybersecify&lt;/code&gt; for &lt;code&gt;x-agent-trust&lt;/code&gt; compliance issues.&lt;/p&gt;

&lt;p&gt;If you maintain a security scanner, OpenAPI tool, API gateway, or agent framework, supporting &lt;code&gt;x-agent-trust&lt;/code&gt; is a low-effort, high-visibility addition. The extension is an approved vendor-neutral standard in the OpenAPI registry, not a proprietary proposal.&lt;/p&gt;

&lt;p&gt;If you're a security researcher looking at agent attacks, the attack surface Unit 42 and others have documented is real, actively exploited, and growing. A standards-based defence layer exists. &lt;strong&gt;Use it now and secure your AI agents.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Credit where credit is due
&lt;/h2&gt;

&lt;p&gt;The credit for identifying the attack pattern belongs to the security researchers who published the primary research: Jay Chen and Royce Lu at Palo Alto Networks Unit 42 on A2A session smuggling; the Cyata team on the Anthropic &lt;code&gt;mcp-server-git&lt;/code&gt; CVEs; Check Point Research on Claude Code; Adnan Khan on Clinejection; the Microsoft Security team on recommendation poisoning; and the academic teams behind MCPTox. Their work identified the problems before most of the industry was paying attention.&lt;/p&gt;

&lt;p&gt;The OpenAPI Initiative's Technical Developer Community did the review work that approved &lt;code&gt;x-agent-trust&lt;/code&gt; into the official registry. &lt;/p&gt;

&lt;h2&gt;
  
  
  Links and references
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://spec.openapis.org/registry/extension/x-agent-trust.html" rel="noopener noreferrer"&gt;OpenAPI Extensions Registry: x-agent-trust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://unit42.paloaltonetworks.com/agent-session-smuggling-in-agent2agent-systems/" rel="noopener noreferrer"&gt;Unit 42: When AI Agents Go Rogue: Agent Session Smuggling Attack in A2A Systems&lt;/a&gt; (Jay Chen and Royce Lu, Palo Alto Networks, October 31, 2025)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/MCP_Security_Cheat_Sheet.html" rel="noopener noreferrer"&gt;OWASP MCP Security Cheat Sheet, Section 7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://datatracker.ietf.org/doc/draft-sharif-mcps-secure-mcp/" rel="noopener noreferrer"&gt;IETF draft-sharif-mcps-secure-mcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bleepingcomputer.com/news/security/cisa-new-langflow-flaw-actively-exploited-to-hijack-ai-workflows/" rel="noopener noreferrer"&gt;CISA KEV: CVE-2026-33017 (Langflow)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.microsoft.com/en-us/security/blog/2026/02/10/ai-recommendation-poisoning/" rel="noopener noreferrer"&gt;Microsoft Security: AI Recommendation Poisoning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x-agent-auth.fly.dev/integrate" rel="noopener noreferrer"&gt;Integration guide: x-agent-auth.fly.dev/integrate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cybersecify.co.uk" rel="noopener noreferrer"&gt;Cybersecify (audit your OpenAPI specs for x-agent-trust compliance)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Raza Sharif&lt;/strong&gt;&lt;br&gt;
Founder, CyberSecAI Ltd - Building the Trust Layer for AI.&lt;br&gt;
&lt;a href="https://cybersecai.co.uk" rel="noopener noreferrer"&gt;cybersecai.co.uk&lt;/a&gt;&lt;br&gt;
&lt;a href="mailto:contact@agentsign.dev"&gt;contact@agentsign.dev&lt;/a&gt; | &lt;a href="mailto:raza@cybersecai.co.uk"&gt;raza@cybersecai.co.uk&lt;/a&gt;&lt;/p&gt;

</description>
      <category>openapi</category>
      <category>aiagents</category>
      <category>apisecurity</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>The OpenAPI Initiative just merged our new extension called x-agent-trust into its official extensions registry for AI Agents</title>
      <dc:creator>razashariff</dc:creator>
      <pubDate>Sat, 11 Apr 2026 09:25:40 +0000</pubDate>
      <link>https://dev.to/razashariff/the-openapi-initiative-just-merged-our-new-extension-called-x-agent-trust-into-its-official-1of9</link>
      <guid>https://dev.to/razashariff/the-openapi-initiative-just-merged-our-new-extension-called-x-agent-trust-into-its-official-1of9</guid>
      <description>&lt;p&gt;It is the first vendor extension in OpenAPI specifically designed for APIs that serve autonomous AI agents.&lt;/p&gt;

&lt;p&gt;If you build APIs, this is worth 5 minutes of your time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Right now, OpenAPI gives you three ways to describe how a caller authenticates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API key in a header&lt;/li&gt;
&lt;li&gt;OAuth 2.0 / OpenID Connect&lt;/li&gt;
&lt;li&gt;Mutual TLS with client certificates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All three were designed for humans and their apps. None of them answer the question that matters when an AI agent calls your API:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who is this agent, and should I trust it to do what it is asking?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An API key tells you nothing about the agent behind the request. OAuth proves a human delegated access to an application, not that the application is an autonomous agent with a specific trust level. Client certificates prove machine identity, not agent identity.&lt;/p&gt;

&lt;p&gt;The standards layer has no primitive for "this agent has a trust score of 70, is authorized to spend up to GBP 1000 per transaction, runs the Claude model, and was delegated by a human user with a specific identity."&lt;/p&gt;

&lt;p&gt;Until today.&lt;/p&gt;

&lt;h2&gt;
  
  
  What x-agent-trust does
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;x-agent-trust&lt;/code&gt; extends OpenAPI security schemes with metadata that describes how agents authenticate and how their trust should be evaluated. It is designed to sit alongside your existing security schemes, not replace them.&lt;/p&gt;

&lt;p&gt;Here is what it looks like in a spec:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;components&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;securitySchemes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;AgentTrust&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apiKey&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Agent-Signature&lt;/span&gt;
      &lt;span class="na"&gt;in&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;header&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ECDSA-signed agent identity with trust metadata&lt;/span&gt;
      &lt;span class="na"&gt;x-agent-trust&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;algorithm&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ECDSA-P256-SHA256&lt;/span&gt;
        &lt;span class="na"&gt;trust-levels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L0-UNTRUSTED&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L1-RESTRICTED&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L2-STANDARD&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L3-ELEVATED&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;L4-FULL&lt;/span&gt;
        &lt;span class="na"&gt;minimum-trust-level&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;L2-STANDARD&lt;/span&gt;
        &lt;span class="na"&gt;jwks-uri&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://example.com/.well-known/jwks.json&lt;/span&gt;
        &lt;span class="na"&gt;verification&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;local&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is it. Five lines.&lt;/p&gt;

&lt;p&gt;Now any tool that reads your OpenAPI spec knows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agents authenticate via an &lt;code&gt;Agent-Signature&lt;/code&gt; header&lt;/li&gt;
&lt;li&gt;The signature uses ECDSA P-256 with SHA-256&lt;/li&gt;
&lt;li&gt;There are five trust levels (L0 through L4)&lt;/li&gt;
&lt;li&gt;This endpoint requires at least L2 (standard) trust&lt;/li&gt;
&lt;li&gt;The public keys for verification are at a standard JWKS endpoint&lt;/li&gt;
&lt;li&gt;Verification can happen locally without a callback to the issuer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your existing authentication stays in place. &lt;code&gt;x-agent-trust&lt;/code&gt; adds the agent-specific context on top.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;Every API on the internet is about to start receiving traffic from autonomous AI agents. Not chatbots. Not copilots. Actual autonomous agents making decisions, calling tools, and executing transactions on behalf of humans or organizations.&lt;/p&gt;

&lt;p&gt;If you run an API today that could be called by an agent, three things are true:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;You need to know if the caller is an agent&lt;/strong&gt;, so you can apply different policies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need to know the agent's trust level&lt;/strong&gt;, so you can decide whether to serve the request&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need to prove to auditors what happened&lt;/strong&gt;, because "an AI agent called my API" is going to become a compliance requirement in regulated industries&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;x-agent-trust&lt;/code&gt; gives you a standard way to describe all three in your API specification. No proprietary format. No vendor lock-in. Same registry that defines extensions used by AWS, Google, Microsoft.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can do with it today
&lt;/h2&gt;

&lt;p&gt;Add it to your OpenAPI spec. Tools will progressively add support as agent traffic grows. Even without tool support, the extension serves as documentation for anyone integrating with your API.&lt;/p&gt;

&lt;p&gt;For fintechs and payment processors, this is particularly relevant. If your API processes financial transactions, agents are already calling it. Describing your trust requirements with &lt;code&gt;x-agent-trust&lt;/code&gt; gives compliance teams a machine-readable answer to "what trust level is required for this operation?"&lt;/p&gt;

&lt;p&gt;For MCP server authors, this is the standard way to expose security requirements in a format that any OpenAPI-aware tool can understand.&lt;/p&gt;

&lt;h2&gt;
  
  
  The broader picture
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;x-agent-trust&lt;/code&gt; is part of a larger effort to build the standards layer for the agent economy. The related pieces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OWASP MCP Security Cheat Sheet Section 7&lt;/strong&gt; covers message integrity, replay protection, and tool hash-pinning for agent calls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IETF draft-sharif-apki-agent-pki-00&lt;/strong&gt; defines the full certificate-based Agent Public Key Infrastructure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IETF draft-sharif-mcps-secure-mcp&lt;/strong&gt; covers cryptographic signing for MCP messages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI x-agent-trust&lt;/strong&gt; (this extension) provides the API description layer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Four different standards bodies, one consistent story. Each layer builds on the others.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get involved
&lt;/h2&gt;

&lt;p&gt;The extension is live now at:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://spec.openapis.org/registry/extension/" rel="noopener noreferrer"&gt;https://spec.openapis.org/registry/extension/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you maintain a tool that reads OpenAPI specs (Swagger UI, Redoc, Postman, Stoplight, Kong, Apigee, Tyk), consider adding support for rendering &lt;code&gt;x-agent-trust&lt;/code&gt; metadata.&lt;/p&gt;

&lt;p&gt;If you build APIs that agents call, start including it in your specs. The syntax is stable and the registry entry is permanent.&lt;/p&gt;

&lt;p&gt;If you have feedback or questions, find me on GitHub at razashariff or reach out via:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="mailto:raza@cybersecai.co.uk"&gt;raza@cybersecai.co.uk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:raza.sharif@outlook.com"&gt;raza.sharif@outlook.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;cybersecai.co.uk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent traffic is coming. The standards are here. Time to use them.&lt;/p&gt;




&lt;p&gt;Raza Sharif&lt;br&gt;
CyberSecAI Ltd | cybersecai.co.uk&lt;/p&gt;

</description>
      <category>openapi</category>
      <category>ai</category>
      <category>api</category>
      <category>security</category>
    </item>
  </channel>
</rss>
