Furucombo此次事故并不在安全漏洞的范疇內,主要的原因在于官方將未啟用的AaveV2Proxy合約添加進了自己的白名單中,并且未對AaveV2Proxy合約進行初始化,導致攻擊者有機可乘。與Furucombo交互過的用戶應及時撤銷相關授權,避免進一步損失。
據鏈聞消息,著名DeFi項目Furucombo被黑,損失約1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
Baby Doge向FurKids動物收容所捐贈20,000美元:Baby Doge在喬治亞州NASCAR賽事中向FurKids動物收容所捐贈20,000 美元。FurKids是喬治亞州最大的免殺動物救援收容所。(bsc.news)[2021/7/11 0:42:33]
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
API服務供應商Infura已在主網上線“Infura Transactions(ITX)”功能:官方消息,Ethereum和IPFS的API服務供應商Infura表示,其已在主網上線“Infura Transactions(ITX)”功能。Infura Transactions(ITX)是發送以太坊事務的最簡單方法,它減輕了Gas費用和事務管理方面的許多復雜性。鏈上流程可讓用戶使用ETH支付ITX費用,而無需信用卡。[2021/2/10 19:26:53]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
Bitfury與LIAN Group合作推出加密挖礦即服務:金色財經報道,加密貨幣礦業公司Bitfury已與私募股權公司LIAN Group建立了合作伙伴關系,使其可以升級在挪威現有的3500萬美元的區塊鏈基礎設施。根據LIAN Group 11月2日發布的聲明,該公司已與Bitfury合作推出了MaaS(挖礦即服務)業務。[2020/11/5 11:41:00]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
聲音 | 比特幣礦業巨頭Bitfury副董事長:理解黃金是通往比特幣的橋梁 并對比特幣充滿信心:2月13日,比特幣礦業巨頭Bitfury副董事長George Kikvadze發推稱,最好不要把比特幣和其他加密貨幣混合在一起與黃金進行比較,這就像把黃金和其他金屬混合在一起。在耐用性、可移動性和內在價值上,比特幣均勝過黃金。在記賬單位方面,現在黃金是占優勢,但當比特幣市值達到8萬億美元水平,其波動性肯定會降低,那么在這一方面比特幣也能和黃金媲美。George Kikvadze稱,他是黃金的粉絲,理解黃金是他通往比特幣的橋梁。他對新的數字價值存儲(比特幣)充滿信心,比特幣有巨大潛力來幫助個人創造財富。[2020/2/13]
這里有一個trick,由于0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
動態 | 區塊鏈技術公司Bitfury與美國Provident銀行合作:據ambcrypto報道,區塊鏈技術公司Bitfury與美國Provident銀行合作,試圖為數字資產公司提供銀行服務。Provident銀行將使用Bitfury的Crystal區塊鏈分析來監控交易,并實現“新的數字資產合規”,其中包括反洗錢服務。[2019/7/10]
_exec函數的邏輯也很簡單,在校驗了_to地址后,直接就將data轉發到指定的_to地址上了。而通過對攻擊交易的分析,我們能發現這個_to地址確實是官方指定的合法地址。
最后一步,便是調用_to地址,也就是官方指定的AaveV2Proxy合約的initialize函數,將攻擊者自己的惡意地址設置成AaveV2Proxy合約的邏輯地址。通過對Furucombo合約的分析,可以發現整個調用流程上沒有出現嚴重的安全點,對調用的地址也進行了白名單的檢查。那么問題只能是出在了對應要調用的代理邏輯上,也就是AaveV2Proxy合約。
我們直接分析AaveV2Proxy合約的initialize函數的邏輯:
可以看到initialize函數是一個public函數,并在開頭就檢查了_implementation是否是0地址,如果是0地址,則拋出錯誤。這個檢查的目的其實就是檢查了_implementation是否被設置了,如果被設置了,就無法再次設置。根據這個設置,不難想出initialize這個函數只能調用一次。除非AaveV2Proxy從來沒有設置過_implementation,否則這個調用是不會成功的。難道Furucombo真的沒有設置過對應的_implementation嗎?帶著這樣的疑問,我們檢查了交易內的狀態變化。如下:
可以看到,交易中改變了存儲位置為0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc的內容,而寫入的內容正是攻擊者自己的惡意合約地址0x86765dde9304bea32f65330d266155c4fa0c4f04。
而0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc這個位置,正是_implementation數據的存儲地址。
也就是說,官方從來沒有設置過AaveV2Proxy合約的_implementation地址,導致攻擊者鉆了這個空子,造成了Furucombo資產損失。
總結
通過對整個事件的分析來看,Furucombo此次事故并不在安全漏洞的范疇內,主要的原因在于官方將未啟用的AaveV2Proxy合約添加進了自己的白名單中,并且未對AaveV2Proxy合約進行初始化,導致攻擊者有機可乘。
建議
目前,由于Furucombo遭受攻擊,導致任何將代幣授權過給Furucombo合約(0x17e8ca1b4798b97602895f63206afcd1fc90ca5f)的用戶都將面臨資金損失的風險。
慢霧安全團隊建議與Furucombo交互過的用戶檢查是否有將相關代幣授權給Furucombo合約。如有授權,應及時撤銷相關授權,避免進一步損失。
進入2021年,比特幣經歷了飛速上漲,從2020年的最終價格29112美元翻了一番,達到歷史高位58332美元。而導致暴漲的主要催化劑是來自機構的興趣.
1900/1/1 0:00:001.三分鐘看懂什么是Taraxa如何參與公募?據官方消息,公鏈項目Taraxa將于2021年3月12日上午10點在證券代幣發行和資產服務平臺Tokensoft上進行代幣TARA公募.
1900/1/1 0:00:00區塊鏈:重塑數字藝術之路 NFT實驗室 剛剛 17 區塊鏈作為一項推動藝術領域快速發展的底層技術,不僅激活了藝術家的策略、可能性及創業模式,而且擁有重塑藝術和創意產業結構的潛力.
1900/1/1 0:00:00作者:火星投研梅寧航 以太坊Rollup生態迎來了第四個強有力的競爭者StarkNet,這也意味著以太坊Rollup擴容方案中最強有力的生態將分為兩大幫派:「ZK幫」與「樂觀幫」.
1900/1/1 0:00:00你認為新時代的女性關鍵詞是什么,是“獨立”、“真實”、“乘風破浪”、這些詞描繪出新時代女性特征,溫暖而堅韌交匯,自信與熱情陪伴,在這個行業貢獻獨有的力量,讓女性擁有無限可能.
1900/1/1 0:00:001/以太坊(Ethereum)是比特幣之后,市值第二大的公鏈。以太坊網絡上每天產生一百多萬筆交易,過去七天鏈上日均交易費用超過三千萬美元,過去三十天鏈上日均清算金額超過九十億美元.
1900/1/1 0:00:00