解析:BNB 鏈被盜全過程

CZ:網絡暫停,用戶資金安全。

台灣時間今天上午,BNB Chian 跨鏈橋 BSC Token Hub 遭遇攻擊。駭客利用跨鏈橋漏洞分兩次共獲取 200 萬枚BNB,價值約 5.66 億美元。(注:BSC Token Hub 是 BNB 信標鏈(BEP2)和BNB 鏈(BEP20 或 BSC)之間的跨鏈橋。)

消息一出,BNB 價格在 2 小時內一度下跌近 5%,跌至 278.7 美元低點,現報價 284 美元,24 小時跌幅 4.24%。

根據 BNB Chain 的說法,從 BSC 提取的資金的初步估計在 1 億美元至 1.1 億美元之間。並且, Tether 也在第一時間將駭客地址列入黑名單。“感謝社區和我們的內部和外部安全合作夥伴,估計 700 萬美元已經被凍結。”

Binance 創始人 CZ 在社交媒體上發文表示,目前幣安 已要求所有驗證者暫停 BSC 網路,用戶的資金是安全的,對於給用戶帶來的不便深表歉意,並將相應地提供進一步的更新。

針對具體的攻擊方式,Paradigm 研究員 samczsun 在社交媒體上發文表示,鏈上數據及相關代碼顯示,BSC 跨鏈橋的驗證方式存在BUG,該 BUG 可能允許攻擊者偽造任意消息;本次攻擊中,攻擊者偽造訊息通過了 BSC 跨鏈橋的驗證,使跨鏈橋向攻擊者地址發送了 200 萬枚 BNB。

閱讀更多:加密貨幣入門懶人包

samczsun 分析文章如下:

(1)五小時前,攻擊者從 Binance Bridge 竊取了 200 萬 BNB(約5.66 億美元)。此後我一直在與多方密切合作致力於揭示這一切如何發生的。

(2)事情的起因是 @zachxbt 突然把攻擊者的地址發給了我。當我點擊進去的時候,我看到了一個價值數億美元的帳戶;要馬是有項目 rug 跑路,要馬就是正在進行大規模的駭客攻擊。

(3)一開始,我以為 @VenusProtocol 又被駭了。然而,很快我就確定了攻擊者“真的”向 Venus 存入了超過 2 億美元。這時我就需要弄清楚這些資金的來源。

(4)答案是,攻擊者以某種方式說服了幣安跨鏈橋,直接給他們(駭客)發送了 1,000,000 BNB,而且是兩次。

(5)要麽幣安推出 Web3 有史以來最大的“禮包”,要麽攻擊者發現了一個嚴重的漏洞。我首先將攻擊者的交易與合法提款進行比較。我注意到的第一件事是攻擊者使用的高度始終相同——110217401,而合法提款使用的高度要大得多,例如 270822321。

(6)我還注意到攻擊者的證明明顯短於合法提款的證明。這兩個事實使我確信,攻擊者已經找到了一種方法來偽造該特定區塊(110217401 )的證明。現在,我必須弄清楚這些證明是如何工作的。

(7)在 Binance 上,有一個特殊的預編譯合約用於驗證 IAVL 樹。如果您對 IAVL 樹一無所知,也不要擔心,因為有 95% 的內容我都不懂。幸運的是,你和我所需要的只是剩下的 5%。

(8)基本上,當你驗證一個 IAVL 樹時,你指定了一個“操作”列表。幣安跨鏈橋通常需要兩個操作:“iavl:v”操作和“multistore”操作。以下是它們的實現(implementation): 

(9)為了偽造證明,我們需要兩個操作都成功,並且我們需要最後一個操作(multistore))返回一個固定值(指定塊的哈希值:110217401)。

(10)通過查看 implementation ,我們可以發現,操縱根哈希是不可能的,或者至少非常困難。這意味著我們需要我們的輸入值等於其中一個提交id。

(11)“multistore”操作的輸入值是“iavl:v”操作的輸出值。這意味著我們想以某種方式控制這裡的根變量,同時仍然通過值驗證。

(12)那麼如何計算根哈希?它發生在一個名為 COMPUTEHASH 的函數中。在非常高的層次上,它遞歸地遍歷每條路徑和葉節點並進行大量的哈希運算。

https://github.com/cosmos/iavl/blob/de0740903a67b624d887f9055d4c60175dcfa758/proof_range.go#L237-L290

(13)實際上實現細節並不重要,重要的是,由於哈希函數的工作方式,我們基本上可以肯定地說,任何(path, nleaf)對都會產生唯一的哈希。如果我們想偽造證據,這些就得保持不變。

(14)查看證明在合法交易中的佈局方式,我們看到它的路徑很長,沒有內部節點,只有一個葉節點,這個葉節點包含我們惡意載荷的哈希值!如果我們不能修改這個葉節點,那麼我們需要添加一個新的葉節點。

(15)當然,如果我們添加一個新的葉節點,我們還需要添加一個新的內部節點來匹配。

(16)現在我們只需要面對最後一個障礙。我們如何真正讓 COMPUTEHASH 返回我們想要的根哈希?好吧,請注意,最終我們將需要一個包含非零右哈希的路徑。當我們找到一個匹配時,我們斷言它與中間根哈希匹配。

(17)讓我們稍微檢測一下代碼,這樣我們就可以弄清楚我們需要什麼哈希,然後剩下的就是把它們放在一起,我們將採用合法證明並對其進行修改,以便:

1)我們為偽造的有效負載添加一個新葉節點;

2)我們添加一個空白內部節點以滿足證明者;

3)我們調整我們的葉節點以使用正確的根哈希提前退出

https://gist.github.com/samczsun/8635f49fac0ec66a5a61080835cae3db…

(18)值得注意的是,這不是攻擊者使用的確切方法。他們的證明路徑要短得多,我不確定他們究竟是如何生成的。但是,漏洞利用的其餘部分是相同的,我相信展示瞭如何從頭開始構建它是有價值的。

(19)總之,幣安跨鏈橋驗證證明的方式存在一個錯誤,該錯誤可能允許攻擊者偽造任意消息。幸運的是,這裡的攻擊者只偽造了兩條消息,但損害可能要嚴重得多。

— 精選交易所文章 —

交易所特色優惠
Max可以使用銀行台幣出入金6 個月內 20% 手續費折扣,質押平台幣 MAX 最高可享 60% 折扣
Binance全球最大交易所,幣種與理財產品齊全終生 20% 手續費折扣
FTX具有豐富的現貨與衍生品產品終生 5%手續費折扣
Bybit豐富的衍生品交易應邀成為 Bybit 用戶,即可獲得 $20 體驗金。還有專屬獎勵 價值高達 $3,230!
Kucoin較多新上線的潛力新幣種終生 20% 手續費折扣
AAX年化報酬率為目前全交易所最高註冊即享 110 USDT,合約贈金和最高 50USDT 新手獎勵

本文不構成投資建議,虛擬貨幣波動大請謹慎小心

掌握虛擬貨幣、區塊鏈大小事

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *