前言
11月30日,知道創宇區塊鏈安全實驗室?監測到自動做市商協議MonoX.Finance遭黑客攻擊,損失超3100萬美元。實驗室第一時間跟蹤本次事件并分析。
簡述攻擊流程
本次攻擊分析選用以太坊交攻擊交易:
0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299
1、黑客首先通過swapExactTokenForToken函數將0.1WETH兌換為79.9MONO
Base與Backdrop推出100 Builders,幫助開發者在Base上構建開源技術:金色財經報道,Base宣布與Backdrop合作推出100 Builders,旨在幫助更多人在Base上構建開源,創造更多更好的開源技術,該計劃對構建者免費,建設者可獲得超過 4 萬美元的獎金,申請截止日期為 2023 年 8 月 10 日,計劃啟動日期為 2023 年 8 月 21 日。[2023/8/9 21:33:04]
2、重復利用函數removeLiquidity移除Monoswap合約中的流動性,直至全部移除
3、通過函數addLiquidity添加自己操控的流動性
香港存保會:虛擬資產屬投資工具不會納入存款保障范圍:金色財經報道,香港存款保障委員會(存保會)今日發布公眾咨詢文件提出多項優化措施,旨在改進存款保障計劃,包括建議將存款保障額度從目前的50萬元提高到80萬元,上調幅度高達60%。香港存保會總裁何漢杰表示已與銀行進行初步溝通,銀行對這一舉措的反應是積極的,但近年興起的虛擬資產,屬于一種投資工具,不會被納入保障范圍。(Investing)[2023/7/13 10:53:13]
4、重復調用函數swapExactTokenForToken實現MONO->MONO的不合理兌換
美國聯邦存款保險公司:第一共和銀行辦公室將以摩根大通分支機構的身份重新開業:金色財經報道,美國聯邦存款保險公司表示,第一共和銀行辦公室將以摩根大通分支機構的身份重新開業,第一共和國銀行在8個州的84個辦事處將于今日重新開業。存款將繼續得到美國聯邦存款保險公司的保險,客戶不需要改變他們的銀行關系,以保留他們的存款保險覆蓋范圍達到適用的限制。除了承擔所有存款,摩根大通同意購買第一共和銀行幾乎所有的資產;據估計,存款保險基金的成本約為130億美元。[2023/5/1 14:37:11]
5、最終利用被以上操作抬高價格的MONO兌換了WETH、WBTC、MONO、USDC、USDT、DUCK、MIM、IMX等從而獲利。
數據:2684枚BTC從未知錢包轉到Coinbase:金色財經報道,據WhaleAlert監測數據,2684枚BTC(46,131,744美元)從未知錢包轉到Coinbase。[2022/12/1 21:15:11]
漏洞成因分析
分析攻擊流程可以發現兩個不合理的地方:
攻擊者可以通過函數removeLiquidity移除了其他人添加的流動性
攻擊者通過函數swapExactTokenForToken不斷重復MONO兌換MONO的操作
檢查源碼
對函數removeLiquidity源碼進行分析
可以看到函數removeLiquidity和它包含的內部函數_removeLiquidityHelper都沒有對調用者進行權限限制,以及對需要被移除流動性的傳參地址to進行驗證,這導致了任意地址都能進行對該pool內所有流動性進行移除
對函數swapExactTokenForToken源碼進行分析
1、發現函數swapExactTokenForToken主要功能由函數swapIn實現,對函數swapIn進行跟進分析
2、發現獲取token信息的函數getAmountOut,對函數getAmountOut進行跟進分析
3、發現tokenInPrice與tokenOutPrice的計算規則相同都是通過函數_getNewPrice計算,跟進到函數_getNewPrice
4、發現price的獲取對應兩種狀態
SELL狀態:價格=代幣初始價格*代幣存儲量/(代幣存儲量+費用)
BUY狀態:價格=代幣初始價格*代幣存儲量/(代幣存儲量-費用)
很明顯相同token在BUY狀態下獲取到的價格大于SELL狀態
5.回到swapIn函數,當傳入token價格被獲取到后會按照token種類通過_updateTokenInfo進行token信息更新。
由于傳入的token都為MONO所以:
當通過if(tokenIn==address(vCash))判斷時,MONO獲取到的價格是SELL狀態下計算的價格;
當通過if(tokenOut==address(vCash))判斷時,MONO獲取到的SELL狀態下的價格會被BUY狀態下獲取的價格覆蓋;
因此當發生MONO兌換MONO操作時,MONO的價格會上升。
重新梳理攻擊過程
第一步:黑客將0.1WETH兌換為79.9MONO作為啟動資金
第二步:黑客移除了pool內全部流動性,防止攻擊受到影響或者價格波動被檢測到
第三步:黑客添加了自己控制的流動性,便于兌換操作
第四步:黑客通過重復MONO兌換MONO的操作,不斷抬高MONO價格
第五步:利用已經被抬高的MONO兌換pool內其他資產達到獲利目的
總結
本次安全事件問題其實并不復雜,主要原因在于monoswap合約在設計時沒考慮到特殊情況下的價格覆蓋問題,而可任意移除流動性的缺陷則更加方便黑客對于價格的操縱。
來源:金色財經
官方公告,JuggerSWAP新質押池即將上線,JuggerSWAP是JGN的質押平臺,最初是在以太坊上推出的.
1900/1/1 0:00:00偉大的冒險通常是無限游戲。無限游戲的目的不是贏得游戲,而是讓不斷永不停止。無限基金通過投資其子游戲來投資無限游戲,存在幾種方法可以使用Web3技術建立和改進無限資金,風險資本的范式正在向無限主義.
1900/1/1 0:00:00點擊上方“藍色字”可關注我們!暴走時評:今年以來,ETH的表現已經超過BTC230%。而且衍生品數據表明,交易員們認為這個山寨幣還有很大的上升空間.
1900/1/1 0:00:00Torah主網上線后VP的釋放規則?Torah漩渦節點獎勵所得,在激活節點的150天內,每天可以不限次數提取收益余額的20%,超出150天,可以100%提取獎勵所得,不含激活鑰匙的數量部分.
1900/1/1 0:00:00近期游戲類融資十分火爆,從FootprintAnalytics的數據看到在2020年還處于末位,在2021年游戲類已經排名首位,占據了所有投資筆數中近13%的份額.
1900/1/1 0:00:00OpenSea是最大的NFT市場,憑借先發優勢,現在每個月處理著幾十億美元的交易,幾乎處于壟斷地位。所以這也出現了很多OpenSea的挑戰者.
1900/1/1 0:00:00