Anthropic Defending Code Reference Harness
Anthropic 發布了 defending-code-reference-harness,這是一個開源的參考實作,旨在利用 Claude 自動化發現與修復軟體漏洞。該框架提供了一個結構化的流程,用於偵察、漏洞發現、驗證、報告與修補,特別針對 C/C++ 記憶體漏洞進行了優化,但其設計旨在可移植到其他語言與漏洞類別。
The Autonomous Vulnerability Discovery Pipeline
該參考工具架構實作了一個七階段的自主迴圈,從初始程式碼庫分析到已驗證的修補程式。此過程旨在透過要求對每個發現進行基於執行的驗證,來減少誤報。
- Build: 目標程式碼會被編譯成一個 Docker 映像檔,通常使用 AddressSanitizer (ASAN) 來偵測 C/C++ 的記憶體錯誤。
- Recon: 一個輕量級代理程式 (agent) 會分析原始碼,以建議輸入解析子系統的分區,確保並行代理程式在探索不同的攻擊面,而非重複勞動。
- Find: 多個代理程式並行執行,每個代理程式會構造惡意輸入並執行二進位檔,直到一致地重現崩潰 (例如,3 次中成功 3 次)。
- Verify: 一個獨立的評分代理程式 (grader agent) 會僅使用 Find 代理程式提供的概念驗證 (PoC) 在一個全新的、隔離的容器中重現崩潰。
- Dedupe: 一個判斷代理程式 (judge agent) 會將已驗證的崩潰與先前報告過的漏洞進行比較,以判斷該發現是否為獨特或重複的。
- Report: 一個報告代理程式會生成結構化的可利用性分析,詳細說明原始碼層級 (primitive class)、可達性 (reachability) 與嚴重性。
- Patch: 一個修補代理程式會提出修補方案,隨後由評分代理程式驗證,以確保程式碼可以編譯、原始 PoC 不再導致崩潰,且現有的測試套件仍能通過。
Implementation and Security Sandboxing
由於自主流程會執行目標程式碼以驗證漏洞,Anthropic 強調嚴格的隔離。除非明確覆蓋設定,否則該工具架構拒絕在 gVisor sandbox 之外執行。此沙箱提供容器層級的隔離,並透過出口白名單限制代理程式僅能與 Claude API 通訊。
對於互動式使用,該框架提供「Claude Code skills」 (例如 /threat-model、/vuln-scan 與 /triage),這些技能僅具備讀寫檔案的能力。只要使用者能審查並核准每個工具的使用,這些互動式技能就可以在非沙箱環境下執行。
Customizing the Harness for Different Stacks
雖然預設實作針對的是 C/C++ 記憶體漏洞,但該框架被設計為通用型態。將工具架構移植到其他語言或漏洞類別需要定義三個主要組件:
- Finding Signals: 定義什麼構成一個漏洞 (例如,將 ASAN 崩潰特徵取代為異常日誌或 DNS 回調)。
- Proof of Concept: 定義證據的格式 (例如,將崩潰的輸入檔案取代為 HTTP 請求序列)。
- Build/Run Environment: 提供一個
Dockerfile,用於在容器中編譯與執行目標程式。
Deployment Strategy: The "Ramp Up" Model
Anthropic 建議採用分階段的方法來將 AI 驅動的漏洞發現整合進安全工作流程:
- Day 1: 使用互動式技能來建立威脅模型並執行靜態掃描與分類 (triage)。
- Day 2: 在已知有漏洞的函式庫上執行參考流程,以理解自主迴圈。
- Days 3-5: 為特定的內部目標進行流程的客製化。
- Week 2: 擴展到跨多次執行的自主掃描、分類與修補。
Community Insights and Technical Considerations
業界從業者與社群成員針對此類框架的實用性與成本提出了幾個關鍵點:
The "Shop Jig" Philosophy
部分開發者認為參考實作應該被當作藍圖,而非開箱即用的產品。一位社群成員指出,最有效的方法是利用參考實作來獲取靈感,然後根據特定的工作風格與警報系統建立客製化的工具架構。
Cost and Resource Intensity
執行大規模的自主代理程式可能會非常昂貴。估計顯示,每個代理程式每分鐘可能消耗約 10K uncached input tokens 與 2K output tokens。根據所使用的模型 (例如 Opus 或 Mythos),這可能導致每次執行成本在數百至數千美元之間。
The Limits of AI Auditing
安全審計師警告不要進行「氛圍審計 (vibe auditing)」,即工具產生大量誤報,導致開發者不堪負荷。有效的 AI 漏洞發現需要高品質的工具架構,並持續精優化用於尋找尋找複雜漏洞 (例如加密技術漏洞) 的技術,這些漏洞對通用代理程式來說可能仍然是隱缺的。