著名DeFi項目Furucombo被黑,損失超1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
VeChain基金會推出去中心化自托管插件錢包VeWorld:2月21日消息,VeChain基金會推出基于Chrome瀏覽器的去中心化自托管插件錢包VeWorld,移動端和桌面端版本將于2023年第三季度推出。
該錢包包括擴展的功能路線圖,允許用戶創建和導入錢包、管理加密貨幣錢包、發送和接收加密貨幣、在dApp上進行安全交易以及使用Ledger設備管理加密資產。
此外,預計將提供碳計算器功能,允許用戶和企業跟蹤其碳排放、過渡到法定貨幣、原生NFT集成、DEX集成、跨鏈橋集成等。[2023/2/21 12:18:57]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
英國立法者投票擴大當局扣押加密貨幣相關財產的權力:金色財經報道,英國議員周二投票授予當局更大的權力,以沒收含有信息的財產,這些信息可以幫助識別與犯罪有關的加密資產。正在議會辯論的《經濟犯罪和企業透明度法案》(Economic Crime and Corporate Transparency Bill)已經包含了一些規則,賦予當局沒收和拘留與犯罪活動有關的加密貨幣的權力。下議院議員接受的新修正案尋求賦予地方執法部門權力,也可以扣押“與加密資產相關的項目”,這是指包含或提供訪問信息的財產項目,可能有助于協助扣押目標加密資產。該法案在成為法律之前還需獲得下議院和議會上院的通過。(coindesk)[2022/11/22 7:57:10]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
歐股收盤全線上漲 德國DAX指數漲1.36%:6月15日消息,歐股收盤全線上漲,德國DAX指數漲1.36%,法國CAC40指數漲1.35%,英國富時100指數漲1.2%。[2022/6/16 4:30:12]
這里有一個trick,由于?0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
_exec函數的邏輯也很簡單,在校驗了_to地址后,直接就將data轉發到指定的_to地址上了。而通過對攻擊交易的分析,我們能發現這個_to地址確實是官方指定的合法地址。
證券巨頭SBI收購BITPoint的控股權:金色財經報道,日本證券和銀行業巨頭SBIHoldings搶購BITPoint的控股權,BITPoint是其SBI VC Trade加密交易平臺的國內競爭對手之一。BITPoint的運營商、忠誠度積分提供商Remixpoint的Per Nikkei表示,它將與SBI“形成資本和業務聯盟”,試圖通過加密“合作”來“擴展”其業務。這筆交易將涉及SBI以9860萬美元的價格購買Remixpoint5%的股份和65,484股的51%控股權。這將授予SBI在BITPoint的“超過一半的總投票權”。報告稱,BITPoint的市值估計超過1.93億美元。它指出,該交易還涉及一項收益條款——如果BITPoint滿足多個財務目標,該條款將使Remixpoint有權獲得未來的補償。(cryptonews)[2022/5/15 3:16:40]
最后一步,便是調用_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合約。如有授權,應及時撤銷相關授權,避免進一步損失。
來源:金色財經
BTC 比特幣價格日內整體維持盤整上行的走勢,下午打破上方關鍵阻力位置后走出較大漲幅,4小時圖上,布林通道逐漸縮口,價格在打破布林中軌后,有延續上漲的動能,短期均線向上運行.
1900/1/1 0:00:00談到區塊鏈的發展,用一個較為形象的比喻來形容可能更為貼切,它就像春秋時期的朝代更替一般,最開始還是零零散散的諸侯分割,各自為地,發展到后來往往需要有一定統一的東西出現.
1900/1/1 0:00:00作為人,水是飽滿的,文字仍是柔軟,如果你不了解我的方式,不要打問我的成績,故事我有,就是費酒,長夜漫漫,無心睡眠,南來北往,不辜負生活,不迷失方向,笑而不答是成長,痛而不語是歷練.
1900/1/1 0:00:00今日資訊: 2月28日,非營利組織電子前沿基金會總監CindyCohn在接受彭博社采訪時表示,我們做了很多工作來支持加密貨幣,并度過了監管狀態緊張時期.
1900/1/1 0:00:001、進入Deri主頁deri.finance,找到Exchange,并點擊“LAUNCH”。2、點擊“CONNECTWALLET”,連接錢包.
1900/1/1 0:00:00在今天的策略中,我們將學習如何通過perpetualswaps的資金費率來賺取收益,同時又保持市場中立。在開始之前,我想指出的是,由于市場是動態的,因此本期中提到的策略可能并非始終有效.
1900/1/1 0:00:00