作者:百度安全實驗室
原文鏈接:https://mp.weixin.qq.com/s/Ye_AuMDLQotv3M5rv9OmOA

0x00概述

德國軟件公司Anaxco GmbH的Marco Hofmann首次發現黑客利用Citrix ADC網關上的DTLS服務(UDP:443)作為反射源實施DDoS放大攻擊,之后國內多個安全團隊針對此類攻擊進行過解讀。

百度智云盾團隊在2021年1月也捕獲到此類攻擊,經過深入分析,我們確認了這次攻擊是黑客利用DTLS協議未啟用HelloVerifyRequest安全認證機制的漏洞發起的反射放大攻擊。

0x01 事件回顧

2020年12月19日,德國軟件公司Anaxco GmbH的Marco Hofmann在公司的監控系統上發現異常流量告警,在公司防火墻上進行抓包分析,發現流量中有同一客戶端IP的大量請求和海量響應,隨后跟蹤到流量來源為Citrix ADC設備上的DTLS服務(UDP 443)。由于異常流量已經影響到了公司網絡,他決定阻斷針對UDP 443端口的請求,從而緩解了這次攻擊對公司網絡的影響。之后他將這次攻擊信息發布到社交網站,不久有其他安全研究人員在EUC社區及社交網站上發帖表示也遭受到了這種攻擊。

Citrix ADC是Citrix(思杰)公司的一系列網絡產品的統稱,ADC的中文名為應用程序交付控制器,也被人稱為NetScaler ADC,主要用于幫助提高應用程序性能,它能在保證數據安全性的同時進行流量優化和加速。Citrix ADC網關程序支持DTLS功能,用于保證UDP協議上的安全通信。目前Citrix ADC程序在全球范圍內被廣泛使用。

Citrix官方在關注到這些攻擊后確認了這一問題,并臨時提供了兩個解決方案:
1、如非必要,禁止使用DTLS服務
2、如果必須使用DTLS服務,啟用ACL策略。之后官方在一月份緊急發布新版本,添加”HelloVerifyRequest”功能,用于增強DTLS的安全性,但是該功能需要維護人員手動開啟。

0x02 技術分析

智云盾系統監測到攻擊時,自動對流量進行采樣,安全專家及時介入對采樣包進行深層次分析和演練。本次攻擊事件共涉及反射源1567個。

  • 攻擊分析

通過對智云盾的攻擊采樣包發現,反射流量的來源端口是443,下圖紅色箭頭指向的是反射源端口與反射數據包:

圖片

圖1 反射源端口與反射數據包

通過分析采樣包可知,攻擊流量部分符合RFC6347定義的協議規范,皆為DTLS服務器響應的證書消息。實際上RFC規定了DTLS協議首次交互需要使用HelloVerifyRequest安全認證,之后才會進行證書交互,顯然上述DTLS服務器沒有遵循這一規范的嚴格實現,導致了這些服務器在收到偽造的客戶端請求后直接響應了大量的證書消息。

  • DTLS協議原理

DTLS協議是用于UDP之上的安全傳輸協議,主要用于保護通信雙方的數據隱私,防范數據被竊取和篡改,可以看做是UDP之上的TLS協議。下圖是DTLS協議規范的交互過程:

圖片

圖2 DTLS協議握手交互過程

客戶端首次發送請求到DTLS服務器,服務器收到后響應HelloVerifyRequest包(攜帶包含客戶端IP的cookie消息),客戶端收到后需再次發送請求并攜帶cookie,之后服務器校驗cookie完成安全認證,如果認證不通過,會再次響應HelloVerifyRequest包。

  • 攻擊驗證

我們抽取本次攻擊中的未開啟HelloVerifyRequest的服務器,向其發送模擬請求,并對交互信息進行抓包分析,下圖為抓包數據:

圖片

圖3 未開啟HelloVerifyRequest的源響應

分析上圖可知,未開啟HelloVerifyRequest安全認證的服務器在收到我們發送Hello請求后直接響應證書消息。

在模擬請求中最大得到的數據包請求211字節、響應5381字節,科學計算放大倍數為5381/211=26.5倍,與之前Marco Hofmann表述的35倍放大效果有差距,這一倍數計算方法應該是用的數據包載荷之比,科學的計算放大倍數可以參閱《MEMCACHED DRDoS攻擊趨勢》一文。

再從本次攻擊中抽取開啟了HelloVerifyRequest的服務器,向其發送模擬請求,下圖為抓包數據:

圖片

圖4 開啟HelloVerifyRequest的源響應

分析上圖可知,開啟HelloVerifyRequest安全認證的服務器在收到我們發送Hello請求后先響應了HelloVerifyRequest,隨后客戶端再次發送攜帶cookie的請求,完成安全認證。

0x03 反射源分析

  • 反射源分析

智云盾系統檢測到攻擊時,自動對流量進行采樣,通過分析采樣包我們發現,共計1567個IP參與了此次反射攻擊,本次攻擊事件中的IP主要來自于美國、德國和英國等10個國家,下圖是IP分布:

圖片

圖5 反射源IP分布

本次反射攻擊中有42個IP未形成放大效果,可能跟Citrix在1月份的緊急升級有關,部分用戶的管理員更新并開啟了HelloVerifyRequest安全認證功能。

  • DTLS協議的使用范圍

DTLS協議可用于Web瀏覽、郵件、即時消息傳遞和VoIP,由于UDP協議的高效性,DTLS協議非常適用于實時傳輸場景。

DTLS協議還被應用于各類應用程序,如:F5 VPN、CiscoAnyConnectVPN、OpenConnectVPN、ZScaler 2.0、思科InterCloud Fabric以及本次攻擊中被利用的Citrix ADC程序均使用DTLS協議來保護UDP上的安全數據傳輸。DTLS協議通常還會與其他協議同時使用,比如與安全實時傳輸協議(SRTP)一起定義用來實現WebRTC,目前Google Chrome、Opera和Firefox均提供支持。

為了調查DTLS協議在全球范圍內的使用情況,我們及時與ZoomEye團隊進行了技術溝通,ZoomEye是國內最優秀的網絡空間搜索引擎之一,ZoomEye團隊在收到反饋后及時針對全網進行掃描,很快獲取到4118個IP使用了DTLS服務(截止統計時,掃描還在繼續),這些IP在全球范圍內均有分布,主要來自于美國、德國、英國等10個國家,下圖是IP的地圖分布情況:

圖片

圖6 反射源IP地圖分布

圖片

圖7 反射源Top5

0x04防范建議

反射攻擊與傳統的flood攻擊相比,能更好的隱藏攻擊者,并且產生較大流量,因為反射攻擊越來越受到黑客青睞。

建議參考以下方式提升防護:

  • 默認開啟DTLS協議的HelloVerifyRequest驗證
  • 升級DTLS協議到最新版本
  • 選擇接入DDoS云安全服務對抗大規模的DDoS攻擊

0x05參考鏈接

[1] https://www.zoomeye.org/

[2] https://tools.ietf.org/html/rfc6347

[3] https://msandbu.org/citrix-netscaler-ddos-and-deep-dive-dtls-protocol/


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1482/