KeyFrame內部研究專用

Tools For Supporting Manual Auditing At Scale, David Tarditi - DeFi Security Summit 2022

DeFi Security Summit - DSS·10月24日週一·8 min英文

三句話摘要

Surtic 透過多層級工具、工作流系統與機器學習,實現大規模智能合約手動審計的高效與高品質。 大規模審計的成功在於用分層工具與工作流卸載重複勞動,讓人工專注高層級設計威脅,同時用數據驅動工具持續進化,形成質量與效率的正循環。 審計的雙重目標:審計需同時達成有效性(發現漏洞)與經濟性(成本可控)。Surtic 通過工具與工作流的組合,每天完成約 6 次審計,使即使是中小規模項目也能承受得起專業級別的安全審計。

重點整理

重點
  • 1

    審計的雙重目標:審計需同時達成有效性(發現漏洞)與經濟性(成本可控)。Surtic 通過工具與工作流的組合,每天完成約 6 次審計,使即使是中小規模項目也能承受得起專業級別的安全審計。

  • 2

    分層工具架構:工具棧跨越多個抽象層次──源碼層捕捉模式錯誤(如 `x=1` vs `x+=1`)、語義層用資料流分析檢測授權缺失、模型檢驗驗證代碼是否符合規範。每層工具專注特定複雜度的問題,基層工具補齊基礎質量。

  • 3

    人機職責劃分:工具在編碼錯誤與低層級漏洞上效率高,但難以捕捉設計缺陷、邏輯漏洞或新功能引入的隱性風險。審計師應專注這類高層級威脅,避免被工具已能處理的繁瑣工作拖累。

  • 4

    數據驅動迭代:60000+ 個審計發現數據庫被機器學習用於聚類,將 2400 個人工聚類簡化至 500 個,暴露工具盲點與新漏洞模式。形成「規模→數據→反饋→工具改進」的正循環,不斷提升檢測能力。

實用技巧與重點

乾貨
  • 審計規模
  • 過去 6 個月:1217 個專案、4938 個中等以上嚴重級別問題
  • 平均速率:約 6 次審計/天
  • 嚴重級別分類
  • Critical:發布即被攻擊
  • Major:重大風險
  • Medium:可能被攻擊
  • Minor:輕微問題
  • 工具清單
  • Relevancy Matcher(相關性比對器):檢查是否見過相似代碼
  • Source-level Checker(源碼層檢查器):模式匹配檢測
  • Visual Program Analyzer(視覺化程序分析器):展示調用圖、合約圖、角色權限
  • Semantic-level Checker(語義層檢查器):資料流分析、抽象解釋
  • Defect Testing(缺陷測試)
  • Model Checking(模型檢驗)
  • 工作流系統特性
  • 可伸縮:支援 3 天至 90 天的審計需求
  • 自動化源碼吸收與流程編排
  • 強制工具運行,所有發現必須審計師篩選
  • 假陽性需記錄理由,形成反饋數據
  • 數據與聚類
  • 累積發現數據庫:60000+ 個審計發現
  • 人工聚類:2400 個
  • 機器學習聚類:500 個(帶計數統計)
  • 客戶偏好
  • 傾向選擇手動審計而非自動化工具
  • 原因:缺乏形式規範、現有規範常不完整

結論

結論

大規模審計的成功在於用分層工具與工作流卸載重複勞動,讓人工專注高層級設計威脅,同時用數據驅動工具持續進化,形成質量與效率的正循環。

完整解析

詳細

Surtic 在過去六個月內完成了 1217 次智能合約審計,發現了接近 5000 個足以威脅安全的漏洞,這樣的規模在行業中相當可觀。但如何既保持審計品質,又讓成本與時間可控,是傳統審計模式難以解決的矛盾。Surtic 的核心策略是構建一套多層級工具體系,再通過工作流系統將它們有機地整合。

這套工具體系的設計反映了漏洞的複雜度梯度。最基層是源碼層檢查器,它尋找常見的編碼模式錯誤──比如開發者誤寫 `x=1` 而本意是遞增 `x+=1` 這類低級錯誤。雖然看似簡單,但在金融應用中可能導致資金流向錯誤。往上一層是視覺化程序分析器,它自動繪製代碼的呼叫圖與合約依賴圖,幫助審計師(也像黑客一樣)理解攻擊面。更高級的是語義層檢查器,它運用資料流分析與抽象解釋技術,能夠檢測邏輯層的漏洞,例如某個敏感的鑄幣函數在某條執行路徑上缺少授權檢查,這類漏洞單靠模式匹配是找不到的。此外還有缺陷測試與模型檢驗,後者允許驗證代碼是否符合預先定義的安全規範。

所有這些工具並非獨立運作,而是被一套工作流系統串聯起來。這套系統的魔力在於可伸縮性:無論客户需要 3 天還是 90 天的審計,系統都能自動調度工具、管理源碼吸收、組織審計過程。審計師不需要(也不被允許)選擇運行哪些工具,工具必須在所有專案上自動執行。審計師的職責是篩選工具發現、判定其有效性,並在發現假陽性時記錄原因。這種設計的精妙之處在於它為工具團隊創造了持續的反饋迴路──假陽性的原因數據直接指導工具改進方向。

隨著審計量的積累,Surtic 建立了一個包含超過 60000 個手動發現的數據庫。這個數據庫成了持續創新的寶庫。他們使用機器學習對這些發現進行聚類,自動識別新興的漏洞模式與類型。一個有趣的對比是:人工分析曾產生 2400 個聚類,而機器學習將其縮減至 500 個,並附帶每個聚類的發生次數。這樣做的好處雙重:首先,工程師能清楚地看到哪些漏洞類型最常見、應該優先構建檢測器;其次,200 個被合併的聚類其實是假陽性或罕見問題,不值得耗費資源。這形成了一個正反饋:規模化審計生成豐富的數據→數據揭示漏洞模式→模式驅動工具改進→改進的工具提升未來審計的效率與品質。

講者也坦誠工具的局限。工具擅長捕捉編碼層面的缺陷,但對設計缺陷與邏輯錯誤的檢測能力有限。審計師仍需投入可觀的人力進行深度分析,特別是識別那些「你不知道的攻擊」──即新增的功能可能在代碼上看似正確,卻為意想不到的攻擊向量打開了大門。這類高層級的設計風險是安全專業人士最擔憂的,也是工具在可預見的未來難以自動化的。因此最理想的模式是工具卸載低層級的重複性檢測,人工審計師集中精力於設計審視、邏輯驗證與風險評估。

關鍵時刻

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