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 團隊邀請也在第一時間參與應急並協助進行深入分析。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

(https://twitter.com/CelerNetwork/status/1560022871564775424)

分析過程

開始的時候Celer Network 團隊初步懷疑是DNS Hijacking,在與Celer Network 團隊進行溝通討論後得到出問題的域名信息:cbridge-prod2.celer.network,並且根據用戶的反饋,在攻擊期間瀏覽器並沒有提示證書錯誤,因此先排查下DNS Hijacking 的可能性。 (這里特別感謝Twitter用戶@greysign1 的幫助,協助我們快速排查DNS Hijacking 的可能性)

我們先看下相關證書相關信息:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

(https://crt.sh/?q=celer.network)

很明顯證書突然發生了變化,原來Let's Encrypt 簽發的證書被替換為GoGetSSL 簽發的偽造證書。

GoGetSSL 可以簽發免費90 天的證書:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

(https://www.gogetssl.com/sslcerts/free-ssl/)

分析證書1:

https://crt.sh/?id=7356185959

SHA-256

A01A34FE398E56D80BDDA40EFB555D14654856B5FAA6C92BFEBEF2861D712732

證書出現CRL Check 錯誤,時間如下:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

分析證書2:

https://crt.sh/?id=7356184952

SHA-256

579FABEE3A9F7EFECD43C99795744C4B93DC49A4FB93E174B201F8A333990C1A

證書也出現了CRL Check 錯誤,時間如下:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

分析證書1 對應的IP、證書等信息,發現證書綁定的IP 為44.235.216.69:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

(https://search.censys.io/hosts/44.235.216.69)

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

對證書2 的IP 進行調查,未能查詢到證書2 對應的IP 地址,這可能是因為攻擊持續的時間較短,互聯網搜索引擎未能採集到相關的信息。

因此慢霧安全團隊將調查的重點轉向查詢cbridge-prod2.celer.network 域名對應IP 解析記錄:

cbridge-prod2.celer.network 很長一段時間都解析到44.235.216.69:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

疑問點:

cbridge-prod2.celer.network 長時間解析到44.235.216.69,證明這個IP 應該是屬於Celer Network 官方服務器的IP 地址,經過與Celer Network 團隊進行確認44.235.216.69 是屬於他們的IP,但是為什麼會有假證書綁定在這個44.235.216.69 IP 上呢?

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

於是我們開始對44.235.216.69 的AS 進行檢查,發現該IP 對應的AS 存在異常。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

AS16509提示AS16509 announces bogons:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

查閱bogons 相關資料,這種情況經常出現在攻擊者偽造IP 進行攻擊的場景中:

https://networkdirection.net/articles/routingandswitching/bgp-bogonsandmartians/

https://forum.networklessons.com/t/what-are-bogons/6333

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

由於44.235.216.69 的AS 出現了異常,初步推測問題可能出現在BGP 上,於是慢霧安全團隊繼續和Celer Network 團隊進行溝通獲得攻擊IP: 54.84.236.100 ,對IP: 54.84.236.100 進行分析,發現該IP 所在的AS14618 也出現了異常( AS14618 也是announces bogons)。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

並且巧合的是AS14618 的上游是AS16509 (AS16509 也是44.235.216.69 所在的AS),這時候慢霧安全團隊就警惕起來了,這種情況很有可能是一起BGP Hijacking 的攻擊。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

繼續對攻擊IP: 54.84.236.100 進行調查,發現該IP 已被標記為惡意IP。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

並且我們通過情報社區獲得54.84.236.100 相關情報,其中有一則情報提到54.84.236.100 與2014 年的一起BGP Hijacking 事件有關,但是由於這起事件的時間太久了,可能暫時不具備時效性。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

(https://www.secureworks.com/research/bgp-hijacking-for-cryptocurrency-profit)

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

慢霧安全團隊順著BGP Hijacking 方向繼續深入的分析,並開始BGP Trace 記錄追踪:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

追踪攻擊IP: 54.84.236.100 的BGP Trace 記錄,發現目前已經無法找到這條路由。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

繼續追踪Celer 的IP: 44.235.216.69 的BGP Router Ttrace 記錄,能夠正常找到路由。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

接著查詢BGP 節點變動記錄:

北京時間:8/18/2022 2:48 AM - 8/18/2022 7:48 AM UTC+8

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

發現北京時間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。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

(https://smakd.potaroo.net/cgi-bin/per-as?as=14618)

通過上述的分析其實已經有明顯的BGP Hijacking 的痕跡了,為了能夠得到更精準的數據,我們使用bgplay 查看44.235.216.69 相關路徑在攻擊時間前後的變化:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

(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 的路由。

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持

疑問點解答:

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 變化圖:

Celer Network cBridge 跨鏈橋事故真相:BGP 劫持