此次攻擊關鍵在于調用外部合約造成的重入問題與Vault的rebase機制相結合,攻擊者可以通過重入來憑空獲得巨額收益分配。
原文標題:《閃電貸重入攻擊,OUSD損失700萬美金技術簡析》撰文:慢霧安全團隊
據慢霧區情報,2020年11月17日,以太坊DeFi項目OUSD遭受閃電貸攻擊。慢霧安全團隊于第一時間跟進并進行相關分析。以下是慢霧安全團隊針對本次攻擊的簡要分析。攻擊過程詳細分析會在稍后發布。如有興趣可保持持續關注。
背景提要
OriginDollar(OUSD)由OriginProtocol(OUSD)創建,是一種新型的ERC-20穩定幣,當它仍然放在錢包里時,會自動從DeFi協議中獲得有競爭力的收益。OUSD由USDT、USDC和DAI等其他穩定幣的1:1支持。
CertiK:12月閃電貸攻擊總額達760萬美元:金色財經報道,據CertiKAlert數據顯示,12月閃電貸攻擊總額達760萬美元,較11月的攻擊總額520萬美元有所增長。
其中,DeFi協議Lodestar Finance損失總額約650萬美元。[2023/1/1 22:19:42]
攻擊流程簡析
1.攻擊者使用dydx閃電貸借出70000個ETH,隨后通過Uniswap將其兌換為USDT和DAI。
2.攻擊者調用OUSDVault的mint函數,Vault會先進行一次rebase將之前積累的獎勵進行分配,隨后將750萬USDT從攻擊者合約轉入OUSDVault中。此時OUSD合約會鑄出等量的750萬OUSD代幣給攻擊合約,最后通過allocate來結算當前的收益。
DeFi項目array finance疑似遭到閃電貸攻擊:PeckShield發推稱,DeFi項目array finance疑似遭到閃電貸攻擊。目前,項目方尚未回應。[2021/7/18 1:00:54]
3.在攻擊者轉入750萬之前,Vault的價值約為7018138美元。攻擊者轉入750萬USDT后將占Vault總價值的一半以上。
4.隨后攻擊合約利用mintMultiple函數傳入DAI合約地址與攻擊合約的地址,同樣是先進行一次rebase,將之前累計的收益進行分配(包含先前轉入的750萬USDT部分),再通過transferFrom先將攻擊合約的2050萬DAI轉入Vault中。隨后將調用攻擊合約的transferFrom函數,攻擊者在攻擊合約的transferFrom函數中構造再次調用Vault合約mint函數的邏輯來實現重入攻擊。
PeckShield: Impossible Finance 攻擊者利用 ElevenFinance 漏洞對其進行閃電貸攻擊:北京時間 6 月 23 日,PeckShield 派盾預警顯示,Impossible Finance 攻擊者利用 ElevenFinance 的邏輯漏洞再次對 DeFi 協議 ElevenFinance 進行閃電貸攻擊,請用戶注意規避風險。[2021/6/23 23:59:22]
5.在上一步驟中轉入2050萬DAI后通過攻擊合約的transferFrom函數再次調用Vault的mint函數。由于重入時傳入2000USDT符合判斷是否調用rebase的條件,此時將進行一次rebase,而由于rebase需要Vault中的資產總價值和OUSD的總鑄幣數有差值才能觸發。按照原本的業務場景是進行allocate結算收益后改變Vault中的資產總價值然后通過rebase進行分配。而由于重入原因并沒有先通過oUSD.mint進行鑄幣操作,且攻擊者已先將2050萬的DAI轉入Vault中,所以Vault中的資產總價值仍然增加了,導致合約中的資產總價值大于OUSD的總鑄幣量。因此Vault會將增加的2050萬DAI當成收益部分進行rebase分配。在步驟3中由于攻擊者資產已占Vault總價值的一半以上,所以此時攻擊者將憑空獲得超過價值1025萬的收益分配。
Warp Finance:擬定計劃追回閃電貸攻擊損失中的550萬美元:12月18日,Warp Finance針對遭到的閃電貸攻擊發布聲明。據稱,閃電貸攻擊者最多可盜走價值770萬美元的穩定幣,不過Warp Finance團隊已擬定計劃來追回仍在抵押金庫中的價值約550萬美元的穩定幣,這550萬美元將按比例分給遭受損失的用戶。此外,團隊也已制定另外的計劃來補償受損用戶。此前報道,12月18日,Warp Finance在推特表示,正在調查最近一小時內被借出的違規穩定幣貸款,建議用戶不要再存入穩定幣,直到官方查明情況為止。隨后Defiprime評論稱,DeFi協議Warp Finance遭遇閃電貸攻擊,約800萬美元被盜。[2020/12/18 15:39:32]
6.隨后將通過oUSD.mint鑄出2000OUSD,并通過allocate結算重入時2000USDT的收益(從上一步驟可以看出攻擊合約傳入的2000USDT只是為了滿足調用rebase的條件,觸發收益分配而已)。重入結束后仍將通過oUSD.mint鑄出之前轉入的2050萬DAI等值的OUSD代幣。
7.最后Vault的總價值約為3501萬美元,但攻擊者所擁有的價值超過3825萬美元,因此攻擊者用大部分的OUSD去Vault進行贖回操作,將Vault基本提空,而其余的OUSD是通過Uniswap和Sushiswap的OUSD-USDT池將OUSD換成USDT來增加收益。
總結
此次攻擊關鍵在于調用外部合約造成的重入問題與Vault的rebase收益分配機制相結合,導致攻擊者可以通過重入來憑空獲得巨額的收益分配。針對此類情況,慢霧安全團隊建議對傳入資產進行檢查后,對不在白名單內的資產直接進行回滾,并使用防重入鎖以避免重入攻擊。
相關鏈接:
參考攻擊交易:0xe1c76241dda7c5fcf1988454c621142495640e708e3f8377982f55f8cf2a8401
Uniswap
Uniswap
Uniswap一種簡單的無代幣交換協議,被稱為去中心化的Shapeshift或者Bancor,已經在主網上啟動。用Vyper寫作,Gas消耗奇低無比。UniswapUniswapUniswapUniswapUniswapUNI查看更多OriginProtocol
Tags:USDULTOUSDVAULTUSDT幣提現5萬涉嫌洗錢嗎multi幣最新消息Synth oUSDEVAULT幣
前言:周末看了一本書《非對稱風險》,本書的作者納西姆·塔勒布,原書名《Skininthegame》,塔勒布是我們這個時代偉大的思想者之一,塔勒布傾其一生研究不確定性、概率和知識的問題.
1900/1/1 0:00:00北京時間12月20日凌晨1:30開始filecoin主網發生重大事故,336458高度之后的區塊無法產生,官方緊急發布事故公告并且發布了新版本進行修復,需要所有礦工升級到最新1.4.0版本.
1900/1/1 0:00:00譯文出自:登鏈翻譯計劃 譯者:翻譯小組 校對:Tiny熊 對于本教程,將了解如何使用1inchDEX聚合器執行交易使用web3asyncfunctionwaitTransaction(txHas.
1900/1/1 0:00:00宏大敘事的意義 **** 著名的心理學家馬斯洛總結了一個人類的需求層次表。人的需求是分層次的,從生理需求,到安全需求,到社交需求,到尊重需求,到自我實現.
1900/1/1 0:00:00Globe瞄準的是原生加密貨幣交易所與CME等傳統交易所的中間地帶。撰文:PaulVeradittakit,PanteraCapital合伙人翻譯:盧江飛在加密貨幣衍生品交易所領域里,Globe.
1900/1/1 0:00:00Libra項目動機中,突破Facebook自身的創新者窘境成分,遠比其白皮書中各種「連接世界,拯救人類」來的真實.
1900/1/1 0:00:00