KeyFrame內部研究專用

DeFi security Summit 2023 - Session 10: Focused Talks 2 - Kang Li

DeFi Security Summit - DSS·7月16日週日·9 min英文

三句話摘要

Move VM安全性分析及其在實現中發現的關鍵漏洞 Move語言通過強類型系統和資源導向編程提供卓越的安全特性,但其實現正確性至關重要,持續的安全審計和漏洞修復是確保Move生態安全的必要條件。 Move語言的強靜態類型系統和資源導向編程在語言層面防止類型混淆和代幣隱式重複,支持形式驗證,但這些保障完全依賴編譯器和多層驗證器的實現正確性,任何一層實現缺陷都可能被攻擊者利用。

重點整理

重點
  • 1

    Move語言的強靜態類型系統和資源導向編程在語言層面防止類型混淆和代幣隱式重複,支持形式驗證,但這些保障完全依賴編譯器和多層驗證器的實現正確性,任何一層實現缺陷都可能被攻擊者利用。

  • 2

    威脅模型假設攻擊者跳過正常開發流程,直接手工製作字節碼發送至Move VM,目標是要麼使惡意代碼通過驗證器導致類型檢查失敗、偽造或竊取代幣,要麼直接攻擊驗證器使其崩潰或進入無限循環。

  • 3

    發現的Vec pack/unpack指令存在類型追蹤缺陷,允許Coin T2被轉換為Coin T1;Rust實現中的Panic異常未正確處理導致Aptos和Sui驗證節點崩潰;抽象解釋驗證器存在無限循環漏洞,因無超時機制而阻止整個區塊鏈處理新交易。

  • 4

    儘管發現多個漏洞,通過安全審計和生態開發者積極修復,Move VM安全性不斷提升;相比缺乏強類型系統的其他智能合約語言,Move仍代表更高的安全標準,持續的漏洞發現和修復過程本身即為安全性提升的證明。

實用技巧與重點

乾貨
  • Move語言核心安全特性
  • 強靜態類型系統:防止類型混淆、引用缺失
  • 資源導向編程:原生Coin、Token類型,防止隱式重複
  • 形式驗證和高級程序分析支持
  • 多層驗證架構
  • Move編譯器層:初級檢查
  • Move VM驗證器層:官方字節碼驗證
  • 區塊鏈層驗證器:Aptos、Sui等公鏈各自驗證器
  • 發現的三類漏洞
  • Vec pack/unpack指令類型追蹤缺陷 - 允許Coin T2→Coin T1轉換
  • Rust Panic異常未正確處理 - 導致Aptos、Sui驗證節點崩潰
  • 抽象解釋驗證器無限循環 - Sui受影響,缺乏超時機制
  • 威脅模型關鍵
  • 攻擊向量:手工製作字節碼,規避編譯器檢查
  • 目標:破壞類型安全或攻擊驗證器本身
  • 後果:代幣偽造/竊取、節點崩潰、交易阻塞
  • 實現細節
  • Move VM驗證器主要使用Rust實現
  • 無限循環漏洞即使重啟節點仍存在,需發布修復才能解除區塊鏈阻塞

結論

結論

Move語言通過強類型系統和資源導向編程提供卓越的安全特性,但其實現正確性至關重要,持續的安全審計和漏洞修復是確保Move生態安全的必要條件。

完整解析

詳細

Move語言是一種面向資源的智能合約語言,引入了兩個理論上能大幅提升安全性的語言特性:強靜態類型系統和資源導向編程模型。強類型系統在編譯階段防止類型混淆和引用缺失等常見錯誤,而資源導向編程通過將Coin和Token等資源作為一等公民,確保這些資源不會被意外隱式重複或消失。這些設計理論上使Move智能合約相比缺乏類型安全保障的語言(如Solidity)更為安全,並且支持形式驗證等高級程序分析技術。

然而,Move語言的安全保障並非完全由語言設計決定,而是高度依賴於多層次驗證器的實現正確性。正常開發流程中,代碼首先通過Move編譯器進行檢查,編譯後的字節碼隨後依次經過Move官方驗證器以及Aptos、Sui等公鏈各自的驗證器檢查。關鍵安全問題在於威脅模型的設定:攻擊者不受開發流程約束,完全可以手工製作字節碼直接發送到Move VM,試圖繞過或欺騙多層驗證器。攻擊目標分為兩類,一是使惡意代碼通過驗證器而保留類型檢查漏洞,二是直接攻擊驗證器本身導致其崩潰或功能異常。

實際審計中發現的漏洞對應這兩個威脅方向。第一類是Vec pack/unpack指令存在的類型追蹤缺陷:該指令將對象打包為向量,後續解包時應恢復原始類型,但實現中缺少必要的類型檢查。攻擊者利用此漏洞,可以人為地將一種代幣類型(Coin T2)轉換為另一種類型(Coin T1),直接破壞類型系統的核心保證。第二類涉及Move驗證器的Rust實現:Rust語言通過unwrap等機制提供內存安全性,但若開發者未正確處理所有隱式Panic情況,攻擊者可以通過精心構造的字節碼觸發panic異常,導致驗證節點進程崩潰。第三類則是驗證流程本身的邏輯錯誤:某些驗證器使用抽象解釋技術進行代碼分析,研究團隊發現可以構造輸入讓這些驗證器陷入無限循環。由於驗證機制缺乏超時保護,驗證器會無限期地分析單筆交易而無法處理新交易,導致整個區塊鏈被有效地阻塞。即使重啟節點,該交易仍會留在交易池中,必須發布補丁修復才能恢復。

儘管審計發現了多個漏洞,這不代表Move VM不安全。實際上,通過系統性的安全審計、Aptos和Sui等生態方的主動修復,以及社區持續的改進工作,Move生態的安全性在不斷提升。相比完全缺乏類型安全保障的智能合約語言,Move代表了更高的安全標準。這些漏洞的發現和修復過程本身就證明了社區對安全的認真態度,使Move VM變得更為堅固。

關鍵時刻

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