Rikkei Finance 攻击事件分析

区块链安全 3年前 (2022) admin
781 0 0

声明:该文章仅供区块链安全学习和技术分享,请勿将该文章和文章中提到的技术用于违法活动上,切勿参与区块链相关违法项目,如产生任何后果皆由读者本人承担,与余生安全团队无关!

如有侵权,请联系后台进行删除。转载请注明出处,感谢

Rikkei Finance 攻击事件分析

1. 事件概述

北京时间 2022 年 4 月 15 日,DeFi 协议 Rikkei Finance 受到攻击,其中被盗资金有 2600 余个 BNB 已被转入 Tornado Cash。

2. 事件分析

两次攻击事件如下图所示:

Rikkei Finance 攻击事件分析
第一个攻击
Rikkei Finance 攻击事件分析
第二个攻击

2.1 地址信息

攻击合约:

  • 0xe6df12a9f33605f2271d2a2ddc92e509e54e6b5f(对应第一个攻击)
  • 0x9ae92cb9a3ca241d76641d73b57c78f1bcf0b209(对应第二个攻击)

攻击者地址:

  • 0x803e0930357ba577dc414b552402f71656c093ab

恶意预言机地址:

  • 0x99423d4dfce26c7228238aa17982fd7719fb6d7f(对应第一个攻击)
  • 0xa36f6f78b2170a29359c74cefcb8751e452116f9(对应第二个攻击)

攻击 tx:

  • 0x4e06760884fd7bfdc076e25258ccef9b043401bc95f5aa1b8f4ff2780fa45d44(对应第一个攻击)
  • 0x93a9b022df260f1953420cd3e18789e7d1e095459e36fe2eb534918ed1687492(对应第二个攻击)

被攻击预言机地址:0xd55f01b4b51b7f48912cd8ca3cdd8070a1a9dba5

2.2 攻击流程

这里我们以第二个攻击为例,攻击者的攻击流程如下:

  1. 攻击者调用 external 可见性的 setOracleData() 函数将预言机设置为自己的恶意预言机。
  2. 由于恶意预言机替换了原来的预言机,导致预言机输出的 rTokens 价格可以被攻击者任意操控。攻击者向 RBinance 合约发送 0.0001 BNB 获得 4995533044307110.024 rBNB。
Rikkei Finance 攻击事件分析
提高价格获取大量代币
  1. 由于兑换了大量的 rBNB,所以攻击者借出 346199.781 USDC。
  2. 攻击者将借出的 346199.781 USDC 兑换成  776.298 WBNB。
Rikkei Finance 攻击事件分析
借出代币并进行 swap
  1. 攻击者重复第三步和第四步操作分别借出 3.033 BTCB、52275.873 DAI、297082.798 BSC-USD、299822.459 BUSD 并兑换成相应的 WBNB。
Rikkei Finance 攻击事件分析
重复操作
  1. 将兑换的共 2571.201 BNB 转移到攻击者账户上。
Rikkei Finance 攻击事件分析
转到攻击者账户
  1. 最后攻击者再次调用 setOracleData() 还原预言机状态。

第一个攻击的手法相同,只是先将 BNB 兑换成 BUSD 再转去 RBinance 获得 rBUSD。

2.3 攻击细节

该次事件的问题在于 Cointroller 中的 SimplePriceOracle.sol (https://bscscan.com/address/0xd55f01b4b51b7f48912cd8ca3cdd8070a1a9dba5#code) 合约,其中 setOracleData 函数可见性为 external,权限过大,可以被任何人外部调用从而恶意修改预言机地址。

Rikkei Finance 攻击事件分析
external 权限

正常预言机的价格为 416247538680000000000Rikkei Finance 攻击事件分析

攻击者调用 setOracleData 将地址为 0x1578rToken 的预言机地址恶意修改为 0xa36f

Rikkei Finance 攻击事件分析
调用 setOracleData

恶意预言机将价格提升到 416881147930000000000000000000000

Rikkei Finance 攻击事件分析
恶意价格为 416881147930000000000000000000000

2.4 攻击后续

攻击者在攻击成功后把绝大部分的 BNB 分批次转入 Tornado Cash 中。

Rikkei Finance 攻击事件分析
被转入 Tornado Cash 的 BNB

在本次攻击事件发生后,Rikkei Finance 官方称将全额补偿受影响用户,并在未来做好安全措施。

Rikkei Finance 攻击事件分析
官方公告

3. 事件总结

函数的可见性设置错误,导致权限过大,攻击者通过修改预言机为自己的恶意预言机提高价格。


关注我们,微信公众号:余生安全团队。

Rikkei Finance 攻击事件分析

原文始发于微信公众号(余生安全团队):Rikkei Finance 攻击事件分析

版权声明:admin 发表于 2022年4月20日 上午10:59。
转载请注明:Rikkei Finance 攻击事件分析 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...