什么是內存緩存 DDoS 攻擊?
內存緩存分布式拒絕服務 (DDoS) 攻擊是一種網絡攻擊,攻擊者試圖使目標受害者的網絡流量超載。攻擊者將欺騙性的請求發(fā)送到易受攻擊的 UDP 內存緩存*服務器,該服務器隨后向目標受害者發(fā)送 Internet 流量,從而可能使受害者的資源不堪重負。當目標的 Internet 基礎設施過載時,就無法處理新請求,而常規(guī)流量也無法訪問Internet 資源,從而導致拒絕服務。
*內存緩存是用于加速網站和網絡的數(shù)據(jù)庫緩存系統(tǒng)。
以下是 Cloudflare 全球網絡中的數(shù)據(jù)中心,以及它們在近期一次攻擊中收到的內存緩存攻擊流量的相對數(shù)量。
內存緩存攻擊的工作原理
內存緩存攻擊的工作方式類似于所有 DDoS 放大攻擊,例如 NTP 放大和 DNS 放大。這種攻擊欺騙性請求發(fā)送到易受攻擊的服務器,該服務器隨后會發(fā)出比初始請求大的數(shù)據(jù)量作為響應,因此放大了流量。
內存緩存放大攻擊就好比是一個心懷惡意的青少年打電話給一家餐廳說“我要菜單上的東西每樣來一份,請給我回電話并告訴我整個訂單的信息”。當餐廳詢問回叫號碼時,他卻給出目標受害者的電話號碼。然后,目標會收到來自餐廳的呼叫,接到他們未請求的大量信息。
這種放大攻擊的方法之所以成為可能,因為內存緩存服務器可以選擇使用 UDP 協(xié)議進行操作。UDP 是一種網絡協(xié)議,允許在不首先獲得所謂握手的情況下發(fā)送數(shù)據(jù) - 握手是指雙方都同意通信的網絡過程。之所以使用 UDP,是因為不用咨詢目標主機是否愿意接收數(shù)據(jù),無需事先征得它們的同意,就可以將大量數(shù)據(jù)發(fā)送給目標主機。
內存緩存攻擊分為 4 個步驟:
攻擊者將大量數(shù)據(jù)有效載荷*植入暴露的內存緩存服務器上。
接下來,攻擊者使用目標受害者的 IP 地址偽造 HTTP GET 請求。
帶有漏洞的內存緩存服務器接收到請求,試圖通過響應來提供幫助,因此將大量響應發(fā)送到目標。
目標服務器或其周圍的基礎設施無法處理從內存緩存服務器發(fā)送的大量數(shù)據(jù),因此導致過載和對正常請求拒絕服務。
這是針對 Cloudflare 網絡的每秒 260 GB 的內存緩存攻擊被防護的情況
內存緩存放大攻擊的規(guī)??梢赃_到多大?
這種攻擊的放大倍數(shù)十分驚人;在實踐中,我們見過高達 51,200 倍的放大倍數(shù)!這意味著對于 15 字節(jié)的請求,可以發(fā)送 750 kB 的響應。這是一個巨大的放大倍數(shù),無法承受如此大量攻擊流量的 Web 資產則面臨巨大的安全風險。巨大的放大倍數(shù)加上帶有漏洞的服務器使內存緩存放大攻擊成為攻擊者針對各種目標發(fā)起 DDoS 攻擊的主要用例。
如何防護內存緩存攻擊?
禁用 UDP - 對于內存緩存服務器,請確保在不需要時禁用 UDP 支持。默認情況下,內存緩存啟用了 UDP 支持,這可能會使服務器容易受到攻擊。
對內存緩存服務器進行防火墻保護 - 通過在內存緩存服務器和 Internet 之間添加防火墻保護,系統(tǒng)管理員可以根據(jù)需要使用 UDP,而不必暴露于風險中。
防止 IP 欺騙 - 只要可以偽造 IP 地址,DDoS 攻擊就可以利用此漏洞將流量定向到受害者的網絡。防止 IP 欺騙是一個規(guī)模較大的解決方案,無法由特定的系統(tǒng)管理員實施,它要求傳輸提供商禁止源 IP 地址源自網絡外部的任何數(shù)據(jù)包離開其網絡。換句話說,Internet 服務提供商 (ISP) 之類的公司必須篩選流量,以使離開其網絡的數(shù)據(jù)包不得假裝成來自其他地方的其他網絡。如果所有主要的傳輸提供商都實施了這種篩選,基于欺騙的攻擊將在一夜之間消失。
開發(fā)具有減少 UDP 響應的軟件 - 消除放大攻擊的另一種方法是去除任何傳入請求的放大因素;如果由于 UDP 請求而發(fā)送的響應數(shù)據(jù)小于或等于初始請求,則放大就不復可能。