什麼是拒絕服務 (DoS)?

已發表: 2023-03-08

如果您的網站無法訪問,您的日誌文件已滿,並且您的服務器上的資源利用率已達到最大值,則您可能正處於拒絕服務攻擊之中。 這些令人討厭的攻擊會對您的營銷運營造成嚴重破壞並影響您網站的可用性。 如果您正處於拒絕服務攻擊或分佈式拒絕服務攻擊之中,請不要害怕。 有多種方法可以減輕這些攻擊並重新控制您的數字存在。

拒絕服務攻擊是已知最早和最常見的針對網站和 Web 應用程序的網絡攻擊之一。 無論您是小型企業還是大型財富 100 強公司,為您的網站向公眾提供服務的技術在本質上都是相同的。 當攻擊者以您為目標進行 DoS 攻擊時,您的企業規模對他們來說並不重要。 惡意攻擊者使用相同的方法來破壞您的業務,並且通常具有相似的動機,無論您的業務規模大小。

在這份拒絕服務攻擊綜合指南中,您將了解攻擊者用來關閉網站和整個網絡的方法,如何發現針對您的企業的 DoS 或 DDOS 攻擊,如何成功緩解它,並提供您可以確保的方法您的網站為您的客戶保持在線。

什麼是拒絕服務 (DoS)?

拒絕服務是一種網絡攻擊,通過用惡意請求淹沒系統來降低其對目標用戶的可用性。 拒絕服務是一種資源耗盡攻擊,它利用受害服務的有限能力來接受和處理傳入的請求。

DoS 攻擊用途廣泛,可以針對各種系統,包括單個網站和 Web 應用程序、服務器、路由器,甚至整個網絡。 無論目標系統是什麼,拒絕服務攻擊都可能會由於耗盡分配給它的計算資源池(例如 CPU 和內存)而導致其掛起或崩潰。

儘管 DoS 攻擊是惡意的,但它們並不用於奪取對受害者網站或服務器的控制權,例如跨站點腳本 (XSS) 或 SQL 注入 (SQLi)。 相反,攻擊者通常可以使用資源耗盡來促進其他類型的惡意活動,例如暴力攻擊。 同樣,在受害系統上造成高資源利用率的其他網絡攻擊也屬於拒絕服務攻擊的範疇。

拒絕服務

DoS 攻擊如何運作?

拒絕服務攻擊是通過指示計算機或攻擊者控制的計算機網絡向目標系統發送大量請求(通常格式錯誤)來執行的。 這將對 Web 服務器和其他資源造成壓力,從而阻止合法請求(例如來自您的客戶、潛在客戶和其他站點訪問者的請求)得到處理,最終導致拒絕服務。

如果系統受到 DoS 攻擊,發送給它的任何合法請求都可能會排隊並最終由於缺乏可用的計算資源而被丟棄。 訪問網站時,如果看到請求超時錯誤消息,則表示瀏覽器無法與服務器建立連接,因為 Web 服務器過載,因此無法接受更多請求。

在執行 DoS 攻擊時,攻擊者會選擇目標系統中的一個弱點,並使用它來設計發送的請求,從而導致更大的帶寬消耗,從而導致網站擁塞並減慢響應速度。 根據目標網絡端點或特定應用程序,拒絕服務攻擊可以利用現有的可處理同時請求數限制、分配給特定服務的內存量或接收和輸出緩衝區的大小,除其他事項外。

DoS 攻擊的目的通常不僅僅是中斷服務

拒絕服務攻擊旨在通過為許多不同目的向網站和在線服務注入惡意流量來關閉網站和在線服務。 DoS 攻擊針對人們日常依賴的許多資源,包括在線商店和市場、金融服務和媒體。

拒絕服務攻擊主要出於三個原因:

  • 社會行動主義。 攻擊者可能會使用拒絕服務作為批評公司政策和懲罰組織表現出不良行為的一種方式。
  • 勒索。 攻擊者可能會試圖通過要求付款來破壞公司服務的能力來獲利。
  • 搶占市場份額。 採用反競爭的商業做法,企業可能會試圖擊敗競爭對手的網站以增加其市場份額,尤其是在節假日期間。

雖然上述原因仍然有效,但拒絕服務攻擊已經發展,現在被用來促進其他網絡攻擊。 同樣,其他類型的惡意活動也可能導致拒絕服務。 犯罪分子同時使用多種惡意技術來執行最複雜的網絡攻擊的情況並不少見。

例如,暴力攻擊和卡片攻擊可能會導致資源耗盡,因為許多請求會發送到受害者的網站以獲得未經授權的訪問或驗證被盜數據。 大多數時候,這些類型的攻擊是從多個來源進行的,這將它們變成了分佈式拒絕服務攻擊。

拒絕服務 (DoS) 和分佈式拒絕服務 (DDoS)。 有什麼不同?

拒絕服務很少只涉及一台計算機作為攻擊源。 為了阻止試圖從有效請求中過濾掉惡意請求的防禦措施,攻擊者將選擇使用多個 IP 地址、系統和位置來使檢測變得更加困難。 DDOS 或分佈式拒絕服務攻擊顧名思義:使用分佈式系統以受害者的網站或網絡為目標的攻擊。 這些類型的分佈式攻擊更難識別和緩解,而這正是 DoS 和 DDoS 攻擊的不同之處。

拒絕服務和分佈式拒絕服務之間的主要區別在於其規模和用於執行攻擊的設備數量。 為執行 DDoS 攻擊,攻擊者通常使用稱為殭屍網絡的受感染計算機的分佈式網絡。

DDoS 攻擊可以定義為大規模機器人驅動的資源耗盡攻擊,它通過使用多個計算機系統對單個目標進行攻擊來放大拒絕服務的概念。 它不僅使攻擊變得更加危險,而且幾乎不可能發現攻擊背後的攻擊者身份。

殭屍網絡如何成為 DDoS 攻擊的中心

殭屍網絡是通過用惡意軟件類型感染受感染的設備來構建的,這種惡意軟件將在系統中處於休眠狀態,直到攻擊者的計算機(稱為命令和控制中心 (C2))發送進一步的指令。 殭屍網絡惡意軟件可以感染所有類型的設備,並且通常難以識別和消除。 此外,該病毒會高速傳播,進一步擴大特定殭屍網絡的威力。

殭屍網絡所有者經常將他們構建的受感染設備網絡的計算能力出租給暗網上的其他攻擊者,這通常被稱為攻擊即服務。 這使得進行拒絕服務攻擊比以往任何時候都更容易、更容易獲得。 儘管執法部門在過去幾年中成功取締了多個大型殭屍網絡,但殭屍網絡仍在快速增長。

衡量拒絕服務攻擊的規模

由於 DoS 攻擊代表向一個目的地發送的一系列惡意請求,您可以測量它們的大小以了解它們的規模。 拒絕服務攻擊的規模是根據發送到受害系統的流量計算的,通常以千兆字節為單位。

也相當於攻擊者發起的數據傳輸過程中目標計算機網絡消耗的帶寬。 研究表明,2022 年拒絕服務攻擊的平均大小略高於 5 GB。

3 種類型的拒絕服務攻擊

拒絕服務攻擊可能因目標系統和執行方法的不同而有很大差異。 儘管攻擊者通常會結合不同的方法,但 DoS 攻擊可大致分為三大類——漏洞攻擊、帶寬氾濫和連接氾濫。

漏洞攻擊

漏洞攻擊是針對系統中特定弱點的 DoS 攻擊。 它涉及向目標主機上運行的操作系統或易受攻擊的應用程序發送大量精心設計的消息。 使用正確的數據包順序,服務可以停止,或者整個主機可以崩潰。 緩衝區溢出攻擊是最突出的漏洞攻擊示例之一。

帶寬氾濫

Bandwidth Flooding 通過向基礎設施發送請求以耗盡服務器的容量來接受來自網絡的任何流量,從而以受害者係統的帶寬為目標。 攻擊者將許多數據包定向到目標系統,導致目標的訪問鏈路阻塞,從而阻止合法數據包到達服務器。

帶寬氾濫主要利用數據包交換的存儲和轉發傳輸原理來淹沒輸出緩衝區。 存儲和轉發傳輸規定路由器必須先接收整個數據包,然後再將其進一步轉發到目的地。 每個數據包都存儲在輸出緩衝區中,緩衝區空間的大小是有限的。 如果輸出緩衝區中充滿了等待傳輸的數據包,則會導致數據包丟失並導致目標系統無法訪問。

連接氾濫

連接泛洪拒絕服務攻擊通常以特定服務為目標,例如用於為特定網站或 Web 應用程序提供功能的 Web 或郵件服務器。 然後,攻擊者與目標主機建立許多連接,因此它停止接受任何合法請求。 SYN、HTTP、ICMP 泛洪和 Slowloris 是連接泛洪攻擊的一些例子。

重要的是要注意,這三個類別並不相互排斥,它們根據攻擊者所採用的方法(他們選擇針對的系統部分)來區分拒絕服務攻擊。 這些方法為犯罪分子定義了路線,每一種路線都會導致他們耗盡受害者係統的計算資源。

針對 WordPress 的 3 種主要 DoS 攻擊

作為動態 Web 應用程序,WordPress 依賴於服務器接收和處理傳入請求的能力,以向網站訪問者提供內容。 並且除非攻擊者想要使用較低級別的拒絕服務攻擊(例如 UDP 或 ICMP 洪水)使整個服務器過載,否則他們將針對 HTTP 服務器偵聽端口 80 (HTTP) 和端口 443 (HTTPS) 上的傳入請求. 這可能是 Apache、Nginx 或 LiteSpeed。

拒絕服務攻擊主要分為三種類型,用於通過不同的方法使某個網站癱瘓或速度極慢:HTTP 泛洪、SYN 泛洪和 Slowloris

HTTP 洪水

HTTP 洪水利用目標 Web 服務器在特定時間內可以處理的 HTTP 請求數量限制。 讓我們更詳細地看一下它是如何工作的。

所有 Web 服務器的配置方式都限制了它們可以接受的同時連接數和它們可以處理的 HTTP 請求數。 更具體地說,Web 服務器可以創建的進程數量以及每個進程在新進程取代之前可以滿足的請求數量是有限制的。

默認情況下,Web 服務器會創建少量進程,如果收到更多流量,此數量會增加。 除了高內存消耗外,頻繁創建新的 HTTP 進程(稱為請求工作者)將不可避免地導致 CPU 時間利用率增加。

如果傳入請求的數量超過 Web 服務器的總容量,其中一些請求將排隊並最終被丟棄,這將導致在瀏覽器中看到連接超時錯誤。 在 HTTP 洪水中,攻擊者每秒可以向受害者的網站發送數千個 HTTP 請求。

同步洪水

SYN 泛洪是一種 DoS 攻擊,它通過利用 TCP 使用的三向握手(HTTP 和 HTTPS 使用的底層傳輸層協議)使​​ Web 服務器不堪重負。 由於 HTTPS 依賴於 TLS 來增強 TCP,這為建立初始連接的過程增加了額外的安全層,顯著擴展了它,因此大多數拒絕服務攻擊都是通過 HTTP 進行的。

雖然 HTTP 泛洪用於通過請求淹沒服務器,但 SYN 泛洪的主要目標是讓系統將資源分配給半開連接,直到它變得不堪重負而無法滿足合法請求。 為此,攻擊者會向 Web 服務器發送一系列 SYN 段。

大多數時候,攻擊者的主機會引用一個完全不同的系統作為請求的來源,以欺騙受害服務器將確認數據包發送到不同的目的地,而不是發起連接的計算機。 這樣,在服務器以確認數據包響應後,握手的第三步將永遠不會完成。

由於 SYN 段的大量湧入,受害服務器的資源很快就會耗盡,因為它們被分配給大量半開連接,而合法網站訪問者則被拒絕服務。

在現代系統中,此漏洞已通過實施 Syn Cookies 得到部分解決,Syn Cookies 是一種機制,可防止在連接收到確認段並驗證它來自最初發送請求的主機之前將資源分配給連接。 然而,這種機制並不能完全阻止 Syn 泛洪的發生,這些攻擊仍然對網站和 Web 應用程序構成威脅。

懶猴

Slowloris 是另一種針對 WordPress 網站的應用層拒絕服務攻擊。 它通過從同一 IP 地址建立多個 HTTP 連接並儘可能長時間地保持打開狀態,從而有效地減慢 Web 服務器的速度。

默認情況下,如果在一段時間內沒有請求發送,Web 服務器將終止 HTTP 連接。 為了防止這種情況發生並保持連接打開,攻擊者會定期發送不完整或格式錯誤的請求。 延長每個惡意連接的持續時間,Slowloris 攻擊很容易使系統過載並顯著降低受害者的網站速度。

如何檢測拒絕服務攻擊?

與其他網絡攻擊相比,無論目標資源如何,拒絕服務攻擊都相對容易檢測。 以下是針對網站、服務器或網絡的持續 DoS 攻擊的三組常見指標。

網站級指標

如果您的網站受到拒絕服務攻擊,您會看到性能顯著下降,同時流量突然激增。 網站可能需要很長時間才能加載或拋出錯誤消息,例如“ERR_CONNECTION_TIMED_OUT”或“503 服務不可用”。

服務器級別指標

如果您有權訪問託管您網站的服務器,在登錄後,您會看到它處於高負載狀態,這意味著主動要求 CPU 時間的進程比服務器當前可以處理的要多。 負載數表示有多少進程等待 CPU 的注意。

如果 WordPress 站點受到攻擊,經過進一步檢查,您可能會注意到運行了過多的 HTTP 和 PHP 進程。 請注意,您的數據庫服務器使用大量 CPU 時間來處理查詢。

網絡級別指標

網絡監控和維護屬於託管服務提供商的職責範圍,託管服務提供商需要確保核心路由器能夠處理所有傳入流量而不會出現任何明顯的延遲。 較小的 DoS 攻擊很少被注意到並從其站點採取行動。 但是,如果針對網站或服務器的大規模拒絕服務攻擊開始影響其他主機,您的託管服務提供商將採取行動。

減輕影響整個網絡的攻擊的最有效方法之一是將受攻擊主機設為空路由,直到惡意活動平息。 空路由服務器意味著通過丟棄所有到達它的方式的數據包來暫時將它從網絡中移除,這樣它就無法再通過 Internet 訪問。

如何通過 3 個步驟緩解 DoS 攻擊

拒絕服務攻擊緩解涉及通過啟用更激進的防火牆規則和手動拒絕訪問某些 IP 地址和 IP 範圍來分析傳入流量和阻止惡意請求。 結合這兩種方法是處理持續資源耗盡攻擊的行業標準。 讓我們逐步回顧這個過程。

分析傳入流量

實時分析傳入流量可以幫助您評估情況並確定用於使您的服務器停機的拒絕服務攻擊的類型。 最好能夠對託管您網站的服務器進行系統訪問,但您也可以使用其他來源,例如基於雲的 Web 應用程序防火牆保留的日誌。

通過對服務器的 root 訪問權限,您可以使用網絡診斷工具,例如套接字統計 (ss) 和 tcpdump,以及您的 Web 服務器保留的域日誌 (domlogs)。 這種方法將幫助您了解發送到服務器的惡意流量的數量,以及攻擊者針對哪些網站和網站上的特定 URL。

如果發生分佈式拒絕服務攻擊,惡意流量將來自多個來源。 但是,大多數攻擊仍然會從相對較少的設備上執行。 在大多數情況下,您應該能夠識別一些有問題的 IP 範圍。

對於 WordPress 站點,拒絕服務攻擊通常針對 WordPress 管理登錄頁面和 XML-RPC。 分析最近的 Web 服務器活動,您會看到許多指向 wp-login.php、wp-admin 和 xmlrpc.php 的 GET 和 POST 請求。

啟用速率限制和更積極的防火牆規則

防火牆在開放系統互連 (OSI) 網絡模型的不同級別上充當您網站的第一道防線。 啟用更積極的防火牆規則將幫助您成功緩解拒絕服務攻擊。

一般方法包括啟用速率限制——限制 IP 地址在特定時間內打開的連接數量,並根據許多其他參數過濾傳入流量,例如 IP 地址的信譽評分、國家/地區產地等等。

使用 ConfigServer 防火牆緩解拒絕服務攻擊

如果您使用的是 ConfigServer 防火牆 (CSF)——一種基於 iptables 的軟件防火牆,您可以通過將 CT_Limit 配置設置為所需的值來對傳入流量進行速率限制。 將 CT_PORTS 設置為 80 和 443 只會限制您的 Web 服務器正在偵聽的端口的速率限制。 CSF 還允許您配置 SYNFLOOD_RATE——每個 IP 地址每秒允許的 SYN 數據包數。

請注意,激進的速率限制將不可避免地導致阻止合法請求,因此只能在您的服務器受到攻擊並在成功緩解後不久被禁用時實施。 最好讓有經驗的系統管理員配置任何特定的防火牆規則。

