常見DDoS攻擊


 

導航:

  這里將一個案例事項按照流程進行了整合,這樣觀察起來比較清晰。部分資料來自於Cloudflare

  1.DDoS介紹

  2.常用DDoS攻擊

  3.DDoS防護方式以及產品

  4.Cloudflare DDoS配置案例

 

 

1.常見攻擊類型

1.1 Memcached DDoS攻擊

  什么是內存緩存DDoS攻擊?

  內存緩存分布式拒絕服務(DDoS)攻擊是一種網絡攻擊,攻擊者試圖使目標受害者的網絡流量超載。攻擊者將欺騙性的請求發送到易受攻擊的UDP內存緩存*服務器,該服務器隨后向目標受害者發送Internet流量,從而可能使受害者的資源不堪重負。當目標的Internet基礎設施過載時,就無法處理新請求,而常規流量也無法訪問Internet資源,從而導致拒絕服務。

  內存緩存是用於加速網站和網絡的數據庫緩存系統。 

  內存緩存攻擊的工作原理

  內存緩存攻擊的工作方式類似於所有DDoS放大攻擊,例如NTP放大和DNS放大。這種攻擊欺騙性請求發送到易受攻擊的服務器,該服務器隨后會發出比初始請求大的數據量作為響應,因此放大了流量。

  內存緩存放大攻擊就好比是一個心懷惡意的青少年打電話給一家餐廳說“我要菜單上的東西每樣來一份,請給我回電話並告訴我整個訂單的信息”。當餐廳詢問回叫號碼時,他卻給出目標受害者的電話號碼。然后,目標會收到來自餐廳的呼叫,接到他們未請求的大量信息。

  這種放大攻擊的方法之所以成為可能,因為內存緩存服務器可以選擇使用UDP協議進行操作。UDP是一種網絡協議,允許在不首先獲得所謂握手的情況下發送數據 - 握手是指雙方都同意通信的網絡過程。之所以使用UDP,是因為不用咨詢目標主機是否願意接收數據,無需事先征得它們的同意,就可以將大量數據發送給目標主機。

  內存緩存攻擊分為4個步驟:

1.攻擊者將大量數據有效載荷植入暴露的內存緩存服務器上。

2.接下來,攻擊者使用目標受害者的IP地址偽造HTTP GET請求。

3.帶有漏洞的內存緩存服務器接收到請求,試圖通過響應來提供幫助,因此將大量響應發送到目標。

4.目標服務器或其周圍的基礎設施無法處理從內存緩存服務器發送的大量數據,因此導致過載和對正常請求拒絕服務。

  內存緩存放大攻擊的規模可以達到多大?

  這種攻擊的放大倍數十分驚人;在實踐中,有過高達51200倍的放大倍數!這意味着對於15字節的請求,可以發送750kB的響應。這是一個巨大的放大倍數,無法承受如此大量攻擊流量的Web資產則面臨巨大的安全風險。巨大的放大倍數加上帶有漏洞的服務器使內存緩存放大攻擊成為攻擊者針對各種目標發起 DDoS攻擊的主要用例。

  如何防護內存緩存攻擊?

1.禁用UDP - 對於內存緩存服務器,請確保在不需要時禁用UDP支持。默認情況下,內存緩存啟用了UDP支持,這可能會使服務器容易受到攻擊。

2.對內存緩存服務器進行防火牆保護 - 通過在內存緩存服務器和Internet之間添加防火牆保護,系統管理員可以根據需要使用UDP,而不必暴露於風險中。

3.防止IP欺騙 - 只要可以偽造IP地址,DDoS攻擊就可以利用此漏洞將流量定向到受害者的網絡。防止IP欺騙是一個規模較大的解決方案,無法由特定的系統管理員實施,它要求傳輸提供商禁止源IP地址源自網絡外部的任何數據包離開其網絡。換句話說,Internet 服務提供商(ISP)之類的公司必須篩選流量,以使離開其網絡的數據包不得假裝成來自其他地方的其他網絡。如果所有主要的傳輸提供商都實施了這種篩選,基於欺騙的攻擊將在一夜之間消失。

4.開發具有減少UDP響應的軟件 - 消除放大攻擊的另一種方法是去除任何傳入請求的放大因素;如果由於UDP請求而發送的響應數據小於或等於初始請求,則放大就不復可能。

 

1.2 NTP放大攻擊

  什么是NTP放大攻擊?

  NTP放大攻擊是基於反射的分布式拒絕服務(DDoS)攻擊,在這種攻擊中,攻擊者利用網絡時間協議(NTP)服務器功能,發送放大的UDP流量,使目標網絡或服務器不堪重負,導致正常流量無法到達目標及其周圍基礎設施。

  NTP放大攻擊的工作原理

  所有放大攻擊都利用攻擊者和目標Web資源之間的帶寬消耗差異。當許多請求的成本差異被放大時,由此產生的巨大流量可以破壞網絡基礎設施。通過發送導致大型響應的小型查詢,惡意用戶可以憑借更少的資源消耗獲取更大益。通過讓僵屍網絡中的每個機器人提出相似的請求使放大倍增,攻擊者既可以躲避檢測,又會獲得攻擊流量大幅增加的好處。

  DNS洪水攻擊與DNS放大攻擊不同。DNS放大攻擊會反射和放大來自不安全的DNS服務器的流量,以隱藏攻擊的來源並提高其有效性。DNS放大攻擊使用帶寬連接較小的設備向不安全的DNS服務器發出大量請求。設備發出許多較小的請求,形成非常大的DNS記錄,但是在發出請求時,攻擊者將返回地址偽造為預期受害者的地址。放大使攻擊者使用有限的攻擊資源即可破壞更大的目標。

  NTP放大攻擊與DNS放大攻擊非常相似,就好比是一個心懷惡意的青少年打電話給一家餐廳說“我要菜單上的東西每樣來一份,請給我回電話並告訴我整個訂單的信息”。當餐廳詢問回叫號碼時,他卻給出目標受害者的電話號碼。然后,目標會收到來自餐廳的呼叫,接到他們未請求的大量信息。

  網絡時間協議旨在允許聯網的設備同步其內部時鍾,並在Internet體系結構中發揮重要作用。通過利用在某些NTP服務器上啟用的monlist命令,攻擊者可以倍增其初始請求流量,從而導致較大的響應。在較舊的設備上,此命令默認為啟用狀態,並以對NTP服務器的請求的最后600個源IP地址作為響應。來自內存中具有600個地址的服務器的monlist請求將比初始請求大206倍。這意味着擁有1GB Internet流量的攻擊者可以進行200 Gb以上的攻擊 - 導致的攻擊流量大幅增加。

  NTP放大攻擊可分為四個步驟:

1.攻擊者使用僵屍網絡將具有欺騙性IP地址的UDP數據包發送到啟用了monlist命令的NTP服務器。每個數據包上的欺騙性IP地址指向受害者的真實IP地址。

2.每個UDP數據包使用其monlist命令向NTP服務器發出請求,導致較大的響應。

3.然后,服務器用結果數據響應欺騙性的地址。

