BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

超1.5億美元損失,跨鏈橋協議Nomad黑客攻擊事件分析

DeFi之道
特邀专栏作者
2022-08-02 03:06
本文約1318字,閱讀全文需要約2分鐘
一個關於「驗證」的致命漏洞。
AI總結
展開
一個關於「驗證」的致命漏洞。

原文作者:Samczsun原文編譯:DeFi之道

原文編譯:DeFi之道

原文編譯:DeFi之道samczsun原文編譯:DeFi之道

8 月2 日,跨鏈橋協議Nomad 遭遇攻擊,超過1.5 億美元的用戶資金被黑客轉移,Paradigm 合夥人

對此安全事件進行了分析。

Nomad 剛剛在遭受Web3 有史以來最混亂的一次黑客攻擊中損失了1.5 億美元。那這到底是如何發生的,其根本原因是什麼?請允許我帶你們到這次攻擊事件的幕後。

這一切都始於@officer_cia 在ETHSecurity 電報群頻道中分享的@spreekaway 推文,雖然我當時不知道發生了什麼,但離開Nomad 跨鏈橋的資產數量顯然不是一個好的跡象。

https://moonscan.io/tx/0xcca9299c739a1b538150af007a34aba516b6dade1965e80198be021e3166fe4c

https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460

我的第一個想法是代幣的小數點有一些配置錯誤。畢竟,這座跨鏈橋似乎在進行“發送0.01 WBTC,返還100 WBTC”的促銷活動。

然而,在Moonbeam 網絡上進行了一些痛苦的手動挖掘工作之後,我確認Moonbeam 交易確實跨鏈出了0.01 WBTC,但不知何故,以太坊交易跨鏈出的資產是100 WBTC。

此外,WBTC 跨鏈交易實際上並沒有證明什麼。它只是直接調用了`process`,可以說,能夠在不首先證明的情況下處理消息是非常不好的

這個時候,有兩種可能性,要么是在較早的區塊中單獨提交了證明,要么是Replica 合約存在嚴重的漏洞。但是,絕對沒有跡象表明最近有任何事已被證明。

幸運的是,有一種簡單的方法可以檢查這個假設。我知道未經證明的消息根將是0x00,因為消息[_messageHash] 將未初始化。我所要做的就是檢查合約是否會接受這一點。

哎……

哎……

事實證明,在例行升級期間,Nomad 團隊將可信根初始化為0x00。需要明確的是,使用零值作為初始化值是一種常見的做法。不幸的是,在這種情況下,它有一個很小的副作用,即自動驗證每個消息。

這就是黑客行為如此混亂的原因,你不需要了解Solidity 或Merkle 樹之類的東西,你所要做的就是找到一筆有效的交易,用你的地址查找/替換另一個人的地址,然後重新廣播它。

安全
跨鏈
歡迎加入Odaily官方社群