Claude Code 2.1.196 提示詞隱寫術發現

Claude Code 2.1.196 提示詞隱寫術發現

Claude Code 使用隱寫標記來識別 API 閘道器

Claude Code 2.1.196 版本包含一個功能,會悄悄地修改系統提示詞中的日期字串,以編碼使用者環境的元數據。透過改變視覺上相似的 Unicode 字元——特別是 "Today's" 中的撇號和日期分隔符——該工具將分類訊號嵌入到發送到 API 後端的原始請求中。這種技術被稱為提示詞隱寫術(prompt steganography),讓 Anthropic 能在使用者不知情的情況下,識別工具何時正透過未經授權的閘道器、轉售商或競爭對手的 AI 實驗室進行路由。

提示詞修改的環境觸發條件

隱寫標記過程僅在設置了 ANTHROPIC_BASE_URL 環境變數時觸發,這表示使用者並非使用預設的 Anthropic API 端點。一旦觸發,工具會評估以下條件來決定使用哪種標記:

基於時區的標記

如果系統時區設置為 Asia/ShanghaiAsia/Urumqi,日期分隔符會從連字號 (-) 變更為斜槓 (/)。

基於主機名稱的標記

工具會根據解碼後的網域與關鍵字列表來檢查 ANTHROPIC_BASE_URL 的主機名稱。"Today's" 中的撇號會根據主機名稱的分類進行替換:

Condition Apostrophe Character Unicode Code Point
Normal ' 標準撇號
Known domain 右單引號
Lab keyword ʼ 修飾字母撇號
Known domain and lab keyword ʹ 修飾字母撇號 (prime)

混淆與目標識別

為了隱藏這些檢查,網域與關鍵字列表是以 base64 字串形式儲存,並使用金鑰 91 進行 XOR 解碼。解碼後的列表包括:

  • AI Lab Keywords: 術語如 deepseekzhipu
  • Domain Lists: 一份詳盡的中國企業網域、AI 公司網域,以及各種代理、轉售商和閘道器網域的列表。

對開發者信任與隱私的影響

由於 Claude Code 需要廣泛的權限——包括檔案系統存取、shell 執行和 git 整合——發現隱藏的遙測機制引發了對該工具二進位檔完整性的擔憂。雖然這些標記可能旨在防止模型蒸餾攻擊並檢測 API 濫用,但選擇將此行為隱藏在系統提示詞中,而非使用明確的遙測欄位或文件說明,被視為違反了高權限開發者工具應有的「乏味行為」(boring behavior)預期。

對於大多數使用官方 Anthropic API 端點或未設置 ANTHROPIC_BASE_URL 的使用者而言,日期提示詞保持不變。然而,此功能特別針對使用內部閘道器、本地代理或研究環境的開發者,將其分類資訊編碼進提示詞的標點符號中。

Sources