Radiant Capital攻击分析报告本文Hash (SHA1):3a12a5d6593b659958dc908a7be42d5f150f1aaf

编号: 链源科技 PandaLY Security Knowledge No.041

Radiant Capital是一家在LayerZero上构建的全链货币市场,主营业务为存款和借贷。

2024 年 10 月 16 日,Radiant Capital经历了一次高度复杂的安全漏洞攻击,导致 5000 万美元的损失。据Radiant Capital官方账号阐述,攻击者通过高度先进的恶意软件注入,利用了多名开发者的硬件钱包签署恶意操作,从 Arbitrum 和 BSC 的合约中窃取了大约 5000 万美元。

攻击手法

Radiant Capital采用的签名方法为3/11,即在11名成员中需有三人签署才能通过某项操作,攻击者正是利用了这一原理。根据Radiant Capital的官方描述,攻击者通过恶意软件注入侵入了三名开发者的硬件钱包,具体的注入方式尚未确定。攻击者在设备上设置的恶意软件,使Safe{Wallet}(前称Gnosis Safe)的前端界面显示正常的交易数据,而实际上却发送了恶意交易。

在这一过程中,恶意交易的掩盖利用了Safe App交易机制的特性:Safe前端提交的交易可能因GAS价格波动、nonce不匹配、网络拥堵等因素而失败。攻击者在发起恶意操作时,通过模拟交易失败的情况,使得开发者在手动审查和Tenderly模拟阶段完全未能察觉到异常。

当开发者批准交易时,被攻破的设备截获了这一批准,并将恶意交易转发给硬件钱包进行签名。之后,Safe钱包界面会显示错误信息,提示用户再次尝试签名,这个过程为攻击者提供了三个有效但恶意的签名。

尽管存在多个验证层,包括Tenderly和其他审计工具的审核,签署的交易在界面上依然看起来正常。此外,Ledger硬件钱包上显示的盲签名也显得有效,进一步增加了攻击者手法的混淆性。这些策略使得攻击者能够在不被发现的情况下顺利执行资金转移。

链上数据分析

  • 链上数据:

攻击者获得的三个多签所有者权限的地址分别为:

0x20340c2a71055fd2887d9a71054100ff7f425be5(Rabby管理的钱包)

0x83434627e72d977af18f8d2f26203895050ef9ce(Rabby管理的钱包)

0xbb67c265e7197a7c3cd458f8f7c1d79a2fb04d57(Frame管理的钱包)

经分析,我们发现,攻击者相关合约的时间为2024-10-02 UTC。

攻击者地址:0x0629b1048298AE9deff0F4100A31967Fb3f98962

在Arbitrum部署了两条恶意合约。合约地址为:

https://arbiscan.io/address/0x57ba8957ed2ff2e7ae38f4935451e81ce1eefbf5。

https://arbiscan.io/address/0xF0C0a1A19886791c2DD6aF71307496b1E16aA232

随后,攻击者地址通过交易在BSC部署了相似的恶意合约。合约地址为:

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

最后,攻击者地址在BASE和ETH主链中部署了相似的合约,合约地址分别为:

https://basescan.org/address/0x57ba8957ed2ff2e7AE38F4935451E81Ce1eEFbf5

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

在2024-10-16 UTC时,攻击者首先攻击了Arbitrum:

攻击者使用三个所有者的私钥进行链下签名,将LendingPoolAddressesProvider合约的所有权转移给攻击者控制的恶意合约。交易为:

https://arbiscan.io/tx/0x7856552db409fe51e17339ab1e0e1ce9c85d68bf0f4de4c110fc4e372ea02fb1。

Radiant Capital攻击分析报告

攻击者首先通过transferOwnership()函数,将借贷池的控制权转交于攻击者。随后,通过LendingPoolUpdated()函数,将借贷池的底层逻辑合约升级为恶意后门合约:

0xf0c0a1a19886791c2dd6af71307496b1e16aa232。

最后攻击者执行后门功能,将资金从各个借贷市场转移到攻击合约中。

攻击者攻击完Arbitrum上的合约后,马上开始攻击BSC链:

在BSC中,攻击者也运用了同样的手法。但不同的是,由于检测到攻击事件,BSC的合约触发了自动暂停。

  • 交易:

