藏在撇號裡的監控:Anthropic 認了「實驗」,7/1 版 Claude Code 移除追蹤碼
本站第 26 期提過 Anthropic「識別中國用戶」實驗曝光,Ars Technica 這兩天把技術細節挖齊了。網名 Thereallo 的開發者研究 Claude Code 隱私問題時,發現一段沒有出現在任何文件裡的偵測邏輯:當 Claude Code 偵測到使用者掛著代理伺服器,會讀取系統時區、把代理主機名稱比對一份已知中國 AI 實驗室的清單,然後根據三種偵測結果的組合,悄悄修改系統提示裡「Today's date is…」那一行。
修改手法相當隱蔽:把標準撇號換成三種視覺上完全相同、但編碼不同的 Unicode 字元,等於用肉眼看不出的方式,把「有沒有掛代理、有沒有命中實驗室清單」的旗標編碼進每一次對話。研究者把手法命名為「提示詞隱寫術」(prompt steganography),並痛批這是對用戶信任的嚴重破壞——尤其 Anthropic 長期以反監控立場自居,使用政策明文禁止拿 Claude 做監控用途。
Anthropic 工程師出面回應,承認追蹤碼是今年 3 月加入的「實驗」,目的與該公司先前指控中國實驗室用 Claude 做蒸餾攻擊有關;移除程式碼的 PR 已合併,隨 7 月 1 日的 Claude Code 版本釋出。The Information 的後續報導用了更重的字眼,直接稱之為「鎖定中國用戶的間諜軟體」。
抓包過程本身值得記一筆:閉源工具的行為改動,是社群靠著反編譯與逐版 diff 追出來的。上一次 Claude Code 系統提示被逐字檢視(第 27 期的「Claude Design」逆向工程),挖出的是設計哲學;同一批人這次挖出的,是一條沒人同意過的資料回傳通道。
歸剛點評|對照組太諷刺:一家公開拒絕監控用途的公司,被抓到在自家工具裡藏監控碼。工程上的教訓更實際——系統提示、遙測、更新通道都可能是 side channel,企業導入 AI 工具時,網路層的出站流量稽核不能只信廠商白皮書。這件事也預告了開發者工具的新常態:每一版 diff 都有人在看。