KeyFrame內部研究專用

Billion Dollar Bugs, Neville Grech - DeFi Security Summit 2022

DeFi Security Summit - DSS·10月19日週三·20 min英文

三句話摘要

智能合約安全審計的科學方法:從漏洞發現到代碼審計最佳實踐 智能合約審計的未來不在單次人工審查,而在科學化的靜態動態混合分析搭配持續自動化監控,且清晰的不變性文檔可將審計效率提升數倍。 靜態與動態分析的交集發現高價值漏洞:團隊使用宣告式程序分析(Datalog)將字節碼轉換為SQL類似的關係模型,查詢所有可能執行路徑;同時透過區塊鏈瀏覽器分析歷史執行記錄。兩種方法交集極小,卻能精準鎖定掌控大量資金卻極度脆弱的合約。

重點整理

重點
  • 1

    靜態與動態分析的交集發現高價值漏洞:團隊使用宣告式程序分析(Datalog)將字節碼轉換為SQL類似的關係模型,查詢所有可能執行路徑;同時透過區塊鏈瀏覽器分析歷史執行記錄。兩種方法交集極小,卻能精準鎖定掌控大量資金卻極度脆弱的合約。

  • 2

    Solidity的隱性設計差異導致類別的漏洞:`this.foo()`是外部調用(msg.sender改變),`foo()`是內部調用(msg.sender不變)。Multi-Chain橋的permit機制因WETH沒有實作而成為空操作,攻擊者可冒充已授權用戶提取資金,最終造成300萬美元損失。

  • 3

    閃電貸回調實現的標準化進展:早期開發者檢查回調方並驗證caller,但任何人都可發起閃電貸並構造惡意payload。直到最近一年,EIP-3156標準化API,要求檢查發起者身份,大幅降低此類漏洞。

  • 4

    易審計代碼優於依賴單次審計:審計只能證明特定時點的安全性,而協議持續演進。比持續人工審計更經濟的方案是以代碼中明確的不變性註釋(時間性、功能性、結構性)搭配自動化持續監控服務。

實用技巧與重點

乾貨
  • 工具與平台
  • Watchdog:自動化漏洞檢測工具,Phantom將於年底部署至所有TVL>1000萬項目(免費)
  • Contract Library(library.dw.com):已部署智能合約反編譯庫,支持以太坊,數周內加入Phantom
  • 交易調試器:比etx.info快100倍(特別是大型交易)
  • 漏洞披露與賞金
  • Harvest Finance、Primitive Finance、Defy Saver、Vesper、BT Finance、Multi-Chain Bridge
  • Multi-Chain漏洞:自2021年共9個漏洞賞金,總額300萬美元
  • 最大損失:Multi-Chain橋permit機制漏洞,批准額度10億美元,實損300萬美元
  • Solidity常見陷阱
  • `this.foo()` vs `foo()`:前者外部調用改變msg.sender,後者內部調用保持原msg.sender
  • Permit濫用:WrapDeed的permit()無返回值搭配fallback,成為空操作(幻象函數)
  • 閃電貸回調:標準化前缺少發起者檢查,允許任意payload執行兌換和資金轉移
  • 不變性文檔分類
  • 時間性:執行到代碼某部分前調用者檢查的條件
  • 功能性:如代幣中金額的範圍規模
  • 結構性:策略在執行特定操作時需實現的功能

結論

結論

智能合約審計的未來不在單次人工審查,而在科學化的靜態動態混合分析搭配持續自動化監控,且清晰的不變性文檔可將審計效率提升數倍。

完整解析

詳細

Neville團隊在過去一年多時間內,透過科學化的安全研究方法,成功揭露多個重大智能合約漏洞並獲得共計300萬美元的賞金。他們的核心技術創新在於整合靜態與動態分析。靜態分析採用宣告式程序分析技術,先將智能合約的字節碼(比源代碼低但比機器碼高的中間表示)轉換為關係型結構,類似SQL資料庫,然後對所有可能的執行路徑進行遞迴查詢。動態分析則透過專門為安全研究人員設計的區塊鏈瀏覽器,查詢所有已部署合約的歷史執行記錄。兩者交集往往極小,但恰好指向那些掌控鉅資卻存在關鍵漏洞的合約。

在具體案例中,Multi-Chain橋的漏洞完美展示了Solidity設計細節的危險性。該橋提供兩個存款函數:常規存款(安全轉帳)和permitDeposit。WETH代幣的permit機制因為沒有明確實作但存在fallback函數,導致`permit()`呼叫實際上是空操作——簽名驗證通過但不執行批准。攻擊者利用這一點,先對合約進行一般批准後,可以偽造permit簽名,冒充任何已授權用戶將其資金存入橋接。相似的漏洞也出現在Primitive Finance的閃電貸回調實現中:開發者檢查了回調方身份,卻沒驗證閃電貸發起者,任何人都能發起貸款並傳遞惡意payload執行竊取資金的兌換操作。

講者強調,編寫易於審計的代碼比盲目追求最安全的代碼更實用。審計本質上時間有限,關鍵在於讓審計員快速理解代碼意圖。這要求開發者明確記錄三類不變性:時間性(執行路徑上的前置條件檢查),功能性(數據範圍約束),結構性(組件之間的協議要求)。更重要的是,由於協議會持續演進,單次審計不足以維持長期安全。比持續昂貴的人工審計更經濟的方案是採用技術驅動的持續監控——Watchdog正是這一理想的具體實踐,將在Phantom生態內免費部署。

關鍵時刻

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