著名DeFi項目Furucombo被黑,損失超1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
韓國金委會將明確內部員工持有虛擬資產的標準,并設立報告表格:7月6日消息,韓國金融委員會發布《公務員行為準則》修訂草案,表示與虛擬資產職責相關的員工在履行職責時不得利用獲悉的與虛擬資產相關的未公開信息進行投資,并明確了報告對象為目前從事與虛擬資產相關職責的公務員以及最近 6 個月內從事過該職責的員工,該職責包括制定和執行與虛擬資產相關政策或法規、調查和審查與虛擬資產有關的刑事案件、管理和監督虛擬貨幣交易所、支持和管理與虛擬資產技術開發等,此外還新設了一份關于填寫持有虛擬資產種類、獲取日期、數量、金額等內容的虛擬資產持有情況申報表格。[2023/7/6 22:21:10]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
韓國央行行長:將進一步加強中央銀行開展與數字貨幣相關的工作:9月29日消息,韓國央行行長李昌鏞表示:韓國央行尚未就是否發行央行數字貨幣做出最終決定。韓國央行正在與許多商業銀行一起試驗央行數字貨幣,將進一步加強中央銀行開展與數字貨幣相關的工作。(金十)[2022/9/29 22:38:53]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
這里有一個trick,由于?0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
數據:約6.8萬地址曾于4月15日前交互Genie:6月22日消息,據Dune Analytics的數據顯示,約6.8萬地址曾于4月15日前交互過NFT聚合平臺Genie,初步滿足空投要求。早間消息,Uniswap Labs宣布收購NFT聚合平臺Genie,并將向Genie歷史用戶發放USDC空投,Uniswap Labs表示將對4月15日之前多次使用過Genie的歷史用戶或持有Genie Genesis NFT的用戶進行USDC空投。[2022/6/22 4:44:44]
_exec函數的邏輯也很簡單,在校驗了_to地址后,直接就將data轉發到指定的_to地址上了。而通過對攻擊交易的分析,我們能發現這個_to地址確實是官方指定的合法地址。
bitbank計劃與三井住友信托控股合作成立數字資產信托公司:5月24日消息,日本加密資產交易所運營商bitbank正式宣布與三井住友信托控股簽署合作意向,計劃成立專門從事數字資產業務的信托公司JADAT。[2022/5/24 3:38:55]
最后一步,便是調用_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合約。如有授權,應及時撤銷相關授權,避免進一步損失。
來源:金色財經
說起護膚產品,精華水可謂是必不可少的一位即便是古時,也會有通過蒸餾等一系列方式打造出的絲瓜水而現今美容護膚品炙手可熱這其中怎能少了Alex綠色能量水這一秘密武器把干燥起皮、敏感泛紅、肌膚暗沉、出.
1900/1/1 0:00:00ETH行情分析: ????目前我們從小時級別圖可以看到,目前幣價經過一波拉升之后,已經到達了一個相對的高點。能明顯的看到上方壓力位是非常強勁的。另外馬上進入回調區間。日線也馬上要收線了.
1900/1/1 0:00:00前言: 交易有兩個悲劇,一是萬念俱灰,另一則是躊躇滿志,美麗屬于自信者,從容屬于有備者,單邊屬于布局者,這本是一場舞會,最初教你舞步的人,未必能陪你走到散場,有人因為貪婪,最終失去了所有.
1900/1/1 0:00:00就算全世界都否定你,你也要相信你自己。不去想別人的看法,旁人的話不過是陽光里的塵埃,下一秒就會被風吹走。這是你的生活,沒有人能插足,除了你自己,誰都不重要.
1900/1/1 0:00:00BTC行情分析 BTC1小時圖來看,MA5均線上穿MA10均線延伸,布林通道保持向上運行,開口較大,MACD水下金叉向上,KDJ三線聚合向下發散,RSI指標向下延伸運行,從形態來看.
1900/1/1 0:00:00遇到這種情況現別慌我們首先要了解Q—V—669203299為什么出現這種情況,只有了解了為什么出現這種情況時,才能想出正確應對的方法的和解決的途徑。然后:對癥下藥.
1900/1/1 0:00:00