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

0x00概述

Ubiquiti(優倍快)網絡公司生產的網絡設備在全球有較廣泛的部署。2019年2月某安全團隊披露了基于Ubiquiti設備的AP發現服務實施的反射DDoS攻擊,攻擊發生在2018年7月,這是最早被爆出該公司網絡設備可被利用作為DDoS的反射放大器的案例。

攻擊披露后,Ubiquiti網絡公司即時發布了漏洞補丁,并提醒用戶升級更新。但近幾年來該公司的網絡設備一直被黑客頻繁利用發起DDoS反射放大攻擊。百度安全智云盾團隊在對抗DDoS攻擊中也經常攔截到此類反射攻擊流量。

0x01 攻擊態勢

1)攻擊趨勢

智云盾團隊持續關注Ubiquiti反射攻擊態勢,多次針對這類攻擊進行過跟蹤分析。在2020年監測到4301次Ubiquiti反射攻擊,并在去年十月達到頂峰。雖然Ubiquiti公司發布過補丁修復,但是從智云盾監測到的攻擊趨勢來看,公網上仍然存在大量的未實施修復的設備。

圖片

圖1 Ubituiti反射攻擊態勢

2)首次攻擊

2019年2月安全研究人員Troutman披露黑客自2018年7月開始利用Ubiquiti公司設備上的AP發現服務進行DDoS反射放大攻擊活動,Troutman表示黑客向Ubiquiti設備上開放UDP 10001端口的AP發現服務發送56字節的小數據包,設備立即回復206字節的數據包。之后另一安全研究人員Jon Hart表示,這類服務的放大倍數可以提高到30-35倍。

Ubiquiti網絡公司官方在關注到這些攻擊后確認了這一問題,并臨時提供了兩個解決方案:
1、非必要,禁用UDP 10001上的AP發現服務;
2、如果必須使用AP發現服務,開啟僅限內部網絡使用的ACL策略。之后官方第一時間發布新版本,用于增強該服務器的安全性。

攻擊首次披露后,Ubiquiti網絡公司統計共有485,000個設備向公網開放了UDP 10001端口,攻擊資源分布在全球各地。

0x02 技術分析

智云盾系統跟蹤這類攻擊時,自動對流量進行采樣,安全專家及時介入對采樣包進行深層次分析和演練。

1)攻擊分析

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

圖片

圖2 采樣包內攻擊來源端口

數據包中的payload明顯為某類設備名稱和版本,通過搜索分析,我們確定了這是Ubiquiti公司的設備和版本信息,采樣包中UDP攜帶的payload如下圖所示:

圖片

圖3 采樣包內UDP攜帶的payload

查詢Ubiquiti公司官網可知,他們在UDP10001上使用發現服務協議。這個協議格式與SSDP設備發現服務不同,沒有固定格式,為此我們將此類反射攻擊命名為UbiquitiDP Reflection,中文簡稱為Ubiquiti反射攻擊。

我們提取數據包中的設備名進行統計分析,分析發現有87%的設備名為Ubiquiti公司標準名稱,并能在公司的官網檢索到,但是有13%的數據包payload帶有HACKED(被黑)字樣,很明顯這些設備名已經被黑客惡意修改。

圖片

圖4 設備名稱

我們對含有HACKED的數據進行統計分析發現,分析發現每個名稱均以HACKED-ROUTER-HELP-SOS開頭,剩余字段有WAS-MFWORM-INFECTED、HAD、VULN-EDB-39710、FTP這四類,其中WAS-MFWORM-INFECTED占比67%,MFWORM表明這個設備已經被MF蠕蟲感染,我們查詢MF蠕蟲披露的資料很少。少部分設備包含FTP字樣,我們主動探測這些IP的FTP服務發現均關閉,我們推測這些服務器最早可能被黑客利用作為FTP服務。

圖片

圖5 惡意修改主機名的設備

2)Ubiquiti服務缺陷

造成此次攻擊的是Ubiquiti公司設備自帶的AP發現服務,該服務使用UDP傳輸數據,綁定在設備10001端口,響應任何UDP包。

該服務在設計之初便沒有按照UDP協議的安全規范實現,一方面開放到公網的UDP服務應當避免請求與響應存在倍率,另一方面UDP服務本身應對客戶端進行校驗。黑客向設備發送一個構造的UDP最小包,該服務便會返回一個或多個UDP大包,請求與響應相差數倍。

3)攻擊模擬

我們在攻擊模擬的過程中發現,大多數反射源在收到單個請求時只回復一個響應包,但是有少數反射源在收到單個請求后,會響應海量的UDP大包,每個數據包長固定。我們分別對這兩類反射源進行分析,結果如下:

A單包反射

安全專家對該事件深入分析,同時從智云盾威脅中心提取到的請求流量進行對比,并完成攻擊場景模擬,模擬過程中抓包如下:

圖片

圖6 模擬攻擊

圖6中模擬發送了載荷長為4字節的UDP小包向反射源傳輸無驗證數據,反射源返回載荷長為512字節的數據包,返回的UDP大包payload包含了Ubiquiti公司的設備信息。

B海量包反射

我們在選取反射源發起請求時,發現有少數IP地址在發送任意內容的UDP請求后,會響應超量的UDP大包,最多的一個反射源響應了3510個UDP大包。

我們向其中一個反射源發送一個空載荷的請求包,并抓包分析,下圖展示了發包過程:

圖片

圖7 模擬攻擊

圖片

圖8 抓包顯示

服務器共響應3510個UDP大包(去掉一個請求包),每個數據包長度固定為1370字節,下圖展示了我們發送的空請求與服務器的響應。

圖片

圖片

圖9 返回超量UDP大包

在測試過程中,我們分別發送空請求、小包和大包UDP請求到反射源,每次均收到海量的UDP大包。這些反射源對任何UDP請求均會響應大量的數據包,危害較大。

我們在單包反射中發送一個請求載荷為4字節的數據包,收到一個載荷長512字節的響應包。在海量包反射中發送一個0字節的數據包,收到總共3510個載荷長為1328字節的海量數據包。在智云盾系統監測到具備響應超量UDP大包的IP共計127個。截止到目前,這些IP仍然可以響應海量UDP大包。

0x03 放大倍數

按照我們前期對反射放大倍數的研究,采用科學的統計放大倍數時,請求響應的包頭甚至網絡間隙都要考慮在內。詳細的方案可以參閱《Memcached DRDoS攻擊趨勢》一文。

科學的計算方式還應該考慮每包的網絡間隙20字節,沒有包括FCS字段的4個字節,另外數據包小于60字節會被自動填充到60字節。

協議頭和網絡幀間隙計算為:14(以太頭)+20(IP頭)+8(UDP頭)+4(FCS頭)+20(幀間隙)=66字節。

單包反射中計算得到的放大倍數為(512+66)/(60+20+4)=6.88倍。

海量包反射計算得到的放大倍數為(1328+66)*3510 / (60+20+4)= 58249.29倍。

如果按照傳統方式(攻擊載荷之比)計算海量包反射的放大倍數:1328*3510 / 0(空請求)= ∞,那么得到的結果為無窮大,可見這個計算方式存在理論缺陷。

0x04 全網數據

1)Ubiquiti公司介紹

Ubiquiti公司主要在全球范圍內設計、制造和銷售創新性的網絡設備。主品涵蓋了無線設備,安全網關,交換機,遠程管理控制器和攝像機這五種設備。目前Ubiquiti公司的產品部署在全球超過180個國家和地區。

Ubiquiti公司的設備在10001端口會開啟AP發現服務,該服務采用UDP傳輸數據,并且支持客戶端采用組播或者單播的請求方式進行數據交互。

2)反射源

智云盾共捕獲到的反射源達到39002個。通過對反射源IP進行調查發現。反射源分布在全球82個國家和地區,其中42%的反射源分布在美國。驗證發現這些設備都為Ubiquiti公司的設備并且10001端口對公網UDP請求數據包都響應,TOP10地區分布如下圖:

圖片

圖10 反射源分布地區TOP10

從zoomeye上對全球10001端口進行檢索發現,全球約有百萬臺公網設備主動暴露了10001端口。這些設備都將可被用作反射源進行攻擊,如下圖所示:

圖片

圖11 zoomeye全球數據

我們在zoomeye上查詢被攻擊者惡意修改主機名的數據發現,共計8W多Ubiquiti設備被惡意修改了主機名。

圖片

圖12 被惡意破壞主機名的設備

0x05 防范建議

此次攻擊是黑客利用固定設備廠商的UDP服務缺陷發起的DDoS反射放大攻擊。反射攻擊相比較傳統的洪泛攻擊具有更好的隱蔽性,并且流量更大的特點。從我們近期對新型攻擊的監測發現,黑客在尋找新的攻擊方式上不再拘泥于傳統公共服務,而是對暴露在公網,并且具備一定規模的UDP服務都嘗試利用作為反射源。

針對此次攻擊行為我們建議相關廠商參考下面方式提升防護能力。

對Ubiquiti公司:

10001的AP發現服務應該限制請求響應字節數比例為1:1

對使用Ubiquiti公司設備的企業用戶:

1.在設備或者上層交換機配置策略,限制非本網段的UDP包請求10001端口.

2.遵循Ubiquiti的建議,禁止使用AP發現服務

3.如果必須使用AP發現服務,升級開放10001端口的AP發現服務為最新版

0x06 智云盾團隊介紹

智云盾防護系統基于百度安全成熟的防御技術,為數據中心建設安全基礎設施。具備本地快速檢測和防御DDoS,同時能自動化拓展T級云防。并集成一系列百度安全能力,在提高數據中心防御DDoS基礎上,具備完善的安全威脅檢測和防御能力。


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