https://bscscan.com/tx/0x873c2382689cad921427e30f16a814ffb2c1e2550e316e767e66759f7abf4a34。

Radiant Capital攻击分析报告

但过了两分钟,攻击者仍将所有权转移给0x57ba8957ed2ff2e7AE38F4935451E81Ce1eEFbf5,绕过了暂停并升级了合约,最后执行后门功能,将资金从各个借贷市场转移到攻击合约中。

交易为:

https://bscscan.com/tx/0xd97b93f633aee356d992b49193e60a571b8c466bf46aaf072368f975dc11841c。

后续

在事发的40分钟内,Radiant Capital了解到攻击事件后,执行了一笔交易以暂停 Base 上的 LendingPool的交易,事实证明,确实起到了效果,:

https://basescan.org/tx/0xdeee13d47eca82c8a774ec792f823360013f001e93b5abc17cb939f25187d00e。

在10-16-2024 17:43:41执行交易以删除主网上受损的钱包:

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

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

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

在10-16-2024 17:43:41执行交易以删除 Base 上被盗用的钱包:

https://basescan.org/tx/0x9e9eb36b2e2f221b5a04dc378d04518abcaab3a46d612cfffc5583a97b669c26

https://basescan.org/tx/0x4e72bb1d48666d732f2e091cecd20b3c34db484bf197ff197e49252069d1d465

https://basescan.org/tx/0xe71188ce592464b3f680a54f014f61b1eece403f261d39cfbfa0f67ab1d424ed

在10-16-2024 17:43:41执行交易以移除 BSC 上被盗用的钱包:

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

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

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

作为即时预防措施,安全管理的每个成员都使用新的、未受损的设备创建新的冷钱包地址,确保没有残留漏洞。并且DAO通过将签名者的数量减少到7个,加强了管理员和DAO多重签名(其他将在适当的时候遵循的安全措施)的安全性,新的签名门槛为7个中的4个,确保近60%的签名者必须批准交易才能执行。

并且加上了时间锁:所有合约升级和所有权转让也将通过新实施的时间锁定合同延迟至少 72 小时。

最后,为了恢复 Arbitrum 和 BSC 上的核心市场,Radiant Capital将重新部署整个Aave V2 借贷套件,其中包括以下合约:

  • LendingPoolAddressesProvider

  • LendingPoolAddressesProviderRegistry

  • LendingPool

  • LendingPoolConfigurator

  • LendingPoolCollateralManager

  • LendingRateOracle

  • AaveOracle

  • AaveProtocolDataProvider

统计

  • 已知攻击者地址

0x0629b1048298AE9deff0F4100A31967Fb3f98962(主要攻击者地址)

0x57ba8957ed2ff2e7ae38f4935451e81ce1eefbf5(主攻击合约地址)

0xF0C0a1A19886791c2DD6aF71307496b1E16aA232(借贷池升级恶意合约地址)

目前存在余额的中转地址:

0x62dC783c63be0eA579Fdb0922d25F15355D89041(余额24,779 BNB)

0x961A19D16Db31aDd5e257BC3d73B403EE0d3680e(余额707ETH)

  • 资产去向

根据链上情报显示,目前大部分资产流入了Stargate及Synapse Protocol(跨链)。但仍有大量的资产存在于地址:

0x62dC783c63be0eA579Fdb0922d25F15355D89041及地址:

0x961A19D16Db31aDd5e257BC3d73B403EE0d3680e中。

资产流向图如下:

Radiant Capital攻击分析报告

总结

此次攻击造成的损失极为严重,一共丢失了5000万美元的资产,虽与执法机构进行合作,但能否找回仍是未知数。

此次攻击的手法十分高超,主要被盗原因如下:最重要一点是Radiant人员的安全意识不足,过分相信前端,导致攻击者成功骗取签名。第二点,虽然Radiant已在第一时间监控到了资产权限被盗,并暂停主链服务,但攻击者仍能绕过暂停继续修改BSC链的合约权限。证明Radiant对该合约的审计不够充分,过于相信钱包签名不会被盗用。第三点,3/11签名占比总数权重很小,如果调整至更大权重才能通过操作会更加安全。第四点,缺少时间锁,在借贷池合约改为恶意合约后,合约没有做时间限制,最终导致哪怕Radiant发现资产被盗也无法阻止其盗走账户余额。