據鏈聞消息,著名DeFi項目Furucombo被黑,損失超1500萬美元。慢霧安全團隊第一時間介入分析,并將攻擊細節分享給大家。攻擊細節分析
本次發生問題的合約在Furucombo本身的代理合約當中。整個攻擊流程很簡單。攻擊者通過設置了Furucombo的AaveV2Proxy的邏輯地址導致后續通過Furucombo代理合約調用的邏輯全部轉發到攻擊者自己的惡意合約上,導致任意資金被盜。
慢霧:過去一周加密領域因安全事件累計損失3060萬美元:7月24日消息,據慢霧統計,上周加密領域因遭遇攻擊累計損失3060萬美元,攻擊者利用了不同的攻擊向量。這些事件包括Alphapo熱錢包被盜(損失2300萬美元)、Conic Finance遭閃電貸攻擊(損失30萬美元)以及重入攻擊(損失320萬美元)、GMETA發生RugPull(損失360萬美元)、BNO遭閃電貸攻擊(損失50萬美元)等。[2023/7/24 15:55:56]
但是如果事情那么簡單,那么本次分析不值一提。問題遠比想象的復雜得多。如上圖所示攻擊者的入口在Furucombo的batchExec函數,我們先對batchExec函數進行分析:
慢霧:近期出現新的流行惡意盜幣軟件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]
以上是FurucomboProxy合約的batchExec函數的具體實現,其中_preProcess和_postProcess合約分別是對調用前后做一些數據上的處理,不涉及具體的調用邏輯,這邊可以先忽略。我們主要觀察核心的_execs函數:
慢霧:警惕 Honeyswap 前端被篡改導致 approvals 到惡意地址風險:據慢霧區消息,Honeyswap官方推特發文,Honeyswap 前端錯誤導致交易到惡意地址 “0xD3888a7E6D6A05c6b031F05DdAF3D3dCaB92FC5B” ,目前官網仍未刪除該惡意地址,請立即停止使用Honeyswap進行交易,到revoke.cash排查是否有approvals 交易到惡意地址,避免不必要的損失。[2022/5/10 3:03:22]
通過對execs代碼的分析不難發現,函數的主要邏輯是對configs數組的數據做檢查,并根據configs數組的數據對data進行一些處理。但是回顧上文中攻擊者的調用數據,不難發現攻擊者的調用數據中,configs的數據是一個0地址:
慢霧:DOD合約中的BUSD代幣被非預期取出,主要是DOD低價情況下與合約鎖定的BUSD將產生套利空間:據慢霧區情報,2022 年 3 月 10 日, BSC 鏈上的 DOD 項目中鎖定的 BUSD 代幣被非預期的取出。慢霧安全團隊進行分析原因如下:
1. DOD 項目使用了一種特定的鎖倉機制,當 DOD 合約中 BUSD 數量大于 99,999,000 或 DOD 銷毀數量超過 99,999,000,000,000 或 DOD 總供應量低于 1,000,000,000 時將觸發 DOD 合約解鎖,若不滿足以上條件,DOD 合約也將在五年后自動解鎖。DOD 合約解鎖后的情況下,用戶向 DOD 合約中轉入指定數量的 DOD 代幣后將獲取該數量 1/10 的 BUSD 代幣,即轉入的 DOD 代幣數量越多獲得的 BUSD 也越多。
2. 但由于 DOD 代幣價格較低,惡意用戶使用了 2.8 個 BNB 即兌換出 99,990,000 個 DOD。
3. 隨后從各個池子中閃電貸借出大量的 BUSD 轉入 DOD 合約中,以滿足合約中 BUSD 數量大于 99,999,000 的解鎖條件。
4. 之后只需要調用 DOD 合約中的 swap 函數,將持有的 DOD 代幣轉入 DOD 合約中,既可取出 1/10 轉入數量的 BUSD 代幣。
5. 因此 DOD 合約中的 BUSD 代幣被非預期的取出。
本次 DOD 合約中的 BUSD 代幣被非預期取出的主要原因在于項目方并未考慮到 DOD 低價情況下與合約中鎖定的 BUSD 將產生套利空間。慢霧安全團隊建議在進行經濟模型設計時應充分考慮各方面因素帶來的影響。[2022/3/10 13:48:45]
慢霧:nanotron安全審計報告是偽造的:慢霧科技發推表示:團隊并沒有對于nanotron進行審計,項目的安全審計報告是偽造的,請注意防范風險。[2020/10/8]
這里有一個trick,由于0地址是一個EOA地址,所有對EOA地址的函數調用都會成功,但是不會返回任何結果。結合這個trick,execs函數中的關于configs數據的部分可以先暫時忽略。直接看到最后的核心_exec函數:
_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
編者按:本文來自鏈聞ChainNews,星球日報經授權發布。撰文:TheBlock研究分析師Igorerdiev翻譯:盧江飛Wintermute已經成為當前加密貨幣市場上規模最大的做市商之一,根.
1900/1/1 0:00:00編者按:本文來自21世紀經濟報道,作者:楊清清,星球日報經授權發布。第九城市于美東時間2月19日再次大漲。美東時間2月19日,第九城市以65.57美元開盤,盤中一度升至88.43美元.
1900/1/1 0:00:00編者按:本文來自鏈聞ChainNews,撰文:LeftOfCenter,星球日報經授權發布。知乎上一則題為「有沒有一個永久儲存數據的地方?」的討論獲得了超98萬次閱讀量,熱評中雖然充滿了令人稱奇.
1900/1/1 0:00:00昨晚加密貨幣大跌令市場損失慘重,截至撰文時間為止,24小時內爆倉達到了40億美金,全網爆倉人數也超過了38萬人次,這個數據應該不遜色于去年“312”,最經典的當然是昨晚十點探底的那一個小時.
1900/1/1 0:00:00編者按:本文來自Cointelegraph中文,Odaily星球日報經授權轉載。全球數字金融服務公司BCBGroup正計劃通過推出一項專門服務,幫助企業投資比特幣等加密貨幣.
1900/1/1 0:00:00編者按:本文來自巴比特資訊,作者:王佳健,星球日報經授權發布。2月26日,魚池(F2pool)發布了一篇文章,題為《站在歷史正確的一邊:EIP-1559》.
1900/1/1 0:00:00