以太坊ERC20Token標準自2015年11月19日誕生以來,為智能合約、以太坊生態以及區塊鏈應用的發展做出了巨大的貢獻。據Etherscan網站數據顯示,截止2018年6月26日,以太坊主網上ERC20Token數量已超過90000。下圖是統計的ERC20每日創建數量趨勢圖。
這些Token合約所承載的價值不可估量。然而近幾個月以來,以BEC事件為開端,引發的一系列的鏈式反應,越來越多的合約漏洞與不兼容性問題相繼被曝光。目前智能合約安全問題的分析披露還比較散亂,對智能合約的開發和后續的使用所起到的作用非常有限,社區缺乏一套完備的合約問題匯總機制。因此安比實驗室在分析了近期爆出的合約風險問題和大量的智能合約源碼后,攜手路印發布智能合約風險列表,聯合去中心化交易所DEx.top、輕信科技、Consensys中國、長亭科技等技術團隊,共同對該風險列表進行維護。
由于以太坊上部署的合約數量規模還在不斷增大,未來還會有更多更復雜的問題暴露出來。因此,我們倡導發起Token合約風險列表共建計劃,呼吁更多關心區塊鏈生態的團隊或技術人員參與進來,共同維護這份合約風險列表。
ERC20Token的安全問題總結
ERC20Token漏洞事件回顧
在ERC20Token逐漸成熟和完善的發展過程中,不少ERC20智能合約曾出現過重大漏洞,對項目方、投資人、交易所甚至整個以太坊社區造成了比較大的經濟損失。例如:
BinaryX回應Boss Raid服務器錯誤:獎池將分配給合法的獲勝者,正在努力優化服務器負載:2月27日消息,BinaryX對從社區收到的關于過去幾天發生的Boss Raid服務器錯誤的一些反饋做出回應表示,對于服務器錯誤以及它給所有受影響的玩家造成的混亂,深表歉意。這是在短時間內發生的極端情況。開發團隊正在努力優化服務器負載,以便它能夠有效地承受高玩家數量。我們將盡最大努力防止這種情況再次發生,我們想向所有Boss Raid參與者保證,即使我們將來遇到任何其他錯誤,獎池也會分配給合法的獲勝者。我們會在解決此問題時尋求您的耐心等待。
此前2月24日消息,BinaryX將于今日20:00時發布游戲更新《CyberDragon:Boss Raid》。[2023/2/27 12:32:34]
2016年6月18日,DAO合約遭到攻擊,導致超過3,600,000個以太幣(ETH)被盜,迫使以太坊社區不得不采取硬分叉的手段來減少損失,而這更是直接引起了以太坊社區的分裂2018年4月22日,黑客攻擊了美鏈(BEC)的Token合約,通過一個整數溢出漏洞,一時間BEC的價格幾乎歸零。我們發現至少有10份合約存在該類問題。2018年4月25日,SMT爆出類似整數溢出漏洞,黑客制造和拋售了天文數字規模的Token,導致SMT價格崩盤。2018年5月20日,嚴重的邏輯漏洞導致EDU用戶的Token可被任意轉出,同時還有其它3個Token存在相同問題。2018年6月12日,一系列ERC20智能合約整數溢出漏洞(CVE-2018-11687,CVE-2018-11809,CVE-2018-11810,CVE-2018-11811,CVE-2018-11812)又被爆出,據不完全統計有800多個合約受到影響。
Coinbase CEO:公司現持有約200萬枚BTC,請警惕虛假信息:11月23日消息,Coinbase首席執行官Brian Armstrong在推特上表示:“我們的財務是公開的(我們是一家上市公司),我們持有約200萬枚BTC,截止9月30日價值約399億美元,我們需要團結起來,以負責任的方式建設這個行業,請警惕虛假信息。”
此前,幣安首席執行官趙長鵬在推特上表示:“Coinbase Custody為灰度公司持有63.5萬枚BTC。而4個月前Coinbase只有不到60萬枚BTC。”不過,在Brian Armstrong對此作出回應后,趙長鵬已刪除上述推文,并承認這個數字是錯誤的。
CryptoQuant.com也對此發表評論,稱由于Coinbase對每筆存款都使用一次性錢包,因此沒有一家鏈上數據提供商能夠提供準確的Coinbase BTC儲備。數據提供者只能識別冷錢包。希望交易所將客戶資金轉移到更少的錢包而不是許多一次性使用的錢包中以提高透明度。[2022/11/23 7:59:24]
大量ERC20Token實現未嚴格遵守規范
未參照ERC20標準實現Token合約會給DApp開發帶來較大的困擾。某知名DApp團隊在深入分析了排名前20的合約之后,提示社區需要對Token合約的諸多實現問題和不規范行為重視起來,尤其是對于新的DApp開發者,提早避免一些問題。
NearlyathirdofthetimedevelopingBsktwasspentauditingexternaldependencies.WehighlyencourageotherEthereumdevteamstobeawareofthedangersinexternaldependencies.Unlikesoftwaredevelopmentinmostsystems,it’scriticaltoreadtheimplementationofdeployedcontractsyoudependon—notjusttheinterface.
Beosin:UVT項目被黑客攻擊事件簡析,被盜資金已全部轉入Tornado Cash:金色財經報道,據Beosin EagleEye 安全預警與監控平臺檢測顯示,UVT項目被黑客攻擊,涉及金額為150萬美元。攻擊交易為0x54121ed538f27ffee2dbb232f9d9be33e39fdaf34adf993e5e019c00f6afd499
經Beosin安全團隊分析,發現攻擊者首先利用開發者部署的另一個合約的具有Controller權限的0xc81daf6e方法,該方法會調用被攻擊合約的0x7e39d2f8方法,因為合約具有Controller權限,所以通過驗證直接轉走了被攻擊合約的所有UVT代幣,Beosin安全團隊通過Beosin Trace進行追蹤,發現被盜資金已全部轉入Tornado Cash。[2022/10/27 11:48:46]
我們還注意到,大量已部署Token合約曾經參考了以太坊官網以及OpenZeppelin等其它DApp。據不完全統計,存在該類問題的合約超過2000份。
若干Token合約在標準approve()函數中添加了對當前賬戶余額校驗邏輯。導致采用類似0x協議的諸多DApp有可能無法正常完成approve(),必須由Token項目方提前轉入一筆數額巨大的Token至中間賬戶,這給DApp和交易所帶來了諸多不便。超過17份合約存在該問題。
ERC20規范中規定了幾個可選的通用查詢接口如name()、symbol()、decimals(),因而大量Token合約未提供這些接口,甚至不少采用NAME()、SYMBOL()、DECIMALS()等不一致的寫法,也給合約的外部調用帶來了極大的麻煩。存在該類問題的合約超過3000份。
加密貨幣總市值為1.142萬億美元:金色財經報道,據CoinGecko數據顯示,當前加密貨幣市值為1.142萬億美元,24小時交易量為560.88億美元,當前比特幣市值占比為38.7%,以太坊市值占比為17.8%。[2022/8/8 12:08:56]
ERC20標準中還規定了Transfer和Approval事件必須在特定場景下觸發。很多Token的實現參考了以太坊官網的不標準代碼,漏掉觸發Approval事件的操作。存在該類問題的合約超過1800份。
ERC20安全問題匯總與分類
我們對數萬份ERC20Token合約存在的問題進行分析統計,已將所有統計數據上傳至Github倉庫。
Github倉庫地址:https://github.com/sec-bit/awesome-buggy-erc20-tokens
已發現的所有ERC20Token合約安全風險問題被歸納為三大類:代碼實現漏洞,不規范問題,權限管理問題。
代碼實現漏洞涵蓋了合約代碼功能實現和邏輯實現上的漏洞,如整數溢出不規范問題涵蓋了因代碼實現不規范導致版本不兼容或者外部合約調用時的無法不兼容問題,如ERC20接口無返回值權限管理問題涵蓋了所有因管理權限設置不當而引發的問題,如owner可以操作任何人賬戶上的余額
問題列表如下:
在awesome-buggy-erc20-tokens倉庫的文章中對每個問題給出了詳細描述信息。
數據:Bybit上BTC期貨合約24小時交易額創近1個月新高:7月21日消息,據Glassnode數據顯示,Bybit上BTC期貨合約24小時交易額達10,678,172,650.65美元,創近1個月新高。[2022/7/21 2:26:56]
如何使用Token合約風險列表
Token合約開發者:本列表提供了詳細的問題描述和相關合約列表,希望能夠借此提ERC20Token合約開發者的安全意識,避免在后續的合約開發中重復踩坑。DApp項目方:以太坊平臺的DApp可能會與多個ERC20Token合約對接。DApp項可以通過本倉庫查閱已部署的問題合約的詳細信息,獲知Token合約存在的問題,避免因Token合約的漏洞或者合約的不兼容問題,給DApp帶來不必要的麻煩。其他生態參與者:本列表收錄了大量ERC20Token合約存在的風險問題,并記錄了市值排名較的672份已部署的Token合約的基本信息和問題詳情,大家可以通過查閱本倉庫來找到問題合約,了解已部署Token合約存在的風險。
Token列表包含哪些內容
awesome-buggy-erc20-tokens倉庫共收錄了以太坊上數萬份ERC20Token合約中存在的問題。主要包含三部分內容:Token合約的基本信息,問題Token列表,風險問題匯總。
1.合約的基本信息倉庫中目前已收錄的合約,所有問題合約均來源于此。
另外,倉庫中還統計coinmarket網站收錄的Token合約的詳細信息,包括token的排名,token名稱,token縮寫符號,總量,小數位數和上線交易所的信息。
2.所有的問題合約列表,列表分別以json和CSV的形式展示,也便于導入表格軟件或者編寫腳本進行分析。
3.風險問題匯總文件
倉庫中共收錄了28種合約風險問題,對所有問題的詳細信息,包括詳細的描述、錯誤的代碼實現示例、推薦修改的代碼實現示例、存在該問題的合約列表和對該問題報道的相關鏈接。
以batchTransfer-overflow問題為例:
聲明
本列表信息全部來源于以太坊區塊鏈,etherscan.io,coinmarketcap.io等公開網站上的公開信息本列表所列所有問題均屬于已披露的漏洞或缺陷,不包含任何未公開漏洞本列表中存在多個合約Token名稱重復現象,請以合約地址為準;Token名稱只做參考,可能與知名項目重復,請勿過分解讀本列表中的數據可能會存在偏差或遺漏,請大家直接提交更改請求或者通知我們(info@secbit.io)
發起共建計劃
awesome-buggy-erc20-tokens倉庫由安比實驗室持續維護,路印團隊提供信息更新支持。并歡迎大家共同參與維護更新工作,共同推進以太坊生態健康發展。參與方式:
提交未被列入的問題ERC20Token合約地址提交新的ERC20Token合約漏洞提供改進建議或參與討論
同時我們也在尋求更多的力量,來共同開發更友好的前端查詢頁面,以供大家查詢。如果你有其他任何問題或者想法,歡迎加入我們的Gitter參與討論。
安比實驗室與路印合作共建安全可信的以太坊生態,安比實驗室團隊將擔任路印協議的安全顧問,提供合約驗證與Token合約審計技術服務。路印協議是基于智能合約的去中心化交易撮合協議,提供100%開源的去中心化交易前后臺解決方案。詳情請訪問路印官網:https://loopring.org
致謝:特別感謝DEx.top團隊參與早期列表建設想法的討論;感謝葉健,ZongminYu,吳玉會,YiTang等人對合約風險列表內容所提供的寶貴意見。
Reference
MarketshareofEthereum-basedtokensgrowsto91%https://medium.com/@amincad/market-share-of-ethereum-based-tokens-grows-to-91-fdefadfd9f6eAdisastrousvulnerabilityfoundinsmartcontractsofBeautyChain(BEC)https://medium.com/secbit-media/a-disastrous-vulnerability-found-in-smart-contracts-of-beautychain-bec-dbf24ddbc30e,Apr23,2018.UnderstandingTheDAOHackforJournalistshttps://medium.com/@pullnews/understanding-the-dao-hack-for-journalists-2312dd43e993,Jun19,2016.SmartMeshAnnouncementonEthereumSmartContractOverflowVulnerabilityhttps://medium.com/smartmesh/smartmesh-announcement-on-ethereum-smart-contract-overflow-vulnerability-f1ded8777720,Apr25,2018.SECBIT:智能合約紅色預警:四個Token驚爆邏輯漏洞,歸零風險或源于代碼復制https://mp.weixin.qq.com/s/lf9vXcUxdB2fGY2YVTauRQ,May24,2018.ERC20智能合約整數溢出系列漏洞披露https://www.secrss.com/articles/3289,Jun12,2018.數千份以太坊Token合約不兼容問題浮出水面,恐嚴重影響DAPP生態https://mp.weixin.qq.com/s/1MB-t_yZYsJDTPRazD1zAA,Jun8,2018.ERC20智能合約的approve千萬別這樣寫https://mp.weixin.qq.com/s/hYE4nu7FCD_nJH5WMRrXMA,Jun15,2018.Whatwelearnedfromauditingthetop20ERC20tokencontractshttps://blog.cryptofin.io/what-we-learned-from-auditing-the-top-20-erc20-token-contracts-7526ef3b6fb1,Mar28,2018.
摘要:周四美股盤前,比特幣再度跌破1萬美元,為今年第四次跌破這一關鍵位。最低觸及9800美元,過去24小時跌超8%,從2月20日的最新高位11958美元回落18%,可能又要進入技術位熊市區間,排.
1900/1/1 0:00:00區塊鏈兄弟社區,區塊鏈技術專業問答先行者,中國區塊鏈技術愛好者聚集地 作者:Tiny熊 來源:深入淺出區塊鏈 原文鏈接:https://learnblockchain.cn/著權歸作者所有.
1900/1/1 0:00:00在數字貨幣市場日益頹靡的同時,數字貨幣交易所再出安全問題。6月20日,截至13時,Bithumb比特幣價格24小時跌近4%,報6450美元附近.
1900/1/1 0:00:00隨著天氣越來越熱,摩托車市場也逐漸火熱起來,各品牌施展渾身解數組織各種活動,呈現出你方唱罷我登場的態勢。來自意大利的杜卡迪也開始搞事情了.
1900/1/1 0:00:00特別聲明:本文“劣幣”僅指朱嘯虎所代表的“投資價值觀”。 如是你聞—— 最近共享單車行業的消息都長這樣:或者是“ofo訂單量銳減”,“拖欠供應商貨款25億”,“賬上現金只能維持一個月”,或者是“.
1900/1/1 0:00:002018年的春天已然到來,萬物復生的時節出出充滿生機。但是,今年的金融市場并不太平,甚至可以算是一個“多災”的年份.
1900/1/1 0:00:00