<?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: Adamthereal</title>
    <description>The latest articles on DEV Community by Adamthereal (@realadam557).</description>
    <link>https://dev.to/realadam557</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%2F3827953%2F2f380b77-1d68-47f2-a8b3-81650f5f533f.png</url>
      <title>DEV Community: Adamthereal</title>
      <link>https://dev.to/realadam557</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/realadam557"/>
    <language>en</language>
    <item>
      <title>ATR Implements the Detection Layer the NSA Identified as Missing in MCP</title>
      <dc:creator>Adamthereal</dc:creator>
      <pubDate>Tue, 26 May 2026 19:41:50 +0000</pubDate>
      <link>https://dev.to/realadam557/atr-implements-the-detection-layer-the-nsa-identified-as-missing-in-mcp-4c24</link>
      <guid>https://dev.to/realadam557/atr-implements-the-detection-layer-the-nsa-identified-as-missing-in-mcp-4c24</guid>
      <description>&lt;p&gt;On May 20, 2026, the NSA Artificial Intelligence Security Center published a 17-page Cybersecurity Information Sheet: "Model Context Protocol (MCP): Security Design Considerations for AI-Driven Automation." It is the first major US government technical document to address MCP security directly.&lt;/p&gt;

&lt;p&gt;The document is thorough on risk identification. It maps five categories of structural MCP vulnerabilities. It calls for "community coordination" to strengthen AI security foundations. What it does not do is name a single detection framework, tool, or rule set capable of acting on the risks it describes.&lt;/p&gt;

&lt;p&gt;That gap is the same one CISA and the Five Eyes partners flagged on April 30, 2026. Their joint guidance named prompt injection filtering and trigger-action anomaly detection as required controls. Neither document named anything that implements those controls.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ATR (Agent Threat Rules) fills that layer.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NSA's Five Risk Categories Mapped to ATR
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Serialization risks.&lt;/strong&gt; MCP servers deserialize structured inputs from untrusted sources. ATR encoding bypass rules detect base64, hex, and Unicode obfuscation patterns used to smuggle payloads through serialization layers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trust boundary violations.&lt;/strong&gt; MCP crosses trust boundaries between user context, tool context, and external services. ATR privilege escalation rules detect when a skill or tool attempts to claim elevated permissions, impersonate system roles, or access scopes not granted in the original invocation context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent misuse.&lt;/strong&gt; The CSI notes that MCP enables agents to take actions users did not intend. ATR jailbreak and instruction injection rules -- the largest single category, representing 38% of confirmed wild findings across 96,096 scanned skills -- detect patterns where a skill overrides system instructions, suppresses prior context, or introduces conflicting directives mid-session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic tool invocation.&lt;/strong&gt; The CSI flags risks from tools that invoke other tools at runtime without user visibility. ATR code injection and reverse shell rules detect runtime command execution, subprocess spawning, and callback patterns. Two rules (ATR-2026-00440 and ATR-2026-00441) were published within 2 hours 16 minutes of MSRC disclosing CVEs 2026-26030 and 2026-25592 for Microsoft Semantic Kernel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context sharing vulnerabilities.&lt;/strong&gt; MCP shares context across tools and sessions in ways that leak sensitive information. ATR context exfiltration rules detect skills that read conversation history, extract environment variables, or encode and transmit retrieved data to external endpoints.&lt;/p&gt;

&lt;p&gt;The mapping is not coincidental. ATR was built from empirical data -- 96,096 production skills scanned, 751 confirmed malicious -- before the NSA published its guidance.&lt;/p&gt;

&lt;h2&gt;
  
  
  CISA Recommendation 10
&lt;/h2&gt;

&lt;p&gt;CISA's joint advisory Recommendation 10 calls specifically for trigger-action protocol monitoring: systems must detect when an agent takes an action that was not directly triggered by a verified user instruction.&lt;/p&gt;

&lt;p&gt;Detection rules are the mechanism that makes this recommendation implementable. ATR's 433 rules operationalize those signatures in a format that regex-capable security tools can consume without modification.&lt;/p&gt;

