Cointime

扫码下载App
iOS & Android

详解Socket攻击事件始末

项目方

2024 年 1 月 16 日,Socket Tech遭到攻击,损失约 330 万美元。 攻击者利用了Socket某合约中数据验证环节的漏洞,通过恶意数据输入盗取了授权合约的用户资金。 这次攻击共给 230 个地址带来损失,最大的单地址损失约为 65.6 万美元。

背景介绍

Socket 是一种服务于跨链安全、高效数据和资产传输的互操作性协议。 Socket Gateway合约是与 Socket 流动性层所有交互的接入点,所有资产桥接器和 DEX 在此汇聚成一个唯一的元桥接器,并根据用户偏好(如成本、延迟或安全性)选择最佳交易路由。

黑客攻击发生的前三天,Socket合约管理员执行了addRoute命令,在系统中加入了一条新路由。 添加路由的目的是扩展Socket网关的功能,但却无意中引入了一个关键漏洞。

下图为通过合约管理员添加路由的记录

事件梗概

  1. 1,北京时间1月16日15:03,攻击者钱包转入攻击所用资金,我们的时间分析表明这笔资金来自0xe620,与从Tornado Cash提取的10 BNB有关。

  1. 2,这些资金被用于创建和执行两个合约,来利用Socket的漏洞。 第一个合约针对的是授权了 SocketGateway 的地址中的 USDC(截图如下);127 名受害者被骗走约 250 万美元。

  1. 3,接下来,第二个合约则将目标对准了受害者地址内的WETH, USDT, WBTC, DAI 与MATIC。于是,另外104名受害者损失了如下资产:
  • 42.47526105 WETH
  • 347,005.65 USDT
  • 2.88962154 WBTC
  • 13,821.01 DAI
  • 165,356.99 MATIC
  1. 4,攻击者将USDC与USDT转换成了ETH。

漏洞来源

被攻击者利用的漏洞存在于新添加的路由地址 routeAddress内的performAction函数中。

该地址内的performAction函数原本的功能是协助Wrapping与Unwrapping的功能。 然而,该函数中出现了一个关键漏洞:用户在无需验证的情况下,直接在.call() 中通过swapExtraData调用外部数据,这意味着攻击者可以执行任意恶意函数。

在这次事件中,攻击者制作了一个恶意的 swapExtraData 输入,触发transferFrom函数。 该恶意调用利用了用户对 SocketGateway 合约的授权,从他们那里盗走了资金。

虽然合约会通过检查余额检查确保 fromToken.call() 调用后用户余额会出现正确的变化,但该函数没有考虑攻击者将金额设置为0的情况。

还原攻击流程

  1. 1,使用攻击合约,攻击者在Socket Gateway合约上调用了0x00000196()。

  1. 2,fallback() 使用六进制签名 196 调用了有漏洞的路由地址合约(routerAddress)。

  1. 3,在下面的截图中,我们可以看到攻击者使用的虚假输入,Swapping数量全部为0。

  1. 4,接下来将调用WrappedTokenSwapperImpl.performAction() 进行Swap。

  1. 5,在没有进行任何验证的情况下,虚假的SwapExtraData被fromToken (WETH)接受并执行。

  1. 6,攻击者重复执行以上流程,直到受害者资产耗尽。 恶意交易出现后,Socket 迅速调用了 disableRoute,屏蔽了之前有漏洞的路由,阻止了更大范围的攻击。
  2. 7,1月23日,Socket宣布已经追回1032枚ETH,并在25日宣布将全额补偿所有损失。本次事件得到解决。

事件总结

在有着无限额用户授权的路由合约中,恶意 calldata 攻击并不罕见。 以前类似的攻击包括 Dexible 和 Hector Bridge。 2023 年 2 月 17 日,去中心化交易所 Dexible 被攻击,损失超过 150 万美元。 漏洞利用者向 Dexible 的 fill() 函数输入恶意 calldata,以窃取用户资产。 2023 年 6 月 2 日,Hector 网络的协议被攻击。攻击者部署了一个虚假的 USDC合约,并通过恶意 calldata,将 65.2万枚真实的USDC从受害者的合约中转移出去。

区块链聚合平台通常通过封装一系列桥和路由合约来提高流动性,减少损耗。然而,这种复杂的封装会给安全性带来更多难题。我们欣慰地看到Socket此次事件可以得到解决,CertiK将继续致力于为平台提供全方位审计与检测,降低各类聚合风险,提高社区信任和整个行业的安全水平

评论

所有评论

推荐阅读

  • 巴克莱:欧洲央行可能选择12月降息

    巴克莱目前认为,欧洲央行有可能选择在12月降息一次,而不是此前预测的9月降息。该行经济学家马里亚诺·西纳说,这一修正考虑到了下半年经济活动的疲软,这是由贸易政策的持续拖累和美国早些时候提前进口的影响造成的。巴克莱预计,到12月,有关贸易逆风的信号将更加清晰,对供应链中断影响通胀的担忧也会减少。此外,对2026年财政计划不会重燃通胀压力的信心可能增强,将支持降息25个基点。巴克莱预计,到2026年,欧洲央行的终端存款利率将保持在1.75%。

  • 8月4日午间重要动态一览

    7:00-12:00关键词:Paradigm、Metaplanet、美联储 1.市场分析:美国就业数据失信将加剧市场波动; 2.日本上市公司Metaplanet再度增持463枚比特币; 3.法国右翼政党"国民联盟"计划推动法案支持核电挖矿比特币; 4.本周解锁数据一览:ENA、IMX、MOVE等将迎来大额解锁; 5.分析师:Paradigm 或持有超1913万枚HYPE,价值约7.654亿美元; 6.特朗普媒体Q2净亏损2000万美元,拟推出实用代币和数字资产ETF; 7.特朗普:将在未来几天宣布一位候选人来填补空缺的美联储理事职位。

  • 市场分析:美国就业数据失信将加剧市场波动

    上周,特朗普以“操纵”数据为由解雇了美国劳工统计局局长,此后货币市场的怀疑气氛继续升温。Coolabah Capital首席宏观策略师基兰·戴维斯表示,进一步下调美国就业增长数据可能会更加激怒特朗普。戴维斯警告说,政府尚未任命一名替代专员,但如果数据被实际上操纵或者被市场视为操纵(例如停止发布一些基于环境和卫生统计经验的数据),这将会增加金融市场的波动性

  • Solana ETF杀入华尔街:质押收益掀起传统金融“高收益革命”

    今年 5 月 20 日,SEC 曾首次按下暂停键,要求21 Shares、Bitwise、VanEck 与 Canary Capital的现货 Solana ETF 再等等——理由是“需更多时间评估法律与政策问题”。

  • 股价暴跌,Coinbase 财报公开了哪些秘密?

    Coinbase 在 Q2 购买 2509 枚 BTC,总 BTC 持仓量为 11776 枚,总成本 7.4 亿美元,现价值 12.6 亿美元。

  • 加密世界的奥古斯塔:RWA 代币为何选择「精英模式」?

    金融排他性的历史通常是关于通过排斥来维护特权的故事。

  • SharpLink巨鲸:靠英伟达和Coinbase赚了9倍,SBET却让我睡不着觉

    他相信以太坊"即将迎来爆发时刻"并创下历史新高,ETH/BTC汇率今年可能翻倍。尽管如此,除了SBET股票外,他并未持有任何以太坊。

  • 8月4日隔夜重要动态一览

    21:00-7:00关键词:关税、中本聪、Solana

  • 8月3日晚间重要动态一览

    12:00-21:00关键词:特朗普、中本聪雕像、英国 1.特朗普怒斥民主党政治勒索; 2.Michael Saylor发文“冬天不会再回来”; 3.位于瑞士卢加诺的中本聪雕像今日被盗; 4.英国散户投资者10月将可以购买加密货币交易所交易票据; 5.Metaplanet CEO:将提供多种工具来筹集资金购买比特币; 6.以太坊第二大持币机构SharpLink Gaming持仓浮盈超2亿美元。

  • 8月3日午间重要动态一览

    7:00-12:00关键词:LuBian、pump.fun、Michael Saylor 1.比特币矿工近两周减持超3000枚比特币; 2.pump.fun近24小时Solana发币平台市场份额升至32.4%; 3.加密恐慌与贪婪指数跌至53,等级近一个月首次回归“中性”; 4.Michael Saylor:比特币短期是交易资产,长期将是财库资产; 5.“麻吉大哥”黄立成近期做多仓位导致其回吐此前超两千万美元盈利; 6.财新:消息人士称京东、蚂蚁或许很难出现在首批稳定币牌照名单上; 7.LuBian矿池曾于2020年被盗损失12.7万枚BTC,黑客仍掌控资产并成为全球第13大BTC持有者。