Uniswap 盗币事件分析:钓鱼攻击威力显现

admin 2022年7月12日13:13:53评论36 views字数 1331阅读4分26秒阅读模式

背景信息


2022 年 7 月 12 号,清晨 CZ 的推特发布讯息,称其安全团队监测到 Uniswap 出现大额丢币事件,且攻击者获利的 ETH 已流入 Tornado Cash 。经过链上数据整理和分析,能够发现这是一起攻击者利用钓鱼攻击使受害者在钓鱼环境下调用 approve 授权函数,将受害者持有 Uniswap 721 LP NFT 授权给特定账户,进而导致的攻击。该攻击造成了超过 4295 个 ETH 被窃取。


Uniswap 盗币事件分析:钓鱼攻击威力显现

 

随后 Uniswap 团队回应,此次攻击为钓鱼攻击,在攻击者不掌握受害者钱包账户私钥的前提下,使用哪种办法能够使其获得受害人的资产,进而使其遭受损失呢?这与 setApprovalForAll 及 approve 函数本身存在的潜在 spend 风险,和用户对这一函数所带来的潜在风险认识不到位存在一定关系。另外也不排除钓鱼站点做的足够逼真,以至于让用户忽略了同源策略直接授权


Uniswap 盗币事件分析:钓鱼攻击威力显现


攻击账户信息


为确保分析的时效性,我们将选取特定账户进行分析,且仅对单个受害人进行分析,为了便于读者阅读和理解,特对相关账户进行命名:


  • 受害账户:

    0x15c853bdafc9132544a10ed222aeab1f239414fe

    Uniswap 盗币事件分析:钓鱼攻击威力显现


  • 攻击账户(经授权具备转移受害账户 Uniswap NFT 能力的账户)

    0x3CAFc86a98B77EeDcD3db0ee0aE562D7fe1897A2


    Uniswap 盗币事件分析:钓鱼攻击威力显现


  • 洗币账户(也可以理解为攻击的实际获利账户):

    0x09b5027eF3a3b7332EE90321E558baD9C4447AFA

    Uniswap 盗币事件分析:钓鱼攻击威力显现


攻击信息分析


1.攻击者诱导受害账户调用 setApprovalForAll 方法授权攻击账户的交易链接

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


通过分析发现受害账户与 Uniswap 的 LP 合约进行了交互,且调用 setApprovalForAll 方法授权自己的 NFT 给攻击账户,交易详情如下:


Uniswap 盗币事件分析:钓鱼攻击威力显现

此时,攻击账户就具备了操作受害账户中 Uniswap V3 NFT 的能力(其实每一次在 Opensea 上交易 NFT 都需要调用 setApprovalForAll 方法


2.攻击账户操作 Uniswap V3 NFT 合约将受害者账户中的 LP NFT 转移至洗币账户的交易链接:

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


Uniswap 盗币事件分析:钓鱼攻击威力显现


不难发现,攻击账户在通过钓鱼获得受害账户的授权后,直接向 Uniswap V3 NFT 合约发送转移请求,即将受害账户持有的 LP NFT 转移至洗币账户,此时洗币账户将获得被盗取的 LP ,通过移除 LP 操作,即可获得 ETH 。


3.洗币账户利用 Tornado Cash 进行洗币的交易链接

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


Uniswap 盗币事件分析:钓鱼攻击威力显现


原文始发于微信公众号(承影安全团队ChengYingTeam):Uniswap 盗币事件分析:钓鱼攻击威力显现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月12日13:13:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Uniswap 盗币事件分析:钓鱼攻击威力显现http://cn-sec.com/archives/1172100.html

发表评论

匿名网友 填写信息