3619份以太坊代幣合約存在“假充值”漏洞風險?智能合約漏洞了解一下
芦荟
2018-07-11 05:54
本文约1741字,阅读全文需要约7分钟
幣圈安全背後,程序猿才是終極大boss。

慢霧區今日消息,以太坊代幣“假充值”漏洞目前影響廣泛,相關中心化交易所、中心化錢包、代幣合約等均受影響。單代幣合約,不完全統計就有3619 份存在“假充值”漏洞風險,其中不乏知名代幣。並強調當前漏洞已發生真實攻擊,督促相關項目方應盡快自查。 7月9日,慢霧區曾發布以太坊代幣“假充值”漏洞攻擊預警。

據其披露的細節,在用戶進行轉賬時,一些代幣合約的transfer 函數對轉賬發起人(msg.sender)的餘額檢查用的是if 判斷方式,而這種溫和的判斷方式在transfer 這類敏感函數場景中並非一種嚴謹的編碼方式,這種不嚴謹的編碼方式是一種安全缺陷,這種安全缺陷可能會導致特殊場景下的安全問題。攻擊者可以利用存在該缺陷的代幣合約向中心化交易所、錢包等服務平台發起充值操作,若交易所僅判斷如TxReceipt Status 是success,則就有可能以為充幣成功,產生“假充值” “假交易”。

對於修復方案,慢霧區認為,已有漏洞的代幣最好的方式是重發,然後新舊代幣做好“映射”。此外,交易所、平台方、代幣合約方均應承擔起安全責任。對於交易所來說,應在判斷交易事務success 之外,還應二次判斷充值錢包地址的balance 是否準確的增加;對於平台方來說,在對接新上線的代幣合約之前,應該做好嚴格的安全審計;對於代幣合約方來說,應該嚴格執行最佳安全實踐,並請第三方職業安全審計機構完成嚴謹完備的安全審計。

漏洞細節發出後,截至發稿前,已有IOST官方表示其合作交易所均無“假充值”風險。

回顧6月份發生的USDT“假充值”漏洞,其漏洞邏輯也並無二致,攻擊者同樣是利⽤交易所對USDT交易轉賬的判斷邏輯缺陷,惡意構造虛假轉賬盜取交易所代幣。

智能合約本質是一段運行在區塊鍊網絡中的代碼,它完成用戶所賦予的業務邏輯。隨著當前智能合約漏洞出現的頻率愈加頻繁,其安全問題也逐漸引起公眾重視。據RatingToken統計數據,當前區塊鏈世界中每日新增智能合約從4W-18W不等,而在白帽匯安全研究院的《區塊鏈產業安全分析報告》中,由於智能合約所導致的安全問題已經造成了12.4億美元的損失,占到了總損失的43.3%。

2016年6月,以1.5億美元成為當時最大金額ICO的TheDAO,因其智能合約出現“遞歸調用漏洞”遭黑客攻擊,導致價值6000萬美元以太幣被盜。該漏洞具體來說,即在調用方使用splitDAO函數調用DAO資產時,該漏洞將允許該函數非法的再次調用自己,然後不斷重複這個過程。這樣的遞歸調用可以使得攻擊者的DAO資產在被清零之前,數十次的從TheDAO的資產池裡重複分離出來理應被清零的攻擊者的DAO資產,這是以太坊歷史上的一次大型安全醜聞,也直接導致了硬分叉。

而在2018年,新的漏洞也在出現,以SMT、BEC、EDU、BAI為代表的代幣智能合約漏洞都在轉賬邏輯中產生了“整數溢出漏洞”,該漏洞可導致代幣可以無限增發或任意轉賬。

以美鏈BEC為例,黑客利用以太坊ERC-20智能合約中BatchOverFlow漏洞中的數據溢出的漏洞,攻擊了美鏈BEC的智能合約,通過轉賬的手段生成合約中不存在的、巨量的Token並將其轉入正常賬戶,並且賬戶中收到的Token可以正常地轉入交易所進行交易,與真的Token並無差別。

另外,新加坡國立大學的Loi Luu等人也曾發現交易順序依賴漏洞,他們指出,在智能合約執行的過程中,由於發起方對函數調用的順序不同,可能會產生不同的輸出結果,形成業務邏輯漏洞。

針對當前智能合約產生的漏洞,區塊風豹實驗室技術負責人(我是Odaily記者蘆薈,爆料、交流請加微信1012387983,煩請備註姓名、單位、職務和事由。)(我是Odaily記者蘆薈,爆料、交流請加微信1012387983,煩請備註姓名、單位、職務和事由。)

(我是Odaily記者蘆薈,爆料、交流請加微信1012387983,煩請備註姓名、單位、職務和事由。)

芦荟
作者文库