区块链安全公司 Beosin 对跨链借贷协议 Radiant Capital 昨日发生,导致超过 1900 枚 ETH 被盗的闪电贷攻击事件进行了详细分析。
(前情提要:Aave惊爆安全漏洞》暂时「冻结部分用户资产」!Radiant Capital:资金都是安全的!)
(背景补充:Solidity闪电贷实现方式,与Move、Rust有何不同?)
本文目录
2024 年 1 月 3 日,据 Beosin 旗下 EagleEye 安全风险监控、预警与阻断平台监测显示,Radiant Capital 专案遭受攻击者闪电贷攻击。
攻击者通过 3 笔交易,盗取了超 1,900 枚 ETH,价值超 450 万美元,目前被盗资金还储存在攻击者地址,Beosin 安全团队第一时间对本次事件进行了分析。
漏洞分析
该事件发生的根本是由於 Radiant Capital 专案在计算代币数量的过程中,使用了精度扩展,并且采用了四舍五入的方式进行计算,导致攻击者可以通过控制精度大小,并结合四舍五入扩大利润点来进行攻击。
观察上述程式码,rayDiv 函式传入两个 uint256 资料 a 和 b,整个过程可以简写为 (a*RAY+b/2)/b,其中 RAY 是精度扩展资料,为 10^27,那麽该结果相当於 a*RAY/b+0.5,实现四舍五入的功能,而该计算方式误差主要来源於 b,如果 b 相对於 a 来说极小,那麽误差将可忽略不计,但如果 b 於 a 拥有相同数量级,那麽误差可能达到 a 本身。
举个例子:如果 a*RAY=10000,b=3,那麽计算出来结果为 3333,比实际值小了 1/10000;而如果 a*RAY=10000,b=3000,计算出来的结果为 3,比实际值小了 1/10。
此次事件便是攻击者操控 b 的值,让 b 值与 a 值拥有相同数量级,使得计算等价於 3/2.0001=1,计算值比实际值减小 1/3。
攻击流程
让我们来看看骇客的攻击流程:
1. 攻击者首先通过 AAVE 闪电贷借贷了 300 万枚 USDC,用於攻击启动资金。
2. 攻击者将 200 万枚 USDC 质押到 Radiant 合约,并获得了 200 万枚 rUSDCn 凭证代币。
3. 攻击者通过 Radiant 合约进行闪电贷,借贷 200 万 USDC,并在回拨函式中将 200 万 USDC 归还,同时将第二步质押的 USDC 提取出来,最後闪电贷函式会呼叫 transferfrom 函式连本带利的将攻击者的 USDC 转入合约。此时会收取 9/10000 的手续费,而收取的手续费便成为了池子的流动性。
4. 攻击者通过多次重复步骤 3 的操作,将 liquidityIndex 控制得很大,liquidityIndex=271800000000999999999999998631966035920。
5. 接下来,攻击者新建了一个合约,并向其中打入 54.36 万 USDC,因为 5436 (USDC 数值) 正好是步骤 4 中 2718 (liquidityIndex 数值) 的两倍,可方便进行四舍五入控制。
6. 攻击者将 54.36 万 USDC 全部抵押进 Radiant 合约,并获得相同数量的 rUSDCn。
7. 攻击者提取 40.77 万 USDC,本应该销毁 40.77 万 rUSDCn,但如上所述,burn 函式进行了精度扩展与四舍五入计算。
407700000000000000000000000000000000000/271800000000999999999999998631966035920=1.49999999,而四舍五入结果为 1,导致结果偏小了 1/3。
如下图,本该销毁 40.77 万,但还剩 27.18 万,说明只销毁了 27.18 万,攻击者便提取了 40.77 万 USDC。
8. 攻击者利用第七步的漏洞,重复质押提取操作,并且提取始终比质押数量多 1/3,最终将池子里的 USDC 全部兑换出来。
资金追踪
截止发稿,被盗的 1,902 枚 ETH 一直存在骇客地址未移动,Beosin Trace 将对资金进行持续监控。
随着 2024 年的开启,我们已目睹了两起大金额的被盗案件的发生。(昨日安全事件回顾: 开年第一案,被盗 8000 万美元的 Orbit Chain 事件是怎麽一回事?)这一系列的事件再次提醒了我们,在 Web3 生态系统中,安全防范仍然是至关重要!
延伸阅读:Orbit Bridge跨链桥遭骇8150万美元,Orbit Chain生态全面暴跌
Beosin 作为一家全球领先的区块链安全公司,在全球 10 多个国家和地区设立了分部,业务涵盖专案上线前的程式码安全审计、专案执行时的安全风险监控、预警与阻断、虚拟货币被盗资产追回、安全合规 KYT/AML 等 「一站式」 区块链安全产品 + 服务,公司致力於 Web3 生态的安全发展,已为全球 3000 多个企业提供区块链安全技术服务,包括 HashKey Group、Amber Group、BNB Chain 等,已审计智慧合约和公链主网超 3000 份,包括 PancakeSwap、Ronin Network、OKCSwap 等。
📍相关报导📍
Orbit Chain用户注意!请立即撤销所有合约签署
SUI 遭爆3月秘密修复「十亿美元安全漏洞」,可让骇客闪电贷攻击..
Ledger遭骇引爆DeFi灾难:牵连项目、损失金额、骇客是谁…一文整理