Coinbase:Celer Bridge 攻击分析

Coinbase热度: 16137

以太坊用户遭受了最大的经济损失,单个受害者损失了15.6万美元。

原文标题:Celer Bridge incident analysis

原文作者:Coinbase

原文来源:Coinbase.com

编译:ChinaDeFi

在本篇文章中,我们将分享有关Celer Bridge攻击的本质、攻击者在事件期间的链上和链下技术和战术,以及对类似项目和用户的安全提示。

2022年8月17日,Celer Network Bridge dapp用户遭到了持续约3小时的前端劫持攻击,波及32名用户和23.5万美元的损失。此次攻击是BGP公告的结果,该公告似乎来自QuickHostUk (AS-209243)托管提供商,该提供商本身可能也是受害者。BGP劫持是一种独特的攻击向量,它利用了Internet核心路由架构中的弱点和信任关系。今年早些时候,它被用于KLAYswap等其他加密货币项目。

与2022年8月1日的Nomad Bridg不同,前端劫持主要针对Celer平台dapp的用户,而不是项目的流动性池。在这种情况下,在 Ethereum、BSC、Polygon、Optimism、Fantom、Arbitrum、Avalanche、Metis、Astar 和 Aurora 网络上拥有资产的 Celer UI 用户被展示了专门为其设计的智能合约,旨在窃取他们的资金。

影响

以太坊用户遭受了最大的经济损失,单个受害者损失了15.6万美元。单个网络中受害人数最多的是使用BSC的用户,而Avalanche和Metis等其他链的用户没有遭受损失。

分析


分析

攻击者于2022年8月12日进行了初步准备,在 Ethereum、Binance Smart Chain (BSC)、Polygon、Optimism、Fantom、Arbitrum、Avalanche、Metis、Astar 和 Aurora 网络上部署了一系列恶意智能合约。BGP路由劫持的准备工作发生在2022年8月16日,并在 2022 年 8 月 17 日通过接管一个负责为 dapp 用户提供最新桥接合约地址的子域而达到高潮,持续了约3个小时。在Celer团队发布公告后不久,攻击就停止了,这时攻击者开始向Tornado Cash转移资金。

以下部分将更详细地探讨攻击的每个阶段,以及攻击者在7天内的事件时间轴。

BGP劫持分析

攻击的目标是cbridge-prod2.celer.network子域,该子域托管着Celer Bridge用户界面(UI)的关键智能合约配置数据。在攻击之前,cbridge-prod2.celer.network(44.235.216.69)由AS-16509 (Amazon)提供,路由为44.224.0.0/11。

在2022年8月16日17:21:13 UTC,攻击者为MAINT-QUICKHOSTUK创建路由注册表项,并向Internet路由注册表(IRR)添加44.235.216.0/24路由,为攻击做准备:

分析

图1 -攻击前路由器配置(来源:Misaka NRTM log 作者:Siyuan Miao)

从2022年8月17日19:39:50 UTC开始,一个新的路由开始为更具体的44.235.216.0/24路由传播,与之前不同的起源AS-14618 (Amazon)和一个新的上级AS-209243 (QuickHostUk):

分析

图2 -恶意路由公告(来源:mature Raw Data Archive)

因为44.235.216.0/24是一个比44.224.0.0/11更具体的路径,目的是为了cbridge-prod2.celer.network的流量开始流经AS-209243 (QuickHostUk),因为它取代了下面恶意Dapp分析部分中描述的关键智能合约参数。

分析

图3 - BGP劫持后的网络图(来源:mature)

为了拦截重新路由的流量,攻击者使用GoGetSSL(一家位于拉脱维亚的SSL证书提供商)为目标域创建了一个有效证书,该证书最初是在2022–08–17 19:42 UTC观察到的。

分析

图4 -恶意证书(来源:Censys)

在攻击之前,Celer的域名使用Let 's Encrypt和亚马逊颁发的SSL证书。

2022 年 8 月 17 日 20:22:12 UTC,恶意路由被多个自治系统 (AS) 撤回:

分析

图5 -恶意路由撤回(来源:RIPE Raw Data Archive)

在23:08:47 UTC,亚马逊宣布44.235.216.0/24收回被劫持的流量:

分析

图6 -亚马逊声称路径被劫持(来源:RIPE Raw Data Archive)

通过网络钓鱼合约窃取的第一笔资金发生在 2022-08-17 19:51 UTC 的 Fantom 网络上,并一直持续到 2022-08-17 21:49 UTC最后一个用户在 BSC 网络上丢失资产,该资产与上述有关项目网络基础设施的时间线一致。

恶意Dapp分析

攻击的目标是托管在cbridge-prod2.celer.network上的智能合约配置资源,例如https://cbridge-prod2.celer.network/v1/getTransferConfigsForAll,持有每个链桥合约地址。修改任何桥地址都会导致受害者批准和/或向恶意合约发送资产。下面是一个修改过的示例条目,重定向以太坊用户使用恶意合约0x2A2a…18E8。

分析

图7 -Celer Bridge配置(来源:Coinbase TI分析)

网络钓鱼合约分析

网络钓鱼合约非常类似于官方的Celer Bridge合约,它模仿了它的许多属性。对于钓鱼合约中没有明确定义的任何方法,它实现了一个代理结构,将调用转发到合法的Celer Bridge合约。代理合约对每个链都是唯一的,并在初始化时进行配置。下面的命令说明了负责钓鱼合约的代理配置的存储槽的内容:

分析

图8 -钓鱼智能合约代理存储(来源:Coinbase TI分析)

网络钓鱼合约通过两种方式窃取用户的资金:

  • 使用一个4字节值为0x9c307de6()的自定义方法将钓鱼受害者批准的任何代币抽干。
  • 钓鱼合约覆盖旨在立即窃取受害者代币的方法:
  • send()——用来偷取代币(例如USDC)
  • sendNative()——用于窃取原生资产(例如ETH)
  • addLiquidity()——用于窃取代币(例如USDC)
  • addnativeliquiidity()——用于窃取原生资产(例如ETH)

下面是一个逆向工程代码片段,它将资产重定向到攻击者的钱包:

分析

图9 -钓鱼智能合约片段(来源:Coinbase TI分析)

交换和混淆资金

在攻击期间及随后:

  • 攻击者将Curve、Uniswap、TraderJoe、AuroraSwap和其他特定于链的DEX上偷来的代币交换成每个链的原生资产或打包ETH。
  • 攻击者将步骤1中的所有资产桥接到以太坊。
  • 然后攻击者继续将Uniswap上的剩余代币交换成ETH。
  • 最后,攻击者在2022-08-17 22:33 UTC发送了127个ETH,并在2022-08-18 01:01 UTC发送了另一个1.4个ETH到Tornado Cash。

按照上面概述的步骤,攻击者将剩余的0.01201403570756 ETH存入地址为0x6614…fcd9里。

下图展示了攻击者在向Tornado Cash发送资产之前使用的多链桥接和交换流程:

分析

图10 -资产交换和混淆图(来源:Coinbase TI)

有趣的是,继 2022–08–17 21:49 UTC 的受害者在 BSC 上的最后一次盗窃交易之后,4 个多小时后,BSC 上的0xe35c…aa9d又在 2022–08–18 02:37 UTC 进行了另一次转账。此地址在此交易前几分钟由0x975d…d94b使用 ChangeNow 提供资金。

攻击者资料

攻击者在如何构建网络钓鱼合约方面准备充分且有条理。对于每条链和部署,攻击者都用之前转移的样本代币煞费苦心地测试了他们的合约。这使得他们能够在攻击之前捕捉到多个部署bug。

攻击者非常熟悉可用的桥接协议和DEX,即使是在 Aurora 等更深奥的链上,它们的快速交换、桥接以及在发现被盗资产后混淆被盗资产的步骤也表明了这一点。值得注意的是,攻击者选择了不太受欢迎的链,如Metis, Astar和Aurora,同时通过多个桥发送大量测试资金。

跨链和攻击阶段的交易被序列化,这表明攻击的幕后很可能是一个操作者。

执行一个BGP劫持攻击需要一个专门的网络技能集,攻击者可能在过去部署过。

保护自己

Web3项目不是在真空中存在的,它们的许多关键组件仍然依赖于传统的web2基础设施,例如 dapp 托管服务和域名注册商、区块链网关和核心互联网路由基础设施。这种依赖给其他去中心化产品带来了更多传统威胁,例如 BGP 和 DNS 劫持、域名注册商接管、传统 Web 漏洞利用等。以下是在适当情况下可用于减轻威胁的几个步骤:

启用以下安全控制,或考虑使用已启用这些控制的托管提供商,以保护项目基础设施:

  • 保护托管路由基础设施的RPKI。
  • DNSSEC和CAA保护域和证书服务。
  • 托管、域注册商和其他服务上的多因素身份验证或增强的帐户保护。
  • 限制、记录和审查对上述服务的访问。

为项目及其依赖项实现以下监控:

  • 实现BGP监控,以检测路由和前缀的意外变化(例如BGPAlerter)。
  • 实现DNS监控,以检测意外的记录更改(例如DNSCheck)。
  • 实现证书透明度日志监控,以检测与项目域相关的未知证书(例如Certstream)。
  • 实现dapp监控,以检测前端架构呈现的意外智能合约地址。

DeFi用户可以通过以下方法保护自己免受前端劫持攻击:

  • 使用项目的官方文档(如果可用)验证 dapp 提供的智能合约地址。
  • 签署或批准交易时要保持警惕。
  • 使用硬件钱包或其他冷解决方案来保护不经常使用的资产。
  • 定期检查和撤销任何不需要的合约批准。
  • 关注项目的社交媒体动态以获取安全公告。
  • 使用能够阻止恶意威胁的钱包软件(如Coinbase wallet)。

事件时间表

阶段1:准备

资金

2022–08–12 14:33 UTC — 0xb0f5. 30dd由以太坊的Tornado Cash提供资金。

桥接到 BSC、Polygon、Optimism、Fantom、Arbitrum 和 Avalanche。

2022–08–12 14:41 UTC — 0xb0f5…30dd开始使用以太坊上的 ChainHop 将资金转移到BSC、Polygon、Optimism、Fantom和Arbitrum、Avalanche。

BSC部署

2022–08–12 14:56 UTC—0xb0f5…30dd在BSC上部署0x9c8…ec9f9钓鱼合约。

注意:攻击者忘记指定Celer代理合约。

2022–08–12 17:30 UTC — 0xb0f5…30dd在 BSC 上部署0x5895…e7cf网络钓鱼合约并测试代币检索。

Fantom部署

2022–08–12 18:29 UTC — 0xb0f5…30dd在 Fantom 上部署0x9c8b…c9f9网络钓鱼合约。

注意:攻击者从 BSC 网络中指定了错误的 Celer 代理。

2022–08–12 18:30 UTC — 0xb0f5…30dd在 Fantom 上部署0x458f…f972网络钓鱼合约并测试代币检索。

连接到Astar和Aurora

2022–08–12 18:36 UTC — 0xb0f5…30dd使用BSC 上的Celer Bridge将资金转移到Astar和Aurora。

Astar部署

2022–08–12 18:41 UTC — 0xb0f5…30dd在Astar上部署0x9c8…c9f9钓鱼合约。

Polygon部署

2022–08–12 18:57 UTC— 0xb0f5…30dd在Polygon上部署0x9c8b…c9f9钓鱼合约

Optimism部署

2022–08–12 19:07 UTC —0xb0f5…30dd在 Optimism 上部署0x9c8…c9f9网络钓鱼合约,并测试代币检索。

连接到Metis

2022–08–12 19:12 UTC — 0xb0f5…30dd继续使用以太坊上的Celer Bridge将资金转移到Metis。

Arbitrum部署

2022–08–12 19:20 UTC — 0xb0f5…30dd在 Arbitrum 上部署0x9c8…c9f9网络钓鱼合约并测试代币检索。

Metis部署

2022–08–12 19:24 UTC — 0xb0f5…30dd在 Arbitrum 上部署0x9c8…c9f9网络钓鱼合约并测试代币检索。

Avalanche部署

2022-08-12 19:28 UTC —0xb0f5…30dd在Avalanche上部署0x9c8…c9f9钓鱼合约,并测试代币检索。

Aurora部署

2022–08–12 19:40 UTC — 0xb0f5…30dd在Aurora上部署0x9c8…c9f9钓鱼合约。

Ethereum部署

2012-08-12 19:50 UTC — 0xb0f5…30dd在以太坊上部署0x2a2a…18e8钓鱼合约,并测试代币检索。

路由基础设施配置

2022–08–16 17:21 UTC — 攻击者使用 AS209243、AS16509 成员更新 IRR。

2022–08–16 17:36 UTC — 攻击者更新 IRR 以处理 44.235.216.0/24 路由。

阶段2:攻击

2022–08–17 19:39 UTC — BGP 劫持 44.235.216.0/24 路由。

2022–08–17 19:42 UTC — 观察到 cbridge-prod2.celer.network 的新 SSL 证书

2022–08–17 19:51 UTC —在 Fantom 上观察到第一个受害者。

2022–08–17 21:49 UTC —在 BSC 上观察到最后一个受害者。

2022–08–17 21:56 UTC — Celer Twitter 分享有关安全事件的报告。

2022–08–17 22:12 UTC — BGP 劫持结束,44.235.216.0/24 路由撤回。

阶段3:攻击后交换和混淆

2022–08–17 22:33 UTC — 开始在以太坊上将 127 ETH存入Tornado Cash。

2022–08–17 23:08 UTC — Amazon AS-16509 声明 44.235.216.0/24 路由。

2022–08–17 23:45 UTC — Optimism 与以太坊的最后一笔桥接交易。

2022–08–17 23:53 UTC — Arbitrum 到以太坊的最后一笔桥接交易。

2022–08–17 23:48 UTC —Polygon 到以太坊的最后一次桥接交易。

2022–08–18 00:01 UTC — Avalanche 到以太坊的最后一笔桥接交易。

2022–08–18 00:17 UTC — Aurora 到以太坊的最后一笔桥接交易。

2022–08–18 00:21 UTC —Fantom 到以太坊的最后一笔桥接交易。

2022–08–18 00:26 UTC —BSC 到以太坊的最后一次桥接交易。

2022–08–18 01:01 UTC — 开始在以太坊上将 1.4 ETH存入Tornado Cash。

2022–08–18 01:33 UTC — 将 0.01201403570756 ETH 转移到0x6614…fcd9。

责任编辑:Felix

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。