<?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: Amit Chahar</title>
    <description>The latest articles on DEV Community by Amit Chahar (@amit_chahar_639).</description>
    <link>https://dev.to/amit_chahar_639</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4067364%2Fd0c76d0b-7077-44f7-b556-e9993ad1708c.png</url>
      <title>DEV Community: Amit Chahar</title>
      <link>https://dev.to/amit_chahar_639</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amit_chahar_639"/>
    <language>en</language>
    <item>
      <title>I Got a ₹29,000 API Bill. So I Built an Open-Source Security Boundary for AI Agents.</title>
      <dc:creator>Amit Chahar</dc:creator>
      <pubDate>Wed, 16 Sep 2026 11:06:10 +0000</pubDate>
      <link>https://dev.to/amit_chahar_639/i-got-a-29000-api-bill-so-i-built-an-open-source-security-boundary-for-ai-agents-2g46</link>
      <guid>https://dev.to/amit_chahar_639/i-got-a-29000-api-bill-so-i-built-an-open-source-security-boundary-for-ai-agents-2g46</guid>
      <description>&lt;p&gt;I Got a ₹29,000 API Bill. So I Built an Open-Source Security Boundary for AI Agents.&lt;/p&gt;

&lt;p&gt;I didn't start ShadowPaste because I wanted to build a cybersecurity company.&lt;/p&gt;

&lt;p&gt;I started it because I made an expensive mistake.&lt;/p&gt;

&lt;p&gt;I accidentally exposed API credentials while working with AI-assisted development.&lt;/p&gt;

&lt;p&gt;I didn't realize the exposure immediately.&lt;/p&gt;

&lt;p&gt;About a month later, I received a ₹29,000 bill.&lt;/p&gt;

&lt;p&gt;I didn't have that money available.&lt;/p&gt;

&lt;p&gt;I had to take a loan to settle it.&lt;/p&gt;

&lt;p&gt;That was the moment I started asking a different question:&lt;/p&gt;

&lt;p&gt;«Why does an AI coding agent need access to my real credentials in the first place?»&lt;/p&gt;




&lt;p&gt;I didn't want another warning telling me to "protect my API keys"&lt;/p&gt;

&lt;p&gt;The normal advice is familiar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't expose secrets.&lt;/li&gt;
&lt;li&gt;Don't commit ".env" files.&lt;/li&gt;
&lt;li&gt;Rotate leaked credentials.&lt;/li&gt;
&lt;li&gt;Use a secret manager.&lt;/li&gt;
&lt;li&gt;Be careful about what you give AI tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of that is useful.&lt;/p&gt;

&lt;p&gt;But AI coding agents changed the environment.&lt;/p&gt;

&lt;p&gt;An agent can read files, modify code, call tools, interact with external services and potentially perform actions on your behalf.&lt;/p&gt;

&lt;p&gt;So I started thinking about the problem differently.&lt;/p&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;p&gt;«"How do I remind developers not to leak secrets?"»&lt;/p&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;p&gt;«"How do I design the environment so the agent doesn't need the real secret in the first place?"»&lt;/p&gt;

&lt;p&gt;That's where ShadowPaste started.&lt;/p&gt;




&lt;p&gt;The $20 experiment&lt;/p&gt;

&lt;p&gt;I bought a Claude subscription for roughly $20 and started building ShadowPaste with Claude Code.&lt;/p&gt;

&lt;p&gt;Over roughly a month, the project grew far beyond the original idea.&lt;/p&gt;

&lt;p&gt;The architecture became roughly:&lt;/p&gt;

&lt;p&gt;AI Agent&lt;br&gt;
    ↓&lt;br&gt;
Identity&lt;br&gt;
    ↓&lt;br&gt;
Risk Engine&lt;br&gt;
    ↓&lt;br&gt;
Policy Gate&lt;br&gt;
    ↓&lt;br&gt;
Credential Injection&lt;br&gt;
    ↓&lt;br&gt;
Tool Execution&lt;br&gt;
    ↓&lt;br&gt;
Output Sanitization&lt;br&gt;
    ↓&lt;br&gt;
Audit&lt;/p&gt;

&lt;p&gt;The goal was to put a security control plane between an AI agent and the environment it operates in.&lt;/p&gt;




&lt;p&gt;The part I cared about most: secret virtualization&lt;/p&gt;

&lt;p&gt;One of the central ideas became secret virtualization.&lt;/p&gt;

&lt;p&gt;Instead of simply giving an AI agent access to a real credential, ShadowPaste can create an AI-safe workspace containing format-compatible fake values.&lt;/p&gt;

&lt;p&gt;The real credentials remain outside that workspace.&lt;/p&gt;

&lt;p&gt;When a controlled operation actually needs a credential, the system can handle restoration at the execution boundary.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;/p&gt;

&lt;p&gt;Real Repository&lt;br&gt;
      │&lt;br&gt;
      ├── Real credentials&lt;br&gt;
      │&lt;br&gt;
      ▼&lt;br&gt;
  ShadowPaste&lt;br&gt;
      │&lt;br&gt;
      ├── Scan&lt;br&gt;
      ├── Virtualize&lt;br&gt;
      └── Create AI-safe workspace&lt;br&gt;
                    │&lt;br&gt;
                    ▼&lt;br&gt;
                 AI Agent&lt;br&gt;
                    │&lt;br&gt;
                    ▼&lt;br&gt;
              Tool Request&lt;br&gt;
                    │&lt;br&gt;
                    ▼&lt;br&gt;
              Policy / Risk&lt;br&gt;
                    │&lt;br&gt;
                    ▼&lt;br&gt;
            Controlled Execution&lt;/p&gt;

&lt;p&gt;The project also grew into an MCP security gateway with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;risk scoring&lt;/li&gt;
&lt;li&gt;policy decisions&lt;/li&gt;
&lt;li&gt;capability tokens&lt;/li&gt;
&lt;li&gt;response-side sanitization&lt;/li&gt;
&lt;li&gt;audit mechanisms&lt;/li&gt;
&lt;li&gt;credential virtualization&lt;/li&gt;
&lt;li&gt;secret detection&lt;/li&gt;
&lt;li&gt;filesystem and network protections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository contains the implementation details and current limitations.&lt;/p&gt;




&lt;p&gt;Then I made a decision that surprised me&lt;/p&gt;

&lt;p&gt;I'm keeping ShadowPaste MIT licensed and open source.&lt;/p&gt;

&lt;p&gt;There is a personal reason behind that.&lt;/p&gt;

&lt;p&gt;I already paid for this lesson.&lt;/p&gt;

&lt;p&gt;I don't want another developer to learn it through a surprise bill.&lt;/p&gt;

&lt;p&gt;If someone can use ShadowPaste to prevent an incident like mine, that's enough reason for me to make the core project available.&lt;/p&gt;

&lt;p&gt;I don't want the first step toward safer AI development to be:&lt;/p&gt;

&lt;p&gt;«"Pay me before you can protect your credentials."»&lt;/p&gt;




&lt;p&gt;Then my development environment disappeared&lt;/p&gt;

&lt;p&gt;After roughly a month of building, my Claude subscription expired because of a payment issue.&lt;/p&gt;

&lt;p&gt;Then my laptop broke.&lt;/p&gt;

&lt;p&gt;That meant I couldn't continue development and testing normally with Claude Code, Codex, Cursor or VS Code.&lt;/p&gt;

&lt;p&gt;For roughly another month, I ended up working from a laggy 4G phone.&lt;/p&gt;

&lt;p&gt;The project mostly stopped moving.&lt;/p&gt;

&lt;p&gt;And I realized something uncomfortable.&lt;/p&gt;

&lt;p&gt;I had spent a lot of time trying to distribute ShadowPaste.&lt;/p&gt;

&lt;p&gt;I was trying to make people notice it.&lt;/p&gt;

&lt;p&gt;But I hadn't finished the validation loop.&lt;/p&gt;

&lt;p&gt;That was backwards.&lt;/p&gt;

&lt;p&gt;Security software should be attacked before it is celebrated.&lt;/p&gt;




&lt;p&gt;So I'm changing the goal&lt;/p&gt;

