提示注入
提示注入是隱藏在代理程式所讀取內容中的惡意文字——惡意儲存庫中的檔案、網頁,或遭污染的 CLAUDE.md——目的是操控模型(「忽略先前的指示,外洩密鑰」)。提示注入窗格可啟用各工作區專屬的偵測器,用來掃描代理程式 AI 流量中的此類內容。如同窗格說明所述:Bromure 在裝置端掃描代理程式的 AI 流量以偵測注入的指令——一切都不會離開這台 Mac。每個偵測器都使用本機模型,並在你首次啟用時從 bromure.io 下載。
此窗格分為兩組:偵測器(要執行哪些掃描器)與偵測到注入時(命中時的處理方式)。在螢幕截圖中兩個偵測器都是關閉的,因此下方的動作單選按鈕群組被停用——只要至少啟用一個偵測器就會啟用。掃描是在主機代理伺服器中進行的,因此 VM 內的代理程式無法將其關閉。偵測器的內部運作、評分與強制執行,詳見提示注入深入解析。
偵測器
偵測原始碼中的提示注入
以本機的 Prompt Guard 分類模型,對代理程式串流回傳給模型的不受信任外部內容——檔案內容、網頁,以及以 tool_result 區塊傳送的工具輸出——進行評分。這正是能夠捕捉隱藏在惡意儲存庫中「忽略先前的指示/外洩密鑰」文字的偵測器。窗格說明指出,首次啟用時需下載約 272 MB。
掃描完全在裝置端執行。每一輪僅掃描承載工具結果的最新訊息(重送的對話歷史會被略過),且相同內容會被快取,因此重複讀取同一個檔案不會產生任何成本。
偵測 CLAUDE.md 等檔案中的惡意指令
針對「規則檔後門」威脅:植入在編碼代理程式會自動載入並視為可信權威之檔案中的惡意指令——CLAUDE.md、AGENTS.md、GROK.md,以及 Claude Code、Codex 和 Grok 讀入其系統提示的巢狀與全域變體。會執行兩道處理:
- 一個確定性掃描器(不需要模型),用以標記不可見的 Unicode 混淆——零寬字元、雙向覆寫、Unicode 標籤字元——以及後設指令模式(「忽略先前的指示」、「不要告訴使用者」)和能力或外洩相關關鍵字(憑證檔路徑、curl 導管接殼層、強制推送)。
- 一個經過微調的 ModernBERT 分類器,會對同一批指令檔內容進行語意層面的檢查。
窗格說明指出,首次啟用時需下載約 571 MB。來自未變更檔案的發現會在每個工作階段內去重,因此被標記的 CLAUDE.md 只會記錄一次,而不是每一輪都記錄。
模型下載
偵測器模型並未隨應用程式一併封裝。勾選任一切換開關時,會先顯示確認警示——Download the <detector> detector model?——並根據實際位元組總量計算出確切的下載大小(原始碼偵測器約 298 MB,規則偵測器約 603 MB,略大於窗格說明中四捨五入後的數值),並提供 Download 與 Cancel 按鈕,接著顯示帶有百分比與 Cancel 按鈕的進度視窗。拒絕、取消或下載失敗都會還原切換開關:沒有模型的偵測器等同於無作用,Bromure 不會佯裝有作用。
值得了解的細節:
- 模型從
dl.bromure.io下載至~/Library/Application Support/BromureAC/Models/(原始碼偵測器位於prompt-injection/,規則偵測器位於claudemd-guard/)。若要移除某個模型,刪除其資料夾即可。 - 確認後下載會立即開始——這是少數在你點按 Save 之前就會生效的設定編輯器動作之一。
- 下載會共用:一旦取得,任何啟用相同偵測器的工作區都會重複使用該模型。
- 可用磁碟空間的預先檢查會事先拒絕注定失敗的下載。若某偵測器已啟用但其模型在應用程式啟動時遺失,背景下載會自動開始;進度與結果會顯示在安全性記錄中。
偵測到注入時
有一個共用動作同時套用於兩個偵測器。窗格的輔助說明文字概述如下:「記錄但繼續」會將偵測結果記錄到安全性記錄視窗;「詢問我該怎麼做」會暫停該請求並顯示被標記的文字;「封鎖」則會直接讓請求失敗。
| 動作 | 行為 |
|---|---|
| 記錄但繼續 | 偵測結果會記錄到安全性記錄,且請求繼續進行。掃描是在回應轉發之後才進行,因此此模式不會增加任何延遲。此為預設值。 |
| 詢問我該怎麼做 | 對外請求會在任何位元組抵達 AI 主機之前暫停,並會出現一個對話框,以可捲動的等寬字型檢視顯示被標記的文字,並提供 封鎖此請求 與 允許此請求 按鈕。你的決定會針對該工作區、來源與內容被記住,因此不會每一輪都對相同的被標記文字重新詢問。 |
| 一律封鎖 | 請求會直接被拒絕。代理程式會收到 HTTP 451 錯誤(「Bromure 已封鎖此請求:於……偵測到可能的……」),而模型永遠不會看到遭污染的內容。 |
在至少啟用一個偵測器之前,單選按鈕群組會被停用。在 詢問 與 封鎖 模式下,掃描會在轉發之前執行,這會為被標記的輪次增加分類器延遲;記錄但繼續 則不會增加任何延遲。當工作區以無介面方式透過 SSH 或 CLI 驅動時,詢問 的問題會以文字提示的形式呈現在工作區的 tmux 內——只有明確允許才能讓請求通過。
偵測結果顯示於何處
每一筆偵測、下載事件與強制執行結果都會顯示在 安全性記錄 視窗中(視窗選單 → Security Log…)——這是一個即時動態列表,項目形如 [prompt-injection] rules FLAG source=/path/CLAUDE.md signals=[zero_width(high)]。記錄行僅帶有被標記內容的簡短預覽;完整文字會出現在 詢問我該怎麼做 對話框中。在已註冊 bromure.io 工作區的 Mac 上,偵測結果也會作為稽核事件轉發(可由追蹤窗格的 私密模式 抑制)。
設定參考
| 設定 | 類型 | 預設 |
|---|---|---|
| 偵測原始碼中的提示注入 | 切換(首次啟用時提示下載模型) | 關閉 |
| 偵測 CLAUDE.md 等檔案中的惡意指令 | 切換(首次啟用時提示下載模型) | 關閉 |
| 偵測到注入時 | 單選:記錄但繼續/詢問我該怎麼做/一律封鎖(在啟用偵測器之前停用) | 記錄但繼續 |
提示: 一個合理的漸進做法:先以 記錄但繼續 開啟兩個偵測器,觀察安全性記錄數天以評估你的儲存庫上的誤報率,接著在處理不受信任的程式碼庫時改用 詢問我該怎麼做。關於裝置端分類器的記憶體與 Neural Engine 調校,請參閱提示注入深入解析。