4.目標的IP地址接到響應,並且周圍的網絡基礎設施被大量流量淹沒,從而導致拒絕服務。

  由於攻擊流量看似來自有效服務器的正常流量,因此很難在不阻止實際NTP服務器進行正常活動的情況下防護這種攻擊流量。由於UDP數據包不需要握手,因此NTP服務器將向目標服務器發送較大的響應,而無需驗證請求是否真實。這些條件,加上在默認情況下會發送較大響應的內置命令,使NTP服務器成為DDoS放大攻擊的高效反射來源。

  如何防護NTP放大攻擊?

  對於運行網站或服務的個人或公司而言,他們的緩解方案非常有限。這是因為盡管個人服務器可能是攻擊目標,但並不是容量耗盡攻擊主要作用所在的地方。由於攻擊產生的大量流量,服務器周圍的基礎設施會受到影響。Internet服務提供商(ISP)或其他上游基礎設施提供商可能無法處理傳入的流量,變得不堪重負。在這種情況下,該ISP可能將所有流量傳送到目標受害者的IP地址,保護自己,並使目標的網站離線。除Cloudflare DDoS保護之類的異地保護服務外,緩解策略主要是預防性Internet基礎設施解決方案。

  禁用monlist - 減少支持monlist命令的NTP服務器的數量。

  修補monlist漏洞的一個簡單解決方案是禁用該命令。默認情況下,4.2.7 版本之前的所有NTP軟件都容易受到攻擊。將NTP服務器升級到4.2.7 或更高版本,該命令即被禁用,即可修補漏洞。如果無法升級,則服務器的管理員可遵循US-CERT的說明進行必要的更改。

  源IP驗證 - 阻止欺騙性數據包離開網絡。

  由於攻擊者的僵屍網絡發送的UDP請求必須具有指向受害者IP地址的欺騙性源IP地址,因此,要降低基於UDP的放大攻擊的有效性,其關鍵在於Internet服務提供商(ISP)拒絕任何具有欺騙性IP地址的內部流量。如果有數據包從網絡內部發送,但其源地址看似源於網絡外部,則可能是欺騙性的數據包,可以將其丟棄。Cloudflare強烈建議所有提供商實施入口篩選,並且會不時聯系不知情地參與DDoS攻擊(在違反BCP38的情況下)的ISP 並幫助他們意識到漏洞。

  禁用NTP服務器上的monlist並在當前允許IP欺騙的網絡上實施入口篩選,是在此類攻擊到達其預期網絡之前阻止攻擊的有效方法。

  雲廠商Cloudflare如何防護NTP放大攻擊?

  有了正確配置的防火牆和足夠的網絡容量(除非擁有Cloudflare的規模,否則這總是不足夠的),阻止NTP放大攻擊等反射攻擊就很簡單。盡管攻擊將針對單個IP地址,但cloudflare的Anycast網絡會將所有攻擊流量分散到不再造成破壞的地步。Cloudflare能夠利用的規模優勢,將攻擊分配到許多數據中心,平衡負載,從而確保服務永不中斷,並且攻擊也不會使目標服務器的基礎設施不堪重負。在最近六個月的時期內,Cloudflare的DDoS防護系統“Gatebot”檢測到 6,329次簡單的反射攻擊(相當於每 40 分鍾一次)。

 

1.3 DNS放大攻擊

  什么是DNS放大攻擊?

  這種DDoS攻擊是基於反射的大規模分布式拒絕服務(DDoS)攻擊,其中,攻擊者利用開放DNS解析器的功能產生大量流量,使目標服務器或網絡不堪重負,導致服務器及其周圍基礎設施無法訪問。

  DNS放大攻擊的工作原理

  所有放大攻擊都利用攻擊者和目標Web資源之間的帶寬消耗差異。當許多請求的成本差異被放大時,由此產生的巨大流量可以破壞網絡基礎設施。通過發送導致大型響應的小型查詢,惡意用戶可以憑借更少的資源消耗獲取更大利益。通過讓僵屍網絡中的每個機器人提出相似的請求使放大倍增,攻擊者既可以躲避檢測,又會獲得攻擊流量大幅增加的好處。

  一個DNS放大攻擊中的一個機器人就好比是一個心懷惡意的青少年打電話給一家餐廳說“我要菜單上的東西每樣來一份,請給我回電話並告訴我整個訂單的信息”。當餐廳詢問回叫號碼時,他卻給出目標受害者的電話號碼。然后,目標會收到來自餐廳的呼叫,接到他們未請求的大量信息。

  由於每個機器人向開放DNS解析器提出請求時都提供欺騙性IP地址,也就是目標受害者的真實源IP地址,目標隨后會收到來自DNS解析器的響應。為了產生大量流量,攻擊者在構造請求時,會以讓DNS解析器產生盡可能大響應為目的。因此,目標接收攻擊者的初始流量的放大結果,而其網絡則被虛假流量堵塞,導致拒絕服務。

  DNS放大可分為四個步驟:

1.攻擊者使用受損的端點將有欺騙性IP地址的UDP 數據包發送到DNS重定向器。數據包上的欺騙性地址指向受害者的真實IP地址。

2.每個UDP數據包都向DNS解析器發出請求,通常傳遞一個參數(例如“ANY”)以接收可能的最大響應。

3.收到請求后,試圖通過響應來提供幫助的DNS解析器會向欺騙性IP地址發送較大的響應。

4.目標的IP地址接到響應,並且周圍的網絡基礎設施被大量流量淹沒,從而導致拒絕服務。

  盡管少量請求不足以導致網絡基礎設施下線,但是當此序列通過多個請求和DNS解析器進行擴展時,目標接收的數據的放大倍數可能會很大。 

  如何防護DNS放大攻擊?

  對於運行網站或服務的個人或公司而言,他們的緩解方案非常有限。這是因為盡管個人服務器可能是攻擊目標,但並不是容量耗盡攻擊主要作用所在的地方。由於攻擊產生的大量流量,服務器周圍的基礎設施會受到影響。Internet服務提供商(ISP) 或其他上游基礎設施提供商可能無法處理傳入的流量,變得不堪重負。在這種情況下,該ISP可能將所有流量傳送到目標受害者的IP地址,保護自己,並使目標的網站離線。除Cloudflare DDoS保護之類的異地保護服務外,緩解策略主要是預防性Internet基礎設施解決方案。

  減少開放DNS解析器的總數:DNS放大攻擊的一個重要組成部分是對開放DNS解析器的訪問權限。如果Internet上有配置不當的DNS解析器,那么攻擊者僅僅需要找到這種DNS解析器即可利用。理想情況下,DNS解析器應僅向源自受信任域名的設備提供服務。對於基於反射的攻擊,開放DNS解析器將響應Internet上任何位置的查詢,因此有可能被利用。限制DNS解析器,使其僅響應來自受信任來源的查詢,即可使服務器無法被用於任何類型的放大攻擊。

  源IP驗證 - 阻止欺騙性數據包離開網絡:由於攻擊者的僵屍網絡發送的UDP請求必須具有指向受害者IP地址的欺騙性源IP地址,因此,要降低基於UDP的放大攻擊的有效性,其關鍵在於Internet服務提供商(ISP)拒絕任何具有欺騙性IP地址的內部流量。如果有數據包從網絡內部發送,但其源地址看似源於網絡外部,則可能是欺騙性的數據包,可以將其丟棄。Cloudflare 強烈建議所有提供商實施入口篩選,並且會不時聯系不知情地參與DDoS攻擊的 ISP 並幫助他們意識到漏洞。

 

1.4 SSDP攻擊

  什么是SSDP DDoS攻擊?

  簡單服務發現協議(SSDP)攻擊是一種基於反射的分布式拒絕服務(DDoS)攻擊,它利用通用即插即用(UPnP)網絡協議將放大的流量發送給目標受害者,使目標的基礎設施不堪重負並使它們的Web資源脫機。

  這是一個免費工具,可檢查您的公共IP是否具有暴露的SSDP設備:https://badupnp.benjojo.co.uk/

  SSDP攻擊的工作原理

  在正常情況下,SSDP協議用於允許UPnP設備向網絡上的其他設備廣播其存在。例如,當UPnP打印機連接到典型網絡時,在它收到IP地址之后,該打印機能夠通過將消息發送到稱為多播地址的特殊IP地址,以向網絡上的計算機通告其服務。然后,多播地址將新打印機的存在告知網絡上的所有計算機。一旦計算機收到有關打印機的發現消息,它就會向打印機發出請求,要求打印機完整描述其服務。然后,打印機將發出其提供的所有內容的完整列表來直接響應該計算機。SSDP 攻擊通過要求設備響應目標受害者來利用最終步驟的服務請求。

  下面是典型的SSDP DDoS攻擊的6個步驟:

1.首先,攻擊者進行掃描,尋找可以用作放大因子的即插即用設備。

2.攻擊者發現聯網設備后,創建所有發出響應的設備的列表。

3.攻擊者使用目標受害者的欺騙性IP地址創建UDP 數據包。

4.然后,攻擊者使用僵屍網絡通過設置某些標志(比如ssdp:rootdevice或ssdp:all),向每個即插即用設備發送一個欺騙性發現數據包,並請求盡可能多的數據。

5.結果,每個設備都會向目標受害者發送回復,其數據量最多達到攻擊者請求的30倍。

6.然后,目標從所有設備接收大量流量,因此不堪重負,可能導致對正常流量拒絕服務。

  如何防護SSDP攻擊?

  對於網絡管理員,一個關鍵的防護措施是在防火牆的1900端口阻止傳入UDP流量。如果流量不足以使網絡基礎設施不堪重負,則從此端口篩選流量可能能夠防護這種攻擊。要深入了解SSDP攻擊和更多緩解策略,請探索有關SSDP攻擊的技術詳情。

  您是否想知道您是否有可用於DDoS攻擊的帶有漏洞的SSDP服務?如前所述,我們創建了一個免費工具來檢查您的公共IP是否有暴露的SSDP設備。要檢查SSDP DDoS漏洞,可以使用此免費工具。

 

1.5 慢速攻擊

  什么是低速緩慢攻擊?

  低速緩慢攻擊是DoS或DDoS攻擊的一種,依賴一小串非常慢的流量,可以針對應用程序或服務器資源發起攻擊。與更傳統的蠻力攻擊相比,低速緩慢攻擊所需的帶寬非常小,並且難以防護,因為它們生成的流量很難與正常流量區分開。由於不需要很多資源就能發起,使用一台計算機就可以成功發起低速緩慢攻擊。用於發動低速緩慢攻擊的兩個最受歡迎的工具是 Slowloris和R.U.D.Y.。

  低速緩慢攻擊的工作原理

  低速緩慢攻擊以基於線程的Web服務器為目標,旨在通過慢速請求捆綁每個線程,從而阻止真正的用戶訪問服務。在攻擊時,需要非常緩慢地傳輸數據,但傳輸速度又足夠快以防止服務器超時。想象有一座四車道橋梁,每個車道都有收費站。司機在收費站處停車,交出鈔票或幾枚硬幣,然后過橋,即可為下一個司機騰出車道。現在想象一下,有四個駕駛員同時出現並占據了所有開放的車道,而他們每個人都慢慢地將小額硬幣交給收費站操作員,一次交一枚硬幣,堵塞所有可用車道數小時,並阻止其他駕駛員通過。這種令人喪氣的情況就與低速緩慢攻擊的工作原理非常相似。

  攻擊者可以使用HTTP標頭、HTTP發布請求或TCP流量進行低速緩慢攻擊。以下是3個常見的攻擊示例:

    • Slowloris工具連接到服務器,然后緩慢發送部分HTTP標頭。這將導致服務器保持連接打開狀態以便接收其余的標頭,這樣就會將線程捆綁起來。
    • 另一個名為 R.U.D.Y.(死亡之子)的工具會生成HTTP發布請求以填寫表單字段。它告訴服務器將發送多少數據,但隨后卻非常緩慢地發送數據。服務器保持連接打開,因為它預計還有更多數據。
    • 另一種低速緩慢攻擊是Sockstress攻擊,這種攻擊利用TCP/IP三向握手中的漏洞,創建出不確定的連接。

  如何停止低速緩慢攻擊?

  用於阻止傳統DDoS攻擊的速率檢測技術無法在低速緩慢攻擊中起作用。防護低速緩慢攻擊的一種方法是升級服務器的可用性;服務器可以同時維護的連接越多,攻擊就越難阻塞服務器。這種方法的問題在於,攻擊者可以嘗試擴大攻擊范圍,以耗盡服務器的可用性。另一個解決方案是基於反向代理的保護,這種方案將在低速緩慢攻擊到達您的源站之前進行防護。

 

1.6 應用程序層攻擊

  什么是應用程序層DDoS攻擊?

  應用程序層攻擊又稱為第7層(L7)DDoS攻擊,是指旨在針對OSI模型“頂層”的惡意行為,HTTP GET和HTTP POST等常見Internet請求就發生在這一層。與DNS放大等網絡層攻擊相比,第7層攻擊特別有效,因為它們除了消耗網絡資源,還會消耗服務器資源。

  應用程序層攻擊的工作原理

  大多數DDoS攻擊的潛在有效性來自發起攻擊所需的資源量與吸收或防護攻擊所需的資源量之間的差異。盡管第7層攻擊也符合這種情況,但這種攻擊可以同時影響目標服務器和網絡,因此需要更少的總帶寬即可達到相同的破壞效果;應用程序層攻擊消耗更少的總帶寬即可造成更大的破壞。

  為了探討為什么會這樣,我們看一下發出請求的客戶端和響應請求的服務器之間的相對資源消耗差異。當用戶發送登錄到在線帳戶(例如Gmail帳戶)的請求時,用戶的計算機必須使用的數據和資源數量很少,並且與檢查登錄憑據、從數據庫加載相關用戶數據然后發回包含所請求網頁的響應這一過程中消耗的資源數量不成比例。

  即使沒有登錄,多次收到客戶端請求的服務器也必須進行數據庫查詢或其他API調用以生成網頁。在許多設備將單個Web資產作為目標(例如在僵屍網絡攻擊期間)時,這種差異將進一步放大,使目標服務器不堪重負,從而對正常流量拒絕服務。在許多情況下,僅對API發起第7層攻擊就足以使服務脫機。

  為什么應用程序層 DDoS 攻擊難以阻止?

  攻擊流量和正常流量很難區分,尤其是在應用程序層攻擊(例如僵屍網絡對受害服務器執行HTTP洪水攻擊)的情況下。由於僵屍網絡中的每個機器人都發出看似正常的網絡請求,因此流量不是欺騙流量,而是來自可能來自“正常”來源的流量。

  應用程序層攻擊需要一種自適應策略,包括根據特定規則集限制可能會定期波動的流量的能力。正確配置的WAF等工具可以防護傳遞到源站的虛假通信量,從而大大減少DDoS嘗試的影響。

  對於其他攻擊(例如SYN泛洪)或反射攻擊(例如NTP放大),只要網絡本身具有足夠帶寬可以承載,就可以使用策略相當有效地丟棄流量。遺憾的是,大多數網絡無法承受300Gbps的放大攻擊,而可以正確路由並滿足第7層攻擊可能產生的大量應用程序層請求的網絡更是鮮見。

  哪些策略有助於防護應用程序層攻擊?

  一種方法是對發出網絡請求的設備實施質詢,以測試它是否屬於機器人。這是通過類似於在線創建帳戶時常見的CAPTCHA測試的測試完成的。通過提出JavaScript計算挑戰之類的要求,可以防護許多攻擊。

  其他阻止HTTP洪水的途徑包括使用Web應用程序防火牆,通過IP信譽數據庫以及工程師的實時網絡分析來管理和篩選流量。

 

1.7 第三層攻擊

  什么是第3層DDoS攻擊?

  分布式拒絕服務(DDoS)攻擊試圖用大量數據淹沒其目標。DDoS攻擊好比高速公路發生交通堵塞,妨礙常規車輛抵達目的地。

  第3層DDoS攻擊以OSI模型中的第3層(L3)作為攻擊目標。與所有DDoS攻擊一樣,第3層攻擊的目的是使程序、服務、計算機或網絡的運行變慢或使其崩潰,或者填滿容量以使其他任何人都無法接收服務。L3 DDoS攻擊通常通過針對網絡設備和基礎設施來實現。

  第3層DDoS攻擊與較高層攻擊之間存在一些重要區別:

