從 Claw Code 看 AI 開發助手的資安設計:工具治理、權限控管與企業風險

Claw Code 是一個以 Python 重新實作的 AI 開發助手框架,重點不只是程式碼重寫,更展現了 AI agent 在工具執行、權限管理與可稽核性上的設計思維。本文將從其核心架構出發,解析工具清單、權限拒絕、runtime 路由與 session 紀錄等機制,並延伸到企業在導入 AI 開發工具時應如何建立安全邊界與治理策略,協助組織在創新與風險控管之間取得平衡。

事件背景:Claude Code 外洩始末

2026年3月31日 UTC 04:00,安全研究員、Solayer Labs 實習生 Chaofan Shou(@Fried_rice)在 X 平台發文,揭露 Anthropic 在 npm 套件 @anthropic-ai/claude-code v2.1.88 中,意外附帶了一個 59.8 MB 的 JavaScript 原始碼映射檔(.map file)。這個 .map 檔連結至 Anthropic 存放在公開 R2 雲端儲存桶的完整原始碼壓縮包,內含 2,000 個檔案、約 50 萬行 TypeScript 程式碼,以及多個「已開發但尚未部署」的功能旗標(feature flags)。16 萬人次湧入 Shou 的推文討論串。Anthropic 事後向 Axios 表示:「這是人為錯誤造成的發布問題,而非安全漏洞,沒有任何敏感客戶資料或憑證外洩。」

值得注意的是,同日 npm 上另外出現了含有遠端存取木馬(RAT)的惡意套件 axios v1.14.1 / v0.30.4,與 Claude Code 外洩事件無直接關聯,但時間高度重疊,造成資安社群一度混亂。更重要的是:Zscaler ThreatLabz 的後續分析記錄到攻擊者以 Claw Code 相關誘餌積極散布 Vidar 竊取器(Infostealer)與 GhostSocks 惡意軟體——這代表高知名度的開源事件本身也成為了社交工程攻擊的跳板,是資安團隊必須納入評估的直接威脅。

Claw Code 的誕生:GitHub 史上最快破十萬星

外洩消息傳出後不久,韓國開發者 Sigrid Jin(@instructkr)——曾出席 Claude Code 在舊金山舉辦的一週年慶生派對——率領團隊以「兩人、十個 OpenClaw 帳號、一台 MacBook Pro」的配置,透過 oh-my-codex(OmX)端對端自動化工作流程,在一夜之間完成 Claw Code 的 Python 乾淨重寫(clean-room rewrite)。Claw Code 在兩小時內突破 50,000 顆星,24 小時內突破 100,000 顆星與 100,000+ forks,成為 GitHub 有史以來達到十萬星速度最快的專案。超過 5,000 人在一天內加入其 Discord 社群。Jin 同時推動以 Rust 重寫的完整版本,稱其為「這個專案的完整形態」。Anthropic 對外洩的 TypeScript 原始碼版本發出 DMCA 下架通知,但針對乾淨重寫的 Python 版本,DMCA 的法律依據明顯薄弱。

這個專案明確強調三點:

  • 目前主分支已改為「Python porting workspace」,原始快照不再是主要追蹤內容
  • 專案只重現架構模式與工具接線方式,而非複製任何專有程式碼
  • 作者聲明與 Anthropic 無任何隸屬或授權關係

Claw Code 是什麼:AI 工具執行安全實驗場

Claw Code 的 Python 程式碼主要集中在 src/ 目錄,包含命令列介面、工具清單、權限管理、執行 runtime 及工作紀錄等模組。以入口 src/main.py 為例,提供以下指令:

  • summary:輸出目前 Python 工作區的 Markdown 摘要
  • parity-audit:對照本機忽略追蹤的 TypeScript 存檔,檢查 Python 重寫與原系統的行為差異
  • commands / tools:列出鏡射過來的指令與工具清單,可加上關鍵字過濾
  • remote-mode、ssh-mode、teleport-mode:模擬遠端控制或 SSH 情境下的 runtime 分支

這些功能讓 Claw Code 成為一個研究性沙箱,開發者可以在不直接觸碰外洩原始碼的前提下,研究 AI agent 如何呼叫工具、路由請求,以及設計稽核與紀錄機制。需要明確指出的是:Claw Code 目前不是 Claude Code 的生產替代品——功能尚未達到同等程度,Rust 版本亦尚不穩定,且存在未解決的法律疑慮。

工具治理:從工具快照到執行結果的安全邏輯

在 AI agent 架構裡,「工具」是最大的風險來源之一——可能是 Bash 指令、檔案讀寫、Git 操作甚至外部 API 呼叫。Claw Code 的 src/tools.py 示範了如何先把工具層「建模」,再決定哪些真正可執行。

工具清單與快照

專案從 reference_data/tools_snapshot.json 載入工具快照,轉成內部 PortingModule 資料結構,每個工具包含:名稱、職責說明與來源提示(source_hint)。工具預設標記為 status='mirrored',表示目前是「鏡射描述」,而非直接綁定到真實環境的破壞性行為。

權限篩選與 deny list

ToolPermissionContext 提供乾淨的權限模型:

  • deny_names:完整工具名稱黑名單
  • deny_prefixes:以字首為單位的黑名單,阻擋一整類工具

在 get_tools() 中可選擇 simple_mode(只允許 BashTool、FileReadTool、FileEditTool 等基礎工具)或 include_mcp(決定是否包含多協定相關工具)。這種「工具清單+deny list+模式切換」的設計,對企業導入具自動執行能力的 AI agent 非常關鍵。

Runtime 安全邏輯:路由、拒絕與可稽核

src/runtime.py 是 Claw Code 的核心,負責根據使用者輸入路由到適當的指令或工具,並產生完整執行紀錄。

安全路由與預設拒絕

PortRuntime.route_prompt() 將使用者輸入切成 tokens 後進行關聯度計分,再由 _infer_permission_denials() 針對高風險工具自動產生拒絕——任何名稱含 bash 的工具均被標記為「仍需 gate 的破壞性 shell 執行」,預設列入拒絕清單。即使路由匹配到類 Bash 工具,系統也只回報「拒絕」而非直接執行,避免研究環境中誤觸真實系統命令。

完整 session 記錄與審計

RuntimeSession 資料結構完整記錄:

  • 執行環境資訊(Python 版本、平台、啟動步驟)
  • 被路由到的指令與工具及其匹配分數
  • 真正執行的指令/工具訊息
  • 流式事件(stream events)與最終 AI 輸出
  • Session 儲存路徑與歷史紀錄(HistoryLog)

對企業資安的五項啟示

從 Claw Code 的設計與 Claude Code 外洩事件,可提煉出導入 AI 開發助手時的關鍵安全設計原則:

  1. 工具層先建模,再談執行權限:不論是 Bash、Git、Cloud CLI 或內部 API,都應先抽象成「工具描述」,再用權限脈絡決定哪些可在何種模式下被呼叫。
  2. 高風險工具採預設拒絕(default deny):類似 Claw Code 對 Bash 類工具的處理,在企業環境中應要求明確授權與額外審批後才開啟。
  3. 遠端與 SSH 類功能需強化身分與稽核:一旦 AI agent 具有對遠端主機的操作能力,就必須搭配強身分驗證、細緻操作紀錄與即時監控。
  4. 完整 session 與歷史紀錄是資安基礎:將每次 AI 執行的上下文、路由決策、工具執行結果與拒絕理由寫入歷史紀錄,是事件調查與行為分析的必備素材。
  5. 行為對齊與 parity audit:透過類似 parity-audit 的機制,定期檢查新版本 agent 是否在行為上偏離預期,防範「模型更新導致風險增加」。

此外,Claude Code 外洩事件本身也示範了一個資安警訓:高知名度開源事件可以成為社交工程攻擊的跳板。Zscaler 記錄到攻擊者以 Claw Code 誘餌散布 Vidar 與 GhostSocks 惡意軟體,提醒資安團隊需對熱門工具的仿冒下載保持高度警惕,並主動評估開發人員從非官方來源安裝工具的供應鏈風險。

更多資安新聞