據鏈聞消息,著名DeFi項目Furucombo被黑,損失超1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
慢霧:6月24日至28日Web3生態因安全問題損失近1.5億美元:7月3日消息,慢霧發推稱,自6月24日至6月28日,Web3生態因安全問題遭遇攻擊損失149,658,500美元,包括Shido、Ichioka Ventures、Blockchain for dog nose wrinkles、Chibi Finance、Biswap、Themis等。[2023/7/3 22:14:33]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
慢霧:pGALA合約黑客已獲利430萬美元:11月4日消息,安全團隊慢霧在推特上表示,pGALA合約黑客已將大部分GALA兌換成13,000枚BNB,獲利超430萬美元,該地址仍有450億枚Gala,但不太可能兌現,因為資金池基本已耗盡。此外,黑客的初始資金來自幾個幣安賬戶。
今日早些時候消息,一個BNB Chain上地址在BNB Chain上地址憑空鑄造了超10億美元的pGALA代幣,并通過在PancakeSwap上售出獲利。pNetwork表示此為跨鏈橋配置錯誤所致,GALA跨鏈橋已暫停,請用戶不要在BNB Chain上DEX中交易pGALA。[2022/11/4 12:16:04]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
慢霧:Inverse Finance遭遇閃電貸攻擊簡析:據慢霧安全團隊鏈上情報,Inverse Finance遭遇閃電貸攻擊,損失53.2445WBTC和99,976.29USDT。慢霧安全團隊以簡訊的形式將攻擊原理分享如下:
1.攻擊者先從AAVE閃電貸借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子獲得5,375.5個crv3crypto和4,906.7yvCurve-3Crypto,隨后攻擊者把獲得的2個憑證存入Inverse Finance獲得245,337.73個存款憑證anYvCrv3Crypto。
2.接下來攻擊者在CurveUSDT-WETH-WBTC的池子進行了一次swap,用26,775個WBTC兌換出了75,403,376.18USDT,由于anYvCrv3Crypto的存款憑證使用的價格計算合約除了采用Chainlink的喂價之外還會根據CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的實時余額變化進行計算所以在攻擊者進行swap之后anYvCrv3Crypto的價格被拉高從而導致攻擊者可以從合約中借出超額的10,133,949.1個DOLA。
3.借貸完DOLA之后攻擊者在把第二步獲取的75,403,376.18USDT再次swap成26,626.4個WBTC,攻擊者在把10,133,949.1DOLAswap成9,881,355個3crv,之后攻擊者通過移除3crv的流動性獲得10,099,976.2個USDT。
4.最后攻擊者把去除流動性的10,000,000個USDTswap成451.0個WBT,歸還閃電貸獲利離場。
針對該事件,慢霧給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/6/16 4:32:58]
這里有一個trick,由于?0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
慢霧:警惕 Terra 鏈上項目被惡意廣告投放釣魚風險:據慢霧區情報,近期 Terra 鏈上部分用戶的資產被惡意轉出。慢霧安全團隊發現從 4 月 12 日開始至 4 月 21 日約有 52 個地址中的資金被惡意轉出至 terra1fz57nt6t3nnxel6q77wsmxxdesn7rgy0h27x30 中,當前總損失約 431 萬美金。
經過慢霧安全追蹤分析確認,此次攻擊為批量谷歌關鍵詞廣告投放釣魚,用戶在谷歌搜索如:astroport,nexus protocol,anchor protocol 等這些知名的 Terra 項目,谷歌結果頁第一條看似正常的廣告鏈接(顯示的域名甚至是一樣的)實為釣魚網站。 一旦用戶不注意訪問此釣魚網站,點擊連接錢包時,釣魚網站會提醒直接輸入助記詞,一旦用戶輸入并點擊提交,資產將會被攻擊者盜取。
慢霧安全團隊建議 Terra 鏈上用戶保持警惕不要隨便點擊谷歌搜索出來的鏈接或點擊來歷不明的鏈接,減少使用常用錢包進行非必要的操作,避免不必要的資損。[2022/4/21 14:37:55]
_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合約。如有授權,應及時撤銷相關授權,避免進一步損失。
參考鏈接:
代幣授權檢查地址:https://approved.zone/
攻擊交易:
https://ethtx.info/mainnet/0x6a14869266a1dcf3f51b102f44b7af7d0a56f1766e5b1908ac80a6a23dbaf449
親愛的用戶:幣安“ 質押借幣”平臺新增180天借幣期限,現已支持7天、14天、30天、90天及180天借幣期限,隨借隨還.
1900/1/1 0:00:00老樣子,先回顧下昨日的走勢,比特幣繼續下滑,與筆者思路基本一致,下方最低到了430000附近,我昨天在分析中提到讓大家關注下這個位置的支撐破位后有待繼續下行,但是行情在這個位置止步了.
1900/1/1 0:00:00火熱的央行數字貨幣研發為國與國之間的競爭開辟了新賽道,新一輪貨幣戰爭的硝煙悄然而起。上周,在全球金融市場動蕩和比特幣大跌的背景下,美聯儲主席杰羅姆·鮑威爾、美國財政部長珍妮特·耶倫頻繁發聲,為數.
1900/1/1 0:00:00親愛的Pool-X用戶,Pool-X平臺將于2021年03月02日18:00:00(UTC8)上線QNT-45D鎖倉挖礦活動.
1900/1/1 0:00:00Gate.ioNSBT超級空投福利活動已圓滿結束,根據活動規則,我們已為符合規則的用戶發放了活動獎勵。用戶可進入“賬戶管理—我的資金—賬單明細”查詢獎勵發放情況。活動詳情及規則請點擊查看.
1900/1/1 0:00:00據GitHub顯示,2月28日Vitalik已更新EIP-3298提案,提案內容為在倫敦升級中移除「執行SELFDESTRUCT獲得Gas費退款」的規則.
1900/1/1 0:00:00