# OrionProtocol遭受重入攻击事件分析2023年2月2日下午,以太坊和币安智能链上的OrionProtocol合约因存在漏洞而遭受重入攻击。攻击者成功窃取了约290万美元的资金,其中包括以太坊链上的2,844,766 USDT和币安智能链上的191,606 BUSD。## 攻击过程分析攻击者首先部署了一个自定义Token合约,并对该Token进行了转移和授权操作,为后续的攻击做好准备。随后,攻击者利用Uniswap V2的swap功能进行借贷,并调用OrionProtocol的ExchangeWithAtomic.swapThroughOrionPool方法进行代币兑换。兑换路径设置为:USDC → 攻击者的自定义Token → USDT在兑换过程中,由于攻击者的自定义Token合约中包含回调功能,使得在Token转账时能够再次调用ExchangeWithAtomic.depositAsset方法。这种重入攻击导致存款金额被重复计算,最终允许攻击者提取超出实际存入金额的资金。## 资金流向攻击者初始资金来源于某大型交易平台的热钱包。攻击获得的1,651个ETH中,657.5个ETH仍留在攻击者的钱包地址中,其余部分已通过混币服务转移。## 漏洞分析漏洞的核心问题出现在doSwapThroughOrionPool函数中。该函数在执行代币转账后更新curBalance变量,这为重入攻击创造了条件。攻击者通过在自定义Token的transfer函数中添加回调逻辑,使得在更新curBalance之前可以重复调用depositAsset函数,从而导致余额计算错误。## 防范建议为防止类似攻击,项目方应注意以下几点:1. 实施严格的访问控制和权限管理。2. 遵循"检查-生效-交互"(Checks-Effects-Interactions)模式编写智能合约。3. 使用重入锁或类似机制防止重入攻击。4. 对于涉及代币兑换的功能,需考虑各种Token类型和兑换路径可能带来的安全风险。5. 进行全面的安全审计,包括静态分析、动态测试和人工审核。6. 持续监控合约活动,建立快速响应机制。此次事件再次强调了在开发和部署智能合约时,安全性应始终是首要考虑因素。项目方需要不断完善安全措施,以保护用户资产和维护平台信誉。
OrionProtocol遭受290万美元重入攻击 资金被盗分析与防范建议
OrionProtocol遭受重入攻击事件分析
2023年2月2日下午,以太坊和币安智能链上的OrionProtocol合约因存在漏洞而遭受重入攻击。攻击者成功窃取了约290万美元的资金,其中包括以太坊链上的2,844,766 USDT和币安智能链上的191,606 BUSD。
攻击过程分析
攻击者首先部署了一个自定义Token合约,并对该Token进行了转移和授权操作,为后续的攻击做好准备。随后,攻击者利用Uniswap V2的swap功能进行借贷,并调用OrionProtocol的ExchangeWithAtomic.swapThroughOrionPool方法进行代币兑换。
兑换路径设置为:USDC → 攻击者的自定义Token → USDT
在兑换过程中,由于攻击者的自定义Token合约中包含回调功能,使得在Token转账时能够再次调用ExchangeWithAtomic.depositAsset方法。这种重入攻击导致存款金额被重复计算,最终允许攻击者提取超出实际存入金额的资金。
资金流向
攻击者初始资金来源于某大型交易平台的热钱包。攻击获得的1,651个ETH中,657.5个ETH仍留在攻击者的钱包地址中,其余部分已通过混币服务转移。
漏洞分析
漏洞的核心问题出现在doSwapThroughOrionPool函数中。该函数在执行代币转账后更新curBalance变量,这为重入攻击创造了条件。攻击者通过在自定义Token的transfer函数中添加回调逻辑,使得在更新curBalance之前可以重复调用depositAsset函数,从而导致余额计算错误。
防范建议
为防止类似攻击,项目方应注意以下几点:
此次事件再次强调了在开发和部署智能合约时,安全性应始终是首要考虑因素。项目方需要不断完善安全措施,以保护用户资产和维护平台信誉。