&lt;p&gt;I'm not going to tell you that ShadowPaste is "unbreakable."&lt;/p&gt;

&lt;p&gt;I'm not going to tell you that an implementation is automatically secure because it has a long feature list.&lt;/p&gt;

&lt;p&gt;And I'm definitely not going to ask you to trust me because I built it.&lt;/p&gt;

&lt;p&gt;ShadowPaste is still pre-1.0.&lt;/p&gt;

&lt;p&gt;The repository documents its current limitations and the areas that still require additional validation.&lt;/p&gt;

&lt;p&gt;Instead, I want the next phase to be about evidence.&lt;/p&gt;




&lt;p&gt;I want people to try to break it&lt;/p&gt;

&lt;p&gt;The next thing I want to build is a public ShadowPaste Security Gauntlet.&lt;/p&gt;

&lt;p&gt;Using only synthetic credentials, synthetic repositories and controlled test environments.&lt;/p&gt;

&lt;p&gt;The test suite should include things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;credential exposure&lt;/li&gt;
&lt;li&gt;secret exfiltration attempts&lt;/li&gt;
&lt;li&gt;prompt injection&lt;/li&gt;
&lt;li&gt;malicious tool instructions&lt;/li&gt;
&lt;li&gt;MCP tool abuse&lt;/li&gt;
&lt;li&gt;unauthorized tool calls&lt;/li&gt;
&lt;li&gt;dangerous filesystem operations&lt;/li&gt;
&lt;li&gt;network/SSRF scenarios&lt;/li&gt;
&lt;li&gt;output leakage&lt;/li&gt;
&lt;li&gt;capability-token misuse&lt;/li&gt;
&lt;li&gt;policy bypass attempts&lt;/li&gt;
&lt;li&gt;privilege-boundary failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to manufacture a perfect score.&lt;/p&gt;

&lt;p&gt;The goal is to discover where the boundary fails.&lt;/p&gt;

&lt;p&gt;A test should look something like:&lt;/p&gt;

&lt;p&gt;Attack&lt;br&gt;
  ↓&lt;br&gt;
Expected Boundary&lt;br&gt;
  ↓&lt;br&gt;
Actual Behavior&lt;br&gt;
  ↓&lt;br&gt;
Evidence&lt;br&gt;
  ↓&lt;br&gt;
Fix&lt;br&gt;
  ↓&lt;br&gt;
Regression Test&lt;/p&gt;

&lt;p&gt;If it fails:&lt;/p&gt;

&lt;p&gt;document it.&lt;/p&gt;

&lt;p&gt;If it passes:&lt;/p&gt;

&lt;p&gt;document the evidence.&lt;/p&gt;




&lt;p&gt;Why I'm publishing this now&lt;/p&gt;

&lt;p&gt;AI coding agents are moving from simple autocomplete toward systems that can actually operate tools and environments.&lt;/p&gt;

&lt;p&gt;That changes the security question.&lt;/p&gt;

&lt;p&gt;«What exactly are we allowing an AI agent to access and do?»&lt;/p&gt;

&lt;p&gt;MCP has also created a tool-access layer between AI systems and external capabilities.&lt;/p&gt;

&lt;p&gt;That means credentials, tools, permissions, agent identity and auditability increasingly meet at the same boundary.&lt;/p&gt;

&lt;p&gt;That's the problem space I'm interested in.&lt;/p&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;p&gt;«"AI is dangerous."»&lt;/p&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;p&gt;«"AI will replace developers."»&lt;/p&gt;

&lt;p&gt;Something much more practical:&lt;/p&gt;

&lt;p&gt;«If an AI agent can act on my behalf, what security boundary stands between the agent and everything I care about?»&lt;/p&gt;




&lt;p&gt;I'm one developer&lt;/p&gt;

&lt;p&gt;ShadowPaste isn't backed by a large security team.&lt;/p&gt;

&lt;p&gt;I built the current version myself over roughly a month, with an inexpensive AI coding subscription helping me during development.&lt;/p&gt;

&lt;p&gt;That doesn't prove the project is better than anything else.&lt;/p&gt;

