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将继续致力于为平台提供全方位审计与检测,降低各类聚合风险,提高社区信任和整个行业的安全水平

评论

所有评论

推荐阅读

  • 台湾地区行政管理机构通过打诈新四法,将币商纳入管制

    台湾地区行政管理机构今日通过打诈新四法,将币商纳入管制,未来提供虚拟资产服务、第三方支付服务的事业或人员须完成洗钱防制、服务能量登记或登录,否则最重处2年以下有期徒刑或并科新台币500万元以下罚金。台湾地区之外提供虚拟资产服务、第三方支付服务之事业或人员非依公司法办理公司或分公司设立登记,并完成洗钱防制、服务能量登记或登录者,也不得在台湾提供虚拟资产服务、第三方支付服务。 台湾地区金融监管机构副主委邱淑贞表示,目前虚拟货币市场约有60家至70家币商,已通过金融监管机构洗钱防制法遵审查的有25家,未来也将要求所有币商申报、审查,加以币商公会即将成立,币商管理将有法制、行政以及公会管理等层面,且还会借助会计师协助内控。

  • 欧盟考虑将加密货币纳入规模达12万亿欧元的投资市场,其影响或将远超美国ETF

    欧洲证券和市场管理局(ESMA)正就加密资产是否应纳入投资产品咨询业界和专家,此举有望为加密货币打开更广阔的市场,远超现货比特币ETF的市场规模。该计划旨在扩大UCITS(欧盟可转让证券集合投资计划)的适用范围,而UCITS市场规模高达12万亿欧元。此举若成行,将是加密资产在欧洲主流化的关键一步。 ESMA的咨询截止日期为8月7日,批准与否尚待观察。DLA Piper律师Andrea Pantaleo表示,此举的影响将远超美国ETF,因众多基金部门可能将部分流动性投向加密资产。

  • 慢雾:盗取1155枚WBTC黑客相关IP或来自香港

    据慢雾分析,与盗取 1155 枚 WBTC 黑客相关的 IP 被追踪至香港(不排除使用 VPN)。 此前消息,某地址疑似成为另一地址钓鱼攻击恶意交易的受害者,损失了 1155 枚 WBTC,价值 7100 万美元。此后诈骗者将 1155 枚 WBTC 全部售出换成 22960 枚 ETH,并利用大量钱包地址发送和分散资金进行洗钱。

  • 新火科技推出行业最快最安全的2-n ECDSA门限签名

    站在Li17巨人的肩膀上,本文提出快速安全的2-n ECDSA门限签名。该协议继承了Li17 2-2签名的安全性和速度。

  • Web3游戏开发商Seeds Labs完成1200万美元种子轮融资,Solana Foundation等参投

    Web3游戏开发商Seeds Labs宣布完成1200万美元种子轮融资, Avalanche 旗下Blizzard Fund、Solana 基金会、Krust、Hashkey Capital、UOB Ventures、Signum Capital、IVC 和 Emoote等参投。Seeds Labs成立于2021年,是一家基于Solana区块链的游戏基础设施开发商,旨在缓解近年来玩家和开发者之间日益紧张的关系,其旗舰产品全球多平台互联近战大逃杀Web3游戏Bladerite计划于本月发布。

  • 香港比特币ETF昨日总申购量101.6枚,以太坊ETF连续两日呈现净赎回

    根据 SoSo Value 数据,香港比特币现货 ETF 昨日(5 月 8 日)单日净申购比特币 101.6 枚,比特币持有总量为 4350 枚,单日成交额为 267 万美元,总净资产为 2.7 亿美元,单日 BTC 申购量来自博时 HashKey 以及华夏比特币 ETF。在日内折溢率方面,华夏比特币 ETF、博时 HashKey 比特币 ETF 以及嘉实比特币 ETF 分别呈现-0.55%、-0.03%以及 0.01%的日内折价率。华夏 ETF 持有 2020 枚 BTC 排名第一,博时 Hashkey 以及嘉实 ETF 分别持有 1220 枚以及 1110 枚 BTC。另外,香港以太坊现货 ETF 昨日(5 月 8 日)单日净赎回以太坊 644.78 枚,以太坊持有总量为 16100 枚,单日总成交额为 173 万美元,总净资产约为 4835 万美元。值得注意的是,香港以太坊现货 ETF 连续两日呈现净赎回。目前博时 Hashkey ETF 持有 6500 枚 ETH 排名第一,华夏以及嘉实 ETF 分别持有 5700 枚以及 3900 枚 ETH。注:香港加密 ETF 支持现货申赎机制,净申购是指一定时间段内申购金额和赎回金额之差为正,即买入比卖出多,反之则为净赎回。

  • 特朗普宣布接受加密货币形式的总统竞选捐款

    唐纳德·特朗普(Donald Trump)宣布其正在接受加密货币形式的美国总统竞选捐款。特朗普表示:“拜登甚至不知道加密货币是什么,如果你喜欢加密货币,你最好投票给特朗普。”特朗普还承诺,他将停止美国对加密货币的敌意并拥抱它。(Watcher.Guru)

  • 过去24小时全网爆仓1.42 亿美元,其中多单爆仓9933.14万美元

    据Coinglass数据显示,过去24小时加密货币市场全网合约爆仓总金额为1.42 亿美元,共有 64,153 人被爆仓。

  • 能继承以太坊活性的 Based Rollup 是什么?

    Based Rollup 将交易排序外包给 L1 以减轻自身验证复杂度,同时享有与 L1 相同的活性保证。

  • 18张图,一览4月份以太坊L2的「极简数据报告」

    4 月的 L2 中,Base 最为亮眼:新地址、交易总数、TVL 均大幅增长,TPS 也创下历史新高。