1.第3層攻擊針對的是網絡層,而不是傳輸層或應用程序層的進程(第4層和第7層DDoS攻擊的目標)

2.第3層攻擊不必首先與目標打開TCP連接

3.第3層攻擊不以特定端口為目標

  什么是OSI模型?

  OSI模型是Internet工作原理的概念模型。OSI模型的主要宗旨是幫助人們討論網絡設備和協議,確定哪些協議供哪些軟件和硬件使用,並且顯示Internet如何運行而與底層硬件無關。

  OSI模型將促進Internet運作的不同技術分為多個層面。總共有七層:

  OSI模型中的第3層是什么?

  OSI第3層稱為網絡層。第3層包含了造就了互聯網絡(即Internet)的各種協議和技術。這一層是進行跨網絡路由的地方。遍歷網絡的數據划分為數據包,然后對這些數據包尋址並發送到第3層的目的地。此過程中最重要的協議是Internet協議(IP)。

  第3層的協議不會打開連接,確保可靠數據傳遞或指示目標設備上的哪個服務應使用該數據;這些是第4層流程。第4層涉及使用傳輸協議,例如TCP和UDP。在沒有第4層傳輸協議的前提下跨網絡發送數據包就像在不確保地址正確的情況下(在地址中包括應打開信件的特定人員的姓名,或使用信譽良好的郵政服務)將信件郵寄到某一地址。數據可能會到達,也可能不會。這就是為什么許多第3層協議始終與第4層傳輸協議結合使用,以確保數據到達正確的位置。

  但是,仍然可以通過IP將數據包發送到網絡目標,而不使用傳輸協議。

  由於第3層是無連接的,因此第3層DDoS攻擊無需通過TCP打開連接或指示端口分配。第3層DDoS攻擊的目標是計算機正在運行的網絡軟件,而不是特定的端口。

  第3層使用什么協議?

  下方列出了使用最廣泛的第3層協議,以及最有可能在DDoS攻擊中使用的協議:

    • IPInternet協議(IP)路由和尋址數據包,以便它們到達正確的目的地。每個連接到Internet的設備都有一個IP地址,並且IP協議將正確的IP地址附加到各個數據包上,就如在給人寫信時注明地址一樣。
    • IPsecIPsec是由VPN使用的加密版IP,類似於HTTPS和HTTP之間的區別。
    • ICMPInternet控制消息協議(ICMP)處理錯誤報告和測試。ICMP是無連接協議,不使用TCP或UDP等傳輸協議。相反,ICMP數據包僅通過IP發送。開發人員和網絡工程師將ICMP用於ping和traceroute功能。通常一次只需要發送一個ICMP數據包。

  其他第3層協議包括:

    • IGMPInternet組消息協議管理IP多播組,使一個網絡中的多個設備可以接收相同的IP流量。
    • ARP:地址解析協議僅在單個網絡內使用。計算機使用此協議將IP地址映射到網絡中的MAC地址(MAC地址是硬連接到每個具有Internet功能的設備中的唯一標識符,就如指紋一般)。

  從理論上看,使用這些協議中的任何一種進行攻擊都是可能的。ICMP通常用於向服務器發送過多無法響應的ping信號,或利用一個大型ping數據包使接收設備崩潰(這稱為“死亡之Ping”)。攻擊者可以通過IPsec使用垃圾數據或過大的安全性證書來淹沒目標。

  不過,並非所有這些協議都能真正用於DDoS攻擊,而且硬件更新也杜絕了某些攻擊類型的可能性。例如,ARP僅在本地網絡內運行,因此攻擊者首先需要連接到本地網絡,然后才能進行DDoS攻擊。而且,無法對現代硬件進行ICMP死亡之Ping攻擊,這些硬件會忽略太大的IP數據包。

  L3 DDoS攻擊如何工作?

  與其他類型的DDoS攻擊一樣,攻擊者通過這些協議發送大量垃圾網絡流量。操作方法有多種,具體取決於協議。垃圾流量阻礙合法用戶的請求,從而減慢對其的響應或將其完全阻止。有時,過多的垃圾數據使目標資源被淹沒,造成目標崩潰。

  第3層DDoS攻擊有哪些著名類型?

  盡管其他攻擊也有可能,包括僅通過IP的攻擊在內,但基於ICMP的攻擊最為常見。著名的ICMP攻擊包括:

    • Ping洪水:在Ping洪水DDoS攻擊中,攻擊者一次向服務器發送數千個甚至數百萬個ping請求。
    • Smurf攻擊:ICMP沒有適當的安全保護或驗證措施,這使攻擊者能夠在ICMP請求中偽造IP地址。在Smurf DDoS攻擊中,攻擊者向數千台服務器發出ping請求,在ping請求中偽造目標的IP地址,從而使響應發往目標,而不是攻擊者。大多數現代網絡硬件不再容易遭受這種攻擊。
    • 死亡之Ping:在ICMP死亡之Ping攻擊中,攻擊者向目標發送超過最大允許大小的ping請求。通向目標的路由器會將ping分段成較小的數據包,以便目標接受它們,但是當它嘗試從較小片段重新組合大數據包時,數據包大小將超過最大值,從而使目標崩潰。現代設備不容易遭受這種攻擊。

 

1.8 Smurf攻擊(歷史性)

  什么是Smurf攻擊?

  Smurf攻擊是一種分布式拒絕服務(DDoS)攻擊,攻擊者嘗試使用Internet控制消息協議(ICMP)數據包向目標服務器發起洪水攻擊。攻擊者使用目標設備的欺騙性IP地址向一個或多個計算機網絡發出請求,計算機網絡將響應目標服務器,因此會放大初始攻擊流量並可能使目標不堪重負,使其無法訪問。攻擊媒介通常被認為是已解決的漏洞,並且不再普遍存在。

  Smurf攻擊的工作原理

  盡管ICMP數據包可用於DDoS攻擊,但通常它們在網絡管理中起着重要的作用。利用ICMP數據包的ping應用程序被網絡管理員用於測試聯網的硬件設備,例如計算機、打印機或路由器。ping通常被用於查看設備是否正常運行,並跟蹤消息從源設備到目標再返回源的往返時間。不幸的是,由於ICMP協議不包括握手,因此接收請求的硬件設備無法驗證請求是否合法。

  這種DDoS攻擊就好比一個惡作劇的人打電話給辦公室經理,冒充是公司的首席執行官。惡作劇者要求經理讓每個員工回電給他的私人號碼,說明他們的工作情況。惡作劇者給出的回叫號碼是目標受害者的號碼,因此受害者隨后會收到許多呼叫,辦公室里有多少人,就會接到多少次。

  Smurf攻擊的工作方式:

1.首先,Smurf惡意軟件構建一個欺騙性數據包,其源地址設置為目標受害者的真實IP地址。

2.然后,數據包被發送到路由器或防火牆的IP廣播地址,后者將請求發送到廣播網絡內的每個主機設備地址,因此網絡上聯網設備有多少,就會增加多少個請求。

3.網絡中的每個設備都接收來自廣播設備的請求,然后使用 ICMP Echo Reply數據包響應目標的欺騙性地址。

4.目標受害者隨后收到大量的ICMP Echo Reply數據包,可能會不堪重負,並導致對合法流量拒絕服務。

  如何防護Smurf攻擊?

  多年來,已經針對這種攻擊媒介開發了幾種防護策略,在很大程度上,這種漏洞利用被視為已得到解決。在數量有限的舊有系統上,可能仍需要應用防護技術。一個簡單的解決方案是在每個網絡路由器和防火牆上禁用IP廣播地址。默認情況下,較舊的路由器可能會啟用廣播,而較新的路由器可能已將其禁用。

 

1.9 死亡之ping(歷史性)

  什么是死亡之Ping攻擊?

  死亡之Ping攻擊是一種拒絕服務(DoS)攻擊,攻擊者旨在通過發送大於最大允許大小的數據包來破壞目標計算機,從而導致目標計算機凍結或崩潰。原始的死亡之Ping攻擊如今並不常見。稱為ICMP洪水攻擊的相關攻擊更為普遍。

  死亡之 Ping 如何工作?

  Internet控制消息協議(ICMP)回顯回復消息或“ping”是用於測試網絡連接的網絡實用程序,其工作原理類似於聲納 – 發出“脈沖” 而該脈沖發出的“回顯”告知操作員有關環境的信息。如果連接正常,則源計算機收到來自目標計算機的回復。

  盡管某些ping數據包非常小,但IP4 ping數據包要大得多,並且可以達到65,535 字節的最大允許數據包大小。某些TCP/IP系統從未設計用於處理大於最大值的數據包,從而使其容易受到大於該大小的數據包的攻擊。

  當惡意大數據包從攻擊者傳輸到該目標時,該數據包將分成多個分段,每個分段均低於最大大小限制。當目標計算機嘗試將這些部分一起放回時,總數超出大小限制,並且可能發生緩沖區溢出,從而導致目標計算機凍結、崩潰或重啟。

  雖然ICMP回顯可用於此攻擊,但發送IP數據報的任何內容均可用於此漏洞。其中包括 TCP、UDP和 IPX 傳輸。

  如何防護死亡之Ping DDoS攻擊?

  阻止攻擊的一種解決方案是向重組過程添加檢查,以確保在數據包重組后不會超出最大數據包大小限制。另一個解決方案是創建具有足夠空間來處理超出准則最大值的數據包的內存緩沖區。

  原始死亡之Ping攻擊大多已經滅絕;1998年后生產的設備通常都會防止此類攻擊。部分舊設備可能仍易受攻擊。最近發現了針對Microsoft Windows IPv6 數據包的新型死亡之 Ping 攻擊,並於 2013 年年中進行修補。

 

1.10 CLDAP攻擊

  目前,能百度到的關於CLDAP的DDos反射型攻擊的資料比較少,偶然找到一份IEEE於2017年發表的相關論文。現做簡單記錄如下。

  CLDAP簡介

  CLDAP是由LDAP(輕量目錄訪問協議)演化而來的,前者不再基於TCP,而是基於UDP。LDAP定義在RFC2251(LDAPv3)中,以TCP字節流的方式進行數據傳輸,由於其必要的綁定操作和頻繁的數據搜索查詢會在一定程度上消耗較多的TCP連接資源,IETF在1995年發布了面向無連接的輕量目錄訪問協議(CLDAP),官方文檔為RFC1798(2003年 RFC3352將CLDAP置為歷史狀態)。

  在CLDAP中只提供三種操作:searchRequest、searchResponse (searchResEntry和searchResDone)、abandonRequest,在不提供身份驗證功能的情況下,客戶端可以使用UDP數據報對LDAP服務器389端口發起操作請求。由於客戶端發起searchRequest后服務端將返回searchResEntry和searchResDone兩條應答消息,一般情況下執行該操作將具有較小數據包反射出較大數據包的效果。這一缺陷隨即被利用進行反射放大DDos攻擊,具有癱瘓中小型服務器的能力。

  攻擊原理

  當出於某種目的利用該協議時,攻擊者可以將自己的IP偽裝成攻擊目標IP,並向多個CLDAP服務器發送查詢(如下圖所示)。當這種情況發生時,服務器不確定查詢是否來自正常請求者,也不確定目標IP是否合法;因此,數據請求被發送到多個CLDAP服務器,並且在收到請求時,CLDAP服務器將放大的響應分組發送到攻擊目標的IP。

  攻擊能力及波及范圍

  2017年1月7日,Akamai觀測到並抵御了將 CLDAP 反射用作唯一向量的最大型 DDos攻擊,峰值帶寬為24Gbps。它的威脅可與使用DNS的DDoS攻擊相媲美,並超過了可能導致服務器崩潰的最大值(通常為1Gbps)。

  Akamai還進行了一次全互聯網掃描,以檢測存在CLDAP反射濫用漏洞的主機。掃描結果顯示,共有78531個IP存在相應漏洞。其中,數目最多的國家是美國,有17980個,其次是巴西

  防御算法設計

  針對多種類型DDoS攻擊的檢測和防御算法

  論文中提到,M.Yusof等人提出過一種針對多種類型DDoS攻擊的檢測和防御算法,分為三步:檢測、防御、生成攻擊報告。

  為減少和防止DDoS攻擊,網絡上的檢測程序是必不可少的。首先,該程序檢查所有傳入的流量,而不考慮流量類型。如果傳入的流量與DDoS相關,則根據DDoS攻擊的類型進行檢測。基於攻擊行為,該算法按以下順序檢測攻擊:UDP flooding, TCP SYN flooding, Ping of Death, Smurf。

  如果在檢測過程中識別出DDoS攻擊,則防御過程開始。在此過程中,根據檢測到的攻擊類型實現阻塞。如果接收到的攻擊流量每秒包含超過100個數據包,則防御算法刪除該數據包。這樣,通過降低傳入數據包的速度和控制網絡帶寬的使用,防御算法只允許正常的通信量接近和進入網絡,從而達到保護目的。

  最后,記錄檢測到的DDoS攻擊詳細情況。根據類型創建報告,對於已確認的DDoS攻擊,報告包括五項:DDoS攻擊類型、分組大小、嚴重程度、檢測時間和攻擊者源。

  減少CLDAP放大攻擊流量算法

  由以上得到啟發,韓國的兩位學者Suk-June Choi和Jin Kwak(即本論文作者)設計了一種減少CLDAP放大攻擊流量的方法。

  在檢測過程中,要做出兩個判斷:通過掃描暴露在Internet上的CLDAP服務器的主機,檢測是否從可用於攻擊的服務器發送了數據包;根據攻擊腳本中是否存在簽名,來確定是否從CLDAP服務器檢測到異常響應分組。如果使用CLDAP的異常數據包進入,則將啟動下一防御過程。在防御過程中,測量相關的CLDAP服務器傳輸的數據包大小。如果攻擊流量的放大分組大小超過預先指定的值, 則該過程控制分組帶寬。它不斷地檢查接收到的數據包的大小,直到其在正常范圍內。與M.Yusof等人提出的源阻塞方法不同,韓國學者提出的方法是通過控制數據包的帶寬來穩定網絡並防止CLDAP放大攻擊。

  最后一個階段,程序的目標是根據檢測到的CLDAP放大攻擊來識別風險,並記錄有關攻擊的信息,內容包括:帶寬大小、分組大小、攻擊向量、攻擊持續時間和源/目的地端口。

  流程圖如下:

  總結與反思

  CLDAP服務器用於訪問Microsoft Active Directory網絡上的用戶帳戶和密碼,DDoS攻擊可能會利用這些漏洞。當CLDAP在DDoS放大攻擊中也被惡意利用時,高容量攻擊有可能造成嚴重損害,足以癱瘓小到中型服務器。這種CLDAP放大攻擊一直在穩步增加,目前,有效的對策仍有待進一步探索與提出。

  參考文獻

  Choi, Suk-June, and Jin Kwak. “A Study on Reduction of DDoS Amplification Attacks in the UDP-Based CLDAP Protocol.” 2017 4th International Conference on Computer Applications and Information Processing Technology (CAIPT) (2017): n. pag. Crossref. Web.

 

2.洪水攻擊

