著名 DeFi 項目 Furucombo 被黑,損失超 1500 萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。
本次發生問題的合約在 Furucombo 本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了 Furucombo 的 AaveV2 Proxy 的邏輯地址導致后續通過 Furucombo 代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。
慢霧:近期出現新的流行惡意盜幣軟件Mystic Stealer,可針對40款瀏覽器、70款瀏覽器擴展進行攻擊:6月20日消息,慢霧首席信息安全官@IM_23pds在社交媒體上發文表示,近期已出現新的加密貨幣盜竊軟件Mystic Stealer,該軟件可針對40款瀏覽器、70款瀏覽器擴展、加密貨幣錢包進行攻擊,如MetaMask、Coinbase Wallet、Binance、Rabby Wallet、OKX Wallet、OneKey等知名錢包,是目前最流行的惡意軟件,請用戶注意風險。[2023/6/20 21:49:05]
如上圖所示攻擊者的入口在 Furucombo 的 batchExec 函數,我們先對 batchExec 函數進行分析:
慢霧:昨日MEV機器人攻擊者惡意構造無效區塊,建議中繼運營者及時升級:金色財經報道,慢霧分析顯示,昨日MEV機器人被攻擊的問題原因在于即使信標區塊不正確,中繼仍將有效載荷(payload)返回給提議者,導致了提議者在另一個區塊被最終確定之前就能訪問區塊內容。攻擊者利用此問題,惡意構造了無效的區塊,使得該區塊無法被驗證,中繼無法進行廣播(狀態碼為202)從而提前獲得交易內容。mev-boost-relay昨日已緊急發布新版本緩解此問題,建議中繼運營者及時升級中繼。
據此前報道,昨日夾擊MEV機器人的惡意驗證者已被Slash懲罰并踢出驗證者隊列。[2023/4/4 13:43:37]
以上是 Furucombo Proxy 合約的 batchExec 函數的具體實現,其中 _preProcess 和 _postProcess 合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的 _execs 函數:
慢霧:V神相關地址近日于Uniswap賣出3000枚以太坊:11月14日消息,據慢霧監測顯示,以太坊創始人Vitalik Buterin地址(0xe692開頭)近日在Uniswap V3上分三筆將3000枚以太坊(約400萬美元)兌換成了USDC。[2022/11/14 13:03:22]
通過對 execs 代碼的分析不難發現,函數的主要邏輯是對 configs 數組的數據做檢查,并根據 configs 數組的數據對 data 進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs 的數據是一個 0 地址:
慢霧:ERC721R示例合約存在缺陷,本質上是由于owner權限過大問題:4月12日消息,據@BenWAGMI消息,ERC721R示例合約存在缺陷可導致項目方利用此問題進行RugPull。據慢霧安全團隊初步分析,此缺陷本質上是由于owner權限過大問題,在ERC721R示例合約中owner可以通過setRefund Address函數任意設置接收用戶退回的NFT地址。
當此退回地址持有目標NFT時,其可以通過調用refund函數不斷的進行退款操作從而耗盡用戶在合約中鎖定的購買資金。且示例合約中存在owner Mint函數,owner可在NFT mint未達總供應量的情況下進行mint。因此ERC721R的實現仍是防君子不防小人。慢霧安全團隊建議用戶在參與NFTmint時不管項目方是否使用ERC721R都需做好風險評估。[2022/4/12 14:19:58]
慢霧:Crosswise遭受攻擊因setTrustedForwarder函數未做權限限制:據慢霧區情報,2022年1月18日,bsc鏈上Crosswise項目遭受攻擊。慢霧安全團隊進行分析后表示,此次攻擊是由于setTrustedForwarder函數未做權限限制,且在獲取調用者地址的函數_msg.sender()中,寫了一個特殊的判斷,導致后續owner權限被轉移以及后續對池子的攻擊利用。[2022/1/19 8:57:48]
這里有一個 trick,由于 0 地址是一個 EOA 地址,所有對 EOA 地址的函數調用都會成功,但是不會返回任何結果。結合這個 trick,execs 函數中的關于 configs 數據的部分可以先暫時忽略。直接看到最后的核心 _exec 函數:
_exec 函數的邏輯也很簡單,在校驗了 _to 地址后,直接就將 data 轉發到指定的 _to 地址上了。而通過對攻擊交易的分析,我們能發現這個 _to 地址確實是官方指定的合法地址。
最后一步,便是調用 _to 地址,也就是官方指定的 AaveV2 Proxy 合約的 initialize 函數,將攻擊者自己的惡意地址設置成 AaveV2 Proxy 合約的邏輯地址。通過對 Furucombo 合約的分析,可以發現整個調用流程上沒有出現嚴重的安全點,對調用的地址也進行了白名單的檢查。那么問題只能是出在了對應要調用的代理邏輯上,也就是 AaveV2 Proxy 合約。
我們直接分析 AaveV2 Proxy 合約的 initialize 函數的邏輯:
可以看到 initialize 函數是一個 public 函數,并在開頭就檢查了 _implementation 是否是 0 地址,如果是 0 地址,則拋出錯誤。這個檢查的目的其實就是檢查了 _implementation 是否被設置了,如果被設置了,就無法再次設置。根據這個設置,不難想出 initialize 這個函數只能調用一次。除非 AaveV2 Proxy 從來沒有設置過 _implementation,否則這個調用是不會成功的。難道 Furucombo 真的沒有設置過對應的 _implementation 嗎?帶著這樣的疑問,我們檢查了交易內的狀態變化。如下:
可以看到,交易中改變了存儲位置為 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 的內容,而寫入的內容正是攻擊者自己的惡意合約地址 0x86765dde9304bea32f65330d266155c4fa0c4f04。
而 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 這個位置,正是 _implementation 數據的存儲地址。
也就是說,官方從來沒有設置過 AaveV2 Proxy 合約的 _implementation 地址,導致攻擊者鉆了這個空子,造成了 Furucombo 資產損失。
通過對整個事件的分析來看,Furucombo 此次事故并不在安全漏洞的范疇內,主要的原因在于官方將未啟用的 AaveV2 Proxy 合約添加進了自己的白名單中,并且未對 AaveV2 Proxy 合約進行初始化,導致攻擊者有機可乘。
目前,由于 Furucombo 遭受攻擊,導致任何將代幣授權過給 Furucombo 合約 (0x17e8ca1b4798b97602895f63206afcd1fc90ca5f) 的用戶都將面臨資金損失的風險。
慢霧安全團隊建議與 Furucombo 交互過的用戶檢查是否有將相關代幣授權給 Furucombo 合約。如有授權,應及時撤銷相關授權,避免進一步損失。
大家好,我是在各種財富密碼中繞行的佩佩,今天這個標題可能有點傻,又可能對有些朋友帶有一丟丟蕉綠,這其實是2020年初還有點迷茫時期市場里的一種聲音,但可能現在大家都忙著賺錢.
1900/1/1 0:00:00從DeFi熱潮盛行之時,擴容就一直是以太坊難以擺脫的魔咒,尤其是今年BSC等其他公鏈項目的成熟以及波卡平行鏈上線的有序推進,對于可能出現的“蠶食效應”,官方的壓力也越來越大.
1900/1/1 0:00:002 月 25 月,基于以太坊的足球NFT收藏游戲 Sorare 宣布完成 5000 萬美元融資,Benchmark 領投.
1900/1/1 0:00:00上個月底,波卡創始人 Gavin Wood 博士與區塊鏈投資媒體 Real Vision 副主編 Sebastian Moonjava 進行了一個多小時的深度對談.
1900/1/1 0:00:00《HyperPay焦點》AMA第十五期將于3月5日20點30分在HyperPay錢包及合作媒體社區舉行,專場主題為“NFT的價值、趨勢與機遇”.
1900/1/1 0:00:00本文由黃銳原創,授權金色財經首發。2021年1月13日,工業和信息化部對外發布了關于印發《工業互聯網創新發展行動計劃(2021-2023年)》的通知,這是繼2018年發布《工業互聯網發展行動計劃.
1900/1/1 0:00:00