CertiK團隊於Sui區塊鏈發現了一系列拒絕服務漏洞。在這些漏洞中,一種新型且具有嚴重影響力的漏洞格外引人注目。該漏洞可導致Sui網絡節點無法處理新的交易,效果等同於整個網絡完全關閉。就在上週一,CertiK因發現該重大安全漏洞,獲得了SUI 50萬美元漏洞賞金。美國業內權威媒體CoinDesk對該事件進行了報道,隨後各大媒體也緊隨其報道發佈了相關新聞。該安全漏洞被形象地稱爲“倉鼠輪”:其獨特的攻擊方式與目前已知的攻擊不同,攻擊者只需提交一個大約100字節的載荷,就能觸發 Sui 驗證節點中的一個無限循環,使其不能響應新的交易。此外,攻擊帶來的損害在網絡重啓後仍能持續,並且能在 Sui 網絡中自動傳播,讓所有節點如倉鼠在輪上無休止地奔跑一樣無法處理新的交易。因此我們將這種獨特的攻擊類型稱爲“倉鼠輪”攻擊。
發現該漏洞後,CertiK通過Sui的漏洞賞金計劃向Sui進行了報告。Sui也第一時間進行了有效迴應,確認了該漏洞的嚴重性,並在主網啓動前積極採取了相應措施對問題進行了修復。除了修復此特定的漏洞外,Sui還實施了預防性的緩解措施,以減少該漏洞可能造成的潛在損害爲了感謝CertiK團隊負責地披露,Sui向CertiK團隊頒發了50萬美元獎金。
“倉鼠輪”攻擊在Sui網絡中的持續性危害
Sui的漏洞賞金計劃對漏洞等級的評定有着嚴格的規定,主要依據對整個網絡的危害程度進行評定。滿足“嚴重(critical)”評級的漏洞必須使整個網絡關停並有效阻礙新交易確認,同時需要硬分叉來修復問題;如果漏洞只能使部分網絡節點拒絕服務,至多被評定爲 “中危(medium)”或“高危(high)”漏洞。CertiK Skyfall團隊發現的“倉鼠輪”漏洞可以使整個Sui網絡關停,同時需要官方發佈新版本進行升級修復。基於對該漏洞的危害程度,Sui 最終被將其評定爲“嚴重”等級。爲了進一步理解“倉鼠輪”攻擊造成的嚴重性影響原因,我們有必要了解Sui後端系統的複雜架構,特別是鏈上交易發佈或升級的整個過程。最初,用戶交易通過前端RPC提交,經基本驗證後傳遞到後端服務。Sui後端服務負責進一步驗證傳入的交易載荷。在成功驗證了用戶的簽名後,交易被轉化爲交易證書(包含交易信息以及Sui的簽名)。這些交易證書是Sui網絡運作的基本組成部分,可以在在網絡中的各個驗證節點之間傳播。對於合約創建/升級交易,在其可以上鍊之前,驗證節點會調用Sui驗證器檢查並驗證這些證書的合約結構/語義的有效性。正是在這個關鍵的驗證階段,“死循環”漏洞可以被觸發利用。
當該漏洞被觸發時,它會導致驗證過程無限期中斷,有效阻礙系統處理新交易的能力,並導致網絡完全關閉。雪上加霜的是,節點重啓後該情況仍然存在,這也就意味着傳統的緩解措施遠遠不夠。該漏洞一旦被觸發,則會出現“持續破壞”的情況從而對整個Sui網絡留下持久影響。
Sui的解決方法
經過CertiK反饋後,Sui及時確認了該漏洞,併發布了一個修復程序來解決該關鍵缺陷。該修復程序確保了狀態改變和改變後標誌之間的一致性,消除了“倉鼠輪”攻擊造成的關鍵影響。爲了消除上述的不一致,Sui的修復包括對AbstractState::join函數的一個微小但關鍵的調整。這個補丁移除了在執行AbstractValue::join之前判定狀態合併結果的邏輯,取而代之的是首先執行AbstractValue::join函數進行狀態合併,通過比較最終更新結果和原始狀態值(old_value)來設置合併是否發生變化的標記。這樣一來,狀態合併的結果與真實更新的結果將保持一致,分析過程中不會發生死循環。#山寨币 #BTC