慢霧:Rikkei Finance 被黑復現分析

本次攻擊事件是由於Rikkei Finance 項目中的SimplePriceOracle 合約文件中的setOracleData 函數缺少鑑權,可以被任意調用。

By:Dig2@慢霧安全團隊

2022 年04 月15 日,由於惡意攻擊,Rikkei Finance 的五個資金池(USDT, BTC, DAI, USDT, BUSD) 中近乎全部代幣被盜。

慢霧安全團隊將復現分析結果分享如下:

相關信息

Rikkei Finance 是BSC 上的一個DeFi 借貸平台。

以下是本次攻擊涉及的相關地址:

攻擊者地址:

https://bscscan.com/address/0x803e0930357ba577dc414b552402f71656c093ab

攻擊合約:

https://bscscan.com/address/0xe6df12a9f33605f2271d2a2ddc92e509e54e6b5f

攻擊交易:

https://bscscan.com/tx/0x93a9b022df260f1953420cd3e18789e7d1e095459e36fe2eb534918ed1687492

攻擊核心點

此次Rikkei Finance 遭受攻擊的根本原因是setOracleDate 函數調用的權限控制缺失導致預言機價格被惡意操縱。

具體細節分析

1. 攻擊者用0.0001 BNB 兌換一些rBNB 作為抵押物,rBNB 合約地址為

https://bscscan.com/address/0x157822aC5fa0Efe98daa4b0A55450f4a182C10cA

慢霧慢霧

2. 對rBNB 設置惡意預言機,合約地址為

https://bscscan.com/address/0xd55f01b4b51b7f48912cd8ca3cdd8070a1a9dba5

部署的惡意預言機地址為

https://bscscan.com/address/0xA36F6F78B2170a29359C74cEFcB8751E452116f9,其反編譯得到:

可以看到,預言機返回價格被寫成一個巨大的常數。

3. 分別對rUSDC, rBTC, rDAI, rUSDT, rBUSD 合約進行借貸。由於上一步部署了惡意預言機,rBNB 被認為有高價值,因此能貸出池子中所有幣。然後在pancake 中進行swap 換成BNB,攻擊者總獲利約2571 枚BNB。

4. 攻擊者將BNB 打入Tornado.Cash:

總結

本次攻擊事件是由於Rikkei Finance 項目中的SimplePriceOracle 合約文件中的setOracleData 函數缺少鑑權,可以被任意調用。攻擊者通過setOracleData 函數將惡意Oracle 合約加入到SimplePriceOracle 中,在藉貸時攻擊者持有的少量抵押物,由於抵押物的價格是從惡意Oracle 合約中獲取,導致攻擊者的抵押物被誤認為具有很高價值,從而允許攻擊者用少量的抵押物將Rikkei Finance 池子中的USDC, BTC, DAI, USDT, BUSD 全部借出。慢霧安全團隊建議建議開發合約代碼時注意函數的訪問權限控制,例如使用OpenZeppelin 提供的Ownable.sol 合約。

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts