著名DeFi項目Furucombo被黑,損失超1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
0xScope:BAYC #8811曾被出價650 ETH目前僅剩28 ETH:金色財經報道,據0xScope監控顯示,BAYC #8811目前的最高報價是28枚ETH(5.5萬美元)。它的持有者以0.08 ETH的成本鑄造它,現在仍然是持有人。2021年9月17日,它曾被出價650 ETH(220萬美元)的價格,但主人拒絕出售。[2023/7/3 22:14:44]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
ApeCoin DAO 社區關于“推出.ape 域名服務”的提案未獲通過:金色財經報道,據snapshot數據顯示,ApeCoin DAO 社區關于“推出.ape 域名服務”的提案未獲通過,據悉該提案擬建設ApeCoin生態域名服務,主要基礎設施包括 DApp、域名解析器和協議邏輯,實施步驟包括創建DApp 并對其進行Beta測試、測試版、對Yuga Labs NFT ID開放鑄造、對APE持有者開放鑄造且對所有人開放。根據投票結果顯示,反對票比例達到95.82%。[2023/5/25 10:39:48]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
安全團隊:Polygon上的Midas Capital項目被攻擊,損失約66萬美元:1月16日消息,據Beosin-Eagle Eye態勢感知平臺消息,Polygon上jarvis項目中的Midas Capital礦池項目被黑客使用的view重入和價格操控組合漏洞攻擊,黑客獲利663101 MATIC(約66萬美元)。攻擊之后,Beosin Trace追蹤發現黑客將663101MATIC發送給地址0xe53......59be,然后分散至其他10個其他的地址,這些地址總共又將15935的MATIC發送至0x04Ec......46F2地址中,目前14581枚MATIC轉入Kucoin交易所,1671MATIC枚轉入幣安交易所。
其他代幣仍然留在上述地址上。[2023/1/16 11:14:35]
這里有一個trick,由于?0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
韓國銀行測試發現CBDC區塊鏈技術存在性能問題:金色財經報道,韓國銀行于6月下旬完成了其零售中央銀行數字貨幣 (?CBDC?) 模擬的第二階段,今天分享了結果。雖然它對其數字贏得模擬的某些方面感到滿意,例如使用CBDC進行離線支付和跨境匯款,但中央銀行強調了區塊鏈技術的性能問題。?韓國銀行發現基于以太坊的區塊鏈的整體性能不足,包括測試的擴展解決方案和隱私技術。?
韓國銀行表示,在高峰時段實時處理交易會有一些限制。其中一項測試通過將每秒 4,200 筆交易 (TPS) 維持 30 分鐘來模擬峰值需求。在該活動級別,用戶有時不得不等待長達一分鐘的響應(延遲)。[2022/11/7 12:28:16]
_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合約。如有授權,應及時撤銷相關授權,避免進一步損失。
來源:金色財經
我這里沒有華麗的語言,只有實實在在的交易,以及明明郎朗的操作,市場只有一個方向,不是多頭也不是空頭,而是做對的方向.
1900/1/1 0:00:00早間資訊: 官方消息,智能合約平臺Fantom針對本周出現的主網短時停止出塊問題表示,“Fantom基金會將提交一份鏈上提案,可能會涉及重新考慮運行一個節點所需的FTM的最小數量.
1900/1/1 0:00:00如果資金充足且非常熟悉Filecoin經濟模型的建議去買有自己技術的礦商買礦機,如果是散戶投資建議買封裝好的算力.
1900/1/1 0:00:00興鑫論幣:3.1早間比特幣行情分析與操作策略 比特幣從1小時看是上漲趨勢。從附圖看MACD快慢線向上揚靠近0軸;KDJ三線分散向上;RSI三線分散向上。建議做多為主.
1900/1/1 0:00:00據GitHub顯示,2月28日Vitalik已更新EIP3298提案,提案內容為在倫敦升級中移除「執行SELFDESTRUCT獲得gas費退款」的規則.
1900/1/1 0:00:00多言不可與謀,多動不可與久處,交易與其沖動,還不如一動不動!大家好,我是席幕楓。心存陽光必有詩與遠方,認識老席何懼再遇荒涼?席幕楓:3.1比特幣行情分析距以太坊Shapella升級僅剩約1小時:.
1900/1/1 0:00:00