三只貓
Rich Mindset Zone
richmindsetzone.com
← All posts

AI Coding 安全警告:你嘅 API Key 可能已經外洩

AI Coding 安全警告:你嘅 API Key 可能已經外洩

你上次 paste 咗 API key 入 Cursor 係幾時?你記唔記得?AI 工具幫你記得。


先講個嚇人嘅數字

2026 年 GitGuardian 發布嘅 State of Secrets Sprawl 報告揭示:在公開 GitHub 倉庫嘅 MCP 配置文件入面,已發現超過 24,000 個唯一 secrets,當中逾 2,100 個係已驗證嘅有效憑證

更令人不安嘅是另一組數據:AI 輔助生成嘅 commit,secrets 洩露率高達 3.2%——係普通 commit 基線 1.5% 嘅兩倍以上。換句話說,你用 AI 幫手寫代碼,連同帶出去嘅 secret 嘅概率,比你自己寫仲要高。

有個開發者喺 2026 年初親身示範咗後果:Google Cloud API key 被盜,一覺醒來賬單多咗 $82,000 美金

你可能以為自己冇問題——API key 放喺 .env,冇 commit 落 git,應該安全。但問題唔係 git,係你部電腦本地嘅 AI 工具。


AI IDE 點樣「吞掉」你嘅 Secrets

工具知道嘅比你以為多

Cursor、Claude Code、GitHub Copilot、Windsurf——呢類 AI coding assistant 為咗提供上下文,會主動讀取你嘅開發環境。包括但不限於:

  • .env 文件同所有 environment variables
  • YAML / TOML / JSON 配置文件
  • MCP 配置文件(~/.config/mcp/... 等)
  • 你主動 paste 入 chat 嘅任何內容

問題係:呢啲工具讀完之後,唔係「睇完就算」——佢哋會將呢啲內容持久化到本地嘅對話歷史文件,通常係未加密嘅 SQLite 資料庫或純文字文件,放喺你系統某個角落。

Chat History 係個潛在的 Secrets Dump

每次你向 AI 問:「點解我嘅 API call 報 403?」然後 paste 一段包含 authorization header 嘅代碼——你嘅 API key 就永久儲存落 chat history 入面。

每次 AI agent 讀取你嘅 .env 作為上下文——裡面所有 tokens、passwords、private keys 都會嵌入呢個 session 嘅 transcript。

標準嘅 secret scanner(例如 gitleaks、detect-secrets)只掃 git repo。佢哋完全唔掃 AI 工具嘅 transcript store。你嘅 .gitignore 保護你嘅 git history,但對 AI chat history 毫無效果。

三個工具,三個藏 Secrets 嘅地方

工具對話歷史位置
Cursor / VS Code~/.cursor/workspaceStorage/*/chat.vscdb (SQLite)
Claude Code~/.claude/projects/*/ JSONL 文件
OpenAI Codex CLI~/.codex/ 本地 session files

呢啲文件通常不在任何 backup 排除清單,可能被 Time Machine、雲端同步甚至第三方備份服務上傳。


真實風險升級:不只是自己不小心

Prompt Injection 讓攻擊者「借用」你嘅 AI

AI coding agent 面對嘅另一個威脅係 prompt injection。惡意代碼、被污染嘅 npm 包、或者含有隱藏指令嘅 README 文件,都可以向 AI 工具下達指令。因為 AI 分唔清楚「用戶嘅指令」同「外部內容入面嵌入嘅指令」,攻擊者可以誘導 AI 將你嘅 credentials 外洩。

Endor Labs 研究人員指出:AI coding agent 有時候直接存取 secrets 同執行環境,一次成功嘅 prompt injection 就係直接嘅 credential theft 通道。

MCP 擴大嘅攻面

MCP(Model Context Protocol)係 AI agent 讀取外部工具嘅新標準。問題係,MCP 配置文件通常直接包含 API keys,而唔少開發者會將呢類配置推上公開嘅 GitHub repo。GitGuardian 報告就係喺呢類文件入面發現上萬個洩露 secrets。

一個 40 分鐘的教訓

2026 年 5 月,有開發者分享自己嘅經歷:佢喺 AI 輔助開發過程中,AWS credentials 被 agent 讀取後通過某個工具鏈外洩,40 分鐘內就有攻擊者嘗試存取佢嘅 AWS 賬戶。發現到修復,整個過程係一場心理壓力測試。


