<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    技術分享 | DDoS的攻擊及防御

    VSole2021-10-24 04:40:50

    一、概念

    1. 什么叫“拒絕服務”攻擊?

        可以簡單理解為:讓一個公開網站無法訪問。

        要達到這個目的的方法也很簡單:不斷地提出服務請求,讓合法用戶的請求無法及時處理。

    2. 什么叫“分布式”?

        隨著網絡發展,很多大型企業具備較強的服務提供能力,所以應付單個請求的攻擊已經不是問題。道高一尺,魔高一丈,于是乎攻擊者就組織很多同伙,同時提出服務請求,直到服務無法訪問,這就叫“分布式”。但是在現實中,一般的攻擊者無法組織各地伙伴協同“作戰”,所以會使用“僵尸網絡”來控制N多計算機進行攻擊。

    3. 什么叫“僵尸網絡”?

       Botnet,就是數量龐大的僵尸程序(Bot)通過一定方式組合,出于惡意目的,采用一對多的方式進行控制的大型網絡,也可以說是一種復合性攻擊方式。因為僵尸主機的數量很大而且分布廣泛,所以危害程度和防御難度都很大。

        僵尸網絡具備高可控性,控制者可以在發布指令之后,就斷開與僵尸網絡的連接,而控制指令會自動在僵尸程序間傳播執行。

    節點

        僵尸網絡由大量功能結點共同組成,可能是普通PC、服務器或者移動設備。

    步驟:感染傳播 -> 安裝執行 -> 接入僵尸網絡 -> 命令執行

    控制

    控制模式網絡規模組網難度抗打擊性流行度IRC型僵尸網絡一般較簡單偏弱國內較少見HTTP型僵尸網絡中等一般一般國內較普遍P2P型僵尸網絡規模龐大較困難強多見于國外

    危害

    1. 發動DDos攻擊
    2. 發送垃圾郵件
    3. 竊取敏感信息
    4. 搶占系統資源

    二、攻擊

    1. 攻擊網絡資源帶寬

        當網絡數據包的數量達到或者超過上限的時候,會出現網絡擁堵、響應緩慢的情況。DDoS就是利用這個原理,發送大量網絡數據包,占滿被攻擊目標的全部帶寬,從而造成正常請求失效,達到拒絕服務的目的。

    直接攻擊


    (1) ICMP/IGMP Flood

       Internet Control Message Protocol(網絡控制消息協議)是TCP/IP協議族的核心協議之一。它用于在TCP/IP網絡中發送控制消息,提供可能發生在通信環境中的各種問題反饋。通過這些消息,管理者可以對所發生的問題做出診斷,然后采取適當的措施解決。
       Internet Group Management Protocol(因特網組管理協議)是用于管理因特網協議多播組成員的一種通信協議。IP主機和相鄰的路由器利用IGMP來建立多播組的組成員。

        攻擊者使用受控主機向被攻擊目標發送大量的ICMP/IGMP報文,進行洪水攻擊以消耗目標的寬帶資源,這種類型的攻擊出現的很早,使用hping等工具就能簡單的發起攻擊。但現在使用這種方法發動的攻擊已見不多,被攻擊目標可以在其網絡邊界直接過濾并丟棄ICMP/IGMP數據包使攻擊無效化。

        但是這種直接方式通常依靠受控主機本身的網絡性能,所以效果不是很好,還容易被查到攻擊源頭。于是反射攻擊就出現。

    (2) UDP Flood

       User Datagram Protocol(用戶數據包協議)是一種面向無連接的傳輸層協議,主要用于不要求分組順序到達的傳輸,提供面向事務的簡單的不可靠信息傳送服務。

        利用UDP數據報文,攻擊者也可以發送洪水攻擊,UDP洪水攻擊和ICMP/IGMP洪水攻擊的原理基本相同,通常,攻擊者會使用小包和大包兩種方式進行攻擊。

        小包是指64字節大小的數據包,這是以太網上傳輸數據幀的最小值,在相同流量下,單包體積越小,數據包的數量就越多。由于交換機、路由器等網絡設備需要對沒一個數據包進行檢查和校驗,因此使用UDP小包攻擊能夠最有效的增大網絡設備處理數據包的壓力,造成處理速度的緩慢和傳輸延遲等拒絕服務攻擊的效果。

        大包是指1500字節以上的數據包,其大小超過了以太網的最大傳輸單元(MTU),使用UDP大包攻擊,能夠有效的占用網絡接口的傳輸寬帶,并迫使被攻擊目標在接受到UDP數據時進行分片重組,造成網絡擁堵,服務器響應速度變慢。

       UDP洪水攻擊也是很早就出現的一種拒絕服務攻擊方式,這種攻擊發動簡單,有相當多的工具都能夠發動UDP洪水攻擊,如hping、LOIC等,但UDP洪水攻擊完全依靠受控主機本身的網絡性能,因此通常對目標寬帶資源的消耗并不太大。

    反射和放大攻擊

        反射攻擊又被稱為DRDoS(Distributed Reflection Denial of Service 分布式反射拒絕服務)攻擊,是指利用路由器、服務器等設施對請求產生應答,從而反射攻擊流量并隱藏攻擊來源的一種分布式拒絕服務攻擊技術。

        在進行反射攻擊時,攻擊者使用受控主機發送大量的數據包,這些數據包的特別之處在于,其目的IP地址指向作為反射器的服務器、路由器等設施,而源IP地址則被偽造成被攻擊目標的IP地址,反射器在收到數據包時,會認為該數據包是否被攻擊目標所發來的請求,因此會將相應數據發送給被攻擊目標,當大量的響應數據包涌向攻擊目標時,就會耗盡目標的網絡寬帶資源,造成拒絕服務攻擊。

        放大攻擊是一種特殊的反射攻擊,其特殊之處在于反射器對于網絡流量具有放大作用,因此我們也可以將這種反射器成為放大器,進行放大攻擊的方式與反射攻擊的方式也是基本一致的,不同之處在于反射器(放大器)所提供的網絡服務需要滿足一定條件。

        在反射器所提供的網絡服務協議中,需要存在請求和響應數據量不對稱的情況,響應數據量需要大于請求數據量,響應數據量與請求數據量的比值越大,放大器的放大倍數也就越大,進行放大攻擊所產生的消耗寬帶資源的效果也就越明顯。


    (1) ACK Flood

        在傳輸控制協議建立連接時,首先會進行TCP三次握手,在這個過程中,當服務器端接收到客戶端發來的SYN連接請求時,會對該請求進行ACK應答,利用TCP握手的ACK應答,即可進行ACK反射攻擊。

        如果攻擊者將SYN的源IP地址偽造成被攻擊目標的IP地址,服務器的應答也就會直接發送給被攻擊目標,由于使用TCP協議的服務在互聯網上廣泛存在,攻擊者可以通過受控主機向大量不同的服務器發送偽造源IP地址的SYN請求,從而使服務器響應的大量ACK應答數據涌向被攻擊目標,占用目標的網絡寬帶資源并拒絕服務。


    (2) DNS Flood

       Domain Name System (域名系統)是因特網的一項核心服務,它作為可以將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便地訪問互聯網,而不用去記住那些難以記憶的IP地址,DNS使用的TCP與UDP端口號都是53,主要使用的UDP協議。

        通常,DNS的相應數據包會比查詢數據包大,因此攻擊者利用普通的DNS查詢請求就能夠發動放大攻擊,并將攻擊流量放大2~10倍,但更有效的方法是使用RFC2671中定義的DNS擴展機制EDNS0。

    在EDNS0中,擴展了DNS數據包的結果,增加了OPT RR字段,在OPT RR字段中,包含了客戶端能夠處理的最大UDP報文大小的信息,服務器在響應DNS請求時,解析并記錄下客戶端能夠處理的最大UDP報文的大小,并根據該大小生成響應的報文。
    

        攻擊者能夠利用dig和EDNS0進行高效的DNS放大攻擊,攻擊者向廣泛存在的開放DNS解析器發送dig查詢命令,將OPT RR字段中UDP報文大小設置為很大的值,并將請求的源IP地址偽造成被攻擊目標的IP地址。DNS解析器收到查詢請求后,會將解析的結果發送給被攻擊目標,當大量的解析結果涌向目標時,就會導致目標網絡擁堵和緩慢,造成拒絕服務攻擊。攻擊者發送的DNS查詢請求數據包大小一般為60字節左右,而查詢返回結果的數據包大小通常為300字節以上,因此,使用該方式進行放大攻擊能夠達到50倍以上的放大效果。


    (3) NTP Flood

       Network Time Protocol (網絡時間協議)是用來使計算器時間同步化的一種協議,它可以使計算機與時鐘源進行同步化并提供高精準度的時間校正,NTP使用UDP 123端口進行通信。

        在NTP協議的服務器實現上,通常會實現一系列Mode 7的調試接口,而接口中的monlist請求能夠獲取到目標NTP服務器進行同步的最后600個客戶端的IP地址等信息。這意味著,只需要發送一個很小的請求包,就能觸發大量連續的包含IP地址信息等數據的UDP響應數據包。

        實際上,monlist請求返回的數據量與一段時間內和NTP服務器交互的客戶端數據量有關,由于NTP服務使用的是UDP單包通信,因此攻擊者可以將偽造源IP地址的UDP請求包發送給NTP放大器,偽造客戶端與NTP服務器的交互,增加“和NTP服務器交互的客戶端的數量”,以此來增加monlist請求的響應數據量并增大NTP放大器的放大倍數,只要向NTP放大器發送600個不超過64字節的請求包(約40KB數據),就能夠快速的將NTP放大器的放大倍數提高到700倍以上,并在該服務器的NTP服務關閉或重新啟動之前一直保持這么大的放大倍數。攻擊者發送的monlist請求數據包大小不超過64字節,而請求返回的結果會包含100個482字節的UDP響應數據,因此使用該方式進行放大攻擊能夠達到700倍以上的放大效果。


    (4) SNMP Flood

       Simple Network Management Protocol(簡單網絡管理協議)是目前網絡中應用最為廣泛的網絡管理協議,它提供了一個管理框架來監控和維護互聯網的設備,SNMP協議使用UDP 161端口進行通信。

        利用SNMP協議中的默認通信字符串和GetBulk請求,攻擊者能夠開展有效的SNMP放大攻擊。

        許多廠商安裝的SNMP都采用了默認的通信字符串(Community String),這些通信字符串是程序獲取設備信息和修改配置必不可少的,最常見的默認通信字符串是public和private,除此之外還有許多廠商私有的默認通信字符串,幾乎所有運行SNMP的網絡設備上,都可以找到某種形式的默認通信字符串。

        在SNMPv1中定義的get請求可以嘗試一次獲取多個MIB對象,但響應消息的大小受到設備處理能力的限制,如果設備不能返回全部請求的響應,則會返回一條錯誤信息。在SNMPv2中,添加了Getbulk請求,該請求會通知設備返回盡可能多的數據,這使得管理程序能夠通過發送一次請求就獲得大段的檢索信息。

        攻擊者向廣泛存在并開啟了SNMP服務的網絡設備發送Getbulk請求,使用默認通信字符串作為認證憑據,并將源IP地址偽造成攻擊目標的IP地址,設備收到Getbulk請求后,會將響應結果發送給攻擊目標,當大量的響應結果涌向攻擊目標時,就會導致攻擊目標網絡擁堵和緩慢,造成拒絕服務攻擊。

        攻擊者發送的Getbulk請求數據包約為60字節,而請求的響應數據能夠達到1500字節以上,因此,使用該方式進行放大攻擊能夠達到25倍以上的放大效果,這也是一種放大效應明顯且有效的放大攻擊方式。


    (4) Chargen Flood

        Character Generator Protocol (Chargen字符發生器協議)是一種簡單網絡協議,在RFC 864中被定義。該協議設計的目的是用來調試TCP或UDP協議程序、測量連接的帶寬或進行QoS的微調等。它的默認端口為19,分為基于TCP和UDP兩種方式,TCP方式下建立連接后,服務器會不斷傳送任意字符到客戶端,直到客戶端關閉連接。UDP方式下每當服務器收到客戶端的一個UDP數據包后向客戶端返回一個數據包,長度為0~512字節之間隨機值,數據包的負載可以是任意字符。

        Chargen協議的設計初衷是為了網絡測試,并沒有嚴格的訪問控制和流量控制機制,在UDP模式下任何人都可以向開放Chargen服務的主機請求服務,這種簡單的請求-回復模式使得攻擊者可以偽造源發地址信息向Chargen服務發送請求,而Chargen服務并不會驗證源發地址的真偽,會向源發地址發送應答包,這導致該服務可被用來進行DOS攻擊。RFC 864中給出Chargen應答包的建議大小不超過512字節,但是在實際實現過程中,這個大小并未被嚴格限制,根據實際測試,在Linux 系統下,對于64字節的無負載UDP Chargen請求,系統回復一個1066字節的UDP 應答報文,流量被放大了15倍,而在Windows系統下使用同樣的請求,回復的UDP應答報文長度達3259字節,并產生了分片,流量被放大了50倍。這使得該服務可以被用來進行放大DOS攻擊。

    (5) SSDP Flood

        互聯網上家用路由器、網絡攝像頭、打印機、智能家電等智能設備普遍采用 UPnP(即插即用)協議作為網絡通訊協議, 而UPnP設備的發現是通過源端口為 1900 的 SSDP(簡單服務發現協議)進行相互感知。

        利用SSDP協議進行反射攻擊的原理與利用DNS服務、NTP服務類似,都是偽造成被攻擊者的IP地址向互聯網上大量的智能設備發起SSDP請求,接收到請求的智能設備根據源IP地址將響應數據包返回給受害者。隨著物聯網和智能設備的快速發展和普及,利用智能設備展開DDoS攻擊會越來越普遍。

    攻擊鏈路

        攻擊鏈路與以前介紹的幾種攻擊方法有所不同,其攻擊的目標并不是作為互聯網斷點的服務器的寬帶資源,而是骨干網上的鏈路的寬帶資源,對鏈路進行攻擊的一種典型的方式是Coremelt攻擊。

        Coremelt是安全研究人員在2009年提出的一種針對鏈路的分布式拒絕服務攻擊方法,攻擊者需要控制一個分布足夠廣泛的僵尸網絡來發動Coremelt攻擊。

        首先,攻擊者通過traceroute等手段來判斷各個僵尸主機和將要攻擊的鏈路之間的位置關系,并根據結果將僵尸主機分為兩個部分,然后,攻擊者控制僵尸主機,使其與鏈路另一側的每一臺僵尸主機進行通信并收發大量數據,這樣,大量的網絡數據包就會經過骨干網上的被攻占鏈路,造成網絡擁堵和延時。

        從骨干網上來看,這些僵尸主機之間相互收發的數據包確實是真是存在的通信數據,沒有辦法將這些通信數據與真正的合法通信數據進行有效的區分,因此這種攻擊方式更加難以防護和緩解。


    2. 攻擊系統資源

    攻擊TCP連接

        Transmission Control Protocol(傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通訊協議,不同主機的應用層之間經常需要可靠的、像管道一樣的連接,但是IP層無法提供這樣的流機制,在現實的互聯網中,這種連接通常通過TCP協議來實現。

        TCP連接包括三個階段:連接創建,數據傳送和連接終止,由于在協議的設計過程當中只專注于協議的可用性,而沒有對協議的安全性進行比較周密和詳細的考慮,因此TCP協議存在很多安全缺陷和安全性問題。

    (1) TCP連接洪水攻擊

    TCP連接洪水攻擊是在連接創建階段對TCP資源進行攻擊的。

        在三次握手進行的過程中,服務器會創建并保存TCP連接的信息,這個信息通常被保存在連接表結構中,但是,連接表的大小是有限的,一旦服務器接收到的連接數量超過了連接表能存儲的數量,服務器就無法創建新的TCP連接了。攻擊者可以利用大量受控主機,通過快速建立大量惡意的TCP連接占滿被攻擊目標的連接表,使目標無法接受新的TCP連接請求,從而達到拒絕服務攻擊的目的。


    (2) SYN Flood

        SYN洪水攻擊就是攻擊者利用受控主機發送大量的TCP SYN報文,使服務器打開大量的半開連接,占滿服務器的連接表,從而影響正常用戶與服務器建立會話,造成拒絕服務。
    在建立TCP連接的過程中,如果在服務器返回SYN+ACK報文后,客戶端由于某種原因沒有對其進行確認,這時服務器端就需要重傳SYN+ACK報文,并等待客戶端的確認報文直到TCP連接超時,這種等待客戶確認的連接狀態通常被稱為半開連接。
    

        在連接超時之前,半開連接會一直保存在服務器的連接表中。

        由于連接表的大小是有限的,如果在短時間內產生大量的半開連接,而這些連接又無法很快的結束,連接表就會很快被占滿,導致新的連接TCP連接無法建立。

        攻擊者在發送TCP SYN報文時,可以在收到服務器返回的SYN+ACK報文后,跳過最后的ACK報文發送,使連接處于半開狀態,但是這樣會很明顯的暴露出進行SYN洪水攻擊的IP地址,同時相應報文會作為反射流量占用攻擊者的寬帶資源,所以更好的方式是攻擊者將SYN報文的源IP地址隨機偽造其他主機的IP地址或者不存在的IP地址,這樣攻擊目標將會應答發送給被偽造的IP地址,從而占用連接資源并隱藏攻擊來源。


    (3) PSH+ACK Flood

        由于帶有PSH標志位的TCP數據包會強制要求接收端將接收緩沖區清空并將數據提交給應用服務進行處理,因此當攻擊者利用受控主機向攻擊目標發送大量的PSH+ACK數據包時,被攻擊目標就會消耗大量的系統資源不斷地進行接收緩沖區的清空處理,導致無法正常處理數據,從而造成拒絕服務。

        在正常的TCP傳輸過程當中,如果待發送的數據會清空發送緩沖區,那么操作系統的TCP/IP協議棧就會自動為該數據包設置PSH標志,同樣,當服務端接收到一個設置了PSH+ACK標志的報文時,意味著當前數據傳輸已經結束,因此需要立即將這些數據投遞交給服務進程并清空接收緩沖區,而無須等待判斷是否還會有額外的數據到達。


    (4) RST Flood

        在TCP連接的終止階段,通常是通過帶有FIN標志報文的四次交互(TCP四次握手)來切斷客戶端與服務端的TCP連接,但是客戶端或服務器其中之一出現異常狀況,無法正常完成TCP四次握手以終止連接時,就會使用RST報文將連接強制中斷。

        在TCP連接中,RST表示復位,用來在異常時關閉連接,發送端在發送RST報文關閉連接時,不需要等待緩沖區中的數據報全部發送完畢,而會直接丟棄緩沖器的數據并發送RST報文,同樣,接收端在收到RST報文后,也會清空緩沖區并關閉連接,并且不必發送ACK報文進行確認。

        攻擊者可以利用RST報文的這個特性,發送偽造的帶有RST標志位的TCP報文,強制中斷客戶端與服務端的TCP連接,在偽造RST報文的過程中,服務端的IP地址和端口號是已知的,攻擊者還需要設法獲取客戶端的IP地址和端口號,并且使RST報文的序列號處于服務器的接收窗口之內,如果攻擊者和被攻擊客戶端或服務器處于同一內網,這些信息可以通過欺騙和嗅探等方式獲取到。

        很多情況下,攻擊者不會與被攻擊客戶端或服務器處于同一內網,導致發動TCP RST攻擊時難以獲取端口和序列號,在這種情況下,攻擊者可以利用大量的受控主機猜測端口和序列號,進行盲打,發送RST洪水攻擊,只要在數量巨大的RST報文中有一條與攻擊目標的端口號相同,并且序列號落在目標的接收窗口之中,就能夠終端連接。


    (5) Sockstress攻擊

        Sockstress攻擊是研究人員在2008年提出的一種攻擊TCP連接的方法,與前面幾種攻擊方式不同的是,Sockstress攻擊不需要在短時間內發送大量的攻擊流量,因此不屬于洪水攻擊,而是一種慢速攻擊。

        在TCP傳輸數據時,并不是將數據直接遞交給應用程序處理,而是先臨時存儲在接受緩沖區里,該接收緩沖區的大小是由TCP窗口表示的,如果TCP窗口大小為0,則表示接收緩沖區已被填滿,發送端應該停止發送數據,知道接收端的窗口發生了更新,Sockstress攻擊就是利用該原理長時間維持TCP連接,以達到拒絕服務攻擊的目的。

        Sockstress攻擊首先會完成TCP三次握手以建立TCP連接,但是在三次握手的最后一次ACK應答中,攻擊者將其TCP窗口大小設置為0,隨后進行一次數據請求,攻擊目標在傳輸數據時,發現接收端的TCP窗口大小為0,就會停止傳輸數據,并發出TCP窗口探測包,詢問攻擊者其TCP窗口是否有更新,由于攻擊者沒有更改TCP窗口的大小,被攻擊目標就會一直維持TCP連接等待數據發送,并不斷進行窗口更新的探測,如果攻擊者利用大量的受控主機進行Sockstress攻擊,被攻擊目標會一直維持大量的TCP連接并進行大量窗口更新探測,其TCP連接表會逐漸耗盡,無法連接新的連接而導致拒絕服務。


    攻擊SSL連接

        Secure Sockets Layer(安全套接層)是為網絡通信提供安全及數據完整性的一種安全協議,SSL能夠在傳輸層對網絡連接進行加密,以防止傳輸的數據明文被監聽和截獲。

        然而,SSL協議加密、解密和秘鑰協商的過程中會消耗大量的系統資源,嚴重降低機器的性能,因此,通常只有在傳輸密碼等機密信息時才使用SSL協議進行傳輸。攻擊者可以利用SSL協議消耗資源的特性進行拒絕服務攻擊。

    (1) THC SSL DoS攻擊

        在進行SSL數據傳輸之前,通信雙方首先要進行SSL握手,以協商加密算法交換加密秘鑰,進行身份驗證,通常情況下,這樣的SSL握手過程只需要進行一次即可,但是在SSL協議中有一個Renegotiation選項,通過它可以進行秘鑰的重新協商以建立新的秘鑰。

        THC SSL DOS攻擊是安全研究人員在2011年提出的一種針對SSL的拒絕服務攻擊方法,這種方法就是利用Renegotiation選項,造成被攻擊目標資源耗盡,在進行SSL連接并握手之后,攻擊者反復不斷的進行秘鑰重新協商過程,而秘鑰重新協商過程需要服務器投入比客戶端多15倍的CPU計算資源,攻擊者只需要一臺普通的臺式機就能拖慢一臺高性能服務器,而如果有大量主機同時進行攻擊,則會使服務器忙于協商秘鑰而完全停止響應。


    (2) SSL Flood

        在進行SSL握手的過程中,服務器會消耗較多的CPU計算資源進行加解密,并進行數據的有效性檢驗,對于客戶端發過來的數據,服務器需要先花費大量的計算資源進行解密,之后才能對數據的有效性進行檢驗,重要的是,不論數據是否是有效的,服務器都必須先進行解密才能夠做檢查,攻擊者可以利用這個特性進行SSL洪水攻擊。

        在進行洪水攻擊時,一個要點是需要攻擊者能夠在客戶端大量的發出攻擊請求,這就需要客戶端所進行的計算盡可能的少,對于SSL洪水攻擊,比較好的方式是在數據傳輸之前,進行SSL握手的過程中發動攻擊,攻擊者并不需要完成SSL握手和秘鑰交換,而只需要在這個過程中讓服務器去解密和驗證,就能夠大量的消耗服務器的計算資源,因此,攻擊者可以非常容易的構造秘鑰交換過程中的請求數據,達到減少客戶端計算量的目的。


    3. 攻擊應用資源

    攻擊DNS服務

        Domain Name System (域名系統)服務是互聯網的一項核心服務,通過使用DNS,人們在訪問網絡時不需要記住其IP地址,而只需輸入其域名即可,在IPv6網絡環境下,由于IP地址由原來的32位擴展到了128位,變得更加難以記憶,DNS服務也就變得更加重要,當DNS服務的可用性收到威脅時,互聯網上的大量設備都會受到影響甚至無法正常運行。

    (1) DNS QUERY Flood

    DNS查詢和解析過程:
        當客戶端向DNS服務器查詢某域名時,DNS服務器會首先檢查其本地緩存中是否有該域名的記錄,如果緩
    存中有該域名的記錄(即命中),則直接講緩存中記錄的IP地址作為非權威應答返回給客戶端,如果在
    緩存中沒有找到該域名的記錄,則會進行迭代查詢,從根域名開始,逐級進行域名解析,直到解析出完
    整的域名,之后服務器會將域名解析結果作為應答發送給客戶端,并生成一條解析記錄保存到緩存中。
    
        在DNS解析的過程中,客戶端發起一次查詢請求,DNS服務器可能需要進行額外的多次查詢才能完成解析的過程并給出應答,在這個過程中會消耗一定的計算和網絡資源,如果攻擊者利用大量受控主機不斷發送不同域名的解析請求,那么DNS服務器的緩存會被不斷刷新,而大量解析請求不能命中緩存又導致DNS服務器必須消耗額外的資源進行迭代查詢,這會極大的增加DNS服務器的資源消耗,導致DNS響應緩慢甚至完全拒絕服務。


    (2) DNS NXDOMAIN Flood

        DNS NXDOMAIN洪水攻擊是DNS QUERY洪水攻擊的一個變種攻擊方式,區別在于后者是向DNS服務器查詢一個真實存在的域名,而前者是向DNS服務器查詢一個不存在的域名。(NXDOMAIN = Non-eXistent Domain)

        在進行DNS NXDOMAIN洪水攻擊時,DNS服務器會進行多次域名查詢,同時,其緩存會被大量NXDOMAIN記錄所填滿,導致響應正常用戶的DNS解析請求的速度變慢,這與DNS QUERY洪水攻擊所達到的效果類似,除此之外,一部分DNS服務器在獲取不到域名的解析結果時,還會再次進行遞歸查詢,向其上一級的DNS服務器發送解析請求并等待應答,這進一步增加了DNS服務器的資源消耗,因此,DNS NXDOMAIN洪水攻擊通常比DNS QUERY洪水攻擊的效果更好。


    攻擊Web服務

        近年來,Web技術發展非常迅速,人們可以通過瀏覽器使用Web服務,簡單方便的獲取需要的信息,而許多機構和企業的重要信息和關鍵業務也是通過Web服務的方式對外提供,一旦Web服務受到解決服務攻擊,就會對其承載的業務造成致命的影響。

    (1) HTTP Flood

        Web服務通常使用 HyperText Transfer Protocol (超文本傳輸協議)進行請求和響應數據的傳輸。

        常見的HTTP請求有GET請求和POST請求兩種,通常GET請求用于從Web服務器獲取數據和資源,例如請求頁面、獲取圖片和文檔等;POST請求用于向Web服務器提交數據和資源,例如發送用戶名/密碼、上傳文件等。在處理這些HTTP請求的過程中,Web服務器通常需要解析請求、處理和執行服務端腳本、驗證用戶權限并多次訪問數據庫,這會消耗大量的計算資源和I/O訪問資源。

        攻擊者利用大量的受控主機不斷的向Web服務器發送惡意大量HTTP請求,要求Web服務器處理,就會完全占用服務器的資源,造成其他正常用戶的Web訪問請求處理緩慢設置得不到處理,導致拒絕服務,這就是HTTP洪水攻擊。

        由于HTTP協議是基于TCP協議的,需要完成三次握手建立TCP連接才能開始HTTP通信,因此進行HTTP洪水攻擊時無法使用偽造源IP地址的方式發動攻擊,這時,攻擊者通常會使用HTTP代理服務器,HTTP代理服務器在互聯網上廣泛存在,通過使用HTTP代理服務器,不僅可以隱藏來源以避免被追查,還能夠提高攻擊的效率——攻擊者連接代理服務器并發送完成請求后,可以直接切斷與該代理服務器的連接并開始連接下一個代理服務器,這時代理服務器與目標Web服務器的HTTP連接依然保持,Web服務器需要繼續接收數據并處理HTTP請求。

        與DNS服務類似,Web服務也存在緩存機制,如果攻擊者的大量請求都命中了服務器緩存,那么這種攻擊的主要作用僅體現再消耗網絡寬帶資源上,對于計算和I/O資源的消耗是非常有限的,因此,高效的HTTP洪水攻擊應不斷發出針對不同資源和頁面的HTTP請求,并盡可能請求無法被緩存的資源,從而加重服務器的負擔,增強攻擊效果。

        此外,如果Web服務器支持HTTPS,那么進行HTTPS洪水攻擊是更為有效的一種攻擊方式,一方面,在進行HTTPS通信時,Web服務器需要消耗更多的資源用來進行認證和加解密,另一方面,一部分的防護設備無法對HTTPS通信數據流進行處理,也會導致攻擊流量繞過防護設備,直接對Web服務器造成攻擊。

        HTTP洪水攻擊是目標對Web服務威脅最大的攻擊之一,有大量的攻擊工具支持HTTP洪水攻擊,發動簡單其效果明顯,已經成為攻擊者使用的主要攻擊方式之一。

    (2) Slowloris攻擊

        Slowloris攻擊是一種針對web服務器的慢速HTTP攻擊,由安全研究人員在2009年提出。

        在HTTP協議中規定,HTTP頭部以連續的“rnrn”作為結束標志,許多Web服務器在處理HTTP請求的頭部信息時,會等待頭部傳輸結束后再進行處理,因此,如果Web服務器沒有接受到連續的“rnrn”,就會一直接受數據并保持與客戶端的連接,利用這個特性,攻擊者能夠長時間與Web服務器保持聯系,并逐漸耗盡Web服務器的連接資源。

        攻擊者在發送HTTP GET請求時,緩慢的發送無用的header字段,并且一直不發送“rnrn”結束標志,這樣就能夠長時間占用與Web服務器的連接并保證該連接不被超時中斷,然而,Web服務器能夠處理的并發連接數是有限的,如果攻擊者利用大量的受控主機發送這種不完整的HTTP GET請求并持續占用這些連接,就會耗盡Web服務器的連接資源,導致其他用戶的HTTP請求無法被處理,造成拒絕服務。


    (3) 慢速POST請求攻擊

        慢速POST請求攻擊也是一種針對Web服務器的慢速HTTP攻擊,由安全研究人員在2010年提出,與Slowloris攻擊不同的是,慢速POST請求攻擊利用緩慢發送HTTP BODY的方式達到占用并耗盡Web服務器連接資源的目的。

        在HTTP頭部信息中,可以使用Content-Length字段來指定HTTP消息實體的傳輸長度,當Web服務器接收到的請求頭部中含有Content-Length字段時,服務器會將該字段的值作為HTTP BODY的長度,持續接收數據并在達到Content-Length值時對HTTP BODY的數據內容進行處理,利用這個特性,攻擊者能夠長時間與Web服務器保持連接,并逐漸耗盡Web服務器的連接資源。

        攻擊者在發送HTTP POST請求時,在請求頭部中將Content-Length設置為一個很大的值,并將HTTP BODY以非常緩慢的速度一個字節一個字節的向Web服務器發送,這樣,Web服務器就需要一直維持與客戶端的連接并等待數據傳輸結束,由于Content-Length被設置成了很大的值,而HTTP BODY的傳輸速度又非常緩慢,攻擊者就可以長時間占用這個連接,通過間斷性的發送單字節的HTTP BODY內容,攻擊者就能夠確保連接不因超時而導致中斷,如果攻擊者利用大量的受控主機發送這種緩慢的HTTP POST請求并持續占用這些連接,就會耗盡Web服務器的連接資源,導致其他用戶的HTTP請求無法被處理,造成拒絕服務。


    (4) 數據處理過程攻擊

        Web服務器在收到HTTP請求之后,需要檢查并處理其中的數據,通過惡意構造請求數據的內容,攻擊者可以顯著的增加數據處理過程中的資源消耗,造成拒絕服務攻擊。

        這里以正則表達式拒絕服務攻擊和哈希沖突拒絕服務攻擊為例進行說明。

        正則表達式拒絕服務攻擊又被稱為ReDoS,是安全研究人員在2009年發現的一種拒絕服務攻擊方法,在處理請求數據時,Web應用通常會使用正則表達式進行字符的匹配操作,一部分正則表達式引擎會使用一種被稱為非確定性有限狀態自動機的實現方式,以便能夠處理復雜的正則表達式,例如包含了向后引用或者捕獲括號的正則表達式。然而,這種正則引擎的實現方式也導致了其處理時間增加,尤其是在確定“否定匹配”時,正則引擎需要對所有可能的匹配路徑全部進行測試,如果位于Web應用中的正則表達式寫的不好,需要測試的匹配路徑數量會隨著輸入字符串的長度呈指數級增長,利用惡意構造的輸入字符串,攻擊者只需要提交相對較短的輸入字符串,就可以強制正則引擎處理數億個匹配路徑,所需時間可以達到幾個小時甚至幾天,只需要幾個這種類似的惡意正則表達式匹配請求,就能夠完全占用Web服務器的計算資源,造成Web服務器拒絕服務。

        哈希沖突拒絕服務攻擊是安全研究人員在2011年提出的一種拒絕服務攻擊方法,web應用在處理請求中的POST數據時,通常使用鍵-值對的方式來進行存儲,在PHP、Python、Java等語言中,鍵-值對的實質是一個哈希表,web應用程序通過計算“鍵”的哈希來獲取其所對應的的“值”。正常情況下,這個哈希表的哈希沖突較少,因此進行查找和插入的速度很快,正常狀態下的哈希表如圖所示。

        如果攻擊者構造一組惡意的POST數據,使得請求中的“鍵”的哈希值全部相同,那么保存POST數據的哈希表就會因此退化成為鏈表 ,對哈希表的查找和插入等操作規則變成了對鏈表的遍歷操作,造成大量的計算資源被占用,導致拒絕服務攻擊。如圖所示為大量沖突狀態下的哈希表。


    4. 分類


    三、防御

    設置高性能設備

        要保證網絡設備不能成為瓶頸,因此選擇路由器、交換機、硬件防火墻等設備的時候要盡量選用知名度高、口碑好的產品。再就是假如和網絡提供商有特殊關系或協議的話就更好了,當大量攻擊發生的時候請他們在網絡接點處做一下流量限制來對抗某些種類的DDoS攻擊是非常有效的。

    帶寬得保證

        網絡帶寬直接決定了能抗受攻擊的能力,假若僅僅有10M帶寬的話,無論采取什么措施都很難對抗現在的SYN Flood攻擊。所以,最好選擇100M的共享帶寬,當然是掛在1000M的主干上了。

    不要忘記升級

        在有網絡帶寬保證的前提下,請盡量提升硬件配置,要有效對抗每秒10萬個SYN攻擊包。而且最好可以進行優化資源使用,提高web server 的負載能力。

    異常流量的清洗

        通過DDoS硬件防火墻對異常流量的清洗過濾,通過數據包的規則過濾、數據流指紋檢測過濾、及數據包內容定制過濾等頂尖技術能準確判斷外來訪問流量是否正常,進一步將異常流量禁止過濾。

    考慮把網站做成靜態頁面

        把網站盡可能做成靜態頁面,不僅能大大提高抗攻擊能力,而且還給黑客入侵帶來不少麻煩,最好在需要調用數據庫的腳本中,拒絕使用代理的訪問,經驗表明,使用代理訪問你網站的80%屬于惡意行為。

    分布式集群防御

        這是目前網絡安全界防御大規模DDoS攻擊的最有效辦法。分布式集群防御的特點是在每個節點服務器配置多個IP地址,并且每個節點能承受不低于10G的DDoS攻擊,如一個節點受攻擊無法提供服務,系統將會根據優先級設置自動切換另一個節點,并將攻擊者的數據包全部返回發送點,使攻擊源成為癱瘓狀態,從更為深度的安全防護角度去影響企業的安全執行決策。

    IP輪詢技術

        對穩定性、流暢性以及安全性上要求較高的業務,用戶遭受 DDoS 攻擊且達到一定峰值時,系統通過 IP 輪詢機制,將從IP 池中靈活調取一個新的 IP 充當業務 IP,使攻擊者失去攻擊目標,以此保證業務在 DDoS 的攻擊下正常運轉。

    BGP高防IP

        當用戶應用 BGP 高防 IP 且配置轉發規則和域名回源后,此時所有的訪問流量都將流經 BGP 高防 IP 集群,通過端口協議轉發的方式(支持網站業務和非網站業務)將訪問流量轉發至源站,同時攻擊流量將在 BGP 高防 IP 集群進行清洗和過濾,只會將正常業務流量返回至源站,從而確保源站業務的穩定。

    運營商過濾

        針對反射放大類攻擊,都有相同的特點,可以直接在運營商側進行過濾,不用將流量流入抗D設備,從而使防御與反射放大類壓制更有效果。本不存在放大效果,但基于其真實 IP 的原因,穿透性與隱蔽性都十分顯著。

    流量預壓制

        流量預壓制/UDP 預壓制等能力,從容應對新型的超大流量攻擊。(Memcached的5W倍反射)

    dns協議智能dns解析
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    深信服應用交付AD,自推出市場,一直廣受用戶與市場認可。
    深信服應用交付AD,自推出市場,一直廣受用戶與市場認可。
    DDOS攻擊的治理和緩解
    2021-09-27 08:24:52
    很推薦閱讀,并針對本書中的DDOS攻擊的治理和緩解做了總結。作為網絡犯罪的主要平臺之一,黑客利用僵尸網絡展開不同的攻擊,可以導致大量機密或個人隱私泄密,也可以通過DDOS攻擊使整個基礎信息網路癱瘓。因此,對僵尸網絡進行治理顯得十分迫切而重要。
    9月10日,深信服從應用交付產品視角出發,以“務實求效,運維避坑”為主題舉辦線下交流活動,來自金融行業的運維技術專家及CTO就運維中遇到的挑戰與心得展開了交流與分享。
    2021年5月18日,《美國創新與競爭法案》(United States Innovation and Competition Act of 2021)通過,由芯片和ORAN5G緊急撥款、《無盡前沿法案》、《2021戰略競爭法案》、國土安全和政府事務委員會相關條款、《2021迎接中國挑戰法案》和其他事項六部分構成。該法案進一步強化了《無盡前沿法案》提出的在科技領域贏得與中國的競爭的目標,提出了十大
    DNS over HTTPS(DoH)由RFC8484定義,其目標之一是增加用戶的隱私,通過 HTTPS 解析 DNS 查詢。目前國外廠商如Adguard、Cloudflare、Google、Quad9等對公提供DoH服務,國內也有廠商陸續提供DoH服務。
    11月22日,Coremail舉辦《全球通郵:如何保障安全、快捷的海外中繼服務》直播分享會,直播會上Coremail安全團隊和直播嘉賓復旦大學校園信息化辦公室徐藝揚老師就海外中繼服務進行了深度分享。 ?海外通郵困難重重境外垃圾郵件數量居高不下根據 Coremail 郵件安全人工智能實驗室的數據,長期以來,境外垃圾郵件攻擊數量居高不下。這些垃圾郵件的激增不僅影響了網絡的整體效率,還可能導致
    TLS/SSL木馬回連出入企業網絡邊界最常見的加密協議是TLS/SSL,其廣泛應用于Web服務、郵件服務、文件傳輸、移動APP等應用領域,可以保護用戶通信數據的機密性和完整性。在2022年的攻防演練中,觀成瞰云-加密威脅智能檢測系統首次參與即有亮眼發揮,多次獨家檢出攻擊失陷階段的加密C&C通信行為,做到及時發現,及時預警,為客戶最大程度減少損失做出貢獻。
    如今,我們日常生活中每天都使用大量的物聯網設備,比如智能門鎖、地鐵掃碼閘機、早餐店收款播報音箱、汽車充電樁、上班刷臉打卡等,作為 IoT 物聯網領域的開發者,你有想過背后完整的網絡通信過程么?借助全球開發者使用最廣泛的開源抓包軟件 Wireshark,抓取終端設備網卡通信包,一切就一目了然了。你會發現終端設備先做了DNS解析,再建立 MQTT 長連接通道,訂閱業務主題,上報采集
    7月29日,騰訊安全面向全球正式發布邊緣安全加速平臺,依托全球2800多個邊緣節點和20多年安全技術積累,為企業打造安全防護、性能加速及相關技術支持的邊緣一體化服務。這也是騰訊安全面向全球企業級市場發布的首款戰略產品。即日起,Tencent Cloud EdgeOne上線支持中國大陸境外地區服務,9月將支持中國大陸境內地區服務,為全球企業提供一站式的安全邊緣加速服務。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类