禍不單行。比特幣擊穿6000美元底線后,以太坊又爆隱患。
今天凌晨,區塊鏈安全公司PeckShield披露了一個安全漏洞:通過發送一個惡意報文,攻擊者能向以太坊發動攻擊。一旦成功,以太坊2/3的節點將停擺,導致一場地震。
在區塊鏈安全的世界里,安穩難求,步步驚心。
01 “致命報文”
這個漏洞,被命名為:“致命報文”。
它出現在以太坊官方客戶端geth上。后者對于以太坊至關重要:有大約70%的節點運行在geth之上,包括交易所和礦池這些關鍵節點。
通過這個漏洞,攻擊者可以直接讓以太坊癱瘓。一旦成功,以太坊市場將面臨巨震。
PeckShield 向一本區塊鏈揭示了“致命報文”的漏洞細節:
以太坊的核心,在于所有的客戶端都必須遵守同樣的協議,以保持共識。
這些協議由RLPx、DΞVp2p和其他子協議組成,后者包括以太坊線路協議、輕量級以太坊協議等。
為了支持輕量級的客戶端,輕量級以太坊子協議(LES)允許以太坊節點在同步獲取區塊時,僅下載區塊的頭部,在需要時再獲取區塊的其他部分。為了實現這一功能,還需要一個全節點(或archive節點)作為LES服務器,為輕量級節點提供服務。
執行以下命令,可以啟動一個支持LES服務的geth全節點:
geth --lightserv 20
在向LES服務器請求區塊頭部時,LES客戶端會發起類型為GetBlockHeaders的消息,而LES服務器的消息處理器負責相應的解析工作。GetBlockHeaders的信息處理器的代碼片段如下:

由LES客戶端發送的查詢請求遵循如下格式:
從第17行開始,LES服務器處理not reverse分支。在第19行,LES服務器會檢測在忽略了query.Skip區塊之后,是否還有可用的區塊頭部。
如果檢測通過,GetBlockHashesFromHash()方法就會被調用(即第20行),并返回一個區塊頭部數組。
然而,對作為輸入的請求,LES服務器并未驗證其有效性。攻擊者可以構造形如query.Skip = -1 (0xFFF...F)這樣的惡意請求。
當query.Skip+1被作為待分配數組的最大長度參數,傳遞至GetBlockHashesFromHash()方法時,長度為0的數組即被分配并返回。
隨后,通過索引query.Skip = 0xFFF…F訪問該長度為0的數組時,LES服務器就會徹底崩潰。
“在發現漏洞后的第一時間,我們就向以太坊基金會提交了漏洞報告。目前,以太坊geth客戶端的開發團隊,已發布了相應的補丁。”PeckShield告訴一本區塊鏈。
因此,雖然這次漏洞危害面廣,危險性大,但并沒有對以太坊造成實際損失。
PeckShield工作人員向一本區塊鏈展示了以太坊官方的回復郵件。


“這只是一系列漏洞中的一個,我們會隨時公布其他漏洞。”PeckShield公司表示。
02 以太坊黑歷史
這不是以太坊第一次爆出安全漏洞,也不是最后一次。
在歷史上,以太坊曾出現過兩次重大漏洞事件。
最著名的一次,是2016年6月的“The DAO大劫案”。它直接導致了以太坊的硬分叉。
The DAO是部署在以太坊網絡上的最大眾籌項目。黑客發現了其安全漏洞:其智能合約第666行代碼的首字母“t”,被誤寫成了“T”。
區塊鏈歷史上最嚴重的攻擊事件,就此發生。
6個小時里,黑客竊取了The DAO 30%的以太幣——1200萬個。它們當時價值約6000萬美元。
這次的攻擊還引發了區塊鏈誕生至今最具爭議的事情之一。
為將損失降到最小,以太坊團隊決定修改以太坊軟件的代碼,強行把The DAO的所有資金,轉到一個特定的退款合約地址,以奪回黑客手中的資產。
因為對此事看法迥異,以太坊分裂成了兩條鏈,一條是以太坊(ETH),一條是以太坊經典(ETC)。它們各自代表不同的社區共識和價值觀。

以太坊的另一次重大安全事故,發生在以太坊錢包Parity身上。
2017年7月,Parity被爆出現重大安全漏洞:其多重簽名合約wallet.sol存在bug。
官方確認,因為此事,150000ETH(約價值3000萬美元)被盜。但通過對比以太坊上的智能合約,一群計算機專家得出結論:這次攻擊至少造成了1.54億美元的損失。這一金額,是The DAO 事件損失的3倍多。
教訓慘痛至極。
在區塊鏈世界中,“代碼即法律”。但那些存在漏洞的代碼,正在成為黑客薅羊毛的得力工具。
03 賣水好生意
目前,全世界的數字貨幣已經超過2000種,市值超過3300億美元,這是一個廣闊的市場。
人人淘金時,賣水就有市場。安全漏洞頻現時,堵漏就成了好生意。
越來越多專注于區塊鏈安全的團隊,正在如春后雨筍般出現。知道創宇、慢霧科技、白帽匯、Haloblock.io、PeckShield等公司,都重兵投入區塊鏈安全領域。
“在區塊鏈產業發展初期,安全事件已經頻繁暴露在各個環節,包括:交易所、礦池、錢包、智能合約……因此,區塊鏈安全公司在早期區塊鏈生態建設上,起著關鍵作用。” PeckShield公司工作人員表示。
目前,市場上的區塊鏈安全公司,不僅提供智能合約審計服務,還要提供一整套安全防護解決方案。
可以說,區塊鏈安全服務正逐漸從上面的業務層轉向更底層,著力從代碼層面解決漏洞問題。
對于區塊鏈市場來說,這是一個健康的現象。
從EOS漏洞到以太坊“致命報文”,底層公鏈的安全問題,層出不窮。
每一個漏洞,都可能成為黑客手中的定時炸彈。
從The DAO到EOS,智能合約成為了區塊鏈安全的重災區。
在區塊鏈的狂野世界里,黑客和白帽子的戰爭,才剛開始。