11月30日,鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,自動做市商協議MonoX遭閃電貸攻擊,獲利約3100萬美元。關于本次攻擊,成都鏈安技術團隊第一時間進行了事件分析。
事件概覽
攻擊發生之后,MonoX在官方推特確認其合約遭到攻擊,團隊正在調查并將盡最大努力追回被盜資金。
MonoX使用單邊代幣池模型,其使用vCASH穩定幣與AMM提供的代幣創建虛擬的交易對。簡單來說,MonoX創建的是代幣-vCASH交易對,添加流動性時,只需要添加代幣,進行任意代幣兌換時,兌換路徑為:代幣A->vCASH->代幣B,而不需要像Uniswap一樣經過多個交易對:代幣A->Pair1->Pair2->Pair3->TokenB。
事件具體分析
攻擊者使用相同的地址
0xEcbE385F78041895c311070F344b55BfAa953258對以太坊以及MATIC上的MonoX發起了攻擊,在兩個平臺進行攻擊所部署的合約一致。攻擊交易為:
趙長鵬:“加密貨幣不安全”是誤解,可信加密服務的安全性優于傳統金融:3月15日消息,幣安CEO趙長鵬推特發文稱,“加密貨幣不安全”這一說法是不正確的。事實上,區塊鏈的透明度是一個特性,而不是一個漏洞。可信加密服務和平臺已經具有與傳統金融相當甚至更好的安全性/KYC/AML。[2023/3/15 13:04:55]
以太坊:
0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299
MATIC:
0x5a03b9c03eedcb9ec6e70c6841eaa4976a732d050a6218969e39483bb3004d5d
由于兩個平臺代碼完全一致,下面的分析將基于以太坊上的攻擊交易進行。
Round1
將0.1WETH通過Monoswap中兌換為79.98609431154262101MONO;
馬斯克:Signal 是最不安全的消息服務:金色財經報道,跨平臺消息應用Signal創始人Moxie Marlinspike近日在社交媒體上表示Telegram并不安全,上面的消息其實并不會加密并稱大多數人認為Telegram是一個加密應用程序,但現實情況恰恰相反,其默認情況下是一個云數據庫,其中包含每個人曾經發送/接收的每個消息的明文副本。對此,伊隆·馬斯克表示自己并不認同Moxie Marlinspike的觀點并質問他“是否確認Signal是安全的”,Moxie Marlinspike回復稱Signal所有通信都是 e2ee,默認群組也是加密的,但馬斯克隨后表示:Signal 是最不安全的消息服務。[2022/2/26 10:17:20]
圖1?WETH兌換MONO
Round2
移除Monoswap所有的流動性。這里利用了Monoswap合約中的任意地址流動性移除漏洞。
漏洞1:
Monoswap合約中未檢測流動性的所有者to是否為msg.sender。_removeLiquidity函數中,如圖2所示,第443行,獲取調用者(攻擊合約)最后一次添加流動性的時間戳,返回結果是0,因此第445行的檢測通過。第446行,topLPHolderOf如果不是調用者(攻擊合約)地址,第447行的檢測通過。此后移除流動性相關代碼中,再無msg.sender相關的操作。
Chia創始人:Hpool 正使用不安全的協議,但Chia區塊鏈本身仍是安全的:Chia創始人Bram Cohen在推特表示,顯然,中國用戶現在對 Chia 產生了某種恐慌。雖然現在甚至不清楚什么主張正在被提出,但這里有一些要重申的要點:網絡不是僅僅信任用戶聲稱其本地機器擁有多少空間。愚弄農民使其認為還有很多空間并不重要,重要的是這并不意味著其會對網絡產生欺騙;新的、更快的plotter不會對網絡安全構成威脅,它只是讓plotting更快、更方便,這是一件好事。網絡受空間保護,而不是plotting速度;Hpool 正在使用一種根本不安全的協議;Chia 中出塊的速度是完全正常的,并且它們中的空間證明可以被檢查出來,區塊鏈本身仍然是安全的;最近的Chia價格下跌似乎是因為加密市場價格整體下跌和中國內部對“安全”的不合理恐慌。我不知道這種恐慌是由某人故意欺詐還是只是愚蠢引起的;我們不會幫助 Hpool 改進他們的協議。我們完全專注于構建一個真正安全的協議,一旦完成,Hpool將能夠像其他協議一樣使用它。[2021/6/13 23:33:44]
Gavin Wood撰文回應雪崩協議質疑:雪崩協議不安全也無可拓展性:金色財經報道,7月28日,雪崩協議一名成員收集了雪崩協議社區內部一些對波卡的質疑,發布在了波卡 Riot 官方群,個中不乏對波卡可拓展性、插槽機制、跨鏈性能的貶損。Polkadot 聯合創始人Gavin Wood對此事的回應,雪崩協議所謂的子網安全性和波卡的共享安全性完全不是一回事。何談性能上的比較。實際上,雪崩協議類似一個中心化的Cosmos,由選出來的重疊的驗證人組充當了子網安全性。這將導致整個系統內各個鏈間的安全性有極大的不均。跨分片攻擊是可行的,因為來自一個(低安全性)鏈的消息可以導致另一個(更安全的)子網上的狀態遷移。這樣一來整個網絡的安全性就等同于安全性最差的那個鏈。
跟 Cosmos 的問題一樣,任何試圖設計一個中央區域以執行敏感邏輯的解決方案都會遇到可拓展性瓶頸,且會讓一部分鏈劣化為狀態轉換無法信任的二等公民。不管程序在哪個鏈上執行,都有同等級的安全性保障,這才是一個可拓展的系統。
綜上,雪崩協議并不安全,也不具備可拓展性。[2020/7/29]
圖2?_removeLiquidity源碼
聲音 | 法律人士:境內虛擬貨幣交易平臺的運營團隊選擇“出海”并不安全:11月23日,中國經營報日刊文“嚴打非法集資 監管摸排整治虛擬貨幣”。文章表示,有行業人士稱,為“安全”起見,境內虛擬貨幣交易平臺的運營團隊會選擇“出海”,在國內只留下純技術開發團隊。針對上述行業人士的觀點,有法律人士告訴記者,這種情形就是掩耳盜鈴,所謂的“安全”并不安全。我國對于ICO行為的管轄形成了一個閉環,留下技術人員并不能解決問題,技術人員也是幫助犯罪的行為,那就當然歸屬于屬地管轄。即使全體都是海外人員,也會落入到屬人管轄范圍內。再進一步,交易所有關人員徹底放棄中國國籍,也可能掉入到保護管轄范圍。最后,如果涉及洗錢,反恐領域,普遍管轄也會兜底。[2019/11/23]
圖3?第一次移除流動性內部調用細節
圖4?移除Monoswap中MONO池所有的流動性
Round3
添加極少數量的MONO到Monoswap中,這一步是為了后面快速提升MONO的價格做準備。
圖5?攻擊合約添加流動性
Round4
利用Monoswap合約中的代幣兌換價格覆寫漏洞,反復進行同種代幣的兌換,拉升MONO的價格。第3步攻擊者將Monoswap合約中MONO的儲量控制到了一個極小的值,目的就是更快的以極低的MONO數量來拉升MONO的價格。
漏洞2:
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地址。
目前項目方已經和攻擊者進行了溝通,成都鏈安將持續對此事件進行監控。
事件復盤
這次攻擊事件中,攻擊者利用了合約中的兩個漏洞:任何地址都可以任意移除指定地址的流動性;特殊情況下的價格寫入操作覆蓋問題。
建議項目方在進行合約開發過程中做好權限的檢查;在開發以及測試過程中將特殊情況納入考慮,例如同種代幣轉賬。
十一月中旬,競核首次記錄元宇宙之父尼爾·史蒂文森與麻省理工學院計算機科學家萊克斯·弗里德曼對話。他們討論了技術性質,史蒂文森前老板杰夫·貝索斯及馬斯克。關于探索宇宙,他們保持審慎的樂觀.
1900/1/1 0:00:00元宇宙或將成為繼PC互聯網、移動互聯網之后的“下一代互聯網”?因為頭頂籠罩如此光環,元宇宙在2021年迅速成為全球的“頂流”話題,甚至2021年也被冠以“元宇宙元年”之名.
1900/1/1 0:00:00《共識層進展更新》系列文章為原來的《Eth2進展更新》質押者們,請盡快升級你們的Eth1節點!ArrowGlacier升級將在區塊高度13,773,000進行.
1900/1/1 0:00:00為迎接2022年北京冬奧會,積極響應國家大力推廣冰雪運動號召,倡導全民低碳綠色健康的生活方式,推廣普及數字人民幣應用.
1900/1/1 0:00:00鏈上數據分析機構Glassnode今日分析了上周末的比特幣暴跌事件。1、2021年12月4日Bitcoin期貨市場經歷了重大的去杠桿化事件,超過54億美元的未平倉合約關閉.
1900/1/1 0:00:00如何加入一個DAO 你想加入一個DAO。歡迎!你會有很多志同道合的伙伴。在這篇文章中,我們將簡要介紹如何開啟DAO之旅的第一步.
1900/1/1 0:00:00