KeyFrame內部研究專用

State of Fuzzing: Closing the Circle From Machine to Human and Back

DeFi Security Summit - DSS·11月23日週日·15 min英文

三句話摘要

智能合約模糊測試的三代演進:從機器驅動、人工引導,到 AI 輔助的 Erase Fuzzing。 AI 能生成樣板、節省機械工作,但找到真正漏洞的關鍵仍是審計員的攻擊者思維與對協議邏輯的深度理解。 覆蓋率不等於找到 Bug:覆蓋率百分比只是指標,真正的漏洞往往藏在需要 10 個連續交易觸發的事件鏈中,純機器驅動的演算法難以引導至此。

重點整理

重點
  • 1

    覆蓋率不等於找到 Bug:覆蓋率百分比只是指標,真正的漏洞往往藏在需要 10 個連續交易觸發的事件鏈中,純機器驅動的演算法難以引導至此。

  • 2

    人工引導模糊測試的核心是「流程」:審計員在 Wake 框架中定義「Flow」(相當於集成測試的執行路徑),並用 Python 實作協議的狀態模型,模糊測試器負責對所有輸入組合進行隨機化驗證,不變式(Invariant)在每個 Flow 後自動比對 Python 狀態與合約狀態是否一致。

  • 3

    撰寫模型本身就能發現 Bug:強制審計員用 Python 重現協議邏輯,這個思考過程本身會打開思維死角,使審計員找到模糊測試器根本不會觸達的邏輯漏洞。

  • 4

    AI 輔助只解決了樣板問題,核心仍需人介入:LLM 能生成 Flow 的框架代碼與事件處理循環,但無法從糟糕的 Web3 文件中還原正確的協議數學模型,也無法像攻擊者一樣思考新型攻擊向量。

實用技巧與重點

乾貨
  • 工具/框架:Medusa、Wake framework、Slitter(靜態分析)、Cursor(AI 代碼生成)
  • 技術術語:Coverage-guided feedback loop、Heuristic algorithms、Invariant、Flow(人工引導流程)、Erase Fuzzing
  • 數據:過去一年發現的高危/關鍵漏洞中,近 50% 為邏輯錯誤;其餘為數據驗證類(模糊測試器較擅長發現)
  • AI 輔助效果:LLM 可生成約 50% 的樣板代碼(循環、事件處理),剩餘部分(Python 模型更新、安全斷言)仍需人工撰寫
  • 三大 AI 全自動化瓶頸:① LLM 無法從文件重現協議數學模型;② 測試失敗時的分診(判斷是測試寫錯還是真有 Bug)仍需人工;③ 新型攻擊向量發現仍依賴人類創造力
  • 方法論原則:Python 模型實作時不得參考合約原始碼,避免把同樣的 Bug 複製進模型導致相互抵消

結論

結論

AI 能生成樣板、節省機械工作,但找到真正漏洞的關鍵仍是審計員的攻擊者思維與對協議邏輯的深度理解。

完整解析

詳細

智能合約的模糊測試面臨一個根本挑戰:協議整合數量龐大,導致狀態空間極為廣闊,純暴力破解不可行。講者指出,覆蓋率百分比是一個誤導性指標——真正有意義的是能否找到 Bug,而非覆蓋了多少程式碼路徑。

第一代方案是機器驅動的模糊測試(黑盒/灰盒),以 Medusa 為代表。其核心是覆蓋率引導的反饋迴圈:投入隨機交易、觀察狀態空間中的新路徑、偏向選擇尚未探索的分支並持續迭代。輔以啟發式演算法(如整合 Slitter 靜態分析提供具體地址或邊界值),幫助模糊測試器探索可能含有 Bug 的狀態。這種方法的優勢是「設定好就放著跑」,但缺點同樣明顯:若漏洞藏在需要 10 個依序發生的事件鏈中,純機器幾乎找不到。

為此,講者的團隊開發了人工引導模糊測試,在 Wake 框架中引入「Flow」概念。Flow 本質上是一個集成測試:審計員定義協議必須經過的複雜執行路徑(例如:存款 → 等待 → 提款 → 驗證),模糊測試器負責對這條路徑的所有輸入組合進行隨機化。同時,審計員用 Python 撰寫協議的狀態模型,每個 Flow 執行後,不變式(Invariant)自動比對 Python 模型輸出與合約鏈上輸出是否一致,差異即為潛在漏洞。這個方法有一個意外收穫:強迫審計員思考並實作協議邏輯的過程本身,往往讓他們發現模糊測試器完全碰不到的邏輯漏洞。實際數據顯示,過去一年發現的高危與關鍵漏洞中,近半數屬於邏輯錯誤,印證了這種方法的有效性。

然而,人工引導模糊測試的代價是高昂的時間成本——審計員等於要用 Python 部分重寫整個協議,且合約每次更新都需同步修改模型。這促使團隊探索第三條路:AI 輔助的 Erase Fuzzing。做法是將 Wake 文件與示例 Playbook 餵給 Cursor,讓 LLM 學習框架後自動生成 Flow 的樣板代碼(循環結構、事件處理、隨機參數初始化等),審計員只需補上核心的安全斷言與 Python 模型更新邏輯。目前 LLM 能處理約一半的機械性代碼,顯著提升了開發速度,且當 LLM 生成的邏輯有誤時,測試通常會失敗並產生誤報,反而提供了自然的品質把關機制。

儘管如此,全自動 AI 模糊測試目前仍有三道牆:Web3 文件品質普遍低落,LLM 無法從中正確還原協議數學模型;測試失敗時的分診工作(判斷是測試本身寫錯還是真正發現漏洞)仍需人工判斷;最關鍵的是,新型攻擊向量的發現依賴人類的創造力與攻擊者思維,而 LLM 只能依賴訓練資料,面對日新月異的技術向量力有未逮。解決這三個問題,才能實現真正全自動的 AI 模糊測試。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web3 安全」的內容

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️
8 min
Web3 安全英文8月14日

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️

Zach Humphries

  • 機構支撐的積極意義:價格操縱常被視為負面,但Ripple掌握大量XRP供應與escrow,在熊市期間提高價格下限,實際上替零售投資者鎖定了低風險的積累區間,這不是剝削而是市場穩定機制。
  • 歷史模式驗證:2024年7月至11月XRP在50美分附近橫盤整理,低點觸及42美分(wick),高點65美分;隨後11月5日至12月5日單月上漲456%,年底到2025年初累計漲幅534%,這個歷史周期正在1美元價位重演。
  • 比特幣聯動邏輯:講者在4-5月就預測「如果比特幣跌至60k以下,XRP會跌至1美元或更低」,此預測精準應驗,反映出熊市中兩者的明確連動關係。
Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady
72 min
Web3 安全英文PODCAST8月5日

Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady

Zero Knowledge

  • 反向 Linux 架構:Commonware 刻意暴露棧各層級控制,讓開發者自訂執行環境、共識機制、密碼學實現,而非像 Cosmos SDK 只允許應用層以上定制。2-3 個月能組裝一條定製鏈,代價是額外深度但回報是長期維護成本降低及效能優化彈性。
  • 容錯假設的典範轉移:Alpine Glow(Solana 2025)實現單輪投票定終的關鍵是將容錯預算分離為獨立的 Byzantine 和 Crash 容限。傳統系統把 33% 當一個整體預算;新模型允許 20% 惡意加 20% 崩潰,打破了 PBFT 理論界線,釋放單輪設計空間。
  • Minimet 與 Multimet 的遞進:Minimet 是 5F+1 設定下的乾淨構造,實現更短視圖延遲;Multimet(剛發布)進一步允許並行 mini-commits 且驗證者可推翻領導者審查,使用者交易在全球分布式網路達到 200-300 毫秒端到端定終。
Private Information Retrieval (PIR) with Alex Hoover
64 min
Web3 安全英文PODCAST7月29日

Private Information Retrieval (PIR) with Alex Hoover

Zero Knowledge

  • PIR 保護的是訪問模式,不是資料本身
  • PIR 與加密不同,它關注的是隱藏「客戶端查詢了什麼」,而非「資料是否加密」。在公開資料庫(如區塊鏈)上,客戶端可以在不洩露查詢對象給伺服器的情況下檢索特定條目,解決了輕量級客戶端的隱私和防審查問題。
  • 客戶端預處理方案是突破瓶頸的關鍵