大意失荊州-- Uranium Finance合約升級漏洞事件分析

北京時間2021年4月28日,幣安智能鏈上區(qū)塊鏈項目 Uranium Finance 發(fā)推提醒用戶稱:Uranium 在流動性遷移過程中被攻擊,涉及資金為 5000 萬美元。提醒用戶停止交易,目前團(tuán)隊正在與幣安安全團(tuán)隊聯(lián)系。

隨后公開了攻擊合約地址:0x2b528a28451e9853F51616f3B0f6D82Af8bEA6Ae

大意失荊州-- Uranium Finance合約升級漏洞事件分析

通付盾區(qū)塊鏈安全團(tuán)隊(SharkTeam)第一時間對此事件進(jìn)行了攻擊分析和技術(shù)分析,并總結(jié)了安全防范手段,希望后續(xù)的區(qū)塊鏈項目可以引以為戒,共筑區(qū)塊鏈行業(yè)的安全防線。

一、事件分析

通過分析,Uranium 項目合約中的漏洞出現(xiàn)在 UraniumPair.sol 合約中的 swap 函數(shù)中,這個漏洞會導(dǎo)致任何人可以隨意的轉(zhuǎn)出合約中的數(shù)字資產(chǎn),而只需要付出一點(diǎn)點(diǎn)的代價。

合約地址在推文中沒有公開,我們是從攻擊合約中找到的項目合約地址,具體流程如下:

首先查看攻擊合約的代碼發(fā)現(xiàn),這個合約的源碼沒有公開,通過反編譯查看其源碼。

大意失荊州-- Uranium Finance合約升級漏洞事件分析

通過幣安智能鏈瀏覽器查看最早的攻擊交易:

0x5a504fe72ef7fc76dfeb4d979e533af4e23fe37e90b5516186d5787893c37991

可得到攻擊者調(diào)用的合約方法為52f18fc3。這是合約方法編碼后的值,從反編譯代碼中尋找這個編碼后的合約方法,可以找到這個合約攻擊的項目方合約地址,也就是 Uranium 項目所在的地址:0xa943ea143cd7e79806d670f4a7cf08f8922a454f。

大意失荊州-- Uranium Finance合約升級漏洞事件分析

大意失荊州-- Uranium Finance合約升級漏洞事件分析

首先看一下出問題UraniumPair.sol合約中swap的代碼:

大意失荊州-- Uranium Finance合約升級漏洞事件分析

可以看到 swap 中,最后是一個10的8次方數(shù)和一個10的6次方數(shù)的比較,這是一個幾乎是恒等的判斷,這就意味著只要按照一定的套路不斷的執(zhí)行 swap 函數(shù),就可以清空這個合約中所有的數(shù)字資產(chǎn)。深究原因,我們看到UniswapV2Pair.sol的合約中的寫法是相同的,但是它是兩個10的6次方數(shù)字的比較。

大意失荊州-- Uranium Finance合約升級漏洞事件分析

所以可以知道造成這次事件的原因應(yīng)該是項目方更新升級這個合約的時候,忘記了將后面的1000的2次方改為10000的二次方。

二、通付盾區(qū)塊鏈安全知識課堂

本次攻擊事件中,主要原因在于項目方更新升級合約時,改寫不夠全面,遺漏了重要的修改點(diǎn)。通付盾區(qū)塊鏈安全團(tuán)隊建議您,可以將1000這類在多處使用而且意義一致的常數(shù),可以聲明一個常量來使用,這樣調(diào)整起來就不會有疏漏。調(diào)整后應(yīng)該為:

大意失荊州-- Uranium Finance合約升級漏洞事件分析

這樣未來若有升級的需求,直接調(diào)整 Num 的值即可,就不會再出現(xiàn)遺漏修改,導(dǎo)致安全事故。同時,在項目上線之前請專業(yè)的智能合約審計機(jī)構(gòu)進(jìn)行嚴(yán)格的審計,保障智能合約和數(shù)字資產(chǎn)安全。

三、通付盾智能合約審計服務(wù)

區(qū)塊鏈智能合約安全關(guān)系用戶的財產(chǎn)安全,至關(guān)重要!在區(qū)塊鏈項目開發(fā)和運(yùn)營的各個階段適時引入合適的安全工具和服務(wù),為用戶的數(shù)字資產(chǎn)和項目安全發(fā)展提供保障已成為行業(yè)共識。通付盾作為國內(nèi)領(lǐng)先的區(qū)塊鏈安全服務(wù)提供商,為開發(fā)者提供智能合約審計服務(wù)。

n 智能合約自動化審計在通付盾云平臺上為用戶提供智能合約進(jìn)行自動化審計服務(wù)。運(yùn)用符號執(zhí)行、形式化驗(yàn)證等智能合約分析技術(shù),覆蓋高級語言、虛擬機(jī)、區(qū)塊鏈、業(yè)務(wù)邏輯四個層面一百多項安全風(fēng)險檢測項,保障智能合約安全運(yùn)行。

大意失荊州-- Uranium Finance合約升級漏洞事件分析

n 通付盾也為客戶提供高級別的區(qū)塊鏈安全服務(wù),區(qū)塊鏈安全專家團(tuán)隊7*24小時為智能合約提供全生命周期的安全保障,服務(wù)包括:VIP安全審計服務(wù)、VIP合規(guī)審計服務(wù)、安全事故應(yīng)急響應(yīng)等。

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )