基於DTLS協議的反射攻擊深度分析

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/

本文分享自微信公衆號 - 百度安全實驗室(BaiduX_lab)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章