錢包網站安全漏洞測試服務詳情

網站安全發表於2019-05-29

區塊鏈是目前比較火熱的話題,縱身而出的虛擬幣也越來越多,比特幣,以太坊,瑞波幣,萊特幣,狗狗幣,門羅幣都是基於區塊鏈而生的虛擬貨幣,在監管以及匿名,安全方面受到眾多人的喜歡,很多虛擬幣交易平臺,以及交易所網站也越來越多,國內像火幣網,幣安,位元兒,幣行網,可贏可樂都是目前較火的交易所。

錢包網站安全漏洞測試服務詳情

目前我們SINE安全在對虛擬貨幣進行安全檢測以及安全分析,關於2018年以太坊被爆出的合約漏洞,我們來詳細的跟大家介紹一下,首先檢視之前的以太坊程式碼,對其仔細的人工檢查發現該以太坊漏洞主要是程式設計師在設計程式碼的時候,對合約安全進行判斷出了差錯,導致攻擊者利用繞過判斷進行攻擊。

我們看下合約程式碼:截圖如下

錢包網站安全漏洞測試服務詳情

從上面的合約程式碼看出,程式碼的主要功能是對轉幣的函式,以及虛擬幣賬戶的餘額,使用者授權操作,以及提幣操作函式的,在整個程式碼中使用判斷來進行約束以太坊幣的交易狀態,從第188行裡還看到使用了一些場外交易中的外幣功能,使用該函式可以將外幣統一起來提幣到錢包地址進行轉賬操作。那漏洞是怎樣發生的呢?該如何安全防範?我們接下來繼續講:

上面提到的函式是使用者在轉幣的過程中,對傳入的引數值沒有進行金額的大小限制,不管多少金額都可以轉到使用者的錢包中去,如果轉幣的金額達到5以上就會自動的對虛擬幣金額進行設定,有一套以太坊自己的演算法,將自身錢包餘額加上這個金額就等於目前錢包的所有金額,漏洞的發生也在這裡。

轉賬使用的是token機制,每個使用者的token值都不一樣,我們側重的看下轉賬功能函式,由於轉賬函式處理演算法中出現安全問題才導致了漏洞的發生。看如下圖:

錢包網站安全漏洞測試服務詳情

上面的圖片程式碼主要功能是轉賬,轉幣,我們看下程式碼裡寫的判斷條件,當轉幣人自身的金額大於轉幣的金額的時候,引數值會為1,並有個附加條件就是要滿足這個balances的值為0.能滿足這個條件的只有溢位引數了。我們來測試看下圖:

達到這個條件就是 轉幣人的餘額要小於轉幣的金額。每次轉幣都會導致賬戶多出很多幣來,針對於這種以太坊漏洞合約的程式設計師真應該好好的檢查反省自己的程式碼邏輯判斷問題,由於判斷條件寫的太過於疏忽才導致該虛擬幣漏洞的發生,很容易被攻擊者用來入侵,轉幣等危險的操作。

關於虛擬幣交易平臺安全防護方面,建議程式設計師在設計程式碼過程中,多次的測試,在上線之前找專業的網站安全公司進行安全滲透測試,對漏洞測試,漏洞挖掘,多層面的找漏洞,直到沒問題,再投入到平臺當中去,使整個虛擬貨幣更加的安全規範化,國內也就SINE安全,綠盟,啟明星辰等安全公司比較專業一些。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542418/viewspace-2646004/,如需轉載,請註明出處,否則將追究法律責任。

相關文章