一個涉及資金超 5 億美金的 Web3 攻擊事件。

作者: Kong

據慢霧區情報,2022 年 10 月 7 日,BNB Chian 跨鏈橋 BSC Token Hub 遭遇攻擊。黑客利用跨鏈橋漏洞分兩次共獲取 200 萬枚 BNB,超 5.7 億美元。慢霧安全團隊分析後以簡析的形式分享給大家。(注:BSC Token Hub 是 BNB 信標鏈(BEP2)和 BNB 鏈(BEP20 或 BSC)之間的跨鏈橋)

簡要分析

1. 在 BNB Chain 與 BSC 跨鏈的過程中,會由 BSC 上部署的跨鏈合約調用預編譯的 0x65 合約對提交的 appHash、key、vaule、proof 進行 IVAL 樹驗證。IAVL 樹是 AVL 樹的變種即是一種為鍵值提供可驗證根的 AVL 樹的實現。

2. 驗證主要由 IAVLValueOp 與 MultiStoreProofOp 兩個 op 進行,IAVLValueOp 會先通過 ComputeRootHash 計算 roothash 並進行驗證。驗證通過後會將輸出的 roothash 給到 MultiStoreProofOp,MultiStoreProofOp 將檢查獲得的 roothash 是否與 lightClient 獲得的一致。

3. ComputeRootHash 將通過 leaf hash 與 rest path(innernode) 進行遞歸 hash 並檢查是否與 last path node 的 right 一致。

4. 而在具體的 leafnode 與 innernode 的哈希計算中我們可以看到當 left 為空時將計算 leaf 與 right 的 hash,當 right 為空時將計算 leaf 與 left 的 hash。但當 left 與 right 都存在的情況下,那麼將忽略 right,計算 leaf 與 left 的 hash,即 roothash 將不會受 right 影響。

5. 因此我們可以知道在 path 中,當 left 與 right 都存在的情況下將忽略 right,返回 leaf 與 left 的 hash,在遞歸哈希檢查中則會檢查此 hash 與 last path node 的 right 是否一致。這就出現了在遞歸檢查中檢查了 right,而在 roothash 計算中卻又忽略了 right 的情況。導致攻擊者可以在 path 中加入一個 leaf 與 innernode 的 hash 作為 last path node 的 right 並添加一個空的 innernode 確保可驗證。使得在保持 roothash 不受影響的情況下插入了惡意的數據以竊取資金。

MistTrack 分析

據慢霧 MistTrack 反洗錢追踪系統分析,這次黑客攻擊的初始資金來自 ChangeNOW。

本次攻擊事件的黑客地址曾與多個 DApp 交互,包括 Multichain、Venus Protocol、Alpaca Finance、Stargate、Curve、Uniswap、Trader Joe、PancakeSwap、SushiSwap 等。此外,黑客轉移至以太坊上的 480 萬 USDT 已被 Tether 列入黑名單,AVAX 上的 170 萬 USDT 已被列入黑名單,Arbitrum 上的 200 萬枚 USDT 已被列入黑名單。而由於 BNB Chain 的及時暫停,黑客在 BSC 上的超 4.1 億美元已無法轉移。10 月 8 日,黑客地址轉移約 33,771 枚 ETH 至 0xFA0a3 開頭的新地址,約合 4,500 萬美元。

慢霧 MistTrack 將持續監控被盜資金的轉移。

參考:

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。