By:Thinking & 爱上平顶山
事件背景
8 月 18 日,Celer Network 官方表示,北京时间 8 月 18 日 3:45 至 6:00 期间,部分使用 cBridge 的用户被引导至恶意智能合约,cBridge 前端界面疑似遭受 DNS Hijacking 攻击。与之前如 Nomad,Wormhole,Ronin,Harmony 等跨链桥黑客事件完全不同的是,这次攻击并不是因为智能合约和跨链协议的 Bug 或相关服务器被入侵导致的,因此在 cBridge 中锁定的跨链资产也一直保持安全。这次攻击黑客直接针对 Celer 系统之外的互联网架构中的底层基础设施,通过欺骗互联网的底层路由协议(BGP),让跨链用户在一段时间内,访问了一个“钓鱼” 前端用户界面。由于 Celer Network 团队有 24 小时监控机制,客服在第一时间发现问题,后续团队的处置速度及时、方法得当,用户损失非常的小。同时慢雾安全团队应 Celer Network 团队邀请也在第一时间参与应急并协助进行深入分析。
(https://twitter.com/CelerNetwork/status/1560022871564775424)
开始的时候 Celer Network 团队初步怀疑是 DNS Hijacking,在与 Celer Network 团队进行沟通讨论后得到出问题的域名信息:cbridge-prod2.celer.network,并且根据用户的反馈,在攻击期间浏览器并没有提示证书错误,因此先排查下 DNS Hijacking 的可能性。(这里特别感谢 Twitter 用户 @greysign1 的帮助,协助我们快速排查 DNS Hijacking 的可能性)
我们先看下相关证书相关信息:
(https://crt.sh/?q=celer.network)
很明显证书突然发生了变化,原来 Let’s Encrypt 签发的证书被替换为 GoGetSSL 签发的伪造证书。
GoGetSSL 可以签发免费 90 天的证书:
(https://www.gogetssl.com/sslcerts/free-ssl/)
分析证书 1:
https://crt.sh/?id=7356185959
SHA-256 | A01A34FE398E56D80BDDA40EFB555D14654856B5FAA6C92BFEBEF2861D712732 |
证书出现 CRL Check 错误 ,时间如下:
分析证书 2:
https://crt.sh/?id=7356184952
SHA-256 | 579FABEE3A9F7EFECD43C99795744C4B93DC49A4FB93E174B201F8A333990C1A |
证书也出现了 CRL Check 错误,时间如下:
分析证书 1 对应的 IP、证书等信息,发现证书绑定的 IP 为 44.235.216.69:
(https://search.censys.io/hosts/44.235.216.69)
对证书 2 的 IP 进行调查,未能查询到证书 2 对应的 IP 地址,这可能是因为攻击持续的时间较短,互联网搜索引擎未能采集到相关的信息。
因此慢雾安全团队将调查的重点转向查询 cbridge-prod2.celer.network 域名对应 IP 解析记录:
cbridge-prod2.celer.network 很长一段时间都解析到 44.235.216.69:
疑问点:
cbridge-prod2.celer.network 长时间解析到 44.235.216.69,证明这个 IP 应该是属于 Celer Network 官方服务器的 IP 地址,经过与 Celer Network 团队进行确认 44.235.216.69 是属于他们的 IP,但是为什么会有假证书绑定在这个 44.235.216.69 IP 上呢?
于是我们开始对 44.235.216.69 的 AS 进行检查,发现该 IP 对应的 AS 存在异常。
AS16509 提示 AS16509 announces bogons:
查阅 bogons 相关资料,这种情况经常出现在攻击者伪造 IP 进行攻击的场景中:
https://networkdirection.net/articles/routingandswitching/bgp-bogonsandmartians/
https://forum.networklessons.com/t/what-are-bogons/6333
由于 44.235.216.69 的 AS 出现了异常,初步推测问题可能出现在 BGP 上,于是慢雾安全团队继续和 Celer Network 团队进行沟通获得攻击 IP: 54.84.236.100 ,对 IP: 54.84.236.100 进行分析,发现该 IP 所在的 AS14618 也出现了异常( AS14618 也是 announces bogons)。
并且巧合的是 AS14618 的上游是 AS16509 (AS16509 也是 44.235.216.69 所在的 AS),这时候慢雾安全团队就警惕起来了,这种情况很有可能是一起 BGP Hijacking 的攻击。
继续对攻击 IP: 54.84.236.100 进行调查,发现该 IP 已被标记为恶意 IP。
并且我们通过情报社区获得 54.84.236.100 相关情报,其中有一则情报提到 54.84.236.100 与 2014 年的一起 BGP Hijacking 事件有关,但是由于这起事件的时间太久了,可能暂时不具备时效性。
(https://www.secureworks.com/research/bgp-hijacking-for-cryptocurrency-profit)
慢雾安全团队顺着 BGP Hijacking 方向继续深入的分析,并开始 BGP Trace 记录追踪:
追踪攻击 IP: 54.84.236.100 的 BGP Trace 记录,发现目前已经无法找到这条路由。
继续追踪 Celer 的 IP: 44.235.216.69 的 BGP Router Ttrace 记录,能够正常找到路由。
接着查询 BGP 节点变动记录:
北京时间:8/18/2022 2:48 AM - 8/18/2022 7:48 AM UTC+8
发现北京时间 8/18/2022 2:48 AM - 8/18/2022 7:48 AM 这个时间点,有大量的节点添加、删除变动记录。
我们继续追踪 AS 变动记录,发现 AS14618 历史上包含了 44.235.216.0/24 这条路由信息,但是后面将这条路径发生了 Withdrawn,这证明:
曾经 AS14618 中的 44.235.216.0/24 是最优路径
现在 AS14618 中的 44.235.216.0/24 已经不是最优路径,所以被 Withdrawn。
(BGP Hijacking 发生的时候攻击者会发布一条最优的路径将流量引导到自己的服务器上)
(https://smakd.potaroo.net/cgi-bin/per-as?as=14618)
通过上述的分析其实已经有明显的 BGP Hijacking 的痕迹了,为了能够得到更精准的数据,我们使用 bgplay 查看 44.235.216.69 相关路径在攻击时间前后的变化:
(https://stat.ripe.net/special/bgplay#bgplay_fetch.resource=44.235.216.69)
我们可以看到在 2022-08-17 19:19:23 +UTC -- 2022-08-17 23:19:23 +UTC 时间段内,BGP 路由路径的信息出现较大的波动性变化。
并且这种变化表现为:将 44.235.216.0/24 的流量引导到 AS14618,并在攻击时间之后 44.235.216.0/24 的流量路径便从 AS16509 中走。
因此,我们判断这起事件大概率 BGP Hijacking 问题,AS14618 应该是攻击者可以控制的节点(AS14618 的 Router 可能存在安全问题导致被攻击者利用),攻击持续 4 个小时左右。
攻击者可以把证书 1(假证书)绑定在 Celer Network 的 IP: 44.235.216.69 上,也是因为攻击者有相同 IP: 44.235.216.69 的恶意服务器,然后 gogetssl 支持 http 进行验证,只要在恶意服务器上放一个 gogetssl 提供的 txt 就行,因此可以通过 BGP Hijacking 将流量引导到相同 IP 的恶意服务器上完成证书 1 的绑定,这样浏览器就不会有证书错误的提醒。
判断 AS14618 应该是攻击者可以控制的理由:
攻击者先将 44.235.216.69 的流量引导到 AS14618,攻击结束后 44.235.216.69 的路由回到了 AS16509。
并且攻击 IP: 54.84.236.100 也在 AS14618 里面。
攻击结束后 AS14618 Withdrawn 了 44.235.216.69 的路由。
疑问点解答:
cbridge-prod2.celer.network 长时间解析到 44.235.216.69,证明这个 IP 应该是属于 Celer Network 官方服务器的 IP 地址,经过与 Celer Network 团队进行确认 44.235.216.69 是属于他们的 IP,但是为什么会有假证书绑定在这个 44.235.216.69 IP 上呢?
使用 HTTPS 协议进行通讯在没办法拿到证书私钥的情况下是无法加/解密数据(包含客户端/服务端通讯的数据)的,所以要想保证证书正确并且能够进行中间人攻击,攻击者需要通过在权威机构申请的证书重新绑定在的有相同 IP: 44.235.216.69 的恶意服务器上,这样攻击者就能够解密客户端的数据了,并且可以往响应包的数据中插入恶意的代码。
本次攻击事件经过慢雾安全团队与 Celer Network 团队共同配合,进行深入的分析,该事件为 BGP Hijacking 攻击导致的安全事件。这是针对 Celer Network 进行的一次有目的性的 BGP Hijacking 攻击,攻击者选的攻击时间点、证书伪造、AS 控制等操作一气呵成。
最后需要提醒的是,许多运营商已经很清楚 BGP Hijacking 攻击的风险,并为此做了充分准备。但不少项目方并不是很清楚,特别是像 AS 变化引起的网络路径变化,没有充分的准备和响应措施,所以将来很有可能会被同一攻击者或其他攻击者重复攻击。因此,慢雾安全团队建议项目方、互联网服务提供商和服务器托管商应该认识到这类事件的风险,并一起协同防御,避免此类事件再次发生,如果你需要协助请联系慢雾安全团队。
附:
【1】BGP Hijacking 科普参考链接:
https://www.cloudflare.com/zh-cn/learning/security/glossary/bgp-hijacking/
【2】cbridge-prod2.celer.network DNS 变化图:
往期回顾
慢雾导航
慢雾科技官网
https://www.slowmist.com/
慢雾区官网
https://slowmist.io/
慢雾 GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
知识星球
https://t.zsxq.com/Q3zNvvF