Coinbase:Celer Bridge攻击分析
摘要: 我们将分享有关Celer Bridge攻击的本质、攻击者在事件期间的链上和链下技术和战术,以及对类似项目和用户的安全提示。
文章来源:去中心化金融社区
在本篇文章中,我们将分享有关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。
Source:https://blog.coinbase.com/celer-bridge-incident-analysis-895a9fc77e57
评论(0)
Oh! no
您是否确认要删除该条评论吗?