前言
11月30日,知道創宇區塊鏈安全實驗室?監測到自動做市商協議MonoX.Finance遭黑客攻擊,損失超3100萬美元。實驗室第一時間跟蹤本次事件并分析。
攻擊涉及信息
此次安全事件共有兩次攻擊分別發生在以太坊和polygon上。
簡述攻擊流程
本次攻擊分析選用以太坊交攻擊交易:0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299
1、黑客首先通過swapExactTokenForToken函數將0.1WETH兌換為79.9MONO
2、重復利用函數removeLiquidity移除Monoswap合約中的流動性,直至全部移除
數據:Arbitrum日交易數連續六日超越以太坊:金色財經報道,Dune Analytics數據顯示,自3月21日起,Arbitrum日交易數已連續六日超越以太坊,其中3月23日ARB上線時Arbitrum日交易數接近273萬筆,是以太坊同日交易數(108萬筆)的2.5倍。[2023/3/27 13:28:28]
3、通過函數addLiquidity添加自己操控的流動性
4、重復調用函數swapExactTokenForToken實現MONO->MONO的不合理兌換
5、最終利用被以上操作抬高價格的MONO兌換了WETH、WBTC、MONO、USDC、USDT、DUCK、MIM、IMX等從而獲利。
漏洞成因分析
分析攻擊流程可以發現兩個不合理的地方:
億萬富豪Bill Ackman:硅谷銀行存款人或將在下周一/周二獲得約50%資金:金色財經報道,億萬富翁投資者Bill Ackman在社交媒體披露,來自一位他信任的消息源透露,硅谷銀行存款人或將在下周一(3月13日)/周二(3月14日)獲得約50%資金,余額將在未來3-6個月內根據實現價值獲得其他存款資金,如果這被證明是真的,預計從周一上午開始,大量沒有獲得存款保險的銀行將出現擠兌,任何公司都不會冒險損失一美元的存款,因為這種風險沒有回報。Bill Ackman認為,美國聯邦存款保險公司應該在亞洲開盤前的周日晚上保證所有銀行存款并暫停,運行流程以進行資本重組同時管理UST和MBS投資組合的清算,以將其再投資于短期UST,此外Bill Ackman表示自己沒有直接接觸過硅谷銀行。[2023/3/12 12:58:46]
攻擊者可以通過函數removeLiquidity移除了其他人添加的流動性攻擊者通過函數swapExactTokenForToken不斷重復MONO兌換MONO的操作
美SEC主席重申:PoS加密貨幣可能會受聯邦證券法規的約束:9月16日消息,美國證券交易委員會(SEC)主席Gary Gensler在以太坊完成合并之后表示,PoS加密貨幣可能會受到聯邦證券法規的約束。(華爾街日報)[2022/9/16 7:00:06]
檢查源碼
對函數removeLiquidity源碼進行分析
可以看到函數removeLiquidity和它包含的內部函數_removeLiquidityHelper都沒有對調用者進行權限限制,以及對需要被移除流動性的傳參地址to進行驗證,這導致了任意地址都能進行對該pool內所有流動性進行移除。
對函數swapExactTokenForToken源碼進行分析
1、發現函數swapExactTokenForToken主要功能由函數swapIn實現,對函數swapIn進行跟進分析
CoinShares:上周數字資產投資產品凈流出1700萬美元:8月15日消息,據CoinShares周報數據,上周數字資產投資產品凈流出 1700 萬美元,其中比特幣投資產品流出總額達 2100 萬美元,空頭比特幣出現小幅流入,總計 260 萬美元。上周,區塊鏈股票流入總額為 800 萬美元,表明市場情緒有所改善。從區域來看,資金流顯示意見分歧,流入歐洲交易所的資金總額為 2000 萬美元,而從美國交易所流出的資金總額為 3600 萬美元。[2022/8/15 12:26:49]
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合約在設計時沒考慮到特殊情況下的價格覆蓋問題,而可任意移除流動性的缺陷則更加方便黑客對于價格的操縱。
知道創宇區塊鏈實驗室官網
www.knownseclab.com
創宇存證平臺|知道創宇唯一指定存證平臺
創宇存證-可信數據,價值流轉
聯系我們
blockchain@knownsec.com
知道創宇區塊鏈安全實驗室導航
微信公眾號
@創宇區塊鏈安全實驗室
官方網站
@知道創宇區塊鏈安全實驗室
微博
@知道創宇區塊鏈實驗室
https://weibo.com/BlockchainLab
知乎
@知道創宇區塊鏈安全實驗室
https://www.zhihu.com/org/zhi-dao-chuang-yu-qu-kuai-lian-an-quan-shi-yan-shi
@KS_Blockchain
https://twitter.com/KSBlockchain
Tags:ONOTOKENMONOTOKEkono幣會下架嗎Fidex TokenMonopoly Millionaire GameSWE Token
著名行為藝術家蒼鑫聯合創作的《為無名山增高一米》行為藝術作品參加了第48屆威尼斯國際雙年展,獲得轟動,是中國當代行為藝術的經典之作,在中國當代藝術史上留有濃重的一筆。蒼鑫,著名行為藝術家.
1900/1/1 0:00:00NFTb很高興地宣布與Chimeras的合作,Chimeras是一個令人激動的免費游戲,并通過整合DeFi耕作和NFTs來獲得收入.
1900/1/1 0:00:00區塊鏈行業的快速發展正推動著去中心化金融體系的建立。在多個細分業務里,Staking越發顯現出了巨大吸引力,正在成為機構投資者和散戶投資者青睞的投資選擇之一.
1900/1/1 0:00:00大約20年前,《軟件隨想錄》作者喬爾·斯波爾斯基(JoelSpolsky)創造了一個短語,此后為無數初創公司和科技巨頭的決策提供了依據:“互補品商品化”.
1900/1/1 0:00:00隨著DeFi和Gamefi的爆發,區塊鏈的數據日趨豐富。一方面各種應用或中間件需要快速獲取公鏈數據,一方面公鏈數據大爆發,兩者之間需要一個數據中間層作為連接器.
1900/1/1 0:00:00大家好我是Qq站長,最近上線僅六天的鏈上游戲,在OKExChain交易量,排名第二,他到底擁有什么樣的魅力。我們一起來解讀一下,這只鏈游市場里面的獨角獸.
1900/1/1 0:00:00