三階段漸進式安全防禦
分層威脅過濾:90% 的攻擊以零成本攔截。
比喻:機場安檢的三道關卡
Section titled “比喻:機場安檢的三道關卡”過機場安檢時,不是每個人都受到相同的對待:
- 金屬探測門:所有人都要走過。瞬間攔截明顯威脅,零人力投入。
- X 光機:行李被掃描,操作員掃一眼螢幕,只有被標記的行李才會二次檢查。
- 私人安檢室:只有觸發多重警報的旅客才需要,接受徹底的人工檢查。
DuDuClaw 的安全防禦完全依照此模式運作:三層逐步加重的檢查,絕大多數威脅在到達昂貴層級之前就被攔截。
Layer 1:確定性黑名單
Section titled “Layer 1:確定性黑名單”第一道防線是簡單、快速的模式比對器。已知危險操作被立即阻擋:
傳入的工具呼叫或指令 | v比對黑名單模式: - 破壞性 shell 指令 - 直接存取敏感檔案 - 已知注入模式 | +--+--+ | |符合 不符合 | | v v阻擋 傳遞到 Layer 2此層在微秒內執行。沒有網路呼叫、沒有模型調用、沒有模糊地帶。模式符合就阻擋,沒有例外。
黑名單涵蓋最常見的攻擊向量:刪除資料的指令、擷取環境變數的指令、企圖繞過檔案權限的模式。
Layer 2:混淆與資料外洩偵測
Section titled “Layer 2:混淆與資料外洩偵測”知道 Layer 1 存在的攻擊者會嘗試繞過,將指令編碼為 Base64、將危險字串分散在多個操作中、或逐步建構有效載荷。
Layer 2 在威脅等級升高(YELLOW 或以上)時啟動:
工具呼叫通過 Layer 1 | v目前威脅等級 >= YELLOW? | +--+--+ | | 是 否 --> 直接通過(Layer 2 跳過) | v掃描混淆模式: - Base64 編碼的指令片段 - 異常上下文中的環境變數引用 - 符合已知資料外洩端點的 URL - 重新組合後形成危險指令的編碼字元 | +--+--+ | |發現 乾淨 | | v v阻擋 傳遞到 Layer 3(若為 RED)此層仍然是規則式的(沒有 LLM 呼叫),但規則更精密。它尋找的是繞過意圖而非直接的危險指令。
Layer 3:AI 判讀
Section titled “Layer 3:AI 判讀”最昂貴的一層。只在威脅等級 RED(已確認攻擊行為)時啟動:
工具呼叫通過 Layer 1 和 2 | v目前威脅等級 == RED? | +--+--+ | | 是 否 --> 直接通過 | v將上下文送交輕量 LLM: 「根據這一系列工具呼叫及其上下文, 這是合法操作還是攻擊企圖?」 | +--+--+ | |攻擊 合法 | | v v阻擋 放行此層攔截在語意上危險但語法上無辜的攻擊。這些事物個別看來正常,但結合起來形成惡意模式。
威脅等級狀態機
Section titled “威脅等級狀態機”三層由威脅等級系統協調運作:
GREEN(正常) | | 偵測到可疑模式 vYELLOW(警戒) | | 確認攻擊指標 vRED(實際威脅) | | 觀察期內無事件 vYELLOW --> GREEN(逐步降級)關鍵行為:
- 升級迅速:單一確認的攻擊指標立即從 GREEN 跳到 YELLOW。
- 降級緩慢:系統等待平靜的觀察期才降級。這防止攻擊者觸發封鎖、短暫等待、然後再次嘗試。
- 層級隨等級啟動:GREEN 時只跑 Layer 1。YELLOW 時跑 Layer 1+2。RED 時三層全開。
無侵入式架構
Section titled “無侵入式架構”一項關鍵設計決策:以上所有功能都不修改 Claude Code 本身。
整個安全系統以 .claude/hooks/ 目錄中的 shell 腳本實作。這些 hook 是 Claude Code 提供的標準擴展機制,在特定工具呼叫前後執行,接收工具參數並回傳允許/拒絕決定。
Claude Code 呼叫一個工具 | vHook 系統攔截(PreToolUse) | v安全腳本執行 3 層檢查 | +--+--+ | |允許 拒絕 | | v v工具 工具呼叫被執行 阻擋並附帶說明這代表:
- DuDuClaw 安全機制適用於任何 Claude Code 版本
- 不需要 fork、patch 或 monkey-patching
- 安全層可獨立於 Claude Code 進行更新
除了三層之外,hook 系統還提供針對性保護:
人格檔案保護 — Agent 的身份檔案受到保護,防止未經授權的讀取和寫入。只有演化引擎(在特定環境旗標下運行)才能修改它。
機密掃描器 — 所有檔案寫入都會被掃描,檢查是否包含看起來像 API 金鑰、密碼、token 或其他認證資料的模式。若發現,寫入被阻擋並發出警報。
審計記錄器 — 每次工具呼叫(允許或拒絕)都記錄在 append-only 日誌檔案中。這提供完整的鑑識軌跡供事件調查使用。
設定守衛 — 關鍵設定檔被監控以防未經授權的變更。如果設定檔在核准通道之外被修改,系統會發出警報。
Unicode 正規化 — 所有輸入在處理前都會做 NFKC 正規化,以偵測同形異義字攻擊(例如用看起來像拉丁字母的西里爾字元)。這能防止視覺偽裝式的繞過嘗試。
Action Claim Verifier — 驗證工具執行宣稱上的加密簽章,確保宣稱的工具結果真的來自預期的工具。
RBAC(角色型存取控制) — 一套角色型存取控制矩陣規範每個使用者/Agent 能做什麼。不同角色(admin、operator、viewer)有不同的權限集合,在 API 層強制執行。
這為什麼重要
Section titled “這為什麼重要”將 AI 判讀保留給最罕見的情況(僅限 RED 等級),安全系統在正常操作中增加的成本接近零。大多數威脅被微秒級的 Layer 1 黑名單攔截。
沒有單一層級負責所有安全。繞過 Layer 1(混淆)的攻擊者仍面對 Layer 2(模式分析)。繞過 Layer 2 的攻擊者仍面對 Layer 3(語意 AI 判讀)。
Layer 1 的黑名單故意保守;它只阻擋確定危險的事物。模糊的情況留給更高層級處理,這些層級有更多上下文做出準確判斷。
JSONL 審計日誌意味著每個安全決策都被記錄並可供檢閱。當安全事件發生(或誤報被回報)時,營運人員可以精確重建發生了什麼、什麼被阻擋、以及為什麼。
與其他系統的互動
Section titled “與其他系統的互動”- CONTRACT.toml:行為契約定義 Agent 不得做什麼。安全 hook 在工具呼叫層級強制執行如何實施。
- 演化引擎:安全層保護人格檔案免受未經授權的修改,確保只有 GVU 管線能演化 Agent。
- 儀表板:威脅等級和近期安全事件可在 Web 介面中查看。
- 審計系統:與更廣泛的 JSONL 審計紀錄整合,支援合規需求。
安全不一定很貴。透過在昂貴的 AI 判讀之前分層便宜的確定性檢查,DuDuClaw 以接近零的成本攔截絕大多數威脅,同時為真正模糊的情況保留 AI 判讀能力。