Coinbase: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
关于
ChinaDeFi - ChinaDeFi.com 是一个研究驱动的 DeFi 创新组织,同时我们也是区块链开发团队。每天从全球超过 500 个优质信息源的近 900 篇内容中,寻找思考更具深度、梳理更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。
Layer 2 道友 - 欢迎对 Layer 2 感兴趣的区块链技术爱好者、研究分析人与 Gavin(微信: chinadefi)联系,共同探讨 Layer 2 带来的落地机遇。敬请关注我们的微信公众号 “去中心化金融社区”。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
来源链接


