損失約1.5億多人“趁火打劫”:Nomad被攻擊事件分析

北京時間8月2日,成都鏈安鏈必應-區塊鏈安全態勢感知平台輿情監測顯示,跨鏈通訊協議Nomad遭遇攻擊,黑客獲利約1.5億美元。截止發稿前,根據DeFi Llama數據顯示,Nomad代幣橋中只剩下約5900美元左右。

關於本次攻擊事件的來龍去脈,成都鏈安安全團隊第一時間進行了分析。

PART 01

加密市場中首次發生的去中心化搶劫?

首先,我們先來認識本次故事主角——Nomad。

Nomad 自稱能提供安全的互操作性解決方案,旨在降低成本並提高跨鏈消息傳遞的安全性,與基於驗證者的跨鏈橋不同,Nomad 不依賴大量外部方來驗證跨鏈通信,而是通過利用一種optimistic機制,讓用戶可以安全地發送消息和橋接資產,並保證任何觀看的人都可以標記欺詐並保護系統。

而在4 月13 日,他們也以2.25 億美元估值完成高達2200 萬美元的種子輪融資,領投方為Polychain。對於一家初創項目而言,數千萬美元種子輪融足可謂贏在起跑線上,但是本次攻擊之後,不知道項目方會如何處理與“自救”。

Nomad官方推特表示,已得知此事,目前正在調查。

關於本次事件,在Web3領域,卻引起了爭議。

Terra研究員FatMan在推特上對Nomad遭遇攻擊事件發表評論稱:“在公共Discord服務器上彈出的一條消息稱,任意一個人都能從Nomad橋上搶了3千到2萬美元:所有人要做的就是複制第一個黑客的交易並更改地址,然後點擊通過Etherscan發送。這是在真正的加密市場中首次發生的去中心化搶劫。”

事實的確如此。

根據Odaily星球日報的報導,在第一個黑客盜竊完成後,這條「成功」經驗也在加密社區瘋傳,被更多用戶模仿,趁火打劫。跨鏈通訊協議Nomad的資產被洗劫一空。

可能是因為過於心急,一些用戶忘記使用馬甲偽裝,直接使用了自己的常用ENS 域名,暴露無遺(這可能給Nomad 後續追贓減輕了一定的負擔)。目前已經有用戶開始自發退款,以求避免被起訴。

PART 02

項目方在部署合約時犯了什麼錯導致被攻擊?

本次攻擊主要是項目方在部署合約時,把零(0x000000….)的confirmAt設置為1,導致任意一個未使用的_message都可以通過判斷,並從合約中提取出對應資產。技術分析如下:

被攻擊合約

0x5D94309E5a0090b165FA4181519701637B6DAEBA (存在漏洞利用的合約)

0x88A69B4E698A4B090DF6CF5Bd7B2D47325Ad30A3(遭受損失的金庫合約)

由於攻擊交易過多,下面依靠其中一筆攻擊交易分析為例進行闡述;(0x87ba810b530e2d76062b9088bc351a62c184b39ce60e0a3605150df0a49e51d0)

攻擊的交易截圖

1.通過交易分析,發現攻擊者是通過調用(0x5D9430)合約中的process函數提取(0x88A69)合約中的資金。

攻擊細節截圖

2.跟進process函數中,可以看到合約對_messageHash進行了判斷,當輸入的messages[_messageHash]為0x000000….時,返回值卻是true。

攻擊細節截圖

3.然後跟進acceptableRoot函數,發現_root的值為零(0x000000….)時,而confirmAt[_root]等於1,導致判斷恆成立,從而攻擊者可以提取合約中的資金。

攻擊細節截圖

攻擊細節截圖

4.後續通過查看交易,發現合約在部署時,就已經初始零(0x000000….)的confirmAt為1,交易可見(0x99662dacfb4b963479b159fc43c2b4d048562104fe154a4d0c2519ada72e50bf)

攻擊細節截圖

攻擊細節截圖

PART 03

被盜資金進入,項目方還能找回嗎?

針對跨鏈代幣橋攻擊導致損失一事,Nomad團隊表示,“調查正在進行中,已經聯繫區塊鏈情報和取證方面的主要公司協助。我們已經通知執法部門,並將夜以繼日地處理這一情況,及時提供最新信息。我們的目標是識別相關賬戶,並追踪和追回資金。”

目前,成都鏈安安全團隊正在使用鏈必追平台對被盜資金地址進行監控和追踪分析。

PART 04

總結:合約部署需要注意哪些問題?

針對本次事件,成都鏈安安全團隊建議:項目方在合約部署前,需要考慮配置是否合理。部署後,應測試相關功能,是否存在被利用的風險,並且聯繫審計公司查看初始的參數是否合理。

Total
0
Shares
Related Posts