#8:SushiSwap 事件:笨拙的救援尝试引发一系列模仿攻击

2023年4月9日,SushiSwap因未经验证的外部参数被利用,损失约330万美元。

#8:SushiSwap 事件:笨拙的救援尝试引发一系列模仿攻击

2023年4月9日,SushiSwap因未经验证的外部参数成为攻击目标,总损失约330万美元。

作为以太坊上拥有庞大用户基础的领先协议,此类顶级协议在合约升级过程中仍可能引入严重的新问题。这再次提醒DeFi社区,安全永远是首要任务。 此外,此次安全事件是由一名白帽安全研究员尝试进行资金救援而触发的,在社区引发了广泛讨论。本文将对此事件进行简要介绍,并将其列为2023年十大安全事件之一。

背景

SushiSwap

SushiSwap,一家知名的DEX,曾对Uniswap发起“吸血鬼攻击”,并取得了巨大的成功。其TVL一度飙升至80亿美元,目前仍保持在4亿美元左右。

授权 (Approval)

简而言之:授权某个合约从您的钱包中访问和转出特定代币的权限

为了方便起见,许多合约默认请求无限额度的授权。许多用户出于对安全风险的担忧,只将少量资金存入各种协议。然而,这些用户却向协议授予了无限额度的资金授权。一旦协议被攻破,账户中所有已授权的代币都可能丢失。

漏洞

未经验证的外部参数

RouteProcessor2合约的 processRoute() 函数允许用户完全控制调用流程(参数 route)。 uniswapV3SwapCallback() 函数中,safeTransferFrom() 函数的 from 参数是从用户提供的 route 中解码出来的。 结果是,已授权RouteProcessor2合约的用户丢失了他们的资产。

攻击过程

此次事件涉及多个攻击交易,我们将以第一个攻击交易为例。 交易:0x43ff7e01423044cfb501b4fe9ef1386725c0ddc117dadd6e6620cb68bdeaf4f9

  1. 攻击者使用精心构造的长参数 route 调用了易受攻击的RouteProcessor2合约的 processRoute() 函数。
  2. processRouteInternal() 函数基于用户提供的 route 创建了一个 InputStream
  3. 交易沿着攻击者的 route 执行,直到到达 swapUniV3() 函数。请注意,pool 是从 stream 中解码出来的,这意味着攻击者控制了要进行 swap()pool,并将其设置为 lastCalledPool
  4. 这调用了攻击者部署的恶意合约,然后该恶意合约通过传递恶意的 calldata 回调了RouteProcessor2的 uniswapV3SwapCallback() 函数。
  5. uniswapV3SwapCallback() 函数需要 msg.sender 检查,但由于 lastCalledPool 已经被设置为恶意合约,因此黑客绕过了检查。重要的是,safeTransferFrom() 函数的 from 参数是从攻击者构造的 calldata 中解码出来的。
  6. 受害者的资产被转移到攻击者部署的恶意合约中。

备受争议的白帽救援

值得一提的是,一位名为 @trust__90 的白帽用户发现了此问题并试图进行资金救援,但这次救援尝试却导致了一场灾难。

  • 使用mempool广播交易,而不是私有RPC。
  • 尝试救援的金额仅为100个以太坊,而不是所有面临风险的资金。

这为MEV机器人和其他攻击者提供了机会,他们执行了多个模仿交易,有效地耗尽了大部分资金。在此事件之后,@trust__90 遭到了批评,并试图为自己的行为辩护

BlockSec救援

在此次攻击中,我们也救援了100个以太坊,并将资金返还给了受害者0xsifu。

迄今为止,我们已成功挫败了20多起真实世界的黑客攻击,并救援了价值超过1400万美元的资产。

安全建议

升级应始终经过审计

这再次提醒DeFi社区,安全永远是首要任务。审计并非安全的保证,但没有审计肯定无法确保安全。

应对授权问题的缓解措施

2023年发生了多起涉及授权攻击的事件,我们借此机会重申管理授权的重要性。 一项安全实践是仅批准必要的金额,或者如果方便是优先考虑的,则批准略高于所需金额的额度。

BlockSec的MetaSuites提供便捷的授权诊断功能。此外,像Revoke Cash这样的工具也可以用来定期检查授权状态。

采用监控和自动响应机制

以太坊是一片黑暗森林,DeFi社区中的每个人都面临着各种风险和挑战,即使是安全专家。 2023年,我们推出了Phalcon,这是行业首个自动化响应系统,不仅用于监控攻击,还用于实时主动阻止威胁。Phalcon经过实战检验的能力已得到证实,成功挫败了20多起真实世界的黑客攻击,并救援了超过1400万美元的资产。这项创新确保了所有利益相关者都能更安心地入睡,因为有主动的措施来保护他们的投资。

阅读本系列的更多文章:

Sign up for the latest updates