<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Phil Stafford</title>
    <description>The latest articles on Forem by Phil Stafford (@phil_stafford).</description>
    <link>https://forem.com/phil_stafford</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%2F3790269%2F2553c05e-e006-4630-a36b-3f381ccb9c2a.PNG</url>
      <title>Forem: Phil Stafford</title>
      <link>https://forem.com/phil_stafford</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/phil_stafford"/>
    <language>en</language>
    <item>
      <title>Anthropic Just Published a Kill Chain for AI Model Theft. Let's Break It Down.</title>
      <dc:creator>Phil Stafford</dc:creator>
      <pubDate>Wed, 25 Feb 2026 13:15:35 +0000</pubDate>
      <link>https://forem.com/phil_stafford/anthropic-just-published-a-kill-chain-for-ai-model-theft-lets-break-it-down-42nm</link>
      <guid>https://forem.com/phil_stafford/anthropic-just-published-a-kill-chain-for-ai-model-theft-lets-break-it-down-42nm</guid>
      <description>&lt;p&gt;&lt;em&gt;Attack patterns, detection challenges, and defensive gaps from the industrial-scale distillation campaigns against Claude.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;On February 24, Anthropic dropped a detailed report attributing industrial-scale distillation campaigns against Claude to three Chinese AI labs: DeepSeek, Moonshot AI, and MiniMax. The numbers: 24,000 fraudulent accounts, 16+ million exchanges, targeting reasoning, agentic tool use, coding, and computer vision.&lt;/p&gt;

&lt;p&gt;The geopolitical framing is getting all the coverage. This piece is about the technical content — because what Anthropic actually published is a kill chain analysis for AI model capability extraction, and there are concrete takeaways for anyone building or defending systems that expose model capabilities through APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Attack Surface: Your Model's Output IS the Exfiltration Channel
&lt;/h2&gt;

&lt;p&gt;Traditional data exfiltration moves data out through network channels, side channels, or compromised endpoints. Distillation flips this: the exfiltration channel is the product's intended interface. Every API response is a potential training sample. The model's designed behavior &lt;em&gt;is&lt;/em&gt; the thing being stolen.&lt;/p&gt;

&lt;p&gt;This means conventional API security — rate limiting, authentication, payload inspection, WAF rules — addresses the wrong layer of the problem. A distillation query is syntactically and semantically identical to a legitimate query. The signal isn't in individual requests. It's in the aggregate pattern across thousands of accounts and millions of interactions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three Tiers of Extraction
&lt;/h2&gt;

&lt;p&gt;Anthropic's report describes increasingly sophisticated extraction techniques that map to different training objectives. Each tier extracts a different kind of value and needs a different detection approach.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 1: Supervised Fine-Tuning Data&lt;/strong&gt;&lt;br&gt;
The baseline approach. Generate diverse prompts, collect high-quality responses, use the (input, output) pairs as training data. This is what the bulk of MiniMax's 13 million exchanges likely comprised — volume-oriented harvesting of agentic coding and tool-use responses. Detection signal: high volume, narrow capability focus, repetitive structural patterns across distributed accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 2: Chain-of-Thought Extraction&lt;/strong&gt;&lt;br&gt;
More targeted. Anthropic specifically called out DeepSeek prompts that asked Claude to "imagine and articulate the internal reasoning behind a completed response and write it out step by step." This isn't harvesting outputs — it's harvesting the reasoning process. The resulting data is more valuable because it captures intermediate reasoning steps, not just final answers. If you've followed the lineage from Chain-of-Thought Prompting through to process reward models, you know why this matters. Detection signal: prompts that consistently request step-by-step reasoning, explanation of decision processes, or verbalization of internal logic — especially at scale across coordinated accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 3: Reward Model Construction&lt;/strong&gt;&lt;br&gt;
The most sophisticated tier. DeepSeek used Claude for "rubric-based grading tasks" — using the target model as a reward model for reinforcement learning. They weren't extracting Claude's outputs for training data. They were extracting Claude's &lt;em&gt;evaluative judgments&lt;/em&gt; as a training signal. This is efficient as hell: you need far fewer reward model samples than supervised training samples to meaningfully improve a model via RL. Detection signal: evaluation-style prompts, scoring rubrics, comparison tasks, and preference judgments at scale.&lt;/p&gt;

&lt;p&gt;Each tier gets you more value per query. A well-designed campaign uses all three in sequence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Infrastructure: Hydra Clusters and Traffic Mixing
&lt;/h2&gt;

&lt;p&gt;Anthropic describes the proxy infrastructure as "hydra clusters" — networks managing 20,000+ fraudulent accounts simultaneously across their API and third-party cloud platforms. Here's how they operate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No single points of failure.&lt;/strong&gt; Account bans are immediately backfilled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traffic mixing.&lt;/strong&gt; Distillation queries are blended with legitimate customer traffic from the same proxy network, making behavioral isolation harder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-pathway access.&lt;/strong&gt; Campaigns spanned multiple account types (educational, research, startup programs) to diversify their access surface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive targeting.&lt;/strong&gt; When Anthropic released a new model mid-campaign, MiniMax pivoted within 24 hours — redirecting roughly half their traffic to the updated system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you've worked botnet detection or large-scale scraping defense, this architecture is familiar. The novelty is the target, not the tactics. But detection is harder here because individual request payloads aren't anomalous — there's no SQLi signature, no malformed header, no obvious abuse pattern at the request level.&lt;/p&gt;

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

&lt;p&gt;This is the most valuable part of the disclosure for practitioners. Anthropic describes building "classifiers and behavioral fingerprinting systems" for detection. Here's what that actually takes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature engineering at the account-behavior level, not the request level.&lt;/strong&gt; You need to aggregate across accounts and time windows to identify: topic concentration (is this account only hitting one narrow capability area?), structural repetition (are prompt templates being reused with variation?), and temporal coordination (are accounts exhibiting synchronized behavior?).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-account correlation.&lt;/strong&gt; The hydra cluster architecture means you need entity resolution across accounts that may share no obvious identifiers. Shared payment methods, timing patterns, prompt structural similarity, and infrastructure indicators (IP ranges, client fingerprints) become your linkage signals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Distinguishing distillation from power users.&lt;/strong&gt; A legitimate developer building an AI-powered product might generate high-volume, focused traffic that superficially resembles distillation. Your classifier needs features that capture the &lt;em&gt;training data generation&lt;/em&gt; intent — prompt variation patterns that suggest systematic coverage of a capability space rather than production workload patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chain-of-thought elicitation detection.&lt;/strong&gt; Anthropic mentions this specifically. Prompts that consistently request externalization of reasoning processes, especially when the structure suggests the output is being collected for training rather than being consumed by an end user.&lt;/p&gt;

&lt;p&gt;The false positive problem is real. Legitimate evaluation and benchmarking, red-teaming, and research use can all look like distillation at certain scales. Any detection system here needs careful tuning to avoid punishing your heaviest legitimate users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Defensive Countermeasures and Their Tradeoffs
&lt;/h2&gt;

&lt;p&gt;Anthropic mentions "model-level safeguards designed to reduce the efficacy of model outputs for illicit distillation, without degrading the experience for legitimate customers." They don't get specific, but here's what that likely means:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output perturbation.&lt;/strong&gt; Injecting subtle noise into outputs that degrades their utility as training data without being noticeable to humans. Tradeoff: any perturbation that hurts training utility can also hurt downstream applications that depend on deterministic or consistent model behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watermarking.&lt;/strong&gt; Embedding statistical signatures in model outputs that can be detected in models trained on those outputs. Kirchenbauer et al. and subsequent work showed promise, but also demonstrated that watermarks can be removed or diluted through post-processing. Works against casual distillation. Probably not enough against actors at this level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selective capability gating.&lt;/strong&gt; Restricting access to the model's most valuable capabilities (extended reasoning, tool use, agentic behaviors) based on account trust level. Zero-trust applied to model capabilities — you earn access to higher-value outputs through demonstrated legitimate use. Tradeoff: friction on legitimate onboarding, which is exactly the pathway these attackers exploited.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reasoning trace obfuscation.&lt;/strong&gt; If chain-of-thought extraction is a primary vector, you can modify how the model exposes its reasoning — summarizing instead of showing step-by-step traces, or varying the structure of reasoning outputs to reduce their consistency as training data. Tradeoff: reasoning transparency is a feature, not a bug. A lot of legitimate users are paying for exactly this.&lt;/p&gt;

&lt;p&gt;None of these are silver bullets. The core problem: the same properties that make model outputs valuable to legitimate users — quality, consistency, reasoning depth — make them valuable as training data. Any defense that degrades training utility is going to degrade product utility too. That's the tradeoff nobody's solved.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means If You're Building
&lt;/h2&gt;

&lt;p&gt;If you're exposing any model capability through an API — frontier lab or company running fine-tuned models for your domain — this is now a documented threat pattern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI vendor risk assessment needs a provenance question.&lt;/strong&gt; If you're consuming AI capabilities from third-party providers, understanding how their models were trained is a security question now. A model built through illicit distillation may have had safety alignment degraded in the process. This isn't theoretical — Anthropic's report says directly that safety guardrails are unlikely to transfer faithfully through distillation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP and agent ecosystems expand the extraction surface.&lt;/strong&gt; As AI systems get more agentic — calling tools, executing code, orchestrating multi-step workflows — the capability surface available for distillation grows. Moonshot and MiniMax specifically targeted agentic reasoning and tool use. Any trust framework for agent-to-agent or agent-to-service communication (like MCP) needs to account for the possibility that one endpoint in the chain is conducting capability extraction rather than legitimate interaction. This is the supply chain trust problem applied to model intelligence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rate limiting is necessary but not sufficient.&lt;/strong&gt; Per-account rate limits are trivially defeated by hydra cluster architecture. Behavioral rate limiting — throttling based on detected extraction patterns rather than raw volume — is closer to what's needed, but that requires the detection engineering investment described above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is an arms race.&lt;/strong&gt; MiniMax pivoting to a new model release within 24 hours tells you these campaigns adapt in real time. Static defenses will get outpaced. This needs the same continuous detection and response investment we'd apply to any sophisticated threat actor. Treat it like one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Anthropic Didn't Say
&lt;/h2&gt;

&lt;p&gt;Worth flagging a few gaps.&lt;/p&gt;

&lt;p&gt;The report doesn't address whether distillation was detected in real-time or through retrospective analysis. The MiniMax campaign was caught "while it was still active," but the DeepSeek and Moonshot timelines are less clear. That distinction matters a lot: real-time detection enables intervention. Retrospective analysis gives you attribution but the horse has already left.&lt;/p&gt;

&lt;p&gt;There's no discussion of whether extracted capabilities were actually confirmed in the resulting models. Anthropic draws the connection between distillation campaigns and the labs' product roadmaps, but proving that specific capabilities in DeepSeek V4 or Kimi originated from Claude distillation is a different problem entirely — you'd need model output comparison, behavioral fingerprinting of deployed models, or watermark detection. That's the smoking gun they don't have yet, at least not publicly.&lt;/p&gt;

