如何阻止 DDoS 攻擊

已發表: 2023-03-24

正常運行時間是前端和後端開發人員最關心的問題,但它對各種服務器端管理員也至關重要。 不幸的是,壞人破壞您網站的最有效方法之一是使用分佈式拒絕服務 (DDoS) 攻擊將其關閉並減少其正常運行時間。 因此,大多數與網站打交道的人都想知道如何阻止 DDoS 攻擊,或者至少減輕它。

這篇文章將探討如何阻止 DDoS 攻擊。 但在我們開始具體步驟之前,讓我們設置一下場景。 為此,我們將首先了解什麼是 DDoS 攻擊並學習如何識別 DDoS 攻擊。

什麼是 DDoS 攻擊

一般而言,常規(非分佈式)拒絕服務 (DoS) 攻擊旨在淹沒服務器資源以使站點離線。 不良行為者會使用多餘的請求來破壞網絡上主機的服務,導致合法請求無法到達該站點。

你可以把這想像成商店外的抗議。 如果人們擋住了大樓的入口,顧客就進不去,實際上,商店就無法進行最佳交易(甚至根本無法進行交易)。

DDoS(分佈式拒絕服務)攻擊使用網絡中的許多遠程計算機來實現此目標。 它實際上類似於“Slashdot 效應”,在這種情況下,前所未有的合法流量(通常是由於來自高流量網站的鏈接)會導致網站速度變慢或崩潰。 然而,儘管這是有正當理由的,但 DDoS 攻擊始終是有計劃的和惡意的。

例如,DDoS 攻擊將使用的許多機器都遭受了漏洞利用或惡意軟件注入。 攻擊者將使用遠程指令來控制這些“機器人”以針對特定 IP 地址,並且每個機器人看起來都是合法的。

DoS 攻擊成功的關鍵因素之一是目標的互聯網速度比攻擊者慢。 現代計算技術使這變得困難,這就是為什麼DDoS 攻擊對不良行為者的表現要好得多。

總的來說,DDoS 攻擊的分佈式特性使得在典型情況下很難識別攻擊。

如何識別 DDoS 攻擊

如果您想了解如何阻止 DDoS 攻擊,您需要先了解它的外觀。 這可能很困難,因為您的高流量可能有正當理由。

在高層次上,如果站點速度變慢或崩潰,這是實施災難計劃的標誌(稍後會詳細介紹。)從那裡,您需要注意一些明顯的跡象:

  • 大量流量都呈現出共同的特徵。 這可能意味著流量來自相同的 IP 地址或地址範圍。 在其他情況下,您可能會發現來自類似位置、引薦網站或設備類型的流量。
  • 單個站點端點的流量也可能激增——通常是特定頁面。 許多 404 錯誤也可能是一個明顯的跡象。
  • 流量模式與您希望您的網站收到的內容不一致。 例如,這可能是您通常時間範圍之外的高峰或非自然事件,例如上班時間的活動高峰。
  • 所有這些都可能是合法的,而不是惡意的。 因此,您需要依靠分析軟件來找出相關和相關的內容。

您還應該記住,並不是所有的 DDoS 攻擊都是相同的,不同的類型會使這個問題變得更加複雜。 因此,如果您想知道如何阻止 DDoS 攻擊,了解這些類型非常重要。

您會遇到的不同類型的 DDoS 攻擊

“網絡連接”似乎是一個簡單的短語來描述計算機在網絡上的連接方式,但這是一個謬論。 開放系統互連 (OSI) 模型顯示了網絡連接和通信系統的實際分層複雜性:

OSI 理論層概述。
圖片來源:Joe Manna

DDoS 攻擊根據其目標層分為不同的類別。 儘管如此,您還是可以將它們分成不同的組。 雖然您可以在每層的基礎上執行此操作,但也可以根據DDoS 攻擊目標對它們進行分類。

例如,容量攻擊看起來會淹沒網絡和傳輸層(三層和四層)。此處的攻擊可以改變數據在網絡上的移動方式以及傳輸協議的有效性。

一種類型——域名系統 (DNS) 放大攻擊——使用“殭屍網絡”來欺騙目標 IP 地址並向開放的 DNS 服務器發出請求。 這會導致服務器響應目標 IP 並淹沒資源。

協議層攻擊

協議或基礎設施層攻擊也針對第三層和第四層,是進行 DDoS 攻擊的典型方式。 這是服務器資源和網絡設備無法處理傳入數據的地方。

這裡的一個示例是用戶數據報協議 (UDP) 反射攻擊。 這利用了 UDP 的無狀態特性。 您可以使用幾乎任何編程語言創建有效的 UDP 請求數據包。 要成功實施攻擊,只需將目標的 IP 地址列為 UDP 源地址即可。

該數據前往的服務器將放大數據以創建更大的響應數據包,然後將其反射回目標 IP 地址。 因此,不良行為者在任何時候都不需要建立服務器連接,這生產起來很便宜。

當您連接到 Web 服務器時,您將在客戶端和服務器之間執行“三次握手”,其中包括同步 ( SYN ) 和確認 ( ACK ) 數據包。 當服務器發送組合的SYN-ACK數據包時,客戶端發送單個SYNACK數據包。

SYN泛洪攻擊中,客戶端(在本例中為惡意用戶)發送多個SYN數據包,但不發送最終的ACK數據包。 這留下了許多半開傳輸控制協議 (TCP) 連接,這意味著服務器用完了接受新連接的容量。 這是使可用連接遠離合法用戶的另一種方法。

應用層攻擊

您不會只在第三層和第四層看到 DDoS 攻擊。 應用層——第七層——位於頂層。 這意味著它處理人機交互並允許應用程序訪問網絡服務。

因此,有很多 DDoS 攻擊操縱這一層,通常使用 HTTP 請求。 對於客戶端來說,一個 HTTP 請求很便宜,但是對於服務器來說,從技術的角度來說響應是昂貴的。 攻擊可能看起來像合法流量,主要是因為它們使用相同的方法訪問站點。

例如,HTTP 洪水很像在連續循環中按瀏覽器上的刷新按鈕。 一旦這種類型的 DoS 交互成為DDoS ,它就會變得更加複雜。

HTTP flood 的樣式也可以很複雜,它會使用許多不同的 IP 地址和隨機簽名來針對大量的 Web URL 以擴大攻擊範圍。 即使是針對單個 URL 的簡單實現也會造成很大的損害。

對於黑客來說,Slowloris 攻擊佔用的帶寬較少,但會造成更多混亂。 在這裡,每個請求都需要花費無限多的時間來為服務器處理並獨占所有可用的連接。 由於此攻擊對可用並發連接相對較少的服務器有效,因此您會發現它經常影響較小的網站。

如何為 DDoS 攻擊做準備

準備就是如何阻止 DDoS 攻擊,因為越快恢復正常越好。 事實上,您可能無法完全消除威脅,但可以將潛在問題降至最低。

但在此之前,您需要“計算”您願意花多少錢,因為現金流可以決定您如何阻止 DDoS 攻擊的計劃。 您應該從一次攻擊會給您的企業造成多少損失開始,然後回過頭來確定您可用的預算。 這不是你想要在攻擊中進行的計算。

從那裡,您需要注意三個關鍵領域,您應該在這些領域集中精力進行準備。

  • 制定災難和恢復計劃,因為這將明確詳細地告訴團隊中的每個人該做什麼。
  • 從那裡,您可以將部分預算分配用於專用的 DDoS 保護服務。 這將使專家到位來監控網站,“消除”您收到的一些惡意流量,等等。
  • 學會發現 DDoS 攻擊何時開始。 您的網站分析在這里至關重要,因為您可以監控 DDoS 攻擊的跡象並在災難性事件發生之前做出反應。

在技​​術層面上,您可以做更多的事情來幫助在 DDoS 攻擊開始之前將其阻止。 接下來我們將介紹這個。

如何緩解 DDoS 攻擊

由於如何阻止 DDoS 攻擊的最大問題之一是難以區分好流量和壞流量,因此您不能僅依靠一種解決方案來緩解它。 如果您查看“多向量”DDoS 攻擊(即攻擊多個 OSI 層的攻擊),則尤其如此。

因此,您還需要將您的供應分層以幫助您進行防禦。 有一些簡單的方法可以做到這一點:

  • 黑洞路由。 這是您將流量過濾到空路由並將其從網絡中刪除的地方。 如果沒有特定的過濾,您將丟棄所有流量,這並不理想。
  • 速率限制。 雖然這本身不足以阻止 DDoS 攻擊,但您可以限制每個用戶完成的操作數。
  • 網絡擴散。 如果您將訪問您站點的流量分散到分佈式網絡中,理論上您將分散 DDoS 攻擊的影響。

因此,擴展帶寬、網絡連接和其他資源是抵禦 DDoS 攻擊的一些最佳方法。 我們稍後將討論的一些解決方案以雲服務的形式出現,它將流量分配作為防禦。

您還可以使用現場解決方案(例如 CAPTCHA)來保護您網站上的重要端點。 這是您的登錄頁面需要高級別安全性的地方,因為您可以將站點的資源密集型元素放在登錄屏幕或其他保護方面之後。

Google recaptcha 服務可以幫助您阻止 ddos​​ 攻擊。

更重要的是,您可以實施一些手動技術注意事項。 例如,您可以設置較低的 SYN 或 UDP 閾值,並使服務器上的半開連接超時。

如何阻止 DDoS 攻擊的四步策略

在本文的其餘部分,我們將向您展示如何通過四個步驟阻止 DDoS 攻擊。 好消息是我們給出的建議不是規定性的和嚴格的。 因此,您可以根據自己的需要調整這些想法。

以下是我們將介紹的內容:

  • 響應計劃和危機策略如何拯救你的培根。
  • 您應該使用什麼方法來保護 Web 服務器。
  • 本地 DDoS 保護的優點和缺點。
  • 基於雲的 DDoS 緩解可以為您做什麼。

讓我們從一個我們已經提到的話題開始——制定戰略。

1. 制定策略和應對計劃

在正式的災難和響應計劃中鞏固你將要做的一切是一個絕妙的主意。 這應該是您企業中擁有的最詳細的文檔之一,包括您為阻止攻擊和恢復資源將採取的所有步驟。

以下是一些需要注意的事項:

  • 當您響應 DDoS 攻擊時,每個團隊成員應按順序執行的步驟。
  • 應該有針對團隊外部人員的說明,這些人員必須與客戶、客戶、供應商、供應商和任何其他相關方溝通問題。
  • 您需要包括您的互聯網服務提供商 (ISP)、DDoS 保護服務和前線其他人員的重要聯繫方式。

一旦到位,整個公司就會明白需要做什麼來保護您網站的服務器。

2. 弄清楚如何保護您的網絡服務器

DDoS 攻擊有兩個主要問題:

  1. 很難判斷攻擊何時發生。
  2. 如果您必須對正在進行的攻擊做出反應,那就已經太晚了。

要解決這兩個問題,您需要使用 DDoS 保護服務。 Cloudflare 是最好的之一,它包括全球範圍內的專用服務器架構,可以相應地攔截、傳播和過濾網絡流量。

Cloudflare 的 DDoS 服務概述,包括它在 OSI 規模上保護的層。

考慮到這一點,您不會想要實施靜態流量閾值或填滿您的 IP 黑名單,因為這還不夠,而且大多數時候是一種被動措施。 因為可擴展性是阻止 DDoS 攻擊的最佳方法之一,所以“樸素”方法具有帶寬限制,專用服務做得更好。

3.實施本地保護

本地 DDoS 保護使用網絡上的硬件設備過濾掉受保護服務器的流量。 這可能是減輕和阻止 DDoS 攻擊的一種可行且複雜的方法。

Radware 和 F5 生產硬件 DDoS 緩解單元,有些還生產硬件 WAF(Web 應用程序防火牆)。

顯示硬件 WAF 單元的 Radware 網站 - 幫助了解如何阻止 ddos​​ 攻擊。

然而,本地保護只能做這麼多,無法阻止大規模攻擊——尤其是 DDoS。 因此,您需要補充基於雲的 DDoS 設置,以獲得有關如何阻止 DDoS 攻擊的最佳響應。

4. 考慮基於雲的 DDoS 解決方案

實際上,更多站點依賴雲保護,因為它具有可擴展性、始終在線且比硬件更便宜。 維護成本也很低。

您會發現一些 DDoS 服務僅適用於 ISP 級別,但那些在雲中運行的服務具有更大的保護範圍。 通常,這些服務有龐大的計算機網絡來分配流量。

例如,Amazon 的 AWS Shield 利用其網絡進行 DDoS 攻擊的自動檢測和緩解。 此外,您可以自定義該工具如何與第一方 WAF 一起保護您的服務器。

Amazon 的 AWS Shield 服務概述,展示了它如何阻止 DDoS 攻擊。

Cloudflare 的 Magic Transit 可以很好地補充您現有的本地解決方案。 您還將獲得一整套工具來幫助您管理虛擬網絡,例如負載平衡器、高級數據包過濾等。

結論🔥

DDoS 攻擊將使您的網站在面對使其崩潰的惡意企圖時被擊敗。 雖然這似乎是失敗主義者,但沒有真正的方法可以完全阻止任何攻擊,更不用說 DDoS 攻擊了。 因此,如何阻止 DDoS 攻擊的答案很複雜。

減輕攻擊是一個很好的策略,您可以在服務器級別進行大量實施。 重要的是要弄清楚您的策略是什麼,以及您希望如何保護您的網絡服務器。 本地保護是一個絕妙的主意,WAF 幾乎是必不可少的。 AWS Shield 等雲解決方案以及 CAPTCHA 等現場雲標準也適用。

您對如何阻止 DDoS 攻擊有任何疑問嗎? 在下面的評論部分提問!