Cloudflare和 Github 成為新DDoS 放大攻擊受害者 攻擊規模為Mirai攻擊兩倍

在過去幾天出現了一種新的分散式阻斷服務(DDoS)放大攻擊,而且它有潛力造成比過去都更嚴重的DDoS攻擊。雖然大多數人想到DDoS所用的網路協定時會想到DNS、UpNP/SDP和NTP,但 mecache所造成的攻擊跟利用這些協定一樣有效。Memcache是一種可以從伺服器快速儲存和檢索資料的協定,而不會造成後端資料庫沈重的負擔。不幸的是,最近它也成為了DDoS攻擊一種有效的放大和反射來源。

CloudflareGithub在過去幾天成為了這種新DDoS 放大攻擊的第一波受害者。在Github的例子中,來自Akamai的網路遙測資料顯示至少有一波攻擊造成1.35Tbps以上的網路流量送入其伺服器:

圖1:來自 https://githubengineering.com/DDoS-incident-report/

 

請記住,其中有些流量本身不是攻擊流量,而是正常網路活動(嘗試進行handshake之類),但最終還是造成了巨大的衝擊。根據Akamai SIRT的說法,這次攻擊的規模是2016年9月Mirai攻擊的兩倍。

使用memcached其實很簡單。你發送一個key,它會將與該key相關的資料送回給你。另外一個好處是可以根據需要將多筆查詢放入一個請求中。

 

圖2:建立一個memcache攻擊

 

在目前的攻擊中,攻擊者對Memcache服務發出GETS請求,以取得現有key可以得到的所有資料(圖2中的步驟3和4);但在許多情況下,memcache伺服器並不受保護,並且還允許SET指令(也就是將資料加入memcache伺服器)。惡意份子可以用它來將一個key設定成可允許的最大資料blob,然後對該key執行GETS查詢(圖2中的步驟1-4),來最大化針對受害者的反射攻擊。

雖然memcache可以以TCP(原生)和UDP安裝,但這些攻擊主要出現在UDP端口11211,因為UDP協定比較容易欺騙來源地址,更容易進行反射式DDoS攻擊。

根據Shodan的資料,全球有120,458個(撰寫本文時)memcache伺服器,只有不到1萬台伺服器使用UDP。更有意思的是,其中幾乎有三分之一都被用在攻擊中。

現在,memcache放大值的一個關鍵因素與返回的資料blob有關。一般來說,即時達到上限還是不夠大,但某些代管服務商的memcache設定允許更大的資料blob(某些超過100G),這讓它們在DDoS放大攻擊中變得更加有用。

所以這些攻擊的規模可能會有些前提和限制。首先,就是會被用於反射攻擊的memcached伺服器連接線路所限制。無論產生多大的資料blob,1Gbps的線路都只能發送1Gbps。網路卡也會造成一樣的狀況。最後,這協定只允許兩個8 byte的網路序號(資料blob必須切成多個片段送到網路 – 序號可以讓另一端知道如何將它們全部重組回來)。但只有兩個字元組代表協定可以返回的最大封包數量是65,536,而就算每個封包都達到最大的1428,計算下來總共也只有93.58MB,以用來反射的伺服器線路速度傳送。或是如另一位優秀的同事所說 – 請求/GETS的部分可能超級大,但因為封包傳送序號限制而受到抑制。這也引發了另一個問題,memcached如何處理網路序號比正常允許值更大的資料blob,因為協定內似乎沒有提到如何處理這些封包。這是我需要更多資料的部分。

那麼現在,天塌下來了嗎?網際網路會進入黑暗期?不會。儘管我們還處在了解這種新攻擊媒介的早期階段,不過即使是NDP、SSDP和DNS放大攻擊也沒出現持續性的大規模DDoS攻擊,而memcached也不大可能發生。但是我們很有機會看到DDoS攻擊的規模成長。所以,就如同面對其他阻斷服務攻擊一樣,以下是你該做的:

  • 了解memcache攻擊(Arbor360 Netlab都對這些攻擊提供很好的分析)
  • 使用趨勢科技的網路入侵偵測工具(例如DDI和TippingPoint)來確保對網路進行完善的流量監控(包括進出的流量)
  • 確保使用多個上游網路服務商,以便在主要線路遭受攻擊時還能夠轉移到其他線路
  • 確保自己的網路服務商實施防欺騙最佳實作(例如BCP38 & 84),以確保欺騙性封包(如DDoS反射攻擊中所用)一開始就不會進入你的網路!

 

資安社群的夥伴們協助研究這種新的攻擊媒介。我要感謝這些人,特別是Google的Damien Menscher幫忙了解攻擊流量所用的協定和互動模式,以及Shodan的John Matherly協助評估全球影響。

 

@原文出處:Our Exposed World – Old exposures, new attacks 作者:Natasha Hellberg(FTR資深威脅研究員)