11月30日,鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,自動做市商協議MonoX遭閃電貸攻擊,獲利約3100萬美元。關于本次攻擊,成都鏈安技術團隊第一時間進行了事件分析。
事件概覽
攻擊發生之后,MonoX在官方推特確認其合約遭到攻擊,團隊正在調查并將盡最大努力追回被盜資金。
MonoX使用單邊代幣池模型,其使用vCASH穩定幣與AMM提供的代幣創建虛擬的交易對。簡單來說,MonoX創建的是代幣-vCASH交易對,添加流動性時,只需要添加代幣,進行任意代幣兌換時,兌換路徑為:代幣A->vCASH->代幣B,而不需要像Uniswap一樣經過多個交易對:代幣A->Pair1->Pair2->Pair3->TokenB。
事件具體分析
攻擊者使用相同的地址
0xEcbE385F78041895c311070F344b55BfAa953258對以太坊以及MATIC上的MonoX發起了攻擊,在兩個平臺進行攻擊所部署的合約一致。攻擊交易為:
以太坊研發者評Yam事件:對社區沒有進行盡職調查感到不安:8月13日,以太坊研發者Philippe Castonguay發推談論Yam事件稱,難以置信的魯莽。無論從好的方面還是壞的方面來說,在幾個小時內就將2.5億美元轉移到一個未經審計的項目,這絕對是超現實的。希望看到很多人損失資金,并將這次損失作為一個教訓。隨后,Philippe Castonguay再次發推為該言論道歉稱,他并不想傷害任何人,只是對社區沒有進行盡職調查感到不安。[2020/8/13]
以太坊:
0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299
MATIC:
0x5a03b9c03eedcb9ec6e70c6841eaa4976a732d050a6218969e39483bb3004d5d
由于兩個平臺代碼完全一致,下面的分析將基于以太坊上的攻擊交易進行。
Round1
將0.1WETH通過Monoswap中兌換為79.98609431154262101MONO;
聲音 | 法國密碼學專家:將用于莫斯科市政選舉的區塊鏈投票系統并不安全:一位法國密碼學專家的研究報告顯示,被用于莫斯科秋季市政選舉的一個區塊鏈投票系統很容易遭到黑客攻擊。法國政府科研機構CNRS的研究員Pierrick Gaudry在其論文中研究了這一基于以太坊的電子投票平臺的公共代碼。 Gaudry總結稱,部分代碼使用的加密方案“完全不安全”。(Coindesk)[2019/8/16]
圖1?WETH兌換MONO
Round2
移除Monoswap所有的流動性。這里利用了Monoswap合約中的任意地址流動性移除漏洞。
漏洞1:
Monoswap合約中未檢測流動性的所有者to是否為msg.sender。_removeLiquidity函數中,如圖2所示,第443行,獲取調用者(攻擊合約)最后一次添加流動性的時間戳,返回結果是0,因此第445行的檢測通過。第446行,topLPHolderOf如果不是調用者(攻擊合約)地址,第447行的檢測通過。此后移除流動性相關代碼中,再無msg.sender相關的操作。
動態 | 加拿大各銀行或因QuadrigaCX存在洗錢問題而感到不安:據cointelegraph消息,當地時間2月22日舉行的法庭聽證會上,蒙特利爾銀行以及審計公司的律師表示,加拿大各銀行對管理QuadrigaCX資金感到不安,理由是其資金來源的不確定性。加拿大商業銀行援引安永會計師事務所代理律師Elizabeth Pillon的話表示,QuadrigaCX或存在洗錢問題,因此并不責怪銀行猶豫不決。[2019/2/24]
圖2?_removeLiquidity源碼
圖3?第一次移除流動性內部調用細節
圖4?移除Monoswap中MONO池所有的流動性
動態 | Block.one發文“區塊鏈將作為密碼不安全性的解決方案”:據IMEOS報道,Block.one在中平臺發表文章“區塊鏈將作為密碼不安全性的解決方案”。文章主要描述密碼的不安全性和區塊鏈如何創建更安全,無密碼的體驗。提到,根據Deloitte 2018年的全球區塊鏈調查,84%的公司高管認為基于區塊鏈的解決方案比傳統的信息技術更加安全。[2019/2/1]
Round3
添加極少數量的MONO到Monoswap中,這一步是為了后面快速提升MONO的價格做準備。
圖5?攻擊合約添加流動性
Round4
利用Monoswap合約中的代幣兌換價格覆寫漏洞,反復進行同種代幣的兌換,拉升MONO的價格。第3步攻擊者將Monoswap合約中MONO的儲量控制到了一個極小的值,目的就是更快的以極低的MONO數量來拉升MONO的價格。
漏洞2:
以色列監管機構:加密貨幣用于消費并不安全:據外媒消息,近日以色列安全局(ISA)宣布,當加密貨幣僅用于消費時,還不符合安全標準,這意味著加密貨幣并沒有作為支付工具的權利。據了解,去年8月ISA成立了跨部門的委員會,以對ICO的監管進行審查。[2018/3/23]
Monoswap合約的代幣兌換過程為:檢查兌換參數是否正常,然后計算應輸入輸出代幣的數量以及代幣兌換后的價格,最后執行兌換操作并將新的代幣價格寫入賬本。以上邏輯在不同種代幣兌換的時候會正常運行。但是在同種代幣兌換時,將出現兩處問題:
在_getNewPrice函數計算應輸入輸出代幣數量時,未考慮到兌換過程中交易池代幣儲量的變更,同種代幣是基于相同的初始價格進行兌換后價格的計算。
在最后一步更新代幣過程中,未考慮到同種代幣進行兌換時,兌出代幣的價格更新操作會覆蓋兌入代幣更新的操作。該漏洞導致MONO代幣兌換MONO代幣時,MONO的價格異常增長。此外不止攻擊者使用的swapExactTokenForToken函數存在該問題,swapTokenForExactToken函數也存在該問題。
圖6?swapIn函數源碼
圖7?兌換過程參數計算
圖8?兌換后價格計算
圖9?swapOut函數源碼
現在看看攻擊者是如何利用漏洞2進行攻擊的:
如圖10所示,初始MONO的價格為5.218vCASH/MONO。
圖10?初始MONO價格
然后攻擊者反復進行MONO->MONO的兌換,一共進行了55次兌換,如下圖所示:
圖11?反復兌換,拉升MONO價格
對其中一筆兌換交易進行分析,每次兌換的數量是交易池中MONO的總量減去1,這是能夠最大提升MONO價格的兌換數量(使圖8?_getNewPrice第527行,分母為1)。另外由于交易池中MONO的總量較低,攻擊者已經通過第1步保證了有足夠的余額進行兌換操作。
圖12?MONO兌換細節
截止至兌換結束時,MONO的價格已經被拉升至843,741,636,512.366vCASH/MONO。攻擊合約中剩余51.92049285389317MONO。
圖13?最終的MONO價格
通過UniswapV2的USDC/WETH池借入了847.2066974335073WETH。然后攻擊者通過Monoswap將0.0709532091008681MONO兌換為4,029,106.880396USDC,然后將USDC歸還給USDC/WETH池。注意,這里實際上是攻擊者將從Monoswap中兌換的USDC到UniswapV2中兌換為WETH,而不是閃電貸攻擊。
攻擊者所有轉出的資產如下:
所有被盜資產全部發送到
0x8f6a86f3ab015f4d03ddb13abb02710e6d7ab31b地址。
目前項目方已經和攻擊者進行了溝通,成都鏈安將持續對此事件進行監控。
事件復盤
這次攻擊事件中,攻擊者利用了合約中的兩個漏洞:任何地址都可以任意移除指定地址的流動性;特殊情況下的價格寫入操作覆蓋問題。
建議項目方在進行合約開發過程中做好權限的檢查;在開發以及測試過程中將特殊情況納入考慮,例如同種代幣轉賬。
Tags:MONONOMONOSWAPmongoose幣有潛力嗎kono幣創始人Monopoly Millionaire GameLoopSwap
元宇宙的興起帶火了科幻小說,元宇宙的概念本身就出自科幻小說,而虛擬空間、去中心化組織、增強現實技術、人工智能以及沉浸式游戲等元素在科幻小說里更是栩栩如生.
1900/1/1 0:00:00近日,SushiSwap內訌事件引起加密社區的廣泛關注,SushiSwapCTOJosephDelong最終選擇離職來平復社區的不滿情緒.
1900/1/1 0:00:00資產管理公司Bitwise發布了一份題為《去中心化金融:專業投資者入門》的報告。報告指出,盡管數字技術重塑了許多行業,但并未重塑金融.
1900/1/1 0:00:00虛擬?現實? EpicGames的游戲技術,又讓人“傻傻分不清”了: 以為就是一個真人小哥赤身耍大寶劍?不不不,有時候“眼見”可能還真不能“為實”.
1900/1/1 0:00:0012月6日,國家語言資源監測與研究中心發布“2021年度十大網絡用語”,元宇宙一詞赫然于列。大廠入場元宇宙不足為奇,但元宇宙赫然成為網絡十大熱詞之一,可以想象該詞及背后的信息在網絡中被傳播所達到.
1900/1/1 0:00:00元宇宙或將成為繼PC互聯網、移動互聯網之后的“下一代互聯網”?因為頭頂籠罩如此光環,元宇宙在2021年迅速成為全球的“頂流”話題,甚至2021年也被冠以“元宇宙元年”之名.
1900/1/1 0:00:00