首席技術官 Adrian Newby 平靜的一周即將改變。他的公司為其客戶提供基于互聯網的軟件即服務。其中一位客戶現在遇到了麻煩。他們的服務器已經開始行動了。他們收到了大量無法應對的互聯網流量。癥狀就在那里。Newby 知道這是 DDoS 攻擊的開始。試圖拒絕客戶端訪問其服務的同步分布式工作。他是如何面對挑戰的?
他立即開始與襲擊者戰斗。整場比賽耗時超過 39 小時。防守隊員下車比較輕松——他們的花費只有1500美元左右。紐比和他的團隊奮力拼搏,避免了這場災難。他們 的云的彈性極大地幫助了他們 ——通過反復擴大云,他們最終戰勝了攻擊者。
不過,這件事可能會以更加邪惡的方式結束。如果 Newby 的服務器受到不同類型的 DDoS 攻擊,即使是云計算及其擴展能力也無法挽救它們。DDoS 攻擊有很多種,它們都需要不同的防御策略。攻擊者比其他人更頻繁地使用其中一些品種。他們選擇哪些武器,我們如何保護我們的服務器免受它們的侵害?繼續閱讀。
DDoS 攻擊如何運作?就像一次打很多電話一樣
大多數 IT 人員都知道 DDoS 攻擊通常是如何工作的。對于那些不這樣做的人:想象一千個人試圖同時通過您的手機與您聯系。他們不需要任何重要的東西,他們只是坐在電話線上,這樣其他人就無法聯系到你。攻擊者群體之外的人無法讓您接聽電話。這種比較在很多方面是不準確的,但足以讓您有所了解。
DDoS 的實際工作方式要復雜得多。首先,攻擊不止一種。有許多不同的品種,差異很大。專家通常通過拒絕方法將 DDoS 變體分為幾個大類。例如,Radware 詳細介紹了針對網絡資源的 DDoS 攻擊 、針對服務器資源的攻擊或通過 SSL 層進行的攻擊。
正如類別名稱所暗示的那樣,一些方法試圖吞噬服務器的資源,而另一些則利用應用程序或安全性中的弱點。值得注意的是針對網絡資源的攻擊。那些試圖通過耗盡特定服務器的連接性來“堵塞管道”。這使得普通用戶無法訪問它。
威脅越來越大:DDoS 攻擊更頻繁地發生
正如我在該博客的一篇文章中所寫的, 最近 DDoS 攻擊越來越多。而且這些攻擊中的大多數實際上都包含不止一種類型的 DDoS。根據調查,作惡者最常選擇兩種攻擊媒介 ——SYN 洪水 和 UDP 洪水。
它們是如何工作的?
最常見的方法:UDP數據包淹沒服務器
到目前為止,最常見的 DDoS 方法是 UDP 泛洪 - 首字母縮略詞 UDP 表示用戶數據報協議。通常,它構成互聯網通信的一部分,類似于更常見的 TCP。它與 TCP 的不同之處在于 UDP 不檢查通信的建立、進度或超時——這就是所謂的握手。它使 UDP 速度更快,但也使其容易受到惡意濫用。
例如,UDP 泛洪。
它的工作原理非?;?。攻擊者向目標服務器的隨機端口發送大量 UDP 數據包。服務器必須響應所有這些,這些是規則。首先,它需要檢查是否有任何應用程序正在偵聽這些端口上的通信。當它沒有找到時,服務器需要發回關于目的地不可用的信息。它通過稱為 ICMP 的 Internet 協議執行此操作,該協議用于發送錯誤消息。
每個發送到目標服務器的數據包都需要得到回復。這會消耗服務器的連接性,有時還會消耗其他資源。這種巨大的流量——部分是由服務器本身產生的——使得與服務器的常規連接變得不可能。
這種類型的攻擊可以歸類為針對網絡資源的攻擊或基于卷的攻擊。它的受歡迎程度可能部分是由于防御的難度。服務器所有者只能限制一次處理的 ICMP 數據包的數量。但是,這無助于 與服務器的通信, 因為這些管道已經被傳入的 UDP 數據包阻塞。
唯一有能力對 UDP 洪水采取任何措施的是互聯網提供商,例如,他們可以過濾 UDP 數據包并將它們重新路由到所謂的黑洞服務器。這些是接收違規數據包但不向攻擊者發送任何確認的目的地。
它的流行也可能源于UDP洪水部署的相對容易。有幾個可用的應用程序可以讓以這種方式攻擊任何人變得非常簡單。其中之一就是 低軌道離子炮,它將 UDP 泛洪攻擊的過程簡化 為幾下鼠標點擊。
SYN 泛濫:服務器等待應答,但沒有響應
第二種最常見的攻擊類型是大量 SYN 數據包。它濫用了 TCP 的一個特性。在更快但不太安全的 UDP 不檢查通信的開始、進度或終止的地方,它相對較慢但更可靠的老大哥 TCP 會檢查。它是通過通信雙方在正式建立連接之前必須相互發送的一系列信號來實現的。
讓我們詳細看看這個過程。(如果您趕時間,也可以跳到藍框。)通信的第一個參與者向其目標服務器發送一個 SYN 數據包。首字母縮略詞表示同步并告訴目標服務器需要連接。通信的第二部分發生在目標服務器以另一條消息響應時,這次是使用 SYN-ACK(同步確認)數據包。這告訴第一個參與者服務器收到了 SYN 數據包并準備開始通信。
當第一個參與者收到來自服務器的 SYN-ACK 響應時,該過程的第三步也是最后一步發生。它應該再發送一個 ACK?? 數據包,以確認服務器的 SYN-ACK。握手現已完成,TCP 連接已成功建立。由于該過程由三個階段組成(首先是 SYN,然后是 SYN-ACK,然后是 ACK),因此通常稱為三次握手。當發生 SYN 洪水時,此過程會脫軌。就在它即將結束的時候。
目標服務器收到 SYN 并以 SYN-ACK 響應(到目前為止一切順利),但隨后掛起。來自通信的第一個參與者的所需 ACK 消息沒有到來。服務器不確定此通信發生了什么,并一直等待最后一個數據包。畢竟,它可能只是在通過網絡的過程中被延遲了。
然而,這意味著服務器需要讓這個連接半開,并分配一些資源來監視丟失的 ACK 數據包。而那個數據包永遠不會到來,因為攻擊者是這樣設計的。相反,服務器接收到他再次嘗試響應但沒有收到 ACK 消息的其他 SYN 請求。當它被這些請求淹沒時,它可能會耗盡所有資源、行為不正確或徹底崩潰。
用餅干建造水壩
幸運的是,服務器所有者可以防御 SYN 泛洪。他們的服務器可以配置為在 TCP 通信中使用的數據包的開頭添加一個值——這些值稱為 SYN cookie。這允許服務器在收到最終的 ACK 數據包之前基本上忘記通信。它不需要“保持半開狀態”并耗盡其資源。相反,它會根據數據包中的 SYN cookie 的值重新構建所需的所有信息。
這有點類似于僅當您的聯系人列表中的人呼叫并忽略所有其他呼叫時才接聽您的電話。早在 1996 年就首次討論了這種方法。它的公式歸功于密碼學家 Daniel J. Bernstein。然而,攻擊者最近一直在嘗試新技術,甚至比這個聰明的 cookie 系統更聰明。來自 Radware 的專家 目睹了一種新的攻擊形式, 他們因此稱之為 海嘯 SYN 洪水。與現實世界的海嘯類似,SYN 洪水是巨大的。
海嘯 SYN 洪水背后的邪惡分子設計了 SYN 數據包,使其大小從通常的 40 到 60 字節增長到 1000 字節。根據協議,這種大小的數據包仍然可以接受,但根據 Radware,它們會使許多防御算法復雜化或混淆。包括 SYN cookie。
但海嘯 SYN 洪水在另一方面也很嚴重。傳入目標服務器的 SYN 請求數量巨大?;诰淼墓敉ǔJ褂蒙厦嫣岬降?UDP 協議。但是當攻擊者以類似的方式使用 SYN 泛洪時,他們無法通過與 UDP 泛洪相同的機制來防御。
洪水襲擊是一個巨大的威脅。為他們做好準備
兩種類型的 DDoS 攻擊——無論是 UDP 還是 SYN——都會給它們所針對的服務器帶來麻煩。然而,這一切都取決于他們的實力。一些攻擊可以通過一點努力來防御,而另一些攻擊則無論如何都可以使服務器停機。最近報告的最強 攻擊達到每秒 253 吉比特。給你一個想法——Newby 的團隊忙于應對強度低 13 倍的攻擊。
對于管理員來說,這一切意味著他們需要專注于預防。只有通過準備、測試和尋找弱點,管理員才能對抗這些強大的威脅。你的經歷呢?您是否曾與 DDoS 攻擊正面交鋒?您必須防御哪些方法?你通過了嗎?請在下面的評論中告訴我們。