當前位置:
首頁 > 新聞 > 深度剖析 Memcached 超大型DRDoS攻擊

深度剖析 Memcached 超大型DRDoS攻擊

雷鋒網編者按:近日,國內外多家安全公司和機構接連發布了針對 Memcached 超級DRDoS(Distributed Reflection Denial of Service)攻擊的預警,引發各方關注。雷鋒網此前也曾就其對 GitHub 發起的攻擊進行過報道,當時攻擊的最大峰值流量達到了驚人的 1.35T。

要知道,在2月27號之前,Memcached的反射攻擊事件流量範圍不過幾百兆到500G。只有短短几天,攻擊峰值的歷史紀錄就迅速被翻倍刷新,並且攻擊發生的頻率從一天十幾次到幾百次,呈現爆髮式增長。

目前,Memcached分布情況如何?黑客是如何發起攻擊的?應該如何檢查和預防?

1、事件回顧

據監控數據顯示,從本周一至周五(2月26日至3月2日 06:00)短短5天內,全球就發生了 79 起利用 Memcached 協議的反射放大攻擊。日攻擊總流量最高達到 419TBytes。

深度剖析 Memcached 超大型DRDoS攻擊

Memcached反射放大攻擊日攻擊次數

深度剖析 Memcached 超大型DRDoS攻擊

Memcached反射放大攻擊日攻擊總流量

其中,針對我國境內的 Memcached 反射放大攻擊就有68次,江蘇、浙江兩省被攻擊頻繁。針對我國境內的攻擊,單次攻擊最高攻擊峰值達 505Gbps。攻擊持續時間最長的一次發生在3月1日,持續1.2小時,總攻擊流量達103.8TBytes。

深度剖析 Memcached 超大型DRDoS攻擊

中國各省份地區Memcached反射放大攻擊次數

從影響範圍來看,所有互聯網的業務都可能成為Memcached DRDoS的攻擊對象。一方面帶寬或業務遭受超大流量的攻擊,導致出口帶寬完全被佔滿,正常業務無法訪問;另一方面企業內部的Memcached系統可能被不法分子利用成為攻擊幫凶。

2、攻擊分析

2.1 什麼是Memcached?

Memcached是一個高性能的開源分散式內存對象緩存系統,主要用於提高Web應用的擴展性,能夠有效解決大數據緩存的很多問題,在全球範圍內都有廣泛使用。Memcached基於內存的key-value存儲小塊數據,並使用該數據完成資料庫調用、API調用或頁面渲染等。攻擊者正是利用 key-value 這項功能構造了大流量的Memcached反射攻擊。

2.2 Memcached分布情況

最新統計顯示,全球總共有3790個Memcached伺服器被利用參與到這些Memcached反射放大攻擊。這些被利用反射源遍佈於全球96個國家或地區範圍內。其中,美國就佔了全球的1/4。

深度剖析 Memcached 超大型DRDoS攻擊

分布在中國地區的被利用的Memcached伺服器位列第二位,佔比12.7%。在中國各省份佔比如下所示,廣東、北京、浙江為TOP3。

據綠盟科技威脅情報中心(NSFOCUS Network Threat Intelligence,簡稱NTI)的統計結果顯示,全球範圍內存在被利用風險的Memcached伺服器為104,506台。分布情況如下:

深度剖析 Memcached 超大型DRDoS攻擊

從地理分布來看,美國可被利用的Memcached伺服器最多,其次是中國。

深度剖析 Memcached 超大型DRDoS攻擊

這些活躍的Memcached反射器為構造超級DRDoS攻擊提供了有力的先決條件。如果不及時修復治理,預計基於Memcached反射攻擊的攻擊事件會繼續增加,後果不敢想像。

2.3 Memcached如何形成DRDoS攻擊?

Memcached反射攻擊的構造過程分為如下3步;

1. 收集反射器IP

通過NTI/Shodan等情報引擎找到開放的Memcached系統,獲取系統IP;

2. 配置反射器

利用開放的Memcached系統作為反射器,並修改key-value配置實現較大的存儲容量,為構造反射放大攻擊進行準備;

3. 發起反射攻擊

攻擊者將自身IP偽造成攻擊的目標地址,並向Memcached反射器發送請求讀取Memcached在key-value中存儲的信息。Memcached在收到請求後向偽造的虛假源IP進行回復,從而形成反射。

深度剖析 Memcached 超大型DRDoS攻擊

Memcached反射攻擊示意圖

當大量Memcached被同時利用,並用同一個偽造源IP進行回復,就輕而易舉地形成了針對這個偽造源(受害者)的大流量DRDoS攻擊。

2.4 Memcached的攻擊特徵

DRDoS(Distributed Reflective Denial-of-Service)是DDoS攻擊分類中的一種。

此前各類安全廠商監測到的DRDoS攻擊主要是SSDP反射、DNS反射、NTP反射等。下表(引自US-Cert)詳細列舉了各類反射攻擊的放大倍數。

深度剖析 Memcached 超大型DRDoS攻擊

僅從放大倍數來看,Memcached反射攻擊的危害程度遠遠高於其他反射攻擊類型,US-Cert提供的數據顯示它能夠實現51,000倍的放大效果。

與其他反射攻擊相比,Memcached如何實現這麼多倍的放大效果呢?其中的重要原因就是Memcached的key-value功能。前文提到key-value的作用是決定存儲容量的大小,正常情況下key-value的值通常不超過幾千位元組。當Memcached被攻擊者利用作為反射器時,key-value的值經過修改可以達到100萬位元組以上。

攻擊過程:

第一步,通過命令修改Memcached上的key-value參數,以提升放大倍數。

send = "set t 0 900 1048501" + "
" + 『a』 * 1048501 + "
"

socket.sendall(send)

經驗證,key-value的最大值為1048501。

第二步通過get命令讀取Memcached的存儲信息,並反射到目標IP。

get="x00x00x00x00x00x01x00x00get t
"

socket.sendto(get, (host, 11211))

形成的攻擊報文如下:

深度剖析 Memcached 超大型DRDoS攻擊

觸發Memcached反射攻擊的請求報文最小為15位元組,包含為8位元組(RFC規定欄位)+3位元組 (get)+1(空格)+最小為1位元組(鍵的名稱 )+2位元組 (
),而返回的請求數據達到105萬位元組,理論上可放大到接近7萬倍。如此強悍的放大攻擊,與其他各類DRDoS攻擊形成斷崖式的差距對比。

3、Memcached攻擊防護加固建議

3.1 Memcached系統自查建議

攻擊的形成過程為我們提供了一個很好的預警思路,安全產品可針對Memcached的key-value配置進行檢測,在Memcached系統被利用成為攻擊源之前就進行攔截。檢測流程如下:

深度剖析 Memcached 超大型DRDoS攻擊

(1)檢測目的埠為11211的TCP或UDP報文(確保是Memcached伺服器);

(2)檢測報文是否為set命令(set命令格式參見附錄),如果是則執行(3),否則結束檢測;

(3)檢測set命令後面的bytes欄位值(如下圖中標註的1048501),是否超過設定的閾值,如果是,則可以懷疑該報文存在異常;

深度剖析 Memcached 超大型DRDoS攻擊

(4)檢測到該類異常控制報文後,可有如下兩種處理方式:

a.告警並監控。為了防止被誤殺,建議同時監控該Memcached伺服器後面的流量變化來進一步判斷該伺服器是否被用做了反射器。

b. 直接丟棄。如果有足夠的證據表明該記錄是惡意添加的,直接丟棄可以保證伺服器不被當做反射器。

自查舉例:假設下圖是公網的一台Memcached伺服器上獲取的數據。

通常情況下,多數value的大小都在64K以內,而最後一條的達到了將近1M,與其他記錄有很明顯的差別,基本上可以判斷該記錄存在問題,該伺服器可能已經被利用。

3.2 Memcached攻擊流量清洗

面對如此大規模、大範圍的DDoS攻擊威脅,所有網路安全節點都應該加強防範,從攻擊防護和外發清洗兩方面入手,充分保障基礎設施和業務流量的安全。針對此攻擊,我們提供如下防護建議:

·運營商。

運營商及IDC處於網路上游,擁有強大的帶寬資源,是攻擊最直接的受害者,也是防護的第一道屏障。運營商能夠靈活控制路由策略和防護策略進行快速過濾。

1)在邊界配置UDP訪問控制規則,將源埠為11211的報文進行阻斷或限速;

2)在邊界配置BGP FlowSpec策略,對源埠為11211的UDP流量進行阻斷或限速;

3)利用DDoS防護設備將源埠為11211的UDP流量進行阻斷或限速。

·企業用戶

企業用戶通常貼近服務終端,熟悉掌握自身業務流量特點,策略配置更加明確,靈活性強。

1)大型企業客戶可以採用和運營商相同的策略,在出口邊界設備配置UDP訪問控制規則或BGP FlowSpec策略對源埠為11211的UDP流量進行阻斷或限速;

2)不具備出口路由配置許可權的企業客戶,可以在抗DDoS等設備上配置防護策略,對源埠為11211的UDP流量進行阻斷或限速;

3)考慮企業出口帶寬可能被打滿的情況,企業客戶可通過運營商或雲清洗服務在上游執行清洗策略,策略內容同樣是對源埠為11211的UDP流量進行阻斷或限速。

3.3 Memcached系統防護加固

對於正在使用Memcached系統的用戶,為了避免被攻擊者利用,使Memcached成為攻擊源,對外發起攻擊流量,影響自身系統性能,我們提供如下幾點建議。

1)在邊界網路設備上配置URPF策略,過濾外發的虛假源IP報文;

2)在Memcached系統前進行深度檢測,直接過濾報文特徵中set key 0 900 64000的第三個欄位過大的數據包,這樣做可以在Memcached系統被修改利用成為攻擊源前進行攔截;

3)對Memcached服務進行安全檢查,查看Memcached服務是否監聽UDP埠。查找Memcached進程,查看是否有-l參數,如果沒有則默認為0.0.0.0。若Memcached服務不需要監聽UDP,禁用UDP。詳情參考Memcached官方文檔:

https://github.com/memcached/memcached/wiki/ConfiguringServer#udp

附錄

set 命令的基本語法格式如下:

set key flags exptime bytes [noreply]

value

參數說明如下:

key:鍵值 key-value 結構中的 key,用於查找緩存值。

flags:包括鍵值對的整型參數,客戶機使用它存儲關於鍵值對的額外信息 。

exptime:在緩存中保存鍵值對的時間長度(以秒為單位,0 表示永遠)

bytes:在緩存中存儲的位元組數

noreply(可選): 該參數告知伺服器不需要返回數據

value:存儲的值(始終位於第二行)(可直接理解為key-value結構中的value)

相關文章:GitHub 遭遇有史以來最嚴重DDoS攻擊,黑客想玩票大的?

此文為綠盟科技&電信雲堤聯合投稿,雷鋒網編輯。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

螞蟻金服的區塊鏈首秀:未來一年再造世界級應用
車企都試圖把自動駕駛戰略和電動化「打包」,但現代要從燃料電池SUV開始

TAG:雷鋒網 |