著名DeFi項目Furucombo被黑,損失超1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
Andrew Kang在15分鐘前將274萬枚RDNT轉入了幣安:金色財經報道,據余燼監測,Andrew Kang在15分鐘前將274萬枚RDNT(79萬美元)轉入了幣安。Andrew Kang在6月7日以0.285美元買進392萬枚RDNT(111萬美元);7月14日以0.285美元的成本價賣出110萬枚RDNT(31萬美元);15分鐘前將剩余274萬枚RDNT轉入幣安,若以現價0.29美元出售,Andrew Kang本次RDNT投資將實現1萬美元的虧損。[2023/8/1 16:11:41]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
美國眾議員:加密貨幣會對美國產生不利影響:金色財經報道,美國眾議員Sherman:加密貨幣會對美國產生不利影響。[2023/6/15 21:37:46]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
這里有一個trick,由于?0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
Chainlink Automation已在Arbitrum One上線:12月15日消息,Chainlink和Arbitrum宣布在Arbitrum One上推出Chainlink Automation。COTI、Armadillo、Cask和DeFiEdge等項目將在其DApp集成Chainlink Automation,以可靠地觸發Arbitrum One上的關鍵智能合約功能。
據悉,Chainlink Automation將幫助開發人員在Arbitrum One上構建高級DApp。(PRNewswire)[2022/12/15 21:45:44]
_exec函數的邏輯也很簡單,在校驗了_to地址后,直接就將data轉發到指定的_to地址上了。而通過對攻擊交易的分析,我們能發現這個_to地址確實是官方指定的合法地址。
韓國游戲巨頭WeMade將于8月1日啟動Wemix 3.0主網:6月15日消息,韓國游戲巨頭WeMade將于7月1日發布Wemix 3.0測試網,并搭載Wemix錢包和治理DApp,同時還將推出新的游戲平臺Wemix Play。Wemade計劃在經過徹底的穩定性驗證后,于8月1日正式啟動主網。
據介紹,Wemix 3.0旨在以40個去中心化節點為基礎,設計成不受外部威脅的安全保護網絡。從規劃階段開始,它的開發目標是成為一個可以將游戲和去中心化金融等區塊鏈服務靈活集成到網絡中的公鏈。
此外,Wemade計劃于第三季度引入穩定幣Wemix Dollar協議,啟動Wemix DeFi服務,并推出DAO項目平臺Nile。(每日經濟新聞)[2022/6/15 4:29:10]
最后一步,便是調用_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合約。如有授權,應及時撤銷相關授權,避免進一步損失。
來源:金色財經
誰也不會想到,DeFi在2020年上半年就這么火了,火的讓很多投資者猝不及防。流動性挖礦是DeFi引燃的導火索,這也使得流動性挖礦逐漸的成為了很多投資者進入DeFi世界的入口.
1900/1/1 0:00:00家是讓我們放松的地方,無論飛多高,走多遠,最后都得回到家里,可以不大,但是一定要溫馨。這就要更合理的裝修.
1900/1/1 0:00:00?????????????????????????????????????????大網(BigTangle)作為數字幣的價值在于它的可用功能,大網區塊鏈是擴展性的革命.
1900/1/1 0:00:00??PQC標準化程序:第三輪候選通知自第二輪NISTPQC標準化進程開始以來,已經將近一年半了。經過仔細考慮,NIST想宣布將進入第三輪選舉的候選人.
1900/1/1 0:00:00世界上唯一可以不勞而獲的就是貧窮,唯一可以無中生有的是夢想。沒有哪件事,不動手就可以實現。世界雖然殘酷,但只要你愿意走,總會有路;看不到美好,是因為你沒有堅持走下去.
1900/1/1 0:00:00美麗的天空總是讓人充滿無限的遐想,落在這顆星球的每個生物都在追求自己的愿望,如果你問我們的愿望是什么,如果你問我們的愿望是什么,我們會很堅定的告訴你,通過我們的努力會使幣圈的朋友活的更好.
1900/1/1 0:00:00