Sieve:第一個針對 AI 工具 Chat History 的掃描器

填補盲點

Sieve 係一個 macOS app,專門做一件事:掃描 AI coding assistant 嘅本地 chat history,搵出裡面嵌入嘅 secrets

支援嘅工具包括 Claude Code、Cursor、VS Code Copilot、Windsurf、Codex 等主流 AI IDE。

運作原理

  1. 首次啟動時,授予 app 讀取各工具對話歷史資料夾嘅權限
  2. Sieve 掃描 SQLite 資料庫同 JSONL 文件,識別 API keys、tokens、passwords、private keys 等格式
  3. 所有掃描純本地進行——無網絡請求、無雲端同步、無帳號、無遙測
  4. 發現嘅 secrets 儲存到本地 SQLite,敏感值只存入 macOS Keychain,唔係明文資料庫
  5. 可直接從 VS Code 嘅 .vscdb 文件中**原地 redact(刪除)**已洩露嘅 secrets,操作前自動建立 timestamped backup

更值得一提嘅是:Sieve 本身亦提供一個本地 MCP server,讓 Claude Code 等工具可以查詢 findings、執行 vault 注入——但整個過程 AI 工具唔會見到 secrets 嘅原始值。

Sieve 嘅 core 係 open source(SieveCore),可以自己審計佢點運作。


實用防禦 Checklist

即時行動(今天就做)

  • 下載 Sieve 掃描你嘅 AI 工具 chat history
  • Rotate 所有你記得曾經 paste 入 AI chat 嘅 API keys
  • 喺你嘅 secrets provider(AWS、GCP、Anthropic、OpenAI 等)開啟 usage alerts,設定消費閾值通知
  • 檢查你嘅 MCP 配置文件係咪包含 hardcoded keys,有就移到環境變量

開發習慣調整

  • 唔好 paste raw secrets 入 AI chat——改問「點解我嘅 Bearer token request 返 403」而唔係 paste 整個 auth header
  • 向 AI 描述問題時,用佔位符代替真實值:YOUR_API_KEY***REDACTED***
  • 確保 .env*.pem*_rsa 等敏感文件喺 AI 工具嘅 ignore 設定入面(Cursor 有 .cursorignore,效果類似 .gitignore
  • 定期清理 AI 工具嘅 chat history(唔需要保留幾個月前嘅對話)

架構層面最佳實踐

  • 採用 secrets manager(HashiCorp Vault、AWS Secrets Manager、Doppler)代替 .env 文件——讓 AI 工具根本接觸唔到原始值
  • 為不同用途生成 最小權限嘅獨立 API key,唔好用「萬能 key」
  • 開啟 GitHub secret scanning 同 push protection,防止 secrets 意外進入 git repo
  • 考慮 CI/CD 層嘅 Cycode 或類似工具做 real-time IDE security guardrails

點解大家都冇意識到?

有個心理誤區係:「AI 工具係幫我工作嘅,唔係攻擊者,冇問題。」

但問題唔係工具本身有惡意——係工具嘅持久化機制超出咗你嘅預期。你以為係臨時嘅對話,其實係永久嘅本地記錄。你以為係開發機才有嘅文件,其實可能隨 iCloud Drive 或 Dropbox 同步到雲端。

另一個原因係工具鏈本身嘅複雜度。一個現代開發環境可能涉及:AI IDE + MCP server + git hooks + CI/CD pipeline + cloud deploy——每個環節都可能係 secrets 嘅洩露點。


現在就做的三件事

第一步(5 分鐘): 下載 Sieve,授予權限,跑一次掃描。知道自己嘅歷史 chat 入面有冇洩露過嘢。

第二步(15 分鐘): Rotate 任何喺 AI chat 入面出現過嘅 API key。唔確定有冇?寧可 rotate。大多數服務嘅 key rotation 係兩分鐘嘅事。

第三步(長期): 調整描述問題嘅方式。把 AI coding assistant 當作一個公共論壇——你唔會喺 Stack Overflow 問題入面 paste 你嘅 production API key,同樣道理適用於 AI chat。

AI coding 工具係真正嘅生產力倍增器,但唔係每個開發者都意識到佢哋改變咗 secrets 嘅 threat model。花幾分鐘審計一下,比等緊急 rotate 然後追究哪個環節出事要從容得多。


參考資料: