時(shí)間:2023-06-18|瀏覽:248
北京時(shí)間2022年4月30日,知道創(chuàng)宇區(qū)塊鏈安全實(shí)驗(yàn)室監(jiān)測(cè)到BSC鏈上的bDollar項(xiàng)目遭到價(jià)格操縱攻擊,導(dǎo)致?lián)p失約73萬(wàn)美元。
知道創(chuàng)宇區(qū)塊鏈安全實(shí)驗(yàn)室第一時(shí)間跟蹤本次事件并分析。
基礎(chǔ)信息:
攻擊者地址:0x9dadbd8c507c6acbf1c555ff270d8d6ea855178e
攻擊合約:0x6877f0d7815b0389396454c58b2118acd0abb79a
tx: 0x9b16b1b3bf587db1257c06bebd810b4ae364aab42510d0d2eb560c2565bbe7b4
CommunityFund合約:0xEca7fC4c554086198dEEbCaff6C90D368dC327e0
漏洞分析:
漏洞關(guān)鍵在于CommunityFund合約中的claimAndReinvestFromPancakePool方法在使用Cake代幣進(jìn)行代幣轉(zhuǎn)換時(shí),會(huì)對(duì)換取的WBNB數(shù)量進(jìn)行判斷并且會(huì)自動(dòng)把換取的WBNB的一半換為BDO代幣;而之后合約會(huì)自動(dòng)使用合約中的WBNB為池子添加流動(dòng)性,若此時(shí)BDO代幣的價(jià)值被惡意抬高,這將導(dǎo)致項(xiàng)目方使用更多的WBNB來為池子添加流動(dòng)性。
而最為關(guān)鍵的是,攻擊者實(shí)施攻擊前,在WBNB/BDO、Cake/BDO、BUSD/BDO池子中換取了大量BDO代幣導(dǎo)致BDO價(jià)格被抬高。
在我們對(duì)攻擊交易進(jìn)行多次分析之后,發(fā)現(xiàn)事情并沒有那么簡(jiǎn)單,該次攻擊極有可能是被搶跑機(jī)器人搶跑交易了,依據(jù)如下:
1、該筆攻擊交易比BSC鏈上普通交易Gas費(fèi)高很多,BSC鏈上普通交易默認(rèn)Gas費(fèi)為5Gwei,而該筆交易竟高達(dá)2000Gwei。
2、我們發(fā)現(xiàn)該攻擊合約與攻擊者地址存在多筆搶跑交機(jī)會(huì);
3、我們?cè)谙嗤瑓^(qū)塊內(nèi)找尋到了真實(shí)攻擊者的地址與交易,該交易被回滾了。
攻擊流程:
1、攻擊者使用閃電貸貸款670枚WBNB;
2、之后攻擊者將WBNB在各個(gè)池子中換取大量BDO代幣;
3、隨后攻擊者再次使用閃電貸貸款30516枚Cake代幣;
4、將貸款的Cake代幣進(jìn)行swap,換取400WBNB,其中200枚被協(xié)議自動(dòng)換取為BDO代幣;
5、攻擊者將WBNB換取Cake代幣用于歸還閃電貸;
6、最后,攻擊者將升值后的3,228,234枚BDO代幣換取3020枚WBNB,還款閃電貸671枚,成功套利2381枚WBNB價(jià)值約73萬(wàn)美元。
總結(jié):
本次攻擊事件核心是合約會(huì)為流動(dòng)性池自動(dòng)補(bǔ)充流動(dòng)性,而未考慮代幣價(jià)格是否失衡的情況,從而導(dǎo)致項(xiàng)目方可能在價(jià)格高位對(duì)流動(dòng)性進(jìn)行補(bǔ)充,出現(xiàn)高價(jià)接盤的情況。
建議項(xiàng)目方在編寫項(xiàng)目時(shí)多加注意函數(shù)的邏輯實(shí)現(xiàn),對(duì)可能遇到的多種攻擊情況進(jìn)行考慮。
在此提醒項(xiàng)目方發(fā)布項(xiàng)目后一定要將私鑰嚴(yán)密保管,謹(jǐn)防網(wǎng)絡(luò)釣魚,另外,近期,各類合約漏洞安全事件頻發(fā),合約審計(jì)、風(fēng)控措施、應(yīng)急計(jì)劃等都有必要切實(shí)落實(shí)。
熱點(diǎn):區(qū)塊鏈