事件背景
Merlin是一款收益聚集工具,可以對生態(tài)系統(tǒng)進行優(yōu)化和自動組合,以追求安全性,并在可持續(xù)性的前提下獲得最大收益。
零時科技區(qū)塊鏈安全情報平臺監(jiān)控到消息,北京時間2021年6月29日,Merlin Labs官方Telegram稱Merlin遭受了黑客攻擊,并聲明黑客將 0.1WBNB 存入vault,然后手動將1000BNB轉(zhuǎn)入合約,以欺騙合約認(rèn)為它收到了 1000BNB的獎勵,從而導(dǎo)致鑄幣產(chǎn)生了 MERL 獎勵,零時科技安全團隊及時對該安全事件進行復(fù)盤分析。
事件分析
攻擊信息
通過初步追蹤分析,這里梳理了一條攻擊路線來進行具體分析,攻擊信息如下:
攻擊者錢包地址
攻擊者合約地址
攻擊者盜取資金交易
MerlinToken合約地址
MerlinPool合約地址
攻擊過程
目前攻擊者創(chuàng)建的合約及交易較多,但每筆交易的攻擊流程均類似,如以上攻擊合約中,攻擊者共進行了26筆交易,其中22筆為攻擊者利用漏洞盜取資金交易,其余4筆為攻擊者將盜取資金轉(zhuǎn)至錢包地址交易,這里將以上攻擊交易進行詳細(xì)分析,方便讀者更清晰的了解攻擊過程。如下圖:
第一步:攻擊者給vault合約轉(zhuǎn)入0.1枚BNB。
第二步:攻擊者直接給vault合約轉(zhuǎn)入874枚BNB。
第三步:vault合約將轉(zhuǎn)入的874枚BNB轉(zhuǎn)至0xd7d0合約,并獲取對應(yīng)的846枚ibBNB。
第四步:0xd7d0合約將874枚BNB轉(zhuǎn)出至WNativeRelayer合約,并隨即銷毀vault合約的846枚ibBNB。
第五步:vault合約將262枚BNB轉(zhuǎn)至0x236f合約,之后轉(zhuǎn)給0x913合約257枚BNB后,將該資金以1:1對半分為128枚BNB和3334枚Merlin添加PancakeSwap V2: MERL 5流動性,并獲取對應(yīng)的548枚Cake-LP Token。
第六步:將獲取的548枚Cake-LP Token轉(zhuǎn)至MerlinPool合約。
第七步:將0x236f合約剩余的5枚BNB兌換為135枚Merlin,并將資金轉(zhuǎn)至0x436f地址。
第八步:給0x236f地址鑄造了8996枚Merlin代幣,并將生成的代幣轉(zhuǎn)至攻擊者合約,此步也是攻擊者獲利最重要的步驟。
第九步:給MerlinPool合約地址也鑄造了相應(yīng)的Token。(此步應(yīng)為添加Cake-LP Token獲取的相應(yīng)獎勵)。
第十步:最終攻擊者合約將獲取的Merlin代幣兌換成BNB獲利離場。
至此
攻擊者通過該筆攻擊交易獲取了332枚BNB,價值約10萬美元,由于項目合約中獎勵功能的代碼邏輯問題,攻擊者通過多筆攻擊交易已獲利超30萬美元。
目前,Merlin官方已宣布關(guān)閉Merlin Lab,并已在網(wǎng)站上發(fā)布通知并停止所有存款,所涉及的Twitter及Telegram等賬號均已停止運營。
總結(jié)
通過此次攻擊事件來看,攻擊者通過多次獲取獎勵,并通過Merlin合約中的代碼缺陷,最終獲得了大量代幣,對于合約功能缺陷問題,應(yīng)在合約上線前進行嚴(yán)格審查及測試。對于此類攻擊事件,零時科技安全團隊給出以下建議:
安全建議
- 對于合約代碼安全,可找多家安全審計公司進行審計。
- 對于鑄幣及轉(zhuǎn)賬問題,應(yīng)根據(jù)業(yè)務(wù)邏輯進行嚴(yán)格審核演算,避免出現(xiàn)代幣異常獲取問題。
- 對敏感性較強的代碼,要做到及時更新完善。
1.《【tx26c】專題Merlin Labs攻擊事件復(fù)盤分析 | 零時科技》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《【tx26c】專題Merlin Labs攻擊事件復(fù)盤分析 | 零時科技》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/lishi/2035107.html