&lt;p&gt;And the report is silent on distillation from non-Chinese actors. This is almost certainly happening — distillation is a technique, not a nationality — but only campaigns attributed to Chinese labs made the cut. Understandable given the policy context and the export control debate, but incomplete as a threat picture. If you're building defenses based on this report, don't scope them to one country of origin.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Phil Stafford is an AI security researcher and Principal Consultant at Singularity Systems. He builds tools for securing AI agent ecosystems, including ThinkTank (multi-agent structured dissent for security analysis) and Credence (cryptographic trust registry for MCP server validation). He writes about AI security on &lt;a href="https://medium.com/@pe.stafford" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; and speaks on adversarial AI and agent security at industry conferences.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>llm</category>
      <category>news</category>
    </item>
    <item>
      <title>Someone Cloned an Oura Ring MCP Server and Poisoned the Supply Chain. We Can Fix This.</title>
      <dc:creator>Phil Stafford</dc:creator>
      <pubDate>Tue, 24 Feb 2026 20:48:31 +0000</pubDate>
      <link>https://forem.com/phil_stafford/someone-cloned-an-oura-ring-mcp-server-and-poisoned-the-supply-chain-we-can-fix-this-2fcc</link>
      <guid>https://forem.com/phil_stafford/someone-cloned-an-oura-ring-mcp-server-and-poisoned-the-supply-chain-we-can-fix-this-2fcc</guid>
      <description>&lt;h2&gt;
  
  
  The attack didn’t exploit a vulnerability. It exploited the fact that nobody’s checking who actually wrote the tools we’re installing.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;by Phil Stafford&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;Note: This is a reprinting of an article I published in &lt;a href="https://medium.com/@pe.stafford/someone-cloned-an-oura-ring-mcp-server-and-poisoned-the-supply-chain-we-can-fix-this-931acfaac8e3" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; on Feb. 18, 2026.&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;On February 5th, Straiker’s STAR Labs team dropped research that made me sit up straight. A supply chain attack against the MCP ecosystem. Not a smash-and-grab. This one was patient. Months of setup, completely invisible until Straiker caught it.&lt;/p&gt;

&lt;p&gt;Not a zero-day. Not some new class of exploit. Something much older and much dumber: fake it till you make it, applied to malware distribution. A threat actor cloned a legitimate MCP server, built a fake GitHub ecosystem around it, and got it listed on MCP Market. A developer searching for an Oura Ring integration would have found it, seen the forks, seen the contributors, and installed it without thinking twice.&lt;/p&gt;

&lt;p&gt;And it would have stolen everything on their machine.&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%2Fknmv31gizv4a890k75tw.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%2Fknmv31gizv4a890k75tw.png" alt="A raccoon stealing files while a dev watches his installation succeed excitedly" width="800" height="436"&gt;&lt;/a&gt;The download looked legit. The server works perfectly. The raccoon was very polite.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Playbook
&lt;/h2&gt;

&lt;p&gt;The target was Tomek Korbak’s Oura Ring MCP server. Connects your AI assistant to your health data, sleep scores, readiness metrics. Korbak works at OpenAI. Legit project. Exactly the kind of thing a developer who tracks their HRV and sleep stages would install before breakfast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SmartLoader&lt;/strong&gt; — a malware operation that used to distribute infostealers through pirated software — saw an opportunity. Developer workstations are treasure chests. API keys, cloud credentials, SSH keys, crypto wallets, production access. Why bother phishing when you can get developers to install your code voluntarily?&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%2F4w1ytti6ldqbsvw5p42k.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%2F4w1ytti6ldqbsvw5p42k.png" alt="A lineup of robots wearing disguises" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Straiker’s research (credit where it’s due, they did the detective work here) documents the whole operation:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1 — Target selection.&lt;/strong&gt; Pick a server that appeals to developers specifically. Health optimization tools. Sleep tracking. The Oura Ring crowd. These people have AWS keys and crypto wallets sitting on the same machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2 — Build the ecosystem.&lt;/strong&gt; A primary account, YuzeHao2023, creates a clean fork. Four more accounts fork from that. Instant appearance of organic community interest. The accounts are obviously fake if you know what to look for: recent creation dates, similar activity patterns, commits clustered in the same timeframes. But who looks? They also forked other projects from YuzeHao2023, creating a web of cross-references so each account looks more established. This took months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3 — Deploy the payload.&lt;/strong&gt; A new account, SiddhiBagul, creates the trojanized version. Source code matches the original. Documentation is complete. Contributor list includes the fake accounts. And they did not include Tomek Korbak, the actual author.&lt;/p&gt;

&lt;p&gt;Straiker called this the smoking gun. A legitimate fork would credit the original creator. The deliberate exclusion confirms a single threat actor running the whole show.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 4 — Registry poisoning.&lt;/strong&gt; Submit the trojanized server to MCP Market. That’s it. That’s the whole barrier to entry. It gets listed alongside legitimate tools and nobody asks who actually wrote it.&lt;/p&gt;

&lt;p&gt;The payload was a resource.txt file containing heavily obfuscated LuaJIT that deployed StealC. Browser passwords. Discord tokens. Crypto wallets. Cloud session tokens. SSH keys. The works.&lt;/p&gt;

&lt;p&gt;The persistence mechanism was a nice touch, too: scheduled tasks masquerading as Realtek audio drivers. Every SOC analyst on earth is trained to ignore Realtek processes. That’s not even hacking at that point. That’s just knowing how tired your adversary is.&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%2F3tk0o3vk11pmhgpm6drt.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%2F3tk0o3vk11pmhgpm6drt.png" alt="A blob walking through a security checkpoint wearing a Realtek uniform" width="800" height="436"&gt;&lt;/a&gt;“Hey Bob, come on in.”&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tooling Gap
&lt;/h2&gt;

&lt;p&gt;Here’s what gets me about this attack: the MCP ecosystem doesn’t have the tooling to catch it. Not “didn’t have.” Doesn’t have. Present tense.&lt;/p&gt;

&lt;p&gt;Think about what a developer actually sees when they’re evaluating this server. Code works. Documentation looks fine. Forks exist. Contributors exist. Source matches the original. Every signal we tell developers to check (stars, forks, contributor count, documentation quality) was fake. Every single one.&lt;/p&gt;

&lt;p&gt;Stars can be bought for pocket change. Forks are free. And the MCP ecosystem is still in its “HTTP before TLS” phase, with the protocol growing way faster than its security story. The spec itself says tool descriptions “should be considered untrusted, unless obtained from a trusted server.” Great. So how does a developer know if a server is trusted? Right now? They don’t.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The MCP ecosystem lacks the security infrastructure that has developed around traditional package managers. There is no equivalent to npm audit, Dependabot, or Snyk for MCP servers.    — Straiker report&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The MCP Registry is a metadata catalog, and that’s appropriate for this stage of the ecosystem. Community moderation catches obvious malware. But SmartLoader didn’t deploy obvious malware. They deployed a perfectly functional Oura Ring integration that also stole your credentials. That’s a harder problem, and it requires different tooling.&lt;/p&gt;

&lt;p&gt;Straiker’s recommendation? “Verify provenance deeply” and “check account creation dates.” Sure. That’s good advice if you have the time and discipline to do it for every server you install. Nobody does.&lt;/p&gt;

&lt;p&gt;We’ve solved this before. npm did it. Docker did it. Sigstore, SBOMs, provenance attestations. The supply chain security stack exists. It just doesn’t reach AI tools yet.&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%2Fiq4nzp34fg1nwn2e4gza.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%2Fiq4nzp34fg1nwn2e4gza.png" alt="castle with moat and defenses for Docker and npm, a meadow with a lemonade stand with a " width="800" height="436"&gt;&lt;/a&gt;“The free lemonade is a nice touch.”&lt;/p&gt;

&lt;h2&gt;
  
  
  How we fix this.
&lt;/h2&gt;