2.1 DNS洪水攻擊

  什么是DNS洪水?

  域名系統(DNS)服務器是Internet的“電話簿”;它們是Internet設備查找特定Web服務器以訪問Internet內容的途徑。DNS洪水是分布式拒絕服務攻擊(DDoS)的一種,攻擊者對特定域的DNS服務器發起流量洪水,以圖破壞該域的DNS解析。如果用戶找不到電話簿,則它將無法查找地址以調用特定資源。通過破壞DNS解析,DNS洪水攻擊將損害網站、API或Web應用程序對合法流量的響應能力。DNS洪水攻擊可能很難與正常的繁忙流量區分開來,因為大量流量通常來自多個位置,它們查詢域中的真實記錄,完全模仿合法流量。

  DNS洪水攻擊的工作原理

  域名系統的功能是在易於記憶的名稱(例如 example.com)和難以記憶的網站服務器地址(例如192.168.0.1)之間進行轉換,因此成功攻擊DNS基礎設施會使大多數人無法使用Internet。DNS洪水攻擊構成了一種相對新型的基於DNS的攻擊,隨着高帶寬物聯網 (IoT) 僵屍網絡(如Mirai)的興起而激增。DNS 洪水攻擊使用 IP 攝像頭、 DVR 盒和其他IoT設備的高帶寬連接來直接淹沒主要提供商的DNS服務器。來自物聯網設備的請求數量使DNS提供商的服務不堪重負,並阻止合法用戶訪問提供商的DNS服務器。

  DNS洪水攻擊與DNS放大攻擊不同。DNS放大攻擊會反射和放大來自不安全的DNS服務器的流量,以隱藏攻擊的來源並提高其有效性。DNS放大攻擊使用帶寬連接較小的設備向不安全的DNS服務器發出大量請求。設備發出許多較小的請求,形成非常大的DNS記錄,但是在發出請求時,攻擊者將返回地址偽造為預期受害者的地址。放大使攻擊者使用有限的攻擊資源即可破壞更大的目標。

  如何防護DNS洪水攻擊?

  DNS洪水是傳統上基於放大的攻擊方法的變更結果。借助易於訪問的高帶寬僵屍網絡,攻擊者現在可以針對大型組織發起攻擊。在可以更新或更換受損的IoT設備之前,抵御這些攻擊的唯一方法是使用大型、高度分散的DNS系統,以實時監視、吸收和阻止攻擊流量

 

2.2 HTTP洪水

  什么是HTTP洪水DDoS攻擊?

  HTTP洪水攻擊是一種大規模分布式拒絕服務(DDoS)攻擊,旨在利用HTTP請求使目標服務器不堪重負。目標因請求而達到飽和,且無法響應正常流量后,將出現拒絕服務,拒絕來自實際用戶的其他請求。

  HTTP洪水攻擊的工作原理

  HTTP洪水攻擊是“第 7 層”DDoS 攻擊的一種。第7層是OSI模型的應用程序層,指的是HTTP等Internet協議。HTTP是基於瀏覽器的Internet請求的基礎,通常用於加載網頁或通過Internet發送表單內容。防護應用程序層攻擊特別復雜,因為惡意流量和正常流量很難區分。

  為了獲得最大效率,惡意行為者通常會利用或創建僵屍網絡,以最大程度地擴大攻擊的影響。通過利用感染了惡意軟件的多台設備,攻擊者可以發起大量攻擊流量來進行攻擊。

    HTTP洪水攻擊有兩種:

1.HTTP GET攻擊 - 在這種攻擊形式下,多台計算機或其他設備相互協調,向目標服務器發送對圖像、文件或其他資產的多個請求。當目標被傳入的請求和響應所淹沒時,來自正常流量源的其他請求將被拒絕服務。

2.HTTP POST攻擊 - 一般而言,在網站上提交表單時,服務器必須處理傳入的請求並將數據推送到持久層(通常是數據庫)。與發送POST請求所需的處理能力和帶寬相比,處理表單數據和運行必要數據庫命令的過程相對密集。這種攻擊利用相對資源消耗的差異,直接向目標服務器發送許多POST請求,直到目標服務器的容量飽和並拒絕服務為止。

  如何防護HTTP洪水攻擊?

  如前所述,防護第7層攻擊非常復雜,而且通常要從多方面進行。一種方法是對發出請求的設備實施質詢,以測試它是否屬於機器人,這與在線創建帳戶時常用的CAPTCHA測試非常相似。通過提出諸如JavaScript計算挑戰之類的要求,可以防護許多攻擊。

  其他阻止HTTP洪水攻擊的途徑包括使用Web應用程序防火牆 (WAF)、管理 IP 信譽數據庫以跟蹤和有選擇地阻止惡意流量,以及由工程師進行動態分析

 

2.3 SYN洪水攻擊

  什么是SYN洪水攻擊?

  SYN洪水(半開連接攻擊)是一種拒絕服務(DDoS)攻擊,旨在耗盡可用服務器資源,致使服務器無法傳輸合法流量。通過重復發送初始連接請求(SYN)數據包,攻擊者將可擊垮目標服務器計算機上的所有可用端口,導致目標設備在響應合法流量時表現遲鈍乃至全無響應。

  SYN洪水攻擊如何工作?

  SYN洪水攻擊利用TCP連接的握手過程發動攻擊。正常情況下,TCP連接將完成三次握手以建立連接。

1.首先,客戶端向服務器發送SYN數據包以發起連接。

2.接着,服務器通過SYN/ACK數據包對該初始數據包做出響應,以便確認通信。

3.最后,客戶端返回ACK數據包以確認接到服務器發出的數據包。完成這一系列數據包發送和接收操作后,TCP連接將處於打開狀態並且能夠發送和接收數據。

  為發起拒絕服務攻擊,攻擊者需利用這樣一項事實:收到初始SYN數據包后,服務器將通過一個或多個SYN/ACK數據包做出回響,等待完成握手過程的最后一步。工作方式如下:

1.攻擊者通常使用偽造的IP地址向目標服務器發送大量SYN數據包。

2.然后,服務器分別對每一項連接請求做出響應,並確保打開的端口做好接收響應的准備。

3.在服務器等待最后一個ACK數據包(永遠不會到達)的過程中,攻擊者將繼續發送更多SYN 數據包。每當有新的SYN數據包到達,服務器都會臨時打開一個新的端口並在一段特定時間內保持連接;用遍所有可用端口后,服務器將無法正常運行。

  在網絡中,如果服務器連接處於打開狀態但另一端的機器連接未打開,則視為半開連接。在此類DDoS攻擊中,目標服務器將使連接一直處於打開狀態,靜待各個連接超時,避免再次開放端口。因此,此類攻擊可視為“半開連接攻擊”。

  惡意用戶可通過三種不同方式發起SYN洪水攻擊:

1.直接攻擊:不偽造IP地址的SYN洪水攻擊稱為直接攻擊。在此類攻擊中,攻擊者完全不屏蔽其IP地址。由於攻擊者使用具有真實IP地址的單一源設備發起攻擊,因此很容易發現並清理攻擊者。為使目標機器呈現半開狀態,黑客將阻止個人機器對服務器的SYN-ACK數據包做出響應。為此,通常采用以下兩種方式實現:部署防火牆規則,阻止除SYN數據包以外的各類傳出數據包;或者,對傳入的所有SYN-ACK數據包進行過濾,防止其到達惡意用戶機器。實際上,這種方法很少使用(即便使用過也不多見),因為此類攻擊相當容易緩解 – 只需阻止每個惡意系統的IP 地址。哪怕攻擊者使用僵屍網絡(如Mirai僵屍網絡),通常也不會刻意屏蔽受感染設備的IP。

2.欺騙攻擊:惡意用戶還可以偽造其發送的各個SYN數據包的IP地址,以便阻止緩解措施並加大身份暴露難度。雖然數據包可能經過偽裝,但還是可以通過這些數據包追根溯源。此類檢測工作很難開展,但並非不可實現;特別是,如果Internet服務提供商(ISP)願意提供幫助,則更容易實現。

