來源:一本區塊鏈(ID:yibenqkl)
禍不單行。比特幣擊穿 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,智能合約成為了區塊鏈安全的重災區。
在區塊鏈的狂野世界里,黑客和白帽子的戰爭,才剛開始。
來自: 一本區塊鏈