著名DeFi項目Furucombo被黑,損失超1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
歐盟官員:歐盟議會的智能合約計劃限制了統一標準制定:3月15日消息,歐盟內部市場專員Thierry Breton周二告訴記者,歐盟有爭議的規定要求對某些智能合約設置“終止開關”,這可能會限制為該行業設定標準的關鍵能力。
他的言論暗示,議員們當天早些時候投票通過的條款不再符合2022年委員會法律提案“數據法案”(Data Act)中設定的目標。
Breton稱:“我們需要協調這些智能合約的基本要求,以確保互操作性、法律確定性和大規模部署,當提出這個提案時,我們打算要求相關組織制定這些標準。”
“我注意到議會提議修改這些基本要求,”他說,“值得注意的是,這些變化可能會限制制定智能合約統一標準的可能性。”(CoinDesk)[2023/3/15 13:05:25]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
知情人士:Blockchain.com未出售任何子公司,未與Coinbase進行相關談判:金色財經報道,據知情人士消息,Blockchain.com沒有出售任何子公司,也沒有與Coinbase談論可能的交易。并表示,Blockchain.com已出售非流動性頭寸以獲利并提高流動性以利用機會。
此前報道,去年12月,FTX旗下衍生品交易平臺LedgerX正掛牌出售,Blockchain.com或為其潛在收購方。今年1月,Blockchain.com宣布將裁員28%,即約110名員工。[2023/2/18 12:14:22]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
數據:ENS域名成交總額超1億美元:7月21日消息,據NFTGo.io數據顯示,ENS域名成交總額已突破1億美元,截至目前達到1.0005億美元,市值為6922萬美元。過去24小時ENS交易額為522,556.20美元,增幅為20.08%。[2022/7/21 2:28:56]
這里有一個trick,由于?0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
_exec函數的邏輯也很簡單,在校驗了_to地址后,直接就將data轉發到指定的_to地址上了。而通過對攻擊交易的分析,我們能發現這個_to地址確實是官方指定的合法地址。
比特幣全網未確認交易數量為5375筆:金色財經消息,數據顯示,目前比特幣全網未確認交易數量為5375筆,全網算力為191.89 EH/s,24小時交易速率為2.39交易/s,目前全網難度為29.15 T,預測下次難度下調4.09%至27.96 T,距離調整還剩4天2小時。[2022/7/18 2:19:36]
最后一步,便是調用_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合約。如有授權,應及時撤銷相關授權,避免進一步損失。
來源:金色財經
比特幣操作建議: 空單建議:晚盤底部回踩下方47400附近開一線空單進場,目標看到47300-47000附近即可,破位則繼續看到46800附近.
1900/1/1 0:00:00ETH行情分析: ??????以太坊日內走勢跟隨比特幣,目前價格重回1500上方,4小時圖上來看,價格打破布林中軌后有回測該支撐位置的動能,短期均線上揚,附圖指標MACD快慢線向上運行.
1900/1/1 0:00:00唐勝擼幣:2月28日凌晨行情分析及操作策略 比特幣行情走勢分析 今日比特幣行情繼續延續下跌行情,價格突破支撐44000一線回撤,也就是說明行情還沒有完全突破.
1900/1/1 0:00:00???人與人之間本身并無太大的區別,真正的區別在于心態,要么你去駕馭生命,要么生命駕馭你。你的心態決定誰是坐騎,誰是騎師.
1900/1/1 0:00:00BTC行情分析 短周期四小時線級別圖上看,布林帶縮口運行中,各均線也在不斷上移支撐位,價格企穩在MA5日上方運行,目前關鍵支撐位在46000位置,價格也是多次試探上攻47500一線.
1900/1/1 0:00:00原文標題:《「治理民主」波卡?VS?以太坊:EIP1559生死難料,以太坊民主危局》 撰文:大文 以太坊采用的「貴族制」民主有著巨大的缺陷。所謂的「民主投票」只是少數人的民主.
1900/1/1 0:00:00