曲速未來:門羅幣假充值漏洞分析區(qū)塊鏈
曲速區(qū):最近關(guān)于交易所的假充值漏洞層出不窮,很顯然,交易所與公鏈的對接并沒有我們想象得那么完善。在門羅幣的問題披露之后,然后對此進(jìn)行了相關(guān)回顧分析,供行業(yè)內(nèi)參考。
前言
最近關(guān)于交易所的假充值漏洞層出不窮,很顯然,交易所與公鏈的對接并沒有我們想象得那么完善。在門羅幣的問題披露之后,然后對此進(jìn)行了相關(guān)回顧分析,供行業(yè)內(nèi)參考。
在這之前,就已經(jīng)有消息說過瑞波幣(XRP)存在假充值漏洞(一個類似于之前披露的USDT及以太坊代幣假充值漏洞),已有真實攻擊在發(fā)生,一旦攻擊成功,會非常嚴(yán)重。而這個漏洞在14年的時候就已經(jīng)有進(jìn)行過披露了。
據(jù)發(fā)現(xiàn)門羅幣安全漏洞的研究人員稱,門羅幣存在一個允許從數(shù)字貨幣交易所中盜竊的漏洞。根據(jù)嚴(yán)重程度,該漏洞在可能的10中排名第9。Bug Bounty Hunter發(fā)現(xiàn)了Monero錢包中的漏洞。Jason Rhineland在HackerOne中提交了一篇文章,他披露了一個門羅幣的業(yè)務(wù)邏輯問題。
根據(jù)當(dāng)時的說法是修復(fù)了一個錢包余額顯示錯誤,這似乎無害,但這個錯誤也延伸到了交易所:例如,1 XMR充值到交易所,并且重復(fù)發(fā)送TX pubkey,交易所中會顯示收到了2 XMR存款,然后允許攻擊者從交易所的錢包中提取2 XMR。攻擊者可以反復(fù)利用這一點來吸取所有交易所的余額。
該漏洞允許網(wǎng)絡(luò)犯罪分子偽造交易數(shù)據(jù),以誘騙虛擬貨幣運營商的支持人員使用XMR手動記入其用戶帳戶。每增加一行代碼就會增加帳戶上顯示的Monero數(shù)量,讓員工不得不履行任何用戶手動處理交易的用戶。由于Monero中的Bug,Altex交易所遭受重大損失。基于門羅幣的幣也容易受到同樣的錯誤,正如加密貨幣運營商Altex的錢包中的ARQ幣的黑客行為所證明的那樣。
漏洞分析
該問題在今年6月11就已經(jīng)被用戶發(fā)現(xiàn),并在門羅幣的GitHub倉庫上提交了相關(guān)的問題。
該用戶稱他在執(zhí)行show_transfers out指令的時候客戶端給他返回了錯誤的轉(zhuǎn)賬數(shù)量,并表示非常怪異。
隨后,在當(dāng)天門羅幣的官方團(tuán)隊便對此進(jìn)行了修復(fù),并發(fā)布了修復(fù)的代碼。
右方的代碼為已修復(fù)的代碼,其實對于漏洞的修復(fù)關(guān)鍵代碼就是被紅框標(biāo)記的那一段。我們來細(xì)看一下。
以上便是最主要的修復(fù)代碼,大概意思是判斷當(dāng)前事務(wù)的pubkey是否在之前的pubkey中已存在,若已存在便跳過該事務(wù)。
若沒有加上這段代碼,會造成怎樣的后果呢?
每筆交易的pubkey的都是唯一的,所以若兩筆交易的pubkey一樣便意味這兩筆交易是完全一樣的重復(fù)交易,應(yīng)該在保留其中一筆交易之后其他的重復(fù)交易完全忽略。
攻擊者可以發(fā)送大量重復(fù)的交易給對方,這在門羅幣中是允許的,因為最終計算余額不會計算重復(fù)的交易,重復(fù)的交易會被忽略。但是由于該漏洞修復(fù)之前,門羅幣客戶端的show_transfers指令并沒有跳過重復(fù)的交易,所以每筆重復(fù)交易的轉(zhuǎn)賬金額也會被計算在內(nèi)并最終輸出出來。
也就是說,當(dāng)某個人或者交易所通過
show_transfers指令來確認(rèn)入賬資金的時候,便會出現(xiàn)問題,一個很常見的攻擊場景便是攻擊者對交易所的充值地址發(fā)送多條重復(fù)交易,若交易所校驗不嚴(yán)謹(jǐn)沒有檢測真實錢包收賬余額,僅僅通過show_transfers來確認(rèn)用戶充值的話,便會出現(xiàn)假充值漏洞,導(dǎo)致交易所給用戶充值的余額和交易所自己實際收到的余額不符,攻擊者假充值成功后可以進(jìn)行消費或提款。
曲速未來實驗室提醒:
交易所使用門羅幣客戶端v0.12.3.0或更高的版本來代替舊版本。
交易所加強(qiáng)充值驗證邏輯,例如錢包實際余額驗證。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。