3.分布式攻擊(DDoS):如果使用僵屍網絡發起攻擊,則追溯攻擊源頭的可能性很低。隨着混淆級別的攀升,攻擊者可能還會命令每台分布式設備偽造其發送數據包的IP地址。哪怕攻擊者使用僵屍網絡(如Mirai僵屍網絡),通常也不會刻意屏蔽受感染設備的IP。

  惡意用戶可以通過SYN洪水攻擊嘗試在目標設備或服務中創建拒絕服務,其流量遠低於其他DDoS攻擊。SYN攻擊不屬於容量耗盡攻擊,其目的並非使目標周圍的網絡基礎設施達到飽和,只需保證大於目標操作系統的可用積壓工作即可。如果攻擊者能夠確定積壓工作規模以及每個連接保持打開狀態的時間長度(超出時間將進入超時狀態),攻擊者將可以找出禁用系統所需的確切參數,從而將創建拒絕服務所需的總流量降至最低。

  如何緩解SYN洪水攻擊?

  SYN洪水漏洞早已為世人所知,而且開創了大量緩解方法。其中一些方法包括:

  • 擴展積壓工作隊列

  目標設備安裝的每個操作系統都允許具有一定數量的半開連接。若要響應大量SYN數據包,一種方法是增加操作系統允許的最大半開連接數目。為成功擴展最大積壓工作,系統必須額外預留內存資源以處理各類新請求。如果系統沒有足夠的內存,無法應對增加的積壓工作隊列規模,將對系統性能產生負面影響,但仍然好過拒絕服務。

  • 回收最先創建的TCP半開連接

  另一種緩解策略是在填充積壓工作后覆蓋最先創建的半開連接。這項策略要求完全建立合法連接的時間低於惡意SYN數據包填充積壓工作的時間。當攻擊量增加或積壓工作規模小於實際需求時,這項特定的防御措施將不奏效。

  • SYN Cookie

  此策略要求服務器創建Cookie。為避免在填充積壓工作時斷開連接,服務器使用SYN-ACK數據包響應每一項連接請求,而后從積壓工作中刪除SYN請求,同時從內存中刪除請求,保證端口保持打開狀態並做好重新建立連接的准備。如果連接是合法請求並且已將最后一個ACK數據包從客戶端機器發回服務器,服務器將重建(存在一些限制)SYN積壓工作隊列條目。雖然這項緩解措施勢必會丟失一些TCP連接信息,但好過因此導致對合法用戶發起拒絕服務攻擊。

 

2.4 ACK洪水攻擊

  什么是ACK洪水DDoS攻擊?

  ACK洪水攻擊是指攻擊者試圖用TCP ACK數據包使服務器過載。像其他DDoS攻擊一樣,ACK洪水的目的是通過使用垃圾數據來減慢攻擊目標的速度或使其崩潰,從而導致拒絕向其他用戶提供服務。目標服務器被迫處理接收到的每個ACK數據包,消耗太多計算能力,以致無法為合法用戶提供服務。

  想象一下,一個惡作劇呼叫者用虛假消息填充某人的語音信箱,使真實呼叫者的語音留言無法進入。現在假設,這些虛假消息全部說的是:“嗨,我打電話來是跟你說我已收到你的信息。”這有點像在ACK洪水DDoS攻擊中發生的情況。

  什么是數據包?

  通過Internet發送的所有數據都分割為較小的片段,稱為數據包。想象一下,某人想在Twitter上發表一個深入的觀點或講一個長篇故事,不得不將其文本分割成280個字符的片段,並以一系列推文的形式發布,而不是一次性發布全部。對於那些不使用Twitter的人,可以想一下沒有專用短信應用的手機如何將長短信文本分成幾個較小的部分。

  傳輸控制協議(TCP)是Internet通信的重要組成部分。使用TCP協議發送的數據包在其標頭中包含附加的信息。TCP協議使用數據包標頭來告訴接收方有多少個數據包以及它們應以什么順序到達。標頭還可以指示數據包的長度和類型等信息。

  這有點像給文件夾取名,讓人們知道其中的內容。回到Twitter的例子,發布大量推文的人通常會指明該系列中有多少條推文,以及每條推文的編號以幫助讀者閱讀它們。

  ACK數據包隸屬於TCP 握手,后者是三個連續的步驟,用於在Internet上任何兩個連接的設備之間啟動對話(就像現實生活中人們在開始交談之前通過握手來問候一樣)。TCP握手的三個步驟是:

1.SYN

2.SYN ACK

3.ACK

  打開連接的設備(比如,用戶的筆記本電腦)通過發送SYN(“同步”的縮寫)數據包來啟動三向握手。位於連接另一端的設備(假設是托管在線購物網站的服務器)以SYN ACK 數據包答復。最后,用戶的筆記本電腦發送一個ACK數據包,此時三向握手宣告完成。此過程可確保兩個設備都已聯機並且准備好接收其他數據包,本例中為允許用戶加載網站。

  但是,這並非使用ACK數據包的唯一時間。TCP協議要求連接的設備確認它們已按順序接收了所有數據包。假設用戶訪問一個托管圖片的網頁。圖片分解為數據包,並發送到用戶的瀏覽器。整個圖片到達后,用戶設備就會向主機服務器發送一個ACK數據包,以確認一個像素也沒丟失。如果沒有此ACK數據包,主機服務器必須再次發送圖片。

  由於ACK數據包是在標頭中設置了ACK標志的任何TCP數據包,因此ACK可以是筆記本電腦發送到服務器的其他消息的一部分。如果用戶填寫表單並將數據提交給服務器,則筆記本電腦可以將其中一個數據包作為圖片的ACK數據包。它不需要是單獨的數據包。

  ACK洪水攻擊如何工作?

  ACK洪水以需要處理收到的每個數據包的設備為目標。防火牆和服務器最有可能成為ACK攻擊的目標。負載均衡器、路由器和交換機不容易遭受這些攻擊。

  合法和非法ACK數據包看起來基本相同,因此,如果不使用內容分發網絡(CDN)過濾掉不必要的ACK數據包,就很難阻止ACK洪水。盡管看起來很相似,但用於ACK DDoS攻擊的數據包並不包含數據本身數據包的主要部分,也稱為有效負載。為了顯得合法,它們僅需在 TCP 標頭中包含 ACK 標志。

  ACK洪水是第4層(傳輸層)DDoS 攻擊。

  SYN ACK洪水攻擊如何工作?

  SYN ACK洪水DDoS攻擊與ACK攻擊略有不同,但基本思路仍然相同:用過多的數據包來壓垮目標。

  記住TCP三向握手的工作方式:握手的第二步是SYN ACK 數據包。通常,服務器在響應來自客戶端設備的SYN數據包時發送此SYN ACK數據包。在SYN ACK DDoS 攻擊中,攻擊者使大量SYN ACK數據包涌向目標。這些數據包根本不屬於三向握手協議的一部分,它們的唯一目的是打斷目標的正常運作。

  攻擊者也有可能在SYN洪水 DDoS 攻擊使用 SYN 數據包。

 

2.5 UDP洪水攻擊

  什么是UDP洪水攻擊?

  UDP洪水是一種拒絕服務攻擊,攻擊者將大量用戶數據報協議(UDP) 數據包發送到目標服務器,旨在讓該設備的處理和響應能力無力承擔。由於UDP洪水攻擊,保護目標服務器的防火牆也可能不堪重負,導致對正常流量拒絕服務。

  UDP洪水攻擊的工作原理

  UDP洪水的工作原理主要是利用服務器響應發送到其端口之一的UDP數據包時所采取的步驟。在正常情況下,服務器在特定端口上收到UDP數據包時,將通過以下兩個步驟進行響應:

1.服務器首先檢查是否有任何當前偵聽指定端口請求的程序正在運行。

