MCP 與 AGENTS.md 安全掃描
AI agent 會照工作區裡的說明檔和 MCP 設定做事。有人在裡面藏一行指令,agent 就可能把你的金鑰送出去。Budgethelm 幫你逐行檢查。
認得哪些檔案
AGENTS.md、CLAUDE.md、.cursorrules、.cursor/rules(含 .mdc)、mcp.json、.mcp.json、claude_desktop_config.json(mcpServers 或 VS Code 的 servers)。其他檔名照文字規則掃。一次最多 20 個檔案、合計 65,536 字。
說明檔會抓什麼
- 讀取或外傳憑證:~/.ssh、.aws/credentials、瀏覽器 cookie、keychain、錢包等。
- 外傳或印出金鑰、.env、環境變數;用 curl、wget、nc、scp 等把資料送到遠端;
curl | sh。 - 常被拿來收資料的網址,例如 webhook.site、ngrok、Discord/Telegram webhook。
- base64、hex 等混淆(會解碼後再比對一次)。
- 要求忽略先前指令、瞞著使用者、覆蓋角色、跳過權限或關沙箱(中英文都認)。
- 藏在 HTML 註解、Markdown 註解、
display:none裡的指令,以及零寬字元、雙向控制字元等隱藏 Unicode。
MCP 設定會抓什麼
- 用 npx、uvx 等啟動卻沒鎖精確版本(含 latest、^、~)。
- 從 Git 或網址安裝、遠端網址用明碼 http、臨時通道或收集服務。
- env 或 headers 裡寫死金鑰、金鑰放在網址上。
- 開放 / 或 ~、開放 ~/.ssh 等敏感資料夾、Docker
--privileged或掛 docker.sock。 - 工作目錄在下載資料夾、郵件附件、暫存資料夾這類高風險位置。
每項發現附風險等級、檔名、行號、原因、建議修法與遮罩過金鑰的原文片段。
網站安全掃描
另外也能對你授權的網域做被動安全檢查:前端金鑰外洩、公開可讀的 .env 或設定檔、Supabase/Firebase 公開設定、安全標頭。只有專案擁有者能加網域,而且要勾選確認擁有或已獲授權;結果是風險訊號,不是已確認的漏洞。
常見問題
- 貼上的內容會被存起來嗎?
- 不會。工作區檢查的內容只在記憶體比對,不寫資料庫、不寫 log、不送外部 AI、也不會執行。
- 可以在 Claude Code 或 Cursor 裡直接掃嗎?
- 可以。用 MCP 連上後呼叫 scan_agent_workspace 工具,權限需要另外勾選 workspace:scan。
- 掃描結果代表一定有漏洞嗎?
- 不一定。結果是風險訊號,請對照實際情況確認;正常的「不要提交 .env」這類句子不會被當成攻擊。