Furucombo此次事故并不在安全漏洞的范疇內,主要的原因在于官方將未啟用的AaveV2Proxy合約添加進了自己的白名單中,并且未對AaveV2Proxy合約進行初始化,導致攻擊者有機可乘。與Furucombo交互過的用戶應及時撤銷相關授權,避免進一步損失。
原文標題:《可避天災,難免人禍——Furucombo被黑分析》撰文:慢霧安全團隊
據鏈聞消息,著名DeFi項目Furucombo被黑,損失約1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
Baby Doge向FurKids動物收容所捐贈20,000美元:Baby Doge在喬治亞州NASCAR賽事中向FurKids動物收容所捐贈20,000 美元。FurKids是喬治亞州最大的免殺動物救援收容所。(bsc.news)[2021/7/11 0:42:33]
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
Bitfury與一家SPAC公司合并創建市值20億美元的比特幣礦企:比特幣礦業硬件制造商Bitfury將與一家特殊目的收購公司(SPAC)GoodWorksAcquisition合并,成立名為CipherMiningTechnologies的挖礦公司。
據稱,合并后的公司市值達20億美元,并計劃到2025年底實現745MW的挖礦能力。預計合并后的公司將從完全承諾的股票PIPE中獲得4.25億美元現金,Bitfury的5000萬美元實物投資,以及從2020年10月首次公開發行的GoodWorks信托賬戶持有的1.7億美元現金,預計該公司將收到5.95億美元現金收益。完全承諾的PIPE投資由FidelityManagement&ResearchCompany和CounterpointGlobal(摩根士丹利)擔保。(CoinDesk)[2021/3/5 18:19:05]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
區塊鏈服務公司Bitfury推出Crystal平臺,犯罪活動或遠離比特幣:比特幣礦業公司Bitfury在轉型為區塊鏈服務公司之后,一直在和政府機構接觸。今天,該公司推出了一款Crystal工具,目的是方便用戶識別和調查最知名區塊鏈上所發生的犯罪活動。該平臺經過兩年多發展,得到了前一級政府官員的反饋,最終目的是幫助比特幣擺脫與黑市交易的關聯性。(Coindesk)[2018/1/30]
這里有一個trick,由于0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
_exec函數的邏輯也很簡單,在校驗了_to地址后,直接就將data轉發到指定的_to地址上了。而通過對攻擊交易的分析,我們能發現這個_to地址確實是官方指定的合法地址。
Bitfury將推出監管比特幣區塊鏈交易的新方法:比特幣礦業公司Bitfury集團首席執行官瓦列里·瓦維洛夫(Valery Vavilov)表示,目前比特幣投資者可以擁有多個賬戶和錢包,從而使更隱藏身份及在區塊鏈上犯罪變得更容易。Bitfury一位獲獎工程師提出了一種分析比特幣區塊鏈交易的創新方法,這個新方法將通過協助調查和減少犯罪活動來達成。Bitfury發布的白皮書顯示,“地址集群”將會通過分析區塊鏈數據確定哪些地址(賬戶)屬于哪個投資者。[2018/1/9]
最后一步,便是調用_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合約。如有授權,應及時撤銷相關授權,避免進一步損失。
來源鏈接:mp.weixin.qq.com
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
FURUCOMBO
FURUCOMBO
FURUCOMBO旨在節省操作步驟與手續費,無限DeFi組合。在不知道如何編程的情況下,將自己的DeFi投資組合進行集成。將所有策略整合到一個交易中,拖動多維數據集以重新排列操作順序。Furucombo查看更多
尊敬的LOEx用戶:為了向用戶提供更加優質的服務和體驗,LOEx國際站將于新加坡時間2021年3月1日19:00-3月1日21:00進行系統升級維護,法幣交易功能將受影響暫停服務.
1900/1/1 0:00:00尊敬的社區用戶:為滿足廣大用戶交易需求,在新杠桿ETF產品基礎上,霍比特交易所將于2021年3月1日15:00在杠桿ETF交易區上線新的杠桿ETF產品:ADA3L/USDTADA3S/USDT以.
1900/1/1 0:00:00波卡 波卡官方發推,平行鏈是白皮書中提出的最后一項核心功能,它將允許Polkadot實現其可擴展的多鏈架構。經過一段時間的測試、優化和審計,平行鏈將通過鏈上治理推出.
1900/1/1 0:00:00本文來自?Bitcoin.com,原文作者:JamieRedmanOdaily?星球日報譯者?|念銀思唐被稱為“日本亞馬遜”的樂天公司宣布將其加密平臺與其電子支付業務進行整合.
1900/1/1 0:00:00鏈聞消息,數字資產管理機構BlofinCEOMatt表示,Blofin在A輪融資中籌集了1000萬美元,由SIG領投.
1900/1/1 0:00:00本周技術周刊包含以太坊、波卡、Filecoin、IRISnet四個網絡的技術類新聞。 以太坊網絡 EIP-1559性能測試:22小時共處理6426個區塊,平均每個區塊4100萬Gas以太坊客戶端.
1900/1/1 0:00:00