摘要:北京時間2021年4月28日,幣安智能鏈上區塊鏈項目UraniumFinance發推提醒用戶稱:Uranium在流動性遷移過程中被攻擊,涉及資金為5000萬美元。提醒用戶停止交易,目前團隊正在與幣安安全團隊聯系。
北京時間2021年4月28日,幣安智能鏈上區塊鏈項目 Uranium Finance 發推提醒用戶稱:Uranium 在流動性遷移過程中被攻擊,涉及資金為 5000 萬美元。提醒用戶停止交易,目前團隊正在與幣安安全團隊聯系。
隨后公開了攻擊合約地址:0x2b528a28451e9853F51616f3B0f6D82Af8bEA6Ae
通付盾區塊鏈安全團隊(SharkTeam)第一時間對此事件進行了攻擊分析和技術分析,并總結了安全防范手段,希望后續的區塊鏈項目可以引以為戒,共筑區塊鏈行業的安全防線。
一、事件分析
通過分析,Uranium 項目合約中的漏洞出現在 UraniumPair.sol 合約中的 swap 函數中,這個漏洞會導致任何人可以隨意的轉出合約中的數字資產,而只需要付出一點點的代價。
合約地址在推文中沒有公開,我們是從攻擊合約中找到的項目合約地址,具體流程如下:
首先查看攻擊合約的代碼發現,這個合約的源碼沒有公開,通過反編譯查看其源碼。
通過幣安智能鏈瀏覽器查看最早的攻擊交易:
0x5a504fe72ef7fc76dfeb4d979e533af4e23fe37e90b5516186d5787893c37991
可得到攻擊者調用的合約方法為52f18fc3。這是合約方法編碼后的值,從反編譯代碼中尋找這個編碼后的合約方法,可以找到這個合約攻擊的項目方合約地址,也就是 Uranium 項目所在的地址:0xa943ea143cd7e79806d670f4a7cf08f8922a454f。
首先看一下出問題UraniumPair.sol合約中swap的代碼:
可以看到 swap 中,最后是一個10的8次方數和一個10的6次方數的比較,這是一個幾乎是恒等的判斷,這就意味著只要按照一定的套路不斷的執行 swap 函數,就可以清空這個合約中所有的數字資產。深究原因,我們看到UniswapV2Pair.sol的合約中的寫法是相同的,但是它是兩個10的6次方數字的比較。
所以可以知道造成這次事件的原因應該是項目方更新升級這個合約的時候,忘記了將后面的1000的2次方改為10000的二次方。
二、通付盾區塊鏈安全知識課堂
本次攻擊事件中,主要原因在于項目方更新升級合約時,改寫不夠全面,遺漏了重要的修改點。通付盾區塊鏈安全團隊建議您,可以將1000這類在多處使用而且意義一致的常數,可以聲明一個常量來使用,這樣調整起來就不會有疏漏。調整后應該為:
這樣未來若有升級的需求,直接調整 Num 的值即可,就不會再出現遺漏修改,導致安全事故。同時,在項目上線之前請專業的智能合約審計機構進行嚴格的審計,保障智能合約和數字資產安全。
三、通付盾智能合約審計服務
區塊鏈智能合約安全關系用戶的財產安全,至關重要!在區塊鏈項目開發和運營的各個階段適時引入合適的安全工具和服務,為用戶的數字資產和項目安全發展提供保障已成為行業共識。通付盾作為國內領先的區塊鏈安全服務提供商,為開發者提供智能合約審計服務。
智能合約自動化審計在通付盾云平臺上為用戶提供智能合約進行自動化審計服務。運用符號執行、形式化驗證等智能合約分析技術,覆蓋高級語言、虛擬機、區塊鏈、業務邏輯四個層面一百多項安全風險檢測項,保障智能合約安全運行。
通付盾也為客戶提供高級別的區塊鏈安全服務,區塊鏈安全專家團隊7*24小時為智能合約提供全生命周期的安全保障,服務包括:VIP安全審計服務、VIP合規審計服務、安全事故應急響應等。
隨著《周大生品牌年度盛典暨腕美串珠藝術節》的進行,周大生在一年終了之際向行業提交了一份“腕”美的年終...
12月22日,AIGC青年大學生就業創業促進行動成果展在深圳開幕,來自政府、企業、高校等各領域近50...
近日,在中國人民銀行公布的2023年度金融科技發展獎獲獎名單中,中國光大銀行信用卡中心(以下簡稱“光...
近日,低空基礎設施——eVTOL飛行汽車數字化起降站設備提供商睿安飛科技(Run and Fly)完...
投資家網(www.51baobao.cn)是國內領先的資本與產業創新綜合服務平臺。為活躍于中國市場的VC/PE、上市公司、創業企業、地方政府等提供專業的第三方信息服務,包括行業媒體、智庫服務、會議服務及生態服務。長按右側二維碼添加"投資哥"可與小編深入交流,并可加入微信群參與官方活動,趕快行動吧。