Rex解析 | Solana 跨鏈橋 Wormhole 的被盜過程紀錄:這個鍋誰該來扛?

其實這次 Solana 蟲洞(Wormhole)的問題跟跨鏈一點都沒關係,不知道大家在跟風亂噴幹嘛,於是過年沒事做,學習怎麼當駭客,順便練習寫文章,這次的漏洞真的是一個非常小的 Bug,導致這麼大的損失。本文由 FulyAI 創辦人 Rex Chen 撰稿。
(前情提要:Solana出大事!跨鏈橋Wormhole遭駭3.2億鎂WETH,官方提供駭客「1000萬鎂獎金」籲其歸還
(背景補充:Wonderland後續|MIM擠兌導致 穩定幣2%脫鉤,巨鯨止損1.6億鎂、Luna 暴跌32%

 

是一次被盜走 80,000 顆以太的交易紀錄,是目前 Defi 金額第二大的被盜事件。

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

該地址已經被 etherscan 舉報為黑名單了,錢包裡面目前還有 93,750 顆 ETH

https://etherscan.io/address/0x629e7da20197a5429d30da36e77d06cdf796b71a

然後 Wormhole 很快也發現自己出問題了,對駭客隔空喊話,並且提供一白帽協議,只要駭客願意歸還所有被盜的 wETH,就提供給他 1,000萬美金的獎金!

而且可以瞬間洗白變成合法合理的白帽駭客,我猜應該有很大的機率會接受這deal。

我剛聽到這個事件就非常好奇,到底駭客怎麼辦到的!我也想學,可以看一下 https://twitter.com/kelvinfichter/ 大神分享的過程,我們就來看看事情最主要的原因。

在 Wormhole 裡面要 mint ETH 的流程是要執行 complete_wrapped -> 然後需要 transfer message -> transfer message 是透過 post_vaa 這個 function 產生 -> 透過 verify_signatures 去驗證簽名是不是合法的 -> 然後用到了 solana sdk 提供的一個 function load_instruction_at,也是這次漏洞發生的主因,不需要透過系統的地址就可以執行。

https://github.com/solana-labs/solana/blob/7ba57e7a7c87fca96917a773ed944270178368c9/sdk/program/src/sysvar/instructions.rs#L180-L188

load_instruction_at 在 Solana 1.8.0 之後因為安全性的問題已經棄用,改用 load_instruction_at_checked,多了檢查系統地址才能執行。

駭客就先試打了0.1 ETH 拿到正常 verify_signatures 的參數去做偽造,反正系統不會檢查,這點相當的聰明。

然而 Wormhole 也在被 hack 之前就準備要更新成 Solana 1.9.4 版本,駭客抓準了修復漏洞之前開始攻擊,應該是已經潛伏已久。

所以這件事情其實影響到的範圍是所有有用到 load_instruction_at 的 Dapp,如果還有其他協議沒有更新新版的話應該還會有其他鍋會爆炸,建議有把資金放在 Solana 的朋友們,可以看一下自己使用的協議所使用的 Solana 版本,這非常重要,如果不是新的建議資金可以撤離觀望一下。

最後最有趣的是這個鍋是要 Wormhole 來扛還是 Solana 來扛呢?


LINE 與 Messenger 不定期為大家服務

文章来源于互联网:Rex解析 | Solana 跨鏈橋 Wormhole 的被盜過程紀錄:這個鍋誰該來扛?

發佈留言

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

Previous post 幣安用戶注意!CZ警告 : 有大規模取消提款的簡訊釣魚詐騙;針對瀏覽器錢包的惡意軟體問世
Next post 終於過年了!BTC突破41,500、ETH超3000,Fed 3月加息25基點機率為80%