By: 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 將持續監控被盜資金的轉移。