From Description to Exploit AI Agents for Smarter Audits
三句話摘要
瑞典皇家理工學院研究團隊開發 AI 代理 Poco,可從自然語言漏洞描述自動生成智能合約 PoC 漏洞利用程式。 將 AI 代理的職責限縮為「從審計師描述生成 PoC」而非「偵測漏洞」,再以真實補丁作為評估 Oracle,是讓智能合約安全自動化研究從模糊走向可量化的關鍵設計決策。 職責分離降低複雜度:Poco 明確不處理漏洞發現,只接受已標注的漏洞描述做輸入,避免將「偵測」與「利用生成」兩個高難度問題混在同一個系統裡,使各自研究可以獨立推進。
重點整理
重點- 1
職責分離降低複雜度:Poco 明確不處理漏洞發現,只接受已標注的漏洞描述做輸入,避免將「偵測」與「利用生成」兩個高難度問題混在同一個系統裡,使各自研究可以獨立推進。
- 2
補丁即 Oracle 的評估設計:傳統 PoC 正確性依賴人工驗證,主觀性強。Poco 改用已被接受的真實補丁作為評估標準——若生成的 PoC 在補丁後的程式碼上執行失敗,即可客觀確認該 PoC 是正確的,大幅提升評估的可信度。
- 3
沙盒架構確保安全執行:代理框架讓 AI 取得工具存取權時存在風險,Poco 在沙盒環境中運行,限制其無法接觸私鑰等敏感資訊,並明確列舉可用工具清單(代碼探索、規劃、Solidity 編譯與測試)。
- 4
架構與模型解耦:Poco 不綁定特定 LLM,同一代理架構可搭配 GLM 4.6、OpenAI O3 或 Claude 4.5 等不同模型使用,使研究結論不依附於單一廠商的能力邊界。
實用技巧與重點
乾貨- 工具名稱:Poco(PoC 生成代理)
- 測試框架:Foundry / Forge(生成 Forge 測試)
- 使用模型:GLM 4.6(開源)、OpenAI O3、Claude 4.5
- 資料集名稱:patch-proof dataset,來源為 Sherlock 審計報告
- 資料集規模:從前 100 份報告中手動篩選出 23 個含補丁連結的漏洞案例
- 評估結果:23 個樣本中 22 個格式正確(包含斷言、編譯通過、斷言通過),20 個漏洞利用程式正確(被補丁阻擋)
- 正確率:約 80%(論文數字)
- 呼叫方式:`uv run poco --rp <合約路徑> --a <描述txt> --model <模型名>`
- 代理架構:ReAct 迴圈(自主讀取代碼庫 → 撰寫測試 → forge compile → forge test → 迴圈直到斷言通過)
- 沙盒隔離:代理無法存取私鑰等敏感資源
- 正確性驗證流程:先 forge compile → forge test → grep 確認存在斷言 → 在補丁代碼庫重跑,失敗即為正確
結論
結論“將 AI 代理的職責限縮為「從審計師描述生成 PoC」而非「偵測漏洞」,再以真實補丁作為評估 Oracle,是讓智能合約安全自動化研究從模糊走向可量化的關鍵設計決策。”
完整解析
詳細智能合約一旦部署於區塊鏈便不可修改,任何已知漏洞都可能造成不可逆的資產損失,因此部署前的安全審計是不可或缺的環節。然而,審計預算與時間有限,加上審計師往往需要手動撰寫概念驗證(PoC)漏洞利用程式來證明漏洞真實存在,這一步驟耗費大量精力卻屬於可自動化的重複性工作,形成整個開發流程中的效率瓶頸。
Poco 的設計出發點正是解決這個瓶頸。索菲亞的團隊刻意將「漏洞發現」與「PoC 生成」兩個問題拆開——Poco 完全不嘗試偵測漏洞,它的輸入是審計師已撰寫好的自然語言漏洞描述(包括漏洞所在位置、可被利用的狀態、預期的驗證方式),輸出則是可在 Foundry/Forge 框架上直接執行的測試程式碼。這種職責分離讓每個子問題都能在各自的研究軌道上獨立演進,而不互相拖累。
在架構上,Poco 採用 ReAct(Reason + Act)代理迴圈:代理自主讀取合約代碼庫、分析依賴關係、規劃步驟,然後逐步撰寫測試;每次撰寫後呼叫 forge compile 與 forge test,若斷言未通過則繼續迭代,直到所有斷言通過才輸出最終 PoC。整個過程在沙盒環境中執行,代理無法接觸私鑰等敏感資源。值得注意的是,架構本身與模型無關,同一套框架可搭配 GLM 4.6、OpenAI O3 或 Claude 4.5 等不同模型運行。
評估方式是本研究最具巧思的部分。傳統 PoC 正確性驗證依賴人工審閱,主觀且耗時。索菲亞團隊改用「補丁即 Oracle」的方法:他們從 Sherlock 審計平台的報告中,手動篩選出含有已接受補丁連結(PR 或 commit)的 23 個漏洞案例,建成 patch-proof 資料集。評估邏輯是:既然補丁已被接受並部署,它必定能阻止所有針對該漏洞的有效利用;因此若生成的 PoC 在補丁後的代碼上執行失敗,即客觀確認該 PoC 是正確的。最終結果顯示,23 個樣本中 22 個格式正確(編譯通過、包含斷言、斷言通過),20 個被判定為正確的漏洞利用程式,整體正確率約 80%,驗證了此方法的可行性。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


