CertiK首發 | Inverse Finance被盜1450萬美元事件分析
發表於 2022-04-03 12:33 作者: CertiK中文社區
北京時間2022年4月2日19時,CertiK安全技術團隊監測到Inverse Finance被惡意利用,導致價值約1450萬美元的資產受到損失。
該事件發生的根本原因在於外部價格預言機依賴導致價格被操縱,因此攻擊者可通過操縱價格來借用資產。
攻擊流程
在發起攻擊之前,攻擊者做了如下准備:
1. 首先,攻擊者部署了一個惡意合約。該合約地址爲:0xea0c959bbb7476ddd6cd4204bdee82b790aa1562
2. 其次,攻擊者在SushiSwap/Curve.fi中進行調換,以操縱交易中的價格,該交易地址爲:0x20a6dcff06a791a7f8be9f423053ce8caee3f9eecc31df32445fc98d4ccd8365
由於SushiSwap:INV(INV-ETH Pair)的流動性非常低,用300ETH(價值約一百多萬美元)換取INV將大幅增加INV價格。
隨後,攻擊者正式發起攻擊:
1. 攻擊者把在准備階段獲得的INV存入,並鑄造(mint)了1746枚XINV代幣。
2. XINV的價格計算:根據SushiSwap:INV對中的INV價格所計算。如上所述,INV的價格被操縱,因此每XINV的價值爲20926美元。
3. 隨着XINV的價格被修改,攻擊者能夠用鑄造的XINV代幣借用到如下資產:1588枚ETH,94枚WBTC,3999669枚DOLA與39枚YFI。
合約漏洞分析
該漏洞主要原因是對價格預言機具有依賴性,並且這中間有30分鐘的窗口期。而攻擊在准備階段完成後正式發生,僅僅用了15秒。
在這種情況下,因爲timeElapsed == 15,預言機合約Keep3rV2Oracle的函數_update()中'timeElapsed > periodSize'的檢查將被繞過。這意味着最後的累積價格還沒有被更新。由此可見,函數_computeAmountOut()中的amoutOut會比預期的數額大,因爲priceCumulative已經被操縱了,但_observation.priceCumulative沒有被更新。
一方面,XINV的價格依賴於SushiSwap:INV 對(INV-ETH對)的儲備,其流動性非常低。
另一方面,TWAP可以防止閃電貸攻擊。理論上,攻擊者能夠通過 "犧牲 "一些錢來操縱價格,也就是說,用他自己的錢來改變價格。在這個特殊的價格預言機設計中,如果經過的時間沒有超過30分鐘,當前的價格(來自儲備金)不應該被用來計算出金金額。
資產追蹤
據CertiK SkyTrace顯示,價值約1450萬美元的資產被盜後已被轉移到Tornado Cash。
其他細節
-
利用漏洞進行交易的准備期間:
https://etherscan.io/tx/0x20a6dcff06a791a7f8be9f423053ce8caee3f9eecc31df32445fc98d4ccd8365
-
利用漏洞進行交易發起攻擊:
https://etherscan.io/tx/0x600373f6752132https://etherscan.io/tx/0x600373f67521324c8068cfd025f121a0843d57ec813411661b07edc5ff781842
攻擊者地址1:https://etherscan.io/address/0x117c0391b3483e32aa665b5ecb2cc539669ea7e9
-
攻擊者地址2:
https://etherscan.io/address/0x8b4c1083cd6aef062298e1fa900df9832c8351b3
-
攻擊合約:
https://etherscan.io/address/0xea0c959bbb7476ddd6cd4204bdee82b790aa1562
-
預言機合約:
https://etherscan.io/address/0x39b1df026010b5aea781f90542ee19e900f2db15#code
-
SushiSwap INV-ETH Pair:
https://etherscan.io/address/0x328dfd0139e26cb0fef7b0742b49b0fe4325f821
XINV 合約地址: https://etherscan.io/address/0x1637e4e9941d55703a7a5e7807d6ada3f7dcd61b#code
-
Keep3rV2 預言機合約地址:
https://etherscan.io/address/0x39b1df026010b5aea781f90542ee19e900f2db15#code
寫在最後
現如今,很多項目都會用到預言機,部分項目還會對其具有很強的依賴性。安全審計,會審查預言機的設計合理性、價格算法以及經濟模型等。
因此,CertiK的安全專家建議:盡量避免使用流動性低的池子作爲價格預言機價格來源,同時對項目進行安全審計從而保證預言機模型的正確性。
標題:CertiK首發 | Inverse Finance被盜1450萬美元事件分析
地址:https://www.coinsdeep.com/article/1840.html
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。