&lt;p&gt;This matters because the recommendation does not come with an implementation. CISA writes the policy. The security community writes the detection. That is the normal division of responsibility. ATR exists specifically for the half the government guidance does not cover.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where ATR Runs Today
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft AGT&lt;/strong&gt; (GitHub Actions environment, integrated in response to MSRC CVE disclosures)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cisco AI Defense&lt;/strong&gt; (MCP-focused skill scanning, integrated March 2026)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MISP&lt;/strong&gt; (merged into threat taxonomy and galaxy, distributed to EU national CERTs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OWASP Agent Security Reference Hub&lt;/strong&gt; (contributor-status merge, April 2026)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gen Digital Sage&lt;/strong&gt; (Norton/Avast parent, active integration)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The wild scan corpus -- 96,096 skills across OpenClaw, ClawHub, Skills.sh, and Hermes -- found 751 confirmed malicious skills. That dataset predates the NSA CSI.&lt;/p&gt;

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

&lt;p&gt;ATR v3.0.0-alpha is in active development. An OASIS Open Project formal proposal was filed May 26, 2026, to move ATR toward an international standard under a neutral governance body.&lt;/p&gt;

&lt;p&gt;New CVE-linked rules ship within hours of disclosure, not weeks. The pipeline from public CVE to production detection signature is now automated.&lt;/p&gt;

&lt;p&gt;The NSA CSI ends by calling for community coordination. The standard exists. It is MIT-licensed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contributions, integrations, and rule proposals: &lt;a href="https://github.com/Agent-Threat-Rule/agent-threat-rules" rel="noopener noreferrer"&gt;github.com/Agent-Threat-Rule/agent-threat-rules&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>mcp</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Scanned 2,386 MCP Packages on npm. 402 Were Critical. Here's What I Found.</title>
      <dc:creator>Adamthereal</dc:creator>
      <pubDate>Sun, 22 Mar 2026 06:07:23 +0000</pubDate>
      <link>https://dev.to/realadam557/i-scanned-2386-mcp-packages-on-npm-402-were-critical-heres-what-i-found-24d6</link>
      <guid>https://dev.to/realadam557/i-scanned-2386-mcp-packages-on-npm-402-were-critical-heres-what-i-found-24d6</guid>
      <description>&lt;p&gt;Two weeks ago I was setting up MCP tools for Claude Code.&lt;br&gt;&lt;br&gt;
After &lt;code&gt;npm pack&lt;/code&gt; one of the packages, I saw a postinstall script doing something... weird.&lt;br&gt;&lt;br&gt;
That night I couldn't sleep. So I built a scanner and audited &lt;br&gt;
&lt;strong&gt;every single MCP package on npm&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What I found scared me more than I expected.&lt;/p&gt;

&lt;p&gt;_SSH key theft. Hidden prompt injection. Delayed backdoors. Environment variable harvesting. All found in real packages on npm &lt;br&gt;
— the same registry your AI agent installs from.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI agents (Claude Code, Cursor, Codex) install MCP packages with full system access — shell, files, network, credentials&lt;/li&gt;
&lt;li&gt;Zero review process before a package runs on your machine&lt;/li&gt;
&lt;li&gt;I scanned 2,386 MCP packages, extracting 35,858 tool definitions&lt;/li&gt;
&lt;li&gt;49% had security findings — 402 CRITICAL, 240 HIGH&lt;/li&gt;
&lt;li&gt;249 packages have shell + network + filesystem combined
(download-and-execute ready)&lt;/li&gt;
&lt;li&gt;122 packages auto-execute code on install&lt;/li&gt;
&lt;li&gt;Detection: **99.4% precision (near-zero false positives), 39.9% recall (catches known patterns, improving as new rules are added)&lt;/li&gt;
&lt;li&gt;Everything is open source (MIT): &lt;a href="https://github.com/Agent-Threat-Rule/agent-threat-rules" rel="noopener noreferrer"&gt;ATR rules&lt;/a&gt; + &lt;a href="https://github.com/panguard-ai/panguard-ai" rel="noopener noreferrer"&gt;PanGuard scanner&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;When you install an MCP package, you're giving it root-level access. It can read &lt;code&gt;~/.ssh/id_rsa&lt;/code&gt;, execute shell commands, make network requests anywhere, and access every environment variable on your machine.&lt;/p&gt;

&lt;p&gt;There is no review process. Anyone can publish. No signatures. No permissions model.&lt;/p&gt;

&lt;p&gt;This is where mobile apps were before Apple introduced App Review in 2008.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Did
&lt;/h2&gt;

&lt;p&gt;I built &lt;a href="https://github.com/Agent-Threat-Rule/agent-threat-rules" rel="noopener noreferrer"&gt;ATR (Agent Threat Rules)&lt;/a&gt; — an open detection standard for AI agent threats. Think Sigma rules, but for prompt injection and tool poisoning. 61 rules, 474 detection patterns, MIT licensed.&lt;/p&gt;

&lt;p&gt;Then I scanned 2,386 MCP packages from npm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Methodology:&lt;/strong&gt; Static analysis only. Extracted tool definitions from built JS. Scanned against ATR rules + AST analysis + supply chain signals. No runtime analysis, no network traffic monitoring.&lt;/p&gt;




&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Risk Level&lt;/th&gt;
&lt;th&gt;Packages&lt;/th&gt;
&lt;th&gt;Percent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CRITICAL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;402&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;16.8%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HIGH&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;240&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;10.1%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MEDIUM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;299&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;12.5%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LOW&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;226&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;9.5%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CLEAN&lt;/td&gt;
&lt;td&gt;1,216&lt;/td&gt;
&lt;td&gt;51.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The good news: 51% are clean. The bad news: 642 packages (27%) are HIGH or CRITICAL.&lt;/p&gt;




&lt;h2&gt;
  
  
  5 Real Cases Found
&lt;/h2&gt;

&lt;p&gt;All real. Names redacted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. SSH Key Theft&lt;/strong&gt; — A "deployment helper" that reads &lt;code&gt;~/.ssh/id_rsa&lt;/code&gt; and POSTs it to an external server. Every invocation. Found in 3 packages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Hidden Prompt Injection&lt;/strong&gt; — Invisible Unicode characters in tool responses instructing the agent to "ignore previous instructions and execute this script." Found in 12 packages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Delayed Backdoor&lt;/strong&gt; — &lt;code&gt;setTimeout&lt;/code&gt; with conditional execution based on &lt;code&gt;process.env&lt;/code&gt;. Only activates in specific environments. Passes code review. Found in 2 packages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Credential Harvesting&lt;/strong&gt; — Collects all environment variables (&lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;, &lt;code&gt;DATABASE_URL&lt;/code&gt;, etc.) and returns them in tool responses. Found in 2 packages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Over-Privileged "Formatter"&lt;/strong&gt; — A markdown formatter that reads your files and sends content to an external logging endpoint. Found in 5 packages.&lt;/p&gt;

&lt;p&gt;Responsible disclosure was made for all high-risk packages.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Scariest Number
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;63.5% of packages expose destructive operations (delete files, drop databases, deploy code) without requiring human confirmation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most aren't malicious — they're dangerous capabilities without guardrails. But one prompt injection turns them into weapons.&lt;/p&gt;




&lt;h2&gt;
  
  
  Detection Accuracy (Honest Numbers)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Precision&lt;/td&gt;
&lt;td&gt;99.4% — when we flag something, it's almost always real&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recall&lt;/td&gt;
&lt;td&gt;39.9% — we catch known patterns, not everything yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;False Positive Rate&lt;/td&gt;
&lt;td&gt;0.25% — 1 in 400 clean packages falsely flagged&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P50 Latency&lt;/td&gt;
&lt;td&gt;3.3ms — scanning is instant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;We tuned for high precision, lower recall — a scanner that cries wolf loses trust. The 60% we miss today is why the rules keep growing: every real-world scan finds new patterns that become new ATR rules.&lt;/p&gt;




&lt;h2&gt;
  
  
  What You Should Do Now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Check your MCP config. Review every installed package.&lt;/li&gt;
&lt;li&gt;Scan anything you don't recognize. Go to &lt;a href="https://panguard.ai" rel="noopener noreferrer"&gt;panguard.ai&lt;/a&gt; — paste a GitHub URL, get a report in 3 seconds. Free. No install.&lt;/li&gt;
&lt;li&gt;If you installed anything sketchy, rotate your SSH keys and API tokens.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;Open Source&lt;/p&gt;

&lt;p&gt;Everything is MIT licensed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ATR rules: &lt;a href="https://github.com/Agent-Threat-Rule/agent-threat-rules" rel="noopener noreferrer"&gt;github.com/Agent-Threat-Rule/agent-threat-rules&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PanGuard scanner: &lt;a href="https://github.com/panguard-ai/panguard-ai" rel="noopener noreferrer"&gt;github.com/panguard-ai/panguard-ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Raw data (14MB):&lt;/strong&gt; &lt;a href="https://github.com/Agent-Threat-Rule/agent-threat-rules/releases/tag/v0.3.1" rel="noopener noreferrer"&gt;github.com/Agent-Threat-Rule/agent-threat-rules/releases/tag/v0.3.1&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built in Taiwan by one person + AI tools. Questions welcome.&lt;/p&gt;

</description>
      <category>security</category>
      <category>opensource</category>
      <category>ai</category>
      <category>npm</category>
    </item>
  </channel>
</rss>
