據鏈聞消息,著名DeFi項目Furucombo被黑,損失超1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
慢霧:從Multichain流出的資金總額高達2.65億美元,分布在9條鏈:金色財經報道,自7月7日以來,從 Multichain 流出的資金總額高達 2.65 億美元,分布在 Ethereum、BNB Chain、Polygon、Avalanche、Arbitrum、Optimism、Fantom、Cronos、Moonbeam 鏈。其中 6582 萬美元已經被 Circle 和 Tether 凍結,1,296,990.99 ICE(約 162 萬美元) 被 Token 發行方 Burn。流出的資金中,包括:
1)從 Multichain: Old BSC Bridge 轉出的 USDT;
2)從 Multichain: Fantom Bridge 轉出的 USDC、DAI、LINK、UNIDX、USDT、WOO、ICE、CRV、YFI、TUSD、WETH、WBTC;
3)從 Anyswap: Bridge Fantom 轉出的 BIFI;
4)從 Multichain: Moonriver Bridge 轉出的 USDC、USDT、DAI、WBTC;
5)從 MultiChain: Doge Bridge 轉出的 USDC;
6)從 Multichain: Executor 轉出的 DAI、USDC、BTCB、WBTC、WETH、Dai.e、WBTC.e、Bridged USDC、BTC、fUSDT、ETH 等;
7)從被 Etherscan 標記為 Fake_Phishing183873 的 0xe1910...49c53 轉出的 WBTC、USDT、ETH,同時我們認為該標記(Fake Phishing183873)或許是 Etherscan 上的虛假標記,地址可能以前屬于 Multichain 官方賬戶。[2023/7/11 10:48:30]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
慢霧:疑似Gemini相關地址在過去5小時內共轉出逾20萬枚ETH:金色財經消息,慢霧監測顯示,疑似加密交易所Gemini相關地址(0xea3ec2a08fee18ff4798c2d4725ded433d94151d)已在過去5小時內歸集并轉出逾20萬枚ETH(超3億美元)。[2022/7/19 2:22:08]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
這里有一個trick,由于?0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
動態 | 慢霧:10 月發生多起針對交易所的提幣地址劫持替換攻擊:據慢霧區塊鏈威脅情報(BTI)系統監測及慢霧 AML 數據顯示,過去的 10 月里發生了多起針對數字貨幣交易所的提幣地址劫持替換攻擊,手法包括但不限于:第三方 JS 惡意代碼植入、第三方 NPM 模塊污染、Docker 容器污染。慢霧安全團隊建議數字貨幣交易所加強風控措施,例如:1. 密切注意第三方 JS 鏈接風險;2. 提幣地址應為白名單地址,添加時設置雙因素校驗,用戶提幣時從白名單地址中選擇,后臺嚴格做好校驗。此外,也要多加注意內部后臺的權限控制,防止內部作案。[2019/11/1]
_exec函數的邏輯也很簡單,在校驗了_to地址后,直接就將data轉發到指定的_to地址上了。而通過對攻擊交易的分析,我們能發現這個_to地址確實是官方指定的合法地址。
聲音 | 慢霧:ETC 51%雙花攻擊所得的所有ETC已歸還完畢:據慢霧區消息,ETC 51%攻擊后續:繼Gate.io宣稱攻擊者歸還了價值10萬美金的ETC后,另一家被成功攻擊的交易所Yobit近日也宣稱收到了攻擊者歸還的122735 枚 ETC。根據慢霧威脅情報系統的深度關聯分析發現:攻擊者于UTC時間2019年1月10日11點多完成了攻擊所獲的所有ETC的歸還工作,至此,持續近一周的 ETC 51% 陰云已散。[2019/1/16]
最后一步,便是調用_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
尊敬的用戶: Hotbit即將在開啟OPEN數字資產服務,并開放OPEN理財產品。 具體安排如下: 充值時間:2021年03月02日15:00??(香港時間)交易時間:2021年03月02日17.
1900/1/1 0:00:00本文作者為NewBloc策略分析師Barry,5年外匯黃金市場交易經歷。回顧加密貨幣體系建立的初衷,從伊始即是去中心化,人們可以在線創建、轉移和持有數字貨幣,而不需要任何中介機構,然而隨著市場逐.
1900/1/1 0:00:00尊敬的用戶: WBF將在開放區和掘金板塊上線BTCHT/USDT、BTCHT/BTC交易對,具體時間安排如下:BTCHT/USDT交易對交易時間:2021/3/1?14:00?BTCHT/BTC.
1900/1/1 0:00:001.關注公眾號:道說區塊鏈2.后臺回復:電子書3.獲取《DeFi實戰投資方法論》電子書最近有不少朋友都留言問我到底有沒有變現手中的籌碼?我估計可能是由于這次的大跌來得太突然,也太猛烈.
1900/1/1 0:00:00每一個四年階段,牛市維持的時間周期都是不同的,這個時間周期的不同,源自于共識,包括不同的外界因素影響都會導致整個局面產生一定的變化.
1900/1/1 0:00:00鏈聞消息,以太坊DeFi協議組合工具Furucombo(COMBO)的智能合約出現嚴重漏洞,攻擊者使用假合約混淆FuruсomboProxy.
1900/1/1 0:00:00