By:小白@慢霧安全團隊
2022 年 3 月 21 日,據慢霧區消息,OneRing Finance 存在嚴重漏洞遭到攻擊,黑客獲利約 1,454,672.244369 USDC(約 146 萬美元),慢霧安全團隊第一時間介入分析,并將結果分享如下:
相關信息
OneRing Finance 是一個去中心化應用程序(DApp),它支持加密貨幣的質押挖礦。用戶可以存入代幣來獲取收益。
以下是本次攻擊涉及的相關地址:
攻擊者地址:
0x12efed3512ea7b76f79bcde4a387216c7bce905e
攻擊交易:https://ftmscan.com/tx/0xca8dd33850e29cf138c8382e17a19e77d7331b57c7a8451648788bbb26a70145
攻擊合約:
0x6a6d593ed7458b8213fa71f1adc4a9e5fd0b5a58
韋氏評級:Paul Tudor Jones至少投資2.1億美元比特幣:加密評級機構韋氏評級(Weiss Crypto Ratings)發推稱,上周我們了解到傳奇交易員、福布斯美國400富豪榜入選者Paul Tudor Jones向比特幣投入至少2.1億美元。現在灰度有效地將賭注加倍。顯然,“聰明的錢”認為未來加密貨幣價格將大幅上漲——我們也是這么想的。[2020/5/29]
被攻擊合約:
OneRingVault:0xc06826f52f29b34c5d8b2c61abf844cebcf78abf
攻擊核心點
OneRing 直接使用了 Pair 中的 reserves 參與 OShare 的價格計算,攻擊者利用 OneRingVault 正常的業務邏輯進行巨額的 Swap 操作產生的大滑點,使得 Pair 中的 reserves 非預期的增加,從而拉高了 OShare 的價格,導致相同數量的 OShare 可以取出更多的資金。
具體細節分析
動態 | Block.one CEO BB 澄清Coindesk不實新聞:根據EOSGO消息,最近有流言聲稱EOS VOICE不會在EOS上啟動。 同時,在過去的24小時內,Coindesk剛剛發表了Brady Dale撰寫的一篇文章,試圖對EOS進行詆毀。
該文章的標題是“B1不會在EOS上啟動自己的社交網絡”。 該作者想要錯誤傳達,B1甚至不會相信自己的產品。推特甚至過激形容:B1不愿意吃自己制作的狗食。自從文章發表以來,西方和東方社區爭論不斷。
然而,真實的意見是: Voice在FAQ解答中詳細提到,初步Beta版本在測試網,接下來會轉移到EOS主網。由于該軟件仍將在Beta版本上運行,因此這一過程實際上是完全可以理解的。
Block.one CEO BB 發推表示:2月14日是一個技術測試版,技術將會進行測試和迭代。以保證真正發布到公鏈后產品的成熟性,從而提高對審查制度的抵抗力。 我們告訴Coindesk知道他們的文章具有誤導性,但是Coindesk拒絕修改。( IMEOS)[2020/1/18]
1. 攻擊者構造了攻擊合約,利用閃電貸從 Solidity 借出 80000000 個 USDC 到攻擊合約中
Blokc.one團隊回復bug,將在下一個版本修復:據IMEOS消息,Block.one團隊回復用戶投票后無法贖回的bug事件,官方表示此為非安全性漏洞,會在下一個版本修復。[2018/6/22]
2. 接著通過 swap 函數將 1 個 USDC 兌換成 miMatic 代幣,這里可以看到當前代幣兌換率是 1:1.001109876698508218
3. 調用 depositSafe 函數將 79,999,997($80,079,997.00)個 USDC 充值進合約
HHT.ONE交易平臺幣種下線公告:HHT.ONE交易平臺將在2018年03月31日下線VIP、FTB、ZBC、BDS、PIX、CCT、CAN交易。[2018/3/30]
這里 depositSafe 函數會內部調用 _deposit 函數,_deposit 函數會調用 _doHardWorkAll 函數,在該函數中會使用 for 循環將部分存入的 USDC 全部兌換成其他的代幣
然后 depositSafe 將約 41,965,509.691846094312718922 個 OShare 代幣 mint 給攻擊者。此時我們可以看到 OShare 的價格是 1062758591235248117 這個值
開發進度提前!block.one發布EOS.IO 應用測試網絡:block.one今日宣布,EOS.IO@EOSGroup 單線程應用測試網絡(“EOS STAT”)正式發布。此次發布使得EOS.IO的開發進度比計劃提前了,確保EOS.IO能在2018年6月1日成功發布。[2017/12/4]
從下面這張圖中可以看出在 swap 后攻擊者使用兩個 USDC 再次兌換 miMATIC 代幣時此時的兌換率已經產生巨大變化:
4. 然后調用 withdraw 函數。我們可以看到 withdraw 函數也調用了getSharePrice 函數進行 OShare 的價格計算
我們來看 getSharePrice 函數:
這里調用了 balanceWithInvested 函數,繼續跟進發現調用了 investedBalanceInUSD 函數:
這里可以看到最終影響價格的是 getUSDBalanceFromUnderlyingBalance 函數
在 getUSDBalanceFromUnderlyingBalance 函數中我們可以看到,該函數使用合約中兩個代幣的數量? _reserves0 和 _reserves1 這兩個值進行計算,由于之前的 swap 導致大量的 USDC 留在池子中,所以導致池子中的 USDC 數量變大,從而使 _amount 變大,這就導致了 getSharePrice 函數獲取到的當前 OShare 的價格變大了
由下圖我們可以看到當前的 OShare 的價格為 1136563707735425848 這個值:
從下面的 withdraw 函數中可以看出最終的提現數量是通過 _withdraw 進行計算得出的
跟進去后發現 _toWithdraw 也是由 balanceWithInvested 計算得出的,這也就導致這個值變大
然后會在這一步將攻擊者持有的 41965509 個 OShare 兌換為 81534750101089 個 USDC
5. 攻擊者歸還閃電貸后獲利離場
MistTrack
據慢霧 MistTrack 分析,攻擊者將獲利的部分 USDC 換成 FTM、ETH,最后將 USDC、ETH 跨鏈到以太坊。同時,以太坊上黑客地址初始資金來自于 Tornado.Cash 轉入的 0.1 ETH,接著黑客將 521 ETH 轉入 Tornado.Cash。
截止目前,黑客以太坊地址仍有近 4.5 萬美元,包括 14.86 ETH 和 100.29 USDC。慢霧 MistTrack 將持續監控黑客地址。
總結
本次攻擊是由于在 MasterChefBaseStrategy 合約中的 getUSDBalanceFromUnderlyingBalance 函數實時儲備量進行計算導致攻擊者可以利用閃電貸制造巨大差值從而獲利。慢霧安全團隊建議在進行 share 的價格計算時不要使用實時儲備量進行計算,避免再次出現此類事故。
近幾年,NFT作為一種獨特、稀缺、有趣的資產類別,火速席卷了各大圈子,誰也未曾料到,這場最初只是技術在藝術圈的小試牛刀,卻造就了現如今「NFT可萬物」的景象.
1900/1/1 0:00:0010月23日,在金色財經成立四周年之際,特別策劃——“同行者”線上區塊鏈高峰論壇開啟,論壇為期6天,其間大咖云集,全方位解讀行業.
1900/1/1 0:00:00百度首先推出了百度超級鏈錢包,阿里巴巴也在支付寶推出螞蟻鏈粉絲粒(后改為鯨探),騰訊先后推出幻核和TME數字藏品(QQ音樂內).
1900/1/1 0:00:00歐洲央行(ECB)在推特上發布了其主席Mario Draghi在參加央行組織的“歐洲央行青年對話(ECB Youth Dialogue)”活動時與青年人的對話視頻.
1900/1/1 0:00:00原文作者: Living Opera 貢獻者:Shaun 審核者:DAOctor 原文: Pricing Tokens in a Web3 Economy 根據Stat.
1900/1/1 0:00:00原文鏈接: https://blog.chain.link/levels-of-data-aggregation-in-chainlink-price-feeds-zh/ 智能合約決定了鏈上協議.
1900/1/1 0:00:00