復盤:OUSD遭“經典重入攻擊”損失770萬美元,黑客憑什么屢屢得逞?

作者:PeckShield

原標題:OUSD遭“經典重入攻擊” 損失770萬美元 DeFi安全亟待解決

近日,PeckShield 監控到 DeFi 協議 Origin Protocol 穩定幣 OUSD 遭到攻擊,攻擊者利用在衍生品平臺 dYdX 的閃電貸進行了重入攻擊(Re-entrancy attack),造成價值 770萬 美元的 ETH 和 DAI 的損失。

重入攻擊是以太坊智能合約上最經典的攻擊手段之一,著名的 the DAO 被盜事件就是攻擊者運用重入攻擊導致以太坊硬分叉,損失價值 5000 萬美元以太幣。

自今年4月起,DeFi 項目頻遭重入攻擊,4月18日,黑客利用 Uniswap 和 ERC777 標準的兼容性問題缺陷實施重入攻擊;4月19日,Lendf.Me 也遭到類似重入攻擊;11月14日,黑客利用 Akropolis 項目的 SavingsModule 合約在處理用戶存儲資產時存在的某種缺陷連續實施了 17 次重入攻擊,損失 203萬 枚DAI。

臺北時間 2020 年 11 月 17 日,PeckShield 監控到穩定幣 OUSD 遭到重入攻擊。OUSD 是 Origin Protocol 推出的一種與美元掛鉤的 ERC-20 穩定幣,用戶可通過將基礎穩定幣(例如 USDT、USDC、DAI)存入 Origin 智能合約來鑄造 OUSD 穩定幣,之后該協議會將基礎穩定幣投資于多個 DeFi 協議并進行收益耕作,為 OUSD 持有者賺取回報。

重入攻擊重現 憑空創造2050萬枚OUSD

PeckShield 通過追蹤和分析發現,首先,攻擊者從 dYdX 閃電貸貸出 70,000 枚ETH;

隨后,在 UniswapV2 中先將 17,500 枚ETH 轉換為 785萬 枚USDT,再將所貸剩余的 52,500 枚ETH 轉換為 2099萬 枚DAI;

接下來,攻擊者分四次鑄造 OUSD 穩定幣:

第一次通過 mint() 函數鑄造 OUSD 時,攻擊者確實在 Origin 智能合約中存放了 750萬 枚USDT,并獲得 750萬 枚OUSD;

第二次通過 mintMultiple() 多種穩定幣函數鑄造 OUSD 時,攻擊者在 Origin 智能合約中存放了 2050萬 枚DAI 和 0 枚假“穩定幣”,并在此步驟中通過重入攻擊來攻擊合約。攻擊者將 2050萬 枚DAI 和 0 枚假“穩定幣”存入 VaultCore 中,此時智能合約收到 2050萬 枚DAI,在嘗試接收 0 枚假“穩定幣”時,攻擊者利用惡意合約進行劫持,在智能合約正常啟動鑄造 2050萬 枚OUSD 之前,調用 mint() 函數,先惡意增發了 2050萬 枚OUSD,此次惡意增發由 VaultCore 合約調用 rebase() 函數實施。

值得注意的是,為順利實施劫持,攻擊者在上述 mint() 函數調用時,真金白銀地存入了 2,000 枚USDT,同時獲得第三次鑄幣 2,000 枚OUSD。隨后,調用 oUSD.mint() 函數第四次鑄造 2050 萬枚OUSD。

rebase 指代幣供應量彈性調整過程,即對代幣供應量進行“重新設定”。在 DeFi 領域有一類代幣擁有彈性供應量機制,即每個代幣持有用戶的錢包余額和代幣總量會根據此代幣價格的變化而等比例變動。此時,攻擊者共獲得 2800.2萬 枚OUSD,包括抵押的 750萬 枚USDT、2050萬 枚DAI 和2000 枚USDT,由于調用 rebase() 函數,攻擊者所獲得的 OUSD 總計上漲至 33,269,000 枚,

最后,攻擊者先用所獲得的 33,269,000 枚OUSD 贖回 1950萬 枚DAI、940萬 枚USDT、390萬 枚USDC;再在 Uniswap 中將 1045萬 枚USDT 兌換為 22,898 枚ETH,將 390萬 枚 USDC 兌換為 8,305 枚ETH,將 190萬 枚DAI 兌換為 47,976 枚ETH,共計 79,179 枚ETH,并將其中 70,000 枚 ETH 歸還到 dYdX 閃電貸中。

據 PeckShield 統計,攻擊者在此次攻擊中共計獲利 11,809 枚ETH 和 2,249,821 枚DAI,合計 770萬 美元。

對于次攻擊事件,Origin Protocol 官方回應稱,正在積極采取措施,以期收回資金,

隨著 DeFi 生態的蓬勃發展,其中隱藏的安全問題也逐漸凸顯,由于 DeFi 相關項目與用戶資產緊密相連,其安全問題亟待解決。

對此,PeckShield 相關負責人表示:“此類重入攻擊的發生主要是由于合約沒有對用戶存儲的 Token 進行白名單校驗。DeFi 是由多個智能合約和應用所組成的’積木組合’,其整體安全性環環相扣,平臺方不僅要確保在產品上線前有過硬的代碼審計和漏洞排查,還要在不同產品做業務組合時考慮因各自不同業務邏輯而潛在的系統性風控問題,”

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