2.如果該端口上沒有程序正在接收數據包,則服務器將以ICMP (ping)數據包作為響應,以告知發送方目標不可達。

  UDP洪水就好比酒店接待員轉接呼叫的情況。首先,接待員接到電話,呼叫者要求將其連接到特定客房。然后,接待員需要查看所有房間的列表,以確保客人在客房內,並願意接聽電話。如果接待員了解到客人沒有接聽電話,他們就必須重新接聽電話,並告訴呼叫者客人不會接聽電話。如果所有電話線路都突然同時發出類似請求,他們很快就會變得不堪重負。

  當服務器接收到新的UDP數據包時,它會逐步進行處理,並在此過程中利用服務器資源來處理請求。傳輸UDP數據包時,每個數據包都將包括源設備的IP地址。在這種類型的DDoS攻擊期間,攻擊者通常不會使用自己的真實IP地址,而是將偽造UDP數據包的源IP地址,從而避免攻擊者的真實位置被暴露,並且由於來自目標服務器的數據包而達到飽和狀態。

  由於目標服務器利用資源來檢查並響應每個接收到的UDP數據包,當收到大量UDP數據包時,目標資源會很快耗盡,從而導致對正常流量拒絕服務。

  如何防護UDP洪水攻擊?

  大多數操作系統限制ICMP數據包的響應速率,部分原因是為了中斷需要ICMP響應的DDoS攻擊。這種防護措施的一個缺點是,在攻擊期間,合法數據包也可能在此過程中被過濾。如果UDP洪水的大小足以使目標服務器的防火牆的狀態表飽和,則在服務器級別發生的任何防護都將是不夠的,因為瓶頸將發生在目標設備的上游。

 

2.6 Ping(ICMP)洪水攻擊

  什么是Ping(ICMP)洪水攻擊?

  Ping洪水是一種拒絕服務攻擊,攻擊者試圖用ICMP回顯請求包使目標設備不堪重負,導致正常流量無法正常訪問目標。當攻擊流量來自多個設備時,攻擊將成為DDoS或分布式拒絕服務攻擊。

  Ping洪水攻擊的工作原理

  Ping洪水攻擊中會利用Internet控制消息協議(ICMP),后者是網絡設備用來通信的Internet層協議。網絡診斷工具traceroute和ping 都使用ICMP工作。通常,ICMP回顯請求和回顯回復消息被用於ping網絡設備,以便診斷設備的運行狀況和連接性以及發送方和設備之間的連接。

  ICMP請求需要一些服務器資源來處理每個請求並發送響應。該請求對於傳入消息(回顯請求)和傳出響應(回顯回復)也都需要帶寬。Ping洪水攻擊旨在利用虛假流量使目標設備無法響應大量請求和/或讓網絡連接超負荷。通過利用ICMP請求使僵屍網絡中的許多設備針對相同的Internet資產或基礎設施組件,攻擊流量將大大增加,進而可能導致正常網絡活動的中斷。在以前,攻擊者通常會在偽造的IP地址中進行欺騙來掩蓋發送設備。借助現代僵屍網絡攻擊,惡意行為者幾乎不需要掩蓋機器人IP的需要,而是依靠未偽造的機器人構成的大型網絡來使目標的容量達到飽和。

  Ping(ICMP)洪水的DDoS形式可分為2個重復步驟:

1.攻擊者使用多個設備將許多ICMP回顯請求數據包發送到目標服務器。

2.然后目標服務器將ICMP回顯回復包發送到每個請求設備的IP地址作為響應。

  Ping洪水的破壞效果與對目標服務器發出的請求數量成正比。與基於反射的DDoS攻擊(例如NTP放大和DNS放大攻擊),Ping洪水的攻擊流量是對稱的;目標設備接收的帶寬量是每個機器人發送的總流量之和。

  如何防護Ping洪水攻擊?

  禁用ping洪水最簡單的方法是禁用目標路由器、計算機或其他設備的ICMP功能。網絡管理員訪問設備的管理界面,並禁用其使用ICMP發送和接收任何請求的能力,即可有效地消除對請求的處理和對回顯回復的處理。在此后,所有涉及ICMP的網絡活動都會被禁用,設備對ping請求、traceroute請求和其他網絡活動無響應。

 

2.7 QUIC洪水攻擊

  什么是QUIC協議?

  QUIC協議是一種通過Internet發送數據的新方法,它比早期協議更加快速,高效和安全。QUIC屬於傳輸協議,這意味着它會影響數據在Internet上的傳輸方式。像幾乎所有 Internet協議一樣,QUIC可以被惡意用來進行DDoS攻擊。

  以更專業的術語來說,QUIC協議是一種傳輸層協議,理論上可以取代TCP(一種傳輸協議)和TLS(一種加密協議)。2019年7月,所有網站中大約 3% 在使用 QUIC,該協議的支持者(包括Cloudflare在內)希望采用率會隨着時間流逝而繼續上升。HTTP協議的最新版本 HTTP/3 在QUIC的基礎上運行。

  QUIC協議如何工作?

  QUIC協議的目標是比傳統的Internet連接更快,更安全。為了提高速度,它使用UDP傳輸協議,此協議速度比TCP快,但可靠性不如后者。它一次發送多個數據流,以彌補沿途丟失的任何數據,這種技術稱為多路復用。

  為了提高安全性,通過QUIC發送的所有內容都會自動加密。通常,數據必須通過HTTPS發送數據才會被加密。但是,QUIC將TLS加密構內建到普通的通信過程中。

  這種內置加密進一步加快了協議的速度。在典型的HTTPS中,必須在傳輸層完成三向TCP握手,然后才能開始多步驟TLS握手。完成這一切后,才能在客戶端和服務器之間發送任何實際的數據。QUIC組合了這兩個握手,使它們一次性全部完成:客戶端和服務器確認連接已打開,並同時生成TLS加密密鑰。

  什么是QUIC洪水?

  QUIC洪水DDoS攻擊是指攻擊者試圖通過使用QUIC發送的數據壓垮目標服務器以拒絕服務。受害服務器被迫處理它收到的所有QUIC數據,從而減慢對合法用戶的服務,並在某些情況下導致服務器完全崩潰。通過QUIC發動的DDoS攻擊很難阻止,這是因為:

    • QUIC使用UDP,為數據包接收方提供的信息非常少,不足以用來阻止數據包
    • QUIC對數據包數據進行加密,數據的接收方無法輕易辨別它是否合法

  QUIC洪水攻擊可以使用多種方法來展開,但QUIC協議特別容易受到基於反射的DDoS 攻擊的破壞。

  什么是QUIC洪水反射攻擊?

  在反射式DDoS攻擊中,攻擊者假冒受害者的IP地址並向多台服務器請求信息。當服務器做出響應時,所有信息將傳遞給受害者而非攻擊者。想象一下,有人惡意用他人的回信地址寄送信件,讓后者不得不接收大量不必要的郵件。

  使用QUIC協議時,可以通過啟動QUIC連接的初始“hello”消息發動進行反射攻擊。與TCP連接不同,QUIC 連接打開時服務器不會發送簡單的ACK消息。由於 QUIC 將UDP傳輸協議與TLS加密相結合,因此服務器在對客戶端的第一次答復中附帶了其TLS證書。這意味着服務器的第一條消息要比客戶端的第一條消息大得多。通過假冒受害者的IP地址並向服務器發送“hello”消息,攻擊者誘使服務器向受害者發送大量不需要的數據。

  為了部分緩解這種類型的攻擊,QUIC協議的架構師為初始客戶端問候消息設置了最小大小,以使攻擊者需要大量帶寬才能發送許多虛假客戶端問候消息。但是,服務器問候消息仍然大於客戶端問候消息,因此仍然有發生這種攻擊的可能。

  QUIC洪水與UDP洪水是否相似?

  UDP洪水是一種DDoS攻擊,使用不需要的UDP數據包壓垮目標服務器。QUIC使用UDP,但QUIC洪水不一定等同於UDP洪水。

  UDP洪水沖垮目標服務器的一種方法是,將偽造的UDP數據包發送到服務器上未實際使用的特定端口。服務器必須使用ICMP錯誤消息來答復所有數據包,這會占用處理能力並減慢服務器速度。可以使用 QUIC 來進行這種攻擊,但對於攻擊者來說,純粹通過UDP進行攻擊的成本通常較低,沒有生成 QUIC 數據包的額外開銷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM