前言
北京時間2022年3月22日,知道創宇區塊鏈安全實驗室?監測到Fantom生態穩定幣收益優化器OneRingFinance遭到閃電貸攻擊,黑客竊取逾145萬美元。
分析
攻擊事件如下圖所示,該次攻擊事件的問題點在于OneRingFinance直接使用交易對中的reserves來實時進行OShare的價格計算,攻擊者通過Swap操作提高reserves的量,最終拉升OShare的價格,獲取更多的資金。
基礎信息
攻擊合約:0x6A6d593ED7458B8213fa71F1adc4A9E5fD0B5A58
攻擊者地址:0x12EfeD3512EA7b76F79BcdE4a387216C7bcE905e
攻擊tx:0xca8dd33850e29cf138c8382e17a19e77d7331b57c7a8451648788bbb26a70145
InfStones推出以太坊驗證者服務:4月19日消息,Web3基礎設施提供商InfStones宣布推出以太坊驗證者服務,旨在滿足以太坊上海升級后的市場需求,支持用戶一鍵設置自己的驗證節點,機構實體可以一次單擊批量處理多達1000個驗證者。此外,InfStones還將與其他流動性質押協議合作以降低32ETH質押門檻。(prnewswire)[2023/4/19 14:12:57]
漏洞合約:0xc06826f52f29b34c5d8b2c61abf844cebcf78abf
流程
攻擊者的核心攻擊流程如下:
攻擊者從USDC/MIM交易對中閃電貸借出8000W的USDC到攻擊合約中。
2.攻擊者使用swap把1USDC兌換成1.001miMATIC。
3.使用depositSafe存入79999997的USDC。
Honeyswap:用戶現在不要進行交易:5月10日消息,多鏈 DEX 和流動性聚合器 Honeyswap 發推,警告用戶現在不要使用 Honeyswap 進行交易,很可能是前端錯誤,導致交易時出現惡意地址,團隊正在調查這個問題。任何在過去 2 天內使用 Honeyswap 的用戶請轉到 revoke.cash,以確保自己沒有批準所不知道的地址,特別注意 0xD3888a7E6D6A05c6b031F05DdAF3D3dCaB92FC5B。[2022/5/10 3:03:21]
4.合約mint給攻擊者41965509OShare,此時攻擊者還有2USDC和1.001miMATIC。
5.攻擊者將2USDC和0.326miMATIC添加流動性,獲得7.82x10-7spLP。
6.將41965509的OSharewithdraw兌換成81534750的USDC。
聲音 | 前摩根大通交易員Tone Vays:加密貨幣采用目前最大的障礙是錯誤信息:據LongHash消息,前摩根大通交易員、加密貨幣分析師Tone Vays表示:“我認為在過去的兩到三年里,加密貨幣的采用并沒有真正的障礙。總的來說,(障礙)在于人們對比特幣在他們生活中為何有用的理解,而大多數人現在只是還沒有看到它。 對我來說,加密有三個基本特性:不可混淆性、抗審查的價值轉移、類似黃金的有限供應。大多數人目前對此并無需求,但隨著人們有了這種需求,他們將開始對比特幣感興趣。我認為比特幣的可用性可以提高,錢包、友好性、界面需要變得更好,比特幣的安全性需要變得更簡單、更好,這將隨著時間的推移而發展,但目前最大的障礙是錯誤信息。早在2014年初,我就寫過一篇文章,說這種情況沒有改變,而現在這種情況更糟了。人們去Bitcoin.com購買假的比特幣(疑暗指BCH),人們相信有比比特幣更好的加密貨幣,當他們被證明是錯的時候,這些人對生態系統也就不感興趣了。”[2019/6/2]
7.移除流動性獲取0.790USDC和0.862miMATIC。
聲音 | Block.one發文:社區成員需對詐騙保持高度警惕:1月29日,Block.one在其官網發文《對詐騙保持高度警惕》,提醒所有社區成員對詐騙、網絡釣魚、黑客攻擊以及其他一些惡意活動保持高度警惕。Block.one在文中表示,Block.one公司的任何人都不會通過電話或電報、電子郵件、網站或任何其他形式來要求用戶透露私鑰、代幣、密碼或其他個人信息。[2019/1/29]
8.把1.501miMATIC兌換成1.433USDC。
9.歸還8000WUSDC和80080USDC的手續費,最凈獲得?1534750-80080=1454670?USDC
細節
攻擊者在攻擊之前通過CelerNetwork的cBridge跨鏈獲得了發起攻擊所需的gas。
通過流程第二步我們可以看出當時USDC和miMATIC的兌換率為約1:1.001,而通過流程第三步和第四步的?swap?后可以在第五步中看到USDC和miMATIC的兌換率變成了約1:0.163,所以我們需要重點分析?deposit?函數和?withdraw?中計算價格的問題。
聲音 | Monex首席執行官:未來將出現更適合付款的加密貨幣:據btcmanager報道,Monex集團首席執行官Oki Matsumoto表示,在不久的將來,將出現一種不穩定較低或者穩定的加密貨幣,會更適合付款。此外他還認為,日本目前的稅收制度是加密貨幣行業發展的重要障礙,日本監管機構和政策制定者需要提供有利的環境。[2018/8/22]
分析交易的Debugger,可以看到調用的是?depositSafe?函數。
查看?depositSafe?函數,其內部會調用?_deposit?函數,繼續跟進,發現在?_deposit?函數中又調用了?_doHardWorkAll?函數,最后?mint?OShare給攻擊者。
而在?_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:USDNCEANCONEUSDT幣下戴Narwhale.financePancakeLockbone幣最新消息
TheSBLock-up&Earn#1willlaunchat8:00UTConMar30atGate.io''s“HODL&Earn”.
1900/1/1 0:00:00相關文章: 智能合約養成日記合約狀態數據定義與方法實現Rust智能合約養成日記編寫Rust智能合約單元測試在本期Rust智能合約開發Blog中.
1900/1/1 0:00:00根據IRISnet(IRIS)官方消息,IRISnet(IRIS)計劃於區塊高度14301916,預計時間2022年3月29日13:30點升級到IRISHub1.3版本.
1900/1/1 0:00:00關於Gate.ioStartup免費空投計劃爲回饋平臺用戶,Gate.io上線“免費空投計劃”,在Startup區不定期進行區塊鏈項目的免費空投計劃.
1900/1/1 0:00:00根據BiggerEntertainment所有者StevenCooper的推文,自去年10月下旬以來,有2634億枚SHIB被銷毀,價值約630萬美元.
1900/1/1 0:00:00親愛的用戶: 為更好地踐行與發展壯大區塊鏈社區,幣安於2020年年初發起了「幣安隊長」項目。我們正在進行第二十五期幣安隊長招募計劃,誠邀社群群主、KOL、區塊鏈資深愛好者加盟.
1900/1/1 0:00:00