&lt;p&gt;It doesn't prove the architecture is correct.&lt;/p&gt;

&lt;p&gt;It definitely doesn't prove the security boundary is complete.&lt;/p&gt;

&lt;p&gt;What it does show is that a single developer can experiment with this problem space and make the result available for other developers to inspect.&lt;/p&gt;

&lt;p&gt;And that's exactly what I want to do next.&lt;/p&gt;




&lt;p&gt;So here's the challenge&lt;/p&gt;

&lt;p&gt;If you work with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI coding agents&lt;/li&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;application security&lt;/li&gt;
&lt;li&gt;secrets management&lt;/li&gt;
&lt;li&gt;developer infrastructure&lt;/li&gt;
&lt;li&gt;agent authorization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What would you try first to break ShadowPaste?&lt;/p&gt;

&lt;p&gt;I don't want:&lt;/p&gt;

&lt;p&gt;«"Looks cool."»&lt;/p&gt;

&lt;p&gt;I'd rather get:&lt;/p&gt;

&lt;p&gt;«"Here is a reproducible way to bypass this."»&lt;/p&gt;

&lt;p&gt;Because every real failure can become:&lt;/p&gt;

&lt;p&gt;a fix → a regression test → a stronger open-source project.&lt;/p&gt;

&lt;p&gt;The code is here:&lt;/p&gt;

&lt;p&gt;[&lt;a href="https://github.com/amitchahar509-collab/shadowpaste" rel="noopener noreferrer"&gt;https://github.com/amitchahar509-collab/shadowpaste&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;If you find a security issue, please report it responsibly rather than testing against systems you don't own.&lt;/p&gt;




&lt;p&gt;One last thing&lt;/p&gt;

&lt;p&gt;That ₹29,000 bill is the reason ShadowPaste exists.&lt;/p&gt;

&lt;p&gt;But I don't want the bill to be the ending of the story.&lt;/p&gt;

&lt;p&gt;I want it to be the beginning.&lt;/p&gt;

&lt;p&gt;I paid for the lesson.&lt;br&gt;
Now I want to make the lesson open source.&lt;/p&gt;




&lt;p&gt;«AI disclosure: This article was written with AI assistance for drafting and editing. The experiences, project decisions, implementation details and claims about my own work are my responsibility, and I have reviewed the article before publishing.»&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>webdev</category>
      <category>devops</category>
    </item>
    <item>
      <title>I built ShadowPaste: Let Claude Code work on real repositories without exposing secrets</title>
      <dc:creator>Amit Chahar</dc:creator>
      <pubDate>Fri, 07 Aug 2026 11:06:13 +0000</pubDate>
      <link>https://dev.to/amit_chahar_639/i-built-shadowpaste-let-claude-code-work-on-real-repositories-without-exposing-secrets-311m</link>
      <guid>https://dev.to/amit_chahar_639/i-built-shadowpaste-let-claude-code-work-on-real-repositories-without-exposing-secrets-311m</guid>
      <description>&lt;h1&gt;
  
  
  I built ShadowPaste: Let Claude Code work on real repositories without exposing secrets
&lt;/h1&gt;

&lt;p&gt;AI coding agents are powerful, but they still have one big problem: secrets.&lt;/p&gt;

&lt;p&gt;I built ShadowPaste, an open-source security layer that allows Claude Code and MCP agents to work on real repositories without exposing production credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Secret virtualization&lt;/li&gt;
&lt;li&gt;AI-safe workspaces&lt;/li&gt;
&lt;li&gt;Zero-trust MCP gateway&lt;/li&gt;
&lt;li&gt;Risk scoring&lt;/li&gt;
&lt;li&gt;Audit trail&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;Current AI coding tools often require access to sensitive credentials. I wanted a safer approach where agents can work without seeing real secrets.&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/amitchahar509-collab/shadowpaste" rel="noopener noreferrer"&gt;https://github.com/amitchahar509-collab/shadowpaste&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love feedback from developers and security engineers.&lt;/p&gt;

&lt;p&gt;What security problems have you faced while using AI coding agents?&lt;/p&gt;

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