前言
11月30日,知道創宇區塊鏈安全實驗室?監測到自動做市商協議MonoX.Finance遭黑客攻擊,損失超3100萬美元。實驗室第一時間跟蹤本次事件并分析。
簡述攻擊流程
本次攻擊分析選用以太坊交攻擊交易:
0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299
1、黑客首先通過swapExactTokenForToken函數將0.1WETH兌換為79.9MONO
數據:某鯨魚將82976枚COMP轉入幣安:金色財經報道,據推特用戶余燼監測,年初抄底買入ETH/COMP/AAVE/UNI的鯨魚,10分鐘前將82976枚COMP(473萬美元)轉入了幣安。
他買入COMP的成本為40.24美元,7月19日他在鏈上出售4000枚COMP,剛才轉入幣安82976枚,綜合價格為57.8美元;預計利潤為125萬美元(收益率43%)。[2023/8/4 16:19:11]
2、重復利用函數removeLiquidity移除Monoswap合約中的流動性,直至全部移除
3、通過函數addLiquidity添加自己操控的流動性
Perpetual Protocol推出Smart Maker測試版功能,旨在優化執行價格并減少大額訂單的滑點:6月19日消息,去中心化永續合約協議Perpetual Protocol推出Smart Maker測試版功能,旨在優化執行價格并減少BTC、ETH、OP和PERP市場的大額訂單滑點。
據悉,Smart Maker利用場外交易(OTC)交易來加深Perp市場的流動性,單筆交易在一定范圍內為交易者提供流動性并代表他們執行訂單。在這些市場開大倉位(>10萬美元)時可以注意到執行價格和滑點明顯改善,每筆訂單金額必須在50萬美元或以下。[2023/6/19 21:46:14]
4、重復調用函數swapExactTokenForToken實現MONO->MONO的不合理兌換
Meta新聞發言人:華盛頓郵報有關該公司裁員、重組的報道“不屬實”:金色財經報道,Meta新聞發言人Andy Stone表示,華盛頓郵報有關該公司裁員、重組的報道“不屬實”。
早些時間報道,華盛頓郵報稱,Meta正準備進行新一輪裁員,委托人力資源、律師、金融專家和高管制定計劃,以縮小公司的層級,這次重組和裁員可能會影響數千名員工。 (彭博)[2023/2/23 12:23:47]
5、最終利用被以上操作抬高價格的MONO兌換了WETH、WBTC、MONO、USDC、USDT、DUCK、MIM、IMX等從而獲利。
漏洞成因分析
Bored Ape Kennel Club24小時交易額漲幅672.55%:金色財經報道,據NFTGo.io數據顯示,“無聊猿”衍生NFT項目Bored Ape Kennel Club系列NFT總市值達1.55億美元,在所有NFT項目總市值排名中位列第16;其24小時交易額為88.08萬美元,增幅達672.55%。截止發稿時,該系列NFT當前地板價為8ETH。[2022/7/10 2:02:39]
分析攻擊流程可以發現兩個不合理的地方:
攻擊者可以通過函數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合約在設計時沒考慮到特殊情況下的價格覆蓋問題,而可任意移除流動性的缺陷則更加方便黑客對于價格的操縱。
來源:金色財經
Tags:KENTOKETOKENONOSwirlTokenisstokenSmart Pharma TokenMonopoly Meta
12月9日,由中國移動通信聯合會及元宇宙產業委員會主辦,法國智奧承辦的“元宇宙:靈境與科學藝術”紀念錢學森先生誕辰110周年暨2021元宇宙產業論壇在京舉行.
1900/1/1 0:00:0012月10日晚八點,Formless鏈游觀察站迎來首期AMA《Formless鏈游觀察站之:BladeWarrior》.
1900/1/1 0:00:00??UniswapV3特殊的架構和機制引來了一個全新的賽道——流動性管理器,以幫助LP更好地適應“無窮變化”的Positions,賦予普通LP以強大的算法策略,將AMM全面帶入基金階段.
1900/1/1 0:00:00數字技術對于推動數字經濟高質量發展起著重要作用,區塊鏈作為一種數字技術,已經成為數字經濟發展的重要引擎.
1900/1/1 0:00:00俄羅斯和烏克蘭當局關閉了一些據稱由竊電供電的非法加密礦場。在首都基輔和莫斯科以及俄羅斯達吉斯坦共和國周圍發現了地下礦場.
1900/1/1 0:00:00這段時間,很多朋友都反映說郵箱和各種渠道都收到了火幣要求提幣的信息,且登火幣就會有清退提示的相關彈窗,并強行要求看5秒鐘。顯然,火幣的清退決心是堅定的.
1900/1/1 0:00:00