前言
北京時間2022年3月22日,知道創宇區塊鏈安全實驗室監測到Fantom生態穩定幣收益優化器OneRingFinance遭到閃電貸攻擊,黑客竊取逾145萬美元。
分析
攻擊事件如下圖所示,該次攻擊事件的問題點在于OneRingFinance直接使用交易對中的reserves來實時進行OShare的價格計算,攻擊者通過Swap操作提高reserves的量,最終拉升OShare的價格,獲取更多的資金。
基礎信息
攻擊合約:0x6A6d593ED7458B8213fa71F1adc4A9E5fD0B5A58
攻擊者地址:0x12EfeD3512EA7b76F79BcdE4a387216C7bcE905e
攻擊tx:0xca8dd33850e29cf138c8382e17a19e77d7331b57c7a8451648788bbb26a70145
漏洞合約:0xc06826f52f29b34c5d8b2c61abf844cebcf78abf
流程
攻擊者的核心攻擊流程如下:
基于OP Stack構建的實驗性Rollup框架Keystone已開源:6月1日消息,基于 OP Stack 構建的實驗性 Rollup 框架 Keystone 已開源,Keystone 內置實體組件系統,游戲邏輯用 Go 語言編寫,ECS 執行速度可以并行,此外 Solidity 智能合約可以通過預編譯函數與底層 ECS 狀態進行交互,包括獲取和設置數據。[2023/6/1 11:51:48]
攻擊者從USDC/MIM交易對中閃電貸借出8000W的USDC到攻擊合約中。
2.攻擊者使用swap把1USDC兌換成1.001miMATIC。
3.使用depositSafe存入79999997的USDC。
4.合約mint給攻擊者41965509OShare,此時攻擊者還有2USDC和1.001miMATIC。
動態 | SBI子公司宣布推出MoneyTap附屬商店結算服務:SBI Holdings Inc.子公司SBI Ripple Asia宣布將推出MoneyTap附屬商店結算服務。SBI Ripple Asia表示,這一舉措將是對以Ripple為中心的技術及其電子支付代理業務的示范性測試,將為其在實體店建立擁有MoneyTap的支付系統鋪平道路。注:MoneyTap為應用了Ripple技術的免費匯款應用程序,可提供實時結算的支付及匯款服務。[2019/5/30]
5.攻擊者將2USDC和0.326miMATIC添加流動性,獲得7.82x10<sup>-7</sup>spLP。
6.將41965509的OSharewithdraw兌換成81534750的USDC。
聲音 | BM:Block.one 官方錢包iOS 版本 UI 接近完成:據MEET.ONE消息,BM 近日在電報群分享了 Block.one 官方錢包細節,他表示,iOS 版本的 UI 快完成了, 我們已逐步地發布一部分的官方錢包系統,如 Authenticator、Smart signer。 前者要充分利用 Authenticator,并按要求部署 assert 合約;Smart signer 則強制要求準確顯示李嘉圖和其他特定要求,確保用戶免受虛假李嘉圖合約的欺騙,同時確保鏈的名稱以及圖標是合法的。[2019/5/13]
7.移除流動性獲取0.790USDC和0.862miMATIC。
8.把1.501miMATIC兌換成1.433USDC。
9.歸還8000WUSDC和80080USDC的手續費,最凈獲得1534750-80080=1454670USDC
聲音 | Block.one CEO BB:區塊鏈將消除95%的社交媒體利潤:Block.one CEO BrendanBlumer剛剛在推特表示:區塊鏈將消除95%的社交媒體利潤,因為用戶從Facebook拿回來的不僅僅是隱私。[2019/3/19]
細節
攻擊者在攻擊之前通過CelerNetwork的cBridge跨鏈獲得了發起攻擊所需的gas。
通過流程第二步我們可以看出當時USDC和miMATIC的兌換率為約1:1.001,而通過流程第三步和第四步的swap后可以在第五步中看到USDC和miMATIC的兌換率變成了約1:0.163,所以我們需要重點分析deposit函數和withdraw中計算價格的問題。
分析交易的Debugger,可以看到調用的是depositSafe函數。
查看depositSafe函數,其內部會調用_deposit函數,繼續跟進,發現在_deposit函數中又調用了_doHardWorkAll函數,最后mintOShare給攻擊者。
公告 | Coinone推出匯款應用程序Cross:據coinspeaker消息,Coinone Transfer推出了名為Cross的匯款應用程序,該應用程序將使用Ripple的xCurrent來確保快速的跨境支付。[2018/12/12]
而在_doHardWorkAll函數中使用了for循環將部分存入的USDC全部兌換成其他的代幣。
執行此次depositSafe函數時getSharePrice計算的OShare價格為1062758591235248117。
接下來我們看下getSharePrice函數的代碼,在getSharePrice函數中調用了balanceWithInvested函數,而在balanceWithInvested函數中又調用了investedBalanceInUSD函數。
繼續跟進,investedBalanceInUSD函數是在合約MasterChefBaseStrategy中,其合約地址為:https://ftmscan.com/address/0xdbc07e219ba0cb5fddcd0fa0c5cc1eddfb77e082#code
investedBalanceInUSD函數返回的是getUSDBalanceFromUnderlyingBalance函數,在getUSDBalanceFromUnderlyingBalance函數中可以發現合約使用兩個代幣的數量進行計算,而前面攻擊者由于閃電貸存入了大量的USDC,從而使得最終的_amount的值也變大了。再次回到getSharePrice函數中就可以發現,_sharePrice也會相應變大。
流程第六步使用了withdraw函數。
在withdraw函數中我們發現同樣調用了getSharePrice計算OShare價格,在該階段為1136563707735425848,OShare的價格的確變大了,而最終的取款數量是通過內部調用_withdraw函數計算得到的。
_withdraw函數中最終取款的值為_realWithdraw,而_realWithdraw=_toWithdraw.mul(uint256(10)**uint256(ERC20(_underlying).decimals())).div(uint256(10)**uint256(decimals()));,所以我們再看到_toWithdraw,發現其值同樣是由balanceWithInvested計算得到的,所以這就會導致最終將OShare兌換成USDC變多。
總結一下:
USDC↑->_amount↑->getUSDBalanceFromUnderlyingBalance(_underlyingBal)↑->investedBalanceInUSD()↑->balanceWithInvested()↑->_sharePrice↑
USDC↑->_amount↑->getUSDBalanceFromUnderlyingBalance(_underlyingBal)↑->investedBalanceInUSD()↑->balanceWithInvested()↑->_toWithdraw()↑->_realWithdraw()↑
后續處理
針對此次攻擊,OneRingFinance團隊采取了四種補救措施,包括暫停保險庫,分析、調試、修復漏洞,通過財政庫還款,以及提供漏洞賞金。
保險庫狀態:保險庫已暫停,OneRingFinance團隊正在努力重新設置。
分析、調試、修復:OneRingFinance團隊已工作了很多小時,來修復允許黑客執行這次攻擊的問題,團隊已與許多合格開發者、協議合作,以查漏協議中所有的代碼,協議有漏洞是完全出乎意料的,甚至對一些高級開發人員來說也是如此,因為他們以前審查過OneRingFinance的代碼。
通過協議財政部還款:該團隊正在制定一項計劃,為受影響的人提供具體的中長期還款計劃。
賞金:團隊將提供被盜資金的15%以及100萬RING代幣,作為黑客返還資金的賞金。
總結
該次攻擊事件是由于項目使用實時儲備量來計算價格導致攻擊者通過閃電貸借出大量USDC并存入使得儲備量增大拉升OShare價格造成差值從而獲利。
Tags:USDANCNCEUSDCIUSD價格Malamute FinanceQFinanceusdc幣與usdt幣哪個好
2021年1月14日21:00,由EOS網絡基金會發起的非正式柚談002期開播!本期我們邀請到了邀請到了EOSNationCEODanielKeyes一起聊聊EOS生態二次眾籌平臺Pomelo以.
1900/1/1 0:00:00TetherCTO:Tether仍將保持最常用穩定幣的地位金色財經消息,根據ArcaneResearch的一份報告,第二大穩定幣USDC在過去一年中一直以驚人的速度增長.
1900/1/1 0:00:00前? 2022年2月8日,知道創宇區塊鏈安全實驗室監測到以太坊上的DeFi協議superfluid遭遇黑客攻擊,損失超1300萬美元。實驗室第一時間跟蹤本次事件并分析.
1900/1/1 0:00:00USDT位居“2022年4月市值排名前10加密貨幣”第三位《NFT·SH拾荒》最新獲悉,ForbesAdvisor發布“2022年4月市值排名前10的加密貨幣”列表.
1900/1/1 0:00:00敞口是金融領域的一個重要概念,表示在金融活動中存在金融風險的部分,以及金融活動受金融風險影響的程度。簡單理解就是,從事什么金融活動,對應就有什么敞口.
1900/1/1 0:00:00“波卡知識圖譜”是我們針對波卡從零到一的入門級文章,我們嘗試從波卡最基礎的部分講起,為大家提供全方位了解波卡的內容,當然這是一項巨大的工程,也充滿了挑戰.
1900/1/1 0:00:00