&lt;p&gt;I’ve been building something for this. &lt;a href="//credence.securingthesingularity.com"&gt;Credence&lt;/a&gt; is a cryptographic attestation system for AI tools: MCP servers, OpenClaw skills, Claude Desktop extensions (soon), and whatever comes next as the ecosystem evolves. I wrote about this class of attack in “Poisoned Pipelines” on my Medium page a few weeks ago. The SmartLoader/Oura incident is basically the proof of concept I was hoping wouldn’t show up this fast.&lt;/p&gt;

&lt;p&gt;I want to be specific about how Credence addresses this, because vague claims about “trust” aren’t useful when the attack chain is this concrete.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source code fingerprinting.&lt;/strong&gt; Credence hashes every file in the codebase with SHA-256 and rolls those hashes into a single deterministic fingerprint, pinned to the exact git commit. That fingerprint becomes part of a signed attestation covering the score, verdict, and authorship data. You want to install a server? Hash the code yourself and compare. If they don’t match, the code changed since we analyzed it. Walk away. In the SmartLoader case, the trojanized version with resource.txt added would produce a completely different hash. Instant red flag.&lt;/p&gt;

&lt;p&gt;SmartLoader’s source code actually matched the original for the most part, though. The payload was in the release archive, not the repo source. So source hashing alone isn’t enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author identity binding.&lt;/strong&gt; Credence pulls the claimed author from package.json, pyproject.toml, the git remote, and the GitHub API. For forks, it cross-checks the repo owner against the package metadata author and checks whether the original author was kept in the contributor list.&lt;/p&gt;

&lt;p&gt;SiddhiBagul/MCP-oura: repo owner is SiddhiBagul. Package author is Tomek Korbak. Mismatch on a fork. Credence records it. Does the original author appear in the fork’s contributors? No. Because SmartLoader deliberately cut Korbak out.&lt;/p&gt;

&lt;p&gt;That combination (fork, original author excluded, recently created account) is not ambiguous. That’s a supply chain attack profile. Credence would light up like a Christmas tree.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adversarial AI analysis.&lt;/strong&gt; Credence doesn’t just run scanners and hand you the output. Five AI agents with different security mandates argue about what the findings actually mean. A skeptic agent trained to look for supply chain attack patterns looks at those provenance flags and constructs the worst-case scenario. See my &lt;a href="//medium.com/@pe.stafford"&gt;previous articles&lt;/a&gt; and my &lt;a href="https://home.mlops.community/home/videos/when-ai-agents-argue-structured-dissent-patterns-for-production-reliability-phil-stafford-2025-11-27" rel="noopener noreferrer"&gt;presentation&lt;/a&gt; at MLOps’ Agents in Production conference.&lt;/p&gt;

&lt;p&gt;Most SAST tools don’t have rules for “obfuscated Lua bytecode loaded from a text file.” That payload would sail right through Semgrep and Bandit. But the provenance signals alone (identity mismatch, excluded original author, brand-new account, fork with a mystery payload file) would be enough for the skeptic agent to argue rejection. That’s what the debate gives you that static tools can’t: the ability to look at a stack of individually-iffy signals and say “no, taken together, this is an attack.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The registry.&lt;/strong&gt; With Credence in the picture, a registry like MCP Market would have had actual data to work with. Not just “is this server listed” but “who wrote it, does that check out, what’s the trust score, and can you verify any of this cryptographically?”&lt;/p&gt;

&lt;p&gt;SiddhiBagul/MCP-oura either wouldn’t have a Credence attestation at all (which is itself a signal) or it’d have one with a low trust score and a pile of provenance warnings. Either way, the developer has &lt;em&gt;information&lt;/em&gt; instead of vibes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beyond MCP servers.&lt;/strong&gt; The AI tool ecosystem is growing fast and in multiple directions. OpenClaw skills, Claude Desktop extensions, and whatever comes after them all share the same supply chain trust problem. Credence already covers OpenClaw skills in the registry, using the same scanning pipeline and attestation model, and we’re adding new tool types as they emerge. The attack surface isn’t limited to MCP servers, and the verification layer shouldn’t be either.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Doesn’t Solve
&lt;/h2&gt;

&lt;p&gt;I’d rather you hear the limitations from me than figure them out in a postmortem.&lt;/p&gt;

&lt;p&gt;Credence is install-time only. It tells you whether to trust a server before you run it. Once you install it, you’re on your own. Credence doesn’t monitor runtime behavior. If a legitimate server gets compromised six months after attestation, Credence won’t catch that. Indirect prompt injection, cross-server orchestration attacks. Different problems, different tools.&lt;/p&gt;

&lt;p&gt;Runtime enforcement is its own problem and other people are working on it: Docker’s MCP Catalog, ToolHive, Solo.io’s Agent Mesh, Acuvity’s runtime guardrails. Credence is complementary. We tell you what to trust before install. They keep an eye on it after.&lt;/p&gt;

&lt;p&gt;And yeah, a determined attacker could submit their trojanized server to Credence itself for analysis. I can’t stop that. But the attestation would carry their identity, not the original author’s. The provenance flags would still fire. The deliberation would still flag it. You can’t game the system without leaving fingerprints, and Credence is specifically designed to look for fingerprints.&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%2F8th01avbr5pj2b7na5fn.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%2F8th01avbr5pj2b7na5fn.png" alt="Before: Magic 8-ball to determine security. After Credence, a certified attestation." width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Five Accounts and Some Patience
&lt;/h2&gt;

&lt;p&gt;MCP prioritized capability and adoption first, and that was the right call. You have to ship before you can secure. But right now, the moment you decide to install an MCP server is basically your entire security boundary. Stdio transport has no authentication — that’s by design, not a bug. So the install decision is it. And we’re making that decision based on GitHub stars and README quality.&lt;/p&gt;

&lt;p&gt;SmartLoader proved those signals can be manufactured in three months with five fake accounts.&lt;/p&gt;

&lt;p&gt;That’s the current cost of breaching the MCP supply chain. Five accounts and some patience.&lt;/p&gt;

&lt;p&gt;Straiker caught this one. Their STAR Labs team did excellent work tracing the infrastructure, attributing the campaign, documenting the kill chain. But their own report says it plainly: “The MCP ecosystem lacks the security infrastructure that has developed around traditional package managers. There is no equivalent to npm audit, Dependabot, or Snyk for MCP servers.”&lt;/p&gt;

&lt;p&gt;That’s the gap. Credence is built to fill it. Not with more social signals that can be manufactured, but with cryptographic attestation: source fingerprints, verified authorship, adversarial analysis that actually argues about what the findings mean.&lt;/p&gt;

&lt;p&gt;The next SmartLoader won’t target a sleep tracker. It’ll go after a database connector, or a deployment tool, or something that touches your CI pipeline. And the playbook is public now. Next time it won’t take three months.&lt;/p&gt;

&lt;p&gt;We need the verification layer before that happens.&lt;/p&gt;

&lt;p&gt;I’m building it. It’s called Credence. The registry, scanning pipeline, and client tools are open source: credence.securingthesingularity.com&lt;/p&gt;

&lt;p&gt;Running MCP servers? Check your setup. Building one? Submit for a scan.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Phil Stafford is a cybersecurity consultant at &lt;a href="//securingthesingularity.com"&gt;Singularity Systems&lt;/a&gt; in the San Francisco Bay Area. He’s currently building Credence, a cryptographic trust registry for AI tools. When he’s not yelling about supply chain security, he’s a musician and artist making art in a post-AI world.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Straiker’s full research report on the SmartLoader/Oura Ring attack is available at &lt;a href="https://www.straiker.ai/blog/smartloader-clones-oura-ring-mcp-to-deploy-supply-chain-attack" rel="noopener noreferrer"&gt;straiker.ai/blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;© 2026 Phil Stafford&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>cybersecurity</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