使用 Cloudflare WAF 緩解 DoS 攻擊

Cloudflare 可以通過啟用內容交付網絡提供的“受到攻擊”模式,幫助您成功緩解網站級別的拒絕服務攻擊。 作為此內置攻擊緩解工具的一部分,Cloudflare 實施了額外的流量分析方法,並向每位訪問者提出基於 JavaScript 的挑戰。

除此之外,Cloudflare 還可以根據從 Project Honey Pot 收集的大量託管規則集和 IP 信譽評分過濾掉惡意流量。 將 Cloudflare 安全級別設置為高,以阻止來自威脅評分超過 0 的 IP 地址的所有傳入流量。

阻止惡意機器人流量

雖然新實施的防火牆規則應該成功過濾掉絕大多數惡意請求,但阻止違規 IP 地址和 IP 範圍將迫使系統丟棄來自特定來源的所有數據包,而無需讓防火牆檢查每個請求。 通過拒絕某些 IP 地址訪問服務器來阻止惡意流量將節省服務器資源並幫助您的網站更快地全面運行。

如何防止拒絕服務? WordPress 的 3 大推薦

WordPress 網站仍然是黑客的重中之重,並且經常成為拒絕服務和暴力攻擊的目標。 雖然系統提供了針對基於惡意軟件的攻擊和數據注入攻擊的高級別保護,但您需要額外的安全措施來抵禦資源耗盡攻擊。

下面,我們提供了前三項 WordPress 安全建議,以實施以防止拒絕服務。 安裝強大的託管防火牆規則集、配置 HTTP/2 以及限制對 WordPress 登錄和 XMLRPC 的訪問將顯著降低成為 HTTP 洪水、SYN 洪水和 Slowloris 攻擊受害者的可能性。

配置強大的託管防火牆規則集

基於主機和基於雲的 Web 應用程序防火牆 (WAF) 都支持安裝專門為防禦拒絕服務和其他危險的網絡攻擊而開發的不同託管規則集。 託管規則集由知名安全供應商維護並定期接收更新。

最強大的託管防火牆規則集之一是由 OWASP 基金會開發的 OWASP 核心規則集。 該規則集與大多數主機和基於雲的 WAF 兼容,包括 ModSecurity——安裝在 Linux 服務器上的最流行的基於主機的 Web 應用程序防火牆 (WAF)。

使用 HTTP/2

HTTP/2 是 HTTP 協議的新規範,旨在通過解決其前身的一些缺點來減少延遲並加快內容交付。 HTTP/2 允許網絡服務器為單個請求發送多個響應,從而消除了打開多個連接來傳送單個網頁的需要。

使用 HTTP/2 可以顯著降低服務器資源的利用率,從而顯著提高性能。 這有助於抵禦小型拒絕服務攻擊,而無需調用任何額外的保護措施。

減少攻擊面

網站安全事項和網站級安全措施極為重要。

您可以通過限制對 WordPress 網站關鍵區域(例如 XMLRPC 和 WordPress 登錄)的訪問來防禦大多數網絡攻擊,包括拒絕服務。 正如我們之前所討論的,這些是 WordPress 網站上 DoS 和暴力攻擊的兩個最常見的目標。

WordPress 安全最佳實踐包括禁用 XML-RPC 並將對 WordPress 登錄的訪問限制在受信任的 IP 地址和 IP 範圍列表中。 啟用雙因素身份驗證對於防止惡意行為者未經授權訪問您的網站並將其關閉同樣重要。

使用 iThemes Security Pro 補充您的防禦

iThemes 使每個人都可以訪問 WordPress 安全性。 iThemes Security Pro 提供了三十種方法來保護您的 WordPress 站點免受所有已知的網絡攻擊。 通過先進的全天候安全監控和漏洞掃描,iThemes Security Pro 將代表您自動採取行動,以阻止自動攻擊、阻止惡意行為者並保護您網站的關鍵區域。

如果您管理多個 WordPress 站點,iThemes Sync Pro 通過提供具有正常運行時間監控和高級分析的單一管理儀表板來幫助自動執行日常管理任務。 當您的團隊中有這些個人網站助理時,iThemes Training 將幫助您成為 WordPress 專家並將您的業務提升到一個新的水平。