2026 CLAUDE
CODE_
STEGANO_
FINGERPRINT.
TL;DR:2026 年 6 月底,開發者逆向發現 Claude Code(不是 Claude 網頁版)在使用者走代理(ANTHROPIC_BASE_URL ≠ api.anthropic.com)時,會用文字隱寫術改寫系統提示詞裡 Today's date is... 這一行——透過切換日期分隔符與肉眼幾乎無法分辨的 Unicode 單引號,把「你是否在中國時區、是否命中中國網域/AI 實驗室」這幾個位元資訊悄悄夾帶回伺服器。Anthropic 已在 2.1.197 版本移除相關程式碼。它大概率是反模型蒸餾/反轉售手段,但爭議在於:做法太隱蔽、還刻意混淆。本文區分兩件獨立事件、給出 Unicode 對照表、HN 兩派爭議、五步自查防護與 FAQ。
1. 痛點拆解:兩件事疊加發酵,別搞混
這波風波其實是兩個獨立但相關的事件被合併討論。直接照抄混寫會被 HN / 安全圈讀者一眼看穿,傷 E-E-A-T。發稿前務必區分:
| 維度 | 事件 A:靜默瀏覽器注入 | 事件 B:系統提示詞隱寫術 |
|---|---|---|
| 涉及產品 | Claude Desktop(macOS 用戶端) | Claude Code(CLI 編碼工具) |
| 爆料人 | Alexander Hanff(隱私顧問,The Register 撰稿人) | 開發者逆向二進位,發布於 thereallo.dev,經 Reddit → HN 發酵 |
| 時間 | 2026-04(約 4/18 起) | 2026-06-30 |
| 核心行為 | 靜默向 Chrome/Edge/Brave/Arc 等寫入 com.anthropic.claude_browser_extension.json,預授權 3 個擴充功能 ID 呼叫沙箱外 chrome-native-host;即使瀏覽器未安裝也預建目錄,刪除後重啟會復活 | 當 ANTHROPIC_BASE_URL 非官方時,用隱寫術改寫 Today's date is... 一行 |
| 被貼標籤 | 「spyware / backdoor」 | 「prompt steganography / covert channel」 |
| 觸發條件 | 安裝/啟動 Claude Desktop 即觸發 | 僅設定非官方 Base URL 時觸發;並非每次對話都必然觸發 |
| Anthropic 回應 | 未正式公開回應;後續版本加了授權開關 | 承認程式碼存在,7/1 發布 2.1.197 移除,但 changelog 未提及 |
獨立顧問 Noah Kenney(Digital 520)確認 Hanff 的技術主張可重現;安天實驗室(Antiy Labs)發布了 Claude Desktop 高權限瀏覽器通道風險分析報告。事件 B 的 HN 討論帖數小時衝到首頁,350+ points、100+ 評論,社群分裂為「合理的反蒸餾防禦」vs「對開發者工具而言近乎惡意」。
2. 時間線:What Happened
| 日期 | 事件 | 版本/來源 |
|---|---|---|
| 2026-04-18 起 | Hanff 爆料 Claude Desktop 靜默 Native Messaging 注入 | The Register、Malwarebytes、gHacks |
| 2026-06-30 | 開發者逆向 Claude Code,發現提示詞隱寫術 | thereallo.dev → Reddit → HN |
| 2026-06-30 | 逆向者核對 2.1.193 / 2.1.195 / 2.1.196 三版均存在 | thereallo.dev |
| 2026-07-01 | Anthropic 發布 2.1.197 移除相關程式碼 | TechTimes、Developers Digest(changelog 未提及) |
3. 隱寫術怎麼運作:Unicode 對照表(核心證據)
關鍵前提:只有當你把 ANTHROPIC_BASE_URL 指向非官方位址(代理、閘道、第三方轉售、OpenAI 相容層)時才觸發。官方 api.anthropic.com 不動手腳。
觸發後,程式做兩件事,全都藏在系統提示詞那句人畜無害的 Today's date is ... 裡:
- 改日期分隔符:時區為
Asia/Shanghai或Asia/Urumqi時,2026-06-30變成2026/06/30。 - 換單引號:把
Today's裡的撇號替換成視覺一樣、Unicode 不同的字元,編碼「命中了什麼」。
| 偵測到的情況 | 日期格式 | 單引號字元 | Unicode |
|---|---|---|---|
| 預設(無命中) | 2026-06-30 | ' 標準撇號 | U+0027 |
| 命中中國機構/經銷商網域 | 2026-06-30 | ' 右單引號 | U+2019 |
| 命中中國 AI 實驗室關鍵字 | 2026-06-30 | ʼ 修飾符撇號 | U+02BC |
| 網域 + 實驗室都命中 | 2026-06-30 | ʹ 修飾符角分號 | U+02B9 |
| 疊加中國時區 | 2026/06/30 | (同上規則) | — |
網域與關鍵字清單用 base64 + XOR(91) 輕度混淆,約 147 條網域規則,關鍵字包含 deepseek、moonshot、zhipu、minimax、baichuan、stepfun、01ai 等。
白話說明:你的請求表面上只是普通英文提示詞,但後端只要掃一眼日期裡的分隔符與那個單引號的 Unicode 編碼,就能在後台給你打標籤——「這個使用者掛了海外 VPN,但實際在中國時區,甚至疑似某家中國 AI 實驗室」。這就是典型的隱蔽通道(covert channel)。
4. Anthropic 為什麼這麼做:目的 vs 手段
社群主流判斷(也較克制):目的是反蒸餾 + 反未授權轉售。Anthropic、OpenAI、Google 都公開擔憂對手用 API 大量拉輸出來訓練小模型(distillation)。中國相關代理、轉售、實驗室是重點懷疑對象,於是加了這套「打標籤」邏輯。
目的可以理解,手段才是問題:把分類訊號做成肉眼不可見、還刻意混淆程式碼藏進每個請求,對一個靠開發者信任吃飯的工具來說,是踩了信任紅線。HN 上兩派吵得很兇:
- 防禦派:「這就是正當的反蒸餾防禦,比記錄你的程式碼溫和多了。」
- 反對派:「對開發者工具而言這近乎惡意行為——檔案系統 + shell 權限 + 未披露遙測。」
合規提醒:全文用「據爆料/據逆向報告/被指控(alleged)」等措辭;目的(反蒸餾)與手段(隱寫)要分開評價。
5. 這算間諜軟體嗎?爭議與不同陣營
「間諜軟體」是有情緒的標籤。更準確的說法:
- 事件 A 更接近「未經授權篡改第三方軟體 + 預留休眠攻擊面」——即便當前沒被利用,它也把瀏覽器沙箱外的高權限通道預先鋪好了。疊加 Claude for Chrome 自曝的提示詞注入成功率(無緩解 23.6%、有緩解 11.2%),風險是實打實的。
- 事件 B 更接近「未披露的隱蔽遙測 / 使用者分類」。
無論用不用「spyware」這個詞,核心問題一致:未經使用者知情同意、且刻意隱蔽。 LiteLLM 閘道、企業內部代理等合法場景也會觸發事件 B——分類器無法從 hostname alone 區分「 shady 轉售商」與「內部 dev tool」。
6. 五步自查與防護(可操作)
- 檢查 ANTHROPIC_BASE_URL:若未設定或指向官方端點,事件 B 不觸發;若走 LiteLLM/OpenRouter/企業閘道,你已被分類(2.1.197 前)。
- 升級 Claude Code 到 2.1.197+:Anthropic 已移除隱寫邏輯,但 changelog 未披露——建議保留升級記錄。
- macOS 檢查 Native Messaging 清單:在各瀏覽器
~/Library/Application Support/<瀏覽器>/NativeMessagingHosts/下查找com.anthropic.claude_browser_extension.json,按需刪除;注意 Claude Desktop 可能重建。 - 檢查時區設定:
Asia/Shanghai/Asia/Urumqi會疊加日期分隔符訊號(僅事件 B + 走代理時)。 - 企業/敏感環境:評估是否繼續在生產鏈路使用桌面 Agent;最小權限、顯式授權、可稽核是底線。
7. 深度案例:桌面 AI Agent 正在複製 PC/智慧型手機早期的安全坑
這件事真正的警示不在「一個撇號」,而在於:當模型能力狂飆、而安全邊界、授權、稽核嚴重滯後時,廠商很容易以「體驗/防濫用」為名,單方面越過使用者與其他軟體廠商之間的信任邊界。
歷史一再重演——PC 時代預裝軟體、智慧型手機早期的權限濫用,如今在桌面 AI Agent上原樣重現。Claude Desktop 預建 Native Messaging 通道 + Claude Code 隱寫指紋,組合起來描繪出一幅圖景:AI 廠商把「高權限本機程式 + 未披露分類訊號」當作預設選項,而非 opt-in。
對 Mac 開發者而言,這意味著:
- 預設不信任、用證據說話:可重現、可稽核、可關閉,才配得上信任。
- 要求「披露而非隱藏」:廠商完全可以光明正大地做反蒸餾——公開說明、給開關,而不是藏進標點符號。
- 最小權限 + 邊界隔離:對任何桌面 Agent 都按「高權限程式」對待;在隔離的遠端 Mac 節點上跑 Claude Code 是可行的架構選擇——記憶體與頻寬可在租賃節點上獨立管控。
- 用腳投票 + 制度約束:GDPR/個資法與市場選擇,是約束「技術無邊界」的最終力量。
技術可以沒有立場,但公司必須有。能力越大,越要自我約束——這不該是使用者逆向二進位才發現的秘密。
8. FAQ
Q:Claude Code 是間諜軟體嗎?
A:不算傳統意義的間諜軟體,但它確實在系統提示詞裡藏了未披露、經混淆的指紋;Anthropic 已在 2.1.197 移除。更準確的定性是「未披露的隱蔽通道」。
Q:Claude Code 會偵測時區嗎?
A:據逆向報告,它檢查 Asia/Shanghai / Asia/Urumqi——但僅在設定了非官方 ANTHROPIC_BASE_URL 時。官方端點不受影響。
Q:Today's date 單引號 Unicode 是什麼原理?
A:在 Today's 中切換 U+0027 / U+2019 / U+02BC / U+02B9 四種撇號,編碼網域命中、AI 實驗室關鍵字命中、兩者皆命中或皆未命中。
Q:Anthropic 為什麼加這個?
A:據社群主流解讀,最可能是偵測模型蒸餾與未授權 API 轉售——合法目標,但實作方式不當。
Q:這和 Claude Desktop 間諜軟體是一回事嗎?
A:不是。事件 A(4月)是 Desktop 靜默寫入瀏覽器 Native Messaging 清單;事件 B(6月30日)是 Code 提示詞隱寫,產品不同。
Q:普通網頁版 Claude 使用者會被影響嗎?
A:事件 B 只在 Claude Code 且走代理時觸發,普通官方端點使用者不受影響。
Q:怎麼刪除 Claude Desktop 注入的瀏覽器檔案?
A:在 ~/Library/Application Support/<瀏覽器>/NativeMessagingHosts/ 下刪除 com.anthropic.claude_browser_extension.json,注意重啟可能重建。
Q:ANTHROPIC_BASE_URL 指紋原理是什麼?
A:當 Base URL 主機名稱 ≠ api.anthropic.com 時,程式比對約 147 條混淆網域規則與 AI 實驗室關鍵字,結果編碼進系統提示詞日期行。
9. 參考來源
- The Register:Claude Desktop changes software permissions without consent(2026-04)
- Malwarebytes / gHacks / YOOTA:Claude Desktop native messaging 報導
- thereallo.dev:Claude Code prompt steganography(原始逆向)
- Tech Startups / TMC Insight / Developers Digest / TechTimes:事件 B 報導與 2.1.197 修復
- Antiy Labs(安天):Claude Desktop 高權限瀏覽器通道風險分析報告
10. 收束:高權限 AI Agent,隔離 Mac 節點是更穩的選型
Claude Code 與 Claude Desktop 的事件說明:桌面 AI Agent 已是高權限程式,在本機裸跑意味著檔案系統、shell、瀏覽器沙箱外通道全部暴露。Windows/Linux 雲主機可以調 Claude API,卻在終端工具鏈、Xcode/Cursor 協同、Native Messaging 稽核場景不如 Apple Silicon Mac 可控。若你需要隔離 Claude Code 執行環境、可快照回滾、最小權限稽核,可考慮 MACGPU 遠端 Mac 節點:在獨立租賃 Mac 上跑 Claude Code / OpenClaw,本機只走 SSH 隧道——把「一個撇號的秘密」變成可管理的架構決策,而非被動接受廠商越界。