以太坊、EOS頻爆漏洞,區塊鏈安全問題何解?

以太坊、EOS频爆漏洞,区块链安全问题何解?

鏈得得注:大文觀鏈,是鏈得得APP新推出的區塊鏈技術分析系列欄目。由鏈得得APP作者馬文佩伴隨諸位用戶,對區塊鏈、數字貨幣市場中前端技術方案進行應用層講解與熱點事件的技術層分析。每個工作日與大家一同分享“鏈圈技術宅”的那些頭腦日常。

今天中午,360安全衛士官方微博發佈消息稱, 360公司Vulcan(伏爾甘)團隊發現了區塊鏈平臺EOS的一系列高危安全漏洞。經驗證,其中部分漏洞可以在EOS節點上遠程執行任意代碼,即可以通過遠程攻擊,直接控制和接管EOS上運行的所有節點。

周鴻禕隨後在微博表示,360從年初開始,已經在區塊鏈安全方面做了很多研究,已經做了幾個區塊鏈安全解決方案,也包括EOS超級節點安全解決方案。

近幾個月以來,市場上的公有鏈項目和虛擬幣集中爆發出了一批漏洞,最嚴重的BEC被直接“歸零”,其他遭受嚴重損失的項目還包括SMT等其他一大批沿用ERC20體系的項目。

實際上,在該漏洞被曝光之後,業界還發現了以太坊上多達十幾個其他合約也使用了transferProxy這個引起BatchOverFlow 漏洞的函數,該漏洞讓攻擊者可以通過數據溢出的手段,根據需要創建天量代幣,從而將整個代幣系統擊潰。

這次攻擊發生在上個月,而就在上週,EDU和BAI也遭遇了黑客攻擊。在EDU的智能合約中transferFrom 函數內,未校驗 allowed[_from][msg.sender] >= _value 並且函數內 allowed[_from][msg.sender] -= _value; 沒有使用 SafeMath,導致無法拋出異常並回滾交易,且由於合約沒有 Pause 設計,無法及時止損。黑客利用該漏洞獲得了30億token併成功轉手。BAI則表示受到了類似的攻擊,而且這個問題可能依然會影響到所有ERC20項目。

這已經不是以太坊智能合約第一次出問題了,2016年,the DAO事件中,黑客利用the DAO智能合約中的漏洞,大規模盜取原the DAO智能合約中的以太幣,對以太坊造成了巨大的打擊。

這幾次攻擊事件讓整個以太坊和ERC20體系遭遇了前所未有的重大打擊。由於所有的漏洞都集中在智能合約上,智能合約又是區塊鏈技術能否進入商業應用(或被稱為區塊鏈3.0)階段的關鍵,以太坊和ERC20幣價也在幾天內呈現出下跌的趨勢。

智能合約頻頻出現問題的原因很多,但主要可以歸結為幾點:

首先,智能合約是不可逆的,這意味著一旦智能合約被部署,基金會就無法升級或修改它們。因此在部署和使用智能合約之前,需要保證一切都不會出錯。

其次,智能合約是可公開訪問的,存儲在智能合約裡的內容對任何人可見,而且每個人都可以調用智能合約裡的方法,這也讓智能合約成為了區塊鏈雞蛋上的縫。

另外,只有上帝寫的代碼才沒有bug。無論多麼小心謹慎,讓智能合約真正無懈可擊幾乎是不可能的。

最後,在以太坊和ERC20體系中,由於EVM本身的特性,智能合約往往會缺乏形式化驗證。這也讓智能合約的安全性受到了更大的挑戰。

在外界紛紛猜測EOS是否出現了和ERC20類似的漏洞時,今天晚些時候,360更新了其技術博客,發佈了該漏洞的具體細節。根據技術博客的內容,5月11日360就發現了這個漏洞,並在5月28日將漏洞報告給了EOS。29日,EOS修復了該漏洞,但根據反饋,目前修復了64位,32位仍未修復。

在博客中,360表示,這是一個std::vector函數溢出導致的漏洞。在libraries / chain / webassembly / binaryen.cpp(第78行)中,函數binaryen_runtime :: instantiate_module:

以太坊、EOS频爆漏洞,区块链安全问题何解?

在POC中,只需設置| offset | 字段設置為0xffffffff,函數就會溢出並崩潰。攻擊者可以利用此漏洞在nodeos進程中實現遠程代碼執行,方法是將惡意合約上傳到受害節點,並讓節點解析惡意合約。在攻擊中,攻擊者首先會向EOS主網絡發佈惡意合約。EOS超級節點解析惡意合約,然後觸發漏洞,攻擊者即可控制解析合同的EOS超級節點。攻擊者可以竊取超級節點的私鑰並控制打包的內容。更重要的是,攻擊者可以將惡意合約打包成一個區塊併發布,最終導致整個網絡中的所有節點都受到攻擊者的控制。

TASChain創始人吳軼群告訴鏈得得,“這是小毛病,但會造成大問題。這種問題修復起來很簡單,但造成的後果可能非常嚴重。”

量子鏈創始人帥初在朋友圈表示,此次漏洞應該和webassembly新的虛擬機和無gas模型有關,遠程代碼被vm編譯後,被無限執行。他認為,該漏洞在支持虛擬機的合約平臺上容易發生,智能合約無限的靈活性也留下了無限的隱患。任何一個小的共識協議的疏忽,都會有機會ddos整個區塊鏈網絡。而此次漏洞的根本原因是“ETH和EOS,都不是面向貨幣的設計,面向區塊鏈平臺的設計,複雜度很高,也蘊含更多安全隱患。之前unlimited btc,也是因為一個共識bug,網絡就會被ddos癱瘓。”

快的創始人、泛城投資創始人陳偉星則在朋友圈炮轟EOS,稱“EOS堪稱區塊鏈毒瘤,毫無理想主義的極致炒作圈錢者,區塊鏈共識的最大破壞者”、“一個花幾千萬人民幣就能搞定的技術真的有必要讓大家炒的那麼歡?”他還列舉了EOS的四宗罪:

1.募集近30億美元,完全不知去向;

2.ico一年365天,不知投向與目的;

3.dpos過度中心化,技術漏洞百出與過度包裝;

4.絕大部分炒幣與所謂超級節點來自國內,而超級節點本質是一群利益共同體的炒作;

本次漏洞事件EOS官方還沒有將漏洞完全修復,360則表示手裡還有不少EOS的漏洞。EOS會如何度過這次危機?我們拭目以待。


分享到:


相關文章: