安全預警:攻擊者利用Memcached伺服器可發動大規模DDoS攻擊
Memcached是一個非常流行的分散式高速緩存系統,廣泛應用於一些大型網站中,用以提升網站的訪問速度,尤其對於一些大型的或者需要頻繁訪問資料庫的網站來說,其提升訪問速度的效果十分顯著。
研究人員發現,目前互聯網中利用Memcached進行DDOS攻擊在近期呈明顯上漲的趨勢。攻擊者利用Memcached協議,發送大量帶有被害者IP地址的UDP數據包給放大器主機,然後放大器主機對偽造的IP地址源做出大量回應,形成分散式拒絕服務攻擊,從而形成DRDoS反射。早在2017年6月,360信息安全部0kee Team就發現了這種利用Memcache放大的攻擊技術,並通過PoC2017安全會議對安全社區做出了預警。
Memcached 工作在 TCP 11211 與 UDP 11211 埠,且 UDP 11211 埠默認對外開放。攻擊者可向 UDP 11211 埠發送一個小的原始數據包來誘使 Memcached 返回一個大於原始數據包上千倍(理論可達數萬倍)的數據包。
而又因為UDP協議可以偽造源IP的特性。攻擊者可以偽裝成受害者的IP來向Memcached發送一個小的原始數據包,導致 Memcached 向受害者的IP返回一個千倍大小的數據包,導致了對受害者的 「反射型 DDOS 攻擊」。Memcached 伺服器往往位於擁有高速帶寬的IDC中,一旦被攻擊者用於反射型DDOS攻擊,威力極大。
本次Memcrashed技術特點:
反射倍數較大,已經確認可以穩定的達到5萬倍
反射點帶寬充裕,且主要來自IDC機房伺服器
本次Memcrashed攻擊特點:
反射點分布,中國占較大比例(43%)
攻擊頻率,最近一周(2018-02-24日開始)突然上升了一個數量級。之前約
實際現網中,已經出現了 0.5Tbps 的攻擊,並且我們相信有更大的攻擊案例並未被公開報道
在接下來的一段時間內,我們預計會出現更多利用memcached進行DRDoS的事件,如果本次攻擊效果被其他DDoS團隊所效仿,將會帶來後果更嚴重的攻擊。
風險等級
360安全監測與響應中心風險評級為:高危
預警等級:藍色預警(一般網路安全預警)
影響範圍
版本在Memcached 1.5.6 以下,並且對公網開放 UDP 11211 訪問的 Memcached 伺服器都可以被攻擊者用來進行反射型 DDOS 攻擊。
通過360CERT QUAKE全網測繪顯示,在外開放的Memcache存儲系統有94489,在十萬量級上下:
其中美國最多,佔38899,中國次之,佔22944:
國內情況,香港地區數量最多,分布如下:
處置建議
1.1 緩解措施
對於Memcache使用者:
1. 官方最新版本 1.5.6 中已經默認關閉了 UDP 11211 埠,可升級至最新版本,並且使用SASL設置密碼來進行許可權控制。
2. 在邊界防火牆上關閉 UDP 11211 埠的入站以及出站流量。
3. 如非必要,應在伺服器上關閉 Memcached 的 UDP 11211 埠,或只允許其監聽在 127.0.0.1:11211。
運營商緩解措施:
1. 運營商的互聯互通設備上對出口網路中對源埠為 UDP 11211的請求進行控制。
2. 運營商內部的骨幹節點接入設備對出口網路中源埠為 UDP 11211的請求進行控制。
3. IDC 在網路出口對出口網路中的源埠為 UDP
11211的請求進行控制。
1.2 控制方式
1. 直接封禁UDP協議的11211埠。
2. 通過netflow等監控方式統計UDP 11211的流量,超過閾值再進行封禁。
技術分析
基於UDP協議的DDOS反射攻擊
分散式拒絕服務(DDoS:Distributed Denial of Service)攻擊指藉助於客戶/伺服器技術,將多個計算機聯合起來作為攻擊平台,對一個或多個目標發動拒絕服務攻擊,從而成倍地提高拒絕服務攻擊的威力。
而本次事件中基於UDP協議的DDOS反射攻擊靠的是發送大量帶有被害者IP地址的UDP數據包給放大器主機(Memcached),最後放大器主機對偽造的IP地址源做出大量回應,形成分散式拒絕服務攻擊。這樣就巧妙的利用了無需交互認證的基於 UDP 的服務將DDOS攻擊數據「放大」並「反射」到受害者主機IP上。而黑客往往會選擇那些響應包遠大於請求包的UDP服務,這樣只需要極小的攻擊流量就可以造成上百Gbps的攻擊效果。
下圖引用了CLOUDFLARE對UDP協議的DDOS反射攻擊圖例來說明攻擊過程:
Memcached反射DDOS攻擊技術分析
要完成一次UDP反射放大攻擊,需要滿足以下幾個基本條件:
作為攻擊者,需要能偽造IP,並發送海量偽造來源的請求。
作為反射伺服器,上面需要運行著容易放大反射攻擊的服務,而運行了設計不當的UDP協議的服務是最佳的選擇。
反射伺服器的響應包最好遠遠大於請求包,這樣才能使用較小的攻擊流量進行高流量的DDOS攻擊。
反射伺服器對應的協議或服務在互聯網上有一定的使用量,比如本次攻擊中的Memcached。
而Memcached提供的基於UDP協議的服務正好滿足上訴的UDP反射放大攻擊的各種條件:
從協議看,Memcached支持UDP。
Memcached大部分是作為企業應用的組件,往往具有很高的上傳帶寬。
Memcached不需要認證就可以隨意交互。
很多用戶編譯安裝時,錯誤的監聽了0.0.0.0,且未設置iptables或雲安全組,這使得攻擊者可以自由訪問這些服務,從而進行UDP反射攻擊。
攻擊流程
完成一次針對Memcached的UDP反射放大攻擊,基本攻擊流程如下:
掃描埠和服務,抓取協議指紋,獲取未認證的Memcached。
過濾出可以反射的UDP Memcached,再獲取可以成功放大的Memcached主機ip地址。
向可以放大UDP返回數據的Memcached主機ip發送偽造成被攻擊主機IP的UDP包。
Memcache主機ip將放大了上萬倍的UDP數據發送給被攻擊主機IP,造成DDOS攻擊。
放大倍數
測試了多個Memcached server,反射放大係數是有上限的,放大倍數最高可以在6W倍左右,使用tcpdump分析請求響應的報文:
攻擊機器A:
測試指令:
python -c "print " x01 x01 gets a b c d e
"" |nc -nvvu 9x.xx.xx.2 11211 |less
被攻擊機器B:
測試指令:
tcpdump -ni eth0 port 11211 -t
可以看到,一個15位元組的UDP請求觸發了分片後總量達到近百個,單個1400位元組長度的響應,重複數百次,DDOS攻擊的放大倍數達到了近萬倍。
利用條件
1、Memcached服務必須開了UDP 11211埠。(注意:開了TCP 11211埠無效)
2、可被利用的Memcached存在Authentication Disable缺陷,即無需認證。
3、Memcached服務存在的節點有比較充足的帶寬資源。
以上3個條件必須同時滿足時,才可以打出放大倍數比較大的反射流量。
參考資料
[2] https://www.arbornetworks.com/blog/asert/memcached-reflection-amplification-description-ddos-attack-mitigation-recommendations/
TAG:360企業安全 |