成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DDoS攻擊原理及防護方法論

原創
安全 黑客攻防
本文將對DDoS攻擊的原理做一個剖析,并提供一些解決方法。

【51CTO.com獨家特稿】從07年的愛沙尼亞DDoS信息戰,到今年廣西南寧30個網吧遭受到DDoS勒索,再到新浪網遭受DDoS攻擊無法提供對外服務500多分鐘。DDoS愈演愈烈,攻擊事件明顯增多,攻擊流量也明顯增大,形勢十分嚴峻,超過1G的攻擊流量頻頻出現,CNCERT/CC掌握的數據表明,最高時達到了12G,這樣流量,甚至連專業的機房都無法抵擋。更為嚴峻的是:利用DDoS攻擊手段敲詐勒索已經形成了一條完整的產業鏈!并且,攻擊者實施成本極低,在網上可以隨便搜索到一大堆攻擊腳本、工具工具,對攻擊者的技術要求也越來越低。相反的是,專業抗DDoS設備的價格十分昂貴,而且對于攻擊源的追查難度極大,防護成本遠遠大于攻擊成本。

本文將對DDoS攻擊的原理做一個剖析,并提供一些解決方法。

一. DDoS攻擊

什么是DDoS?DDoS是英文Distributed Denial of Service的縮寫,意即"分布式拒絕服務",DDoS的中文名叫分布式拒絕服務攻擊,俗稱洪水攻擊。首先,我們來了解一下相關定義。

服務:系統提供的,用戶在對其使用中會受益的功能

拒絕服務:任何對服務的干涉如果使其可用性降低或者失去可用性均稱為拒絕服務。

拒絕服務攻擊:是指攻擊者通過某種手段,有意地造成計算機或網絡不能正常運轉從而不能向合法用戶提供所需要的服務或者使得服務質量降低

分布式拒絕服務攻擊:處于不同位置的多個攻擊者同時向一個或者數個目標發起攻擊,或者一個或多個攻擊者控制了位于不同位置的多臺機器并利用這些機器對受害者同時實施攻擊,由于攻擊的發出點是分布在不同地方的,這類攻擊稱為分布式拒絕服務攻擊。

如圖所示,DDoS攻擊將造成網絡資源浪費、鏈路帶寬堵塞、服務器資源耗盡而業務中斷。這種攻擊大多數是由黑客非法控制的電腦實施的。黑客非法控制一些電腦之后,把這些電腦轉變為由地下網絡遠程控制的“bots”,然后用這些電腦實施DDoS攻擊。黑客還以每臺為單位,低價出租這些用于攻擊的電腦,真正擁有這些電腦的主人并不知道自己的計算機已經被用來攻擊別人。由于有數百萬臺電腦現在已經被黑客變成了“bots”,因此這種攻擊將非常猛烈。被DDoS攻擊時的現象:

網絡中充斥著大量的無用的數據包;

制造高流量無用數據,造成網絡擁塞,使受害主機無法正常和外界通訊;

利用受害主機提供的服務或傳輸協議上的缺陷,反復高速的發出特定的服務請求,使受害主機無法及時處理所有正常請求;

嚴重時會造成系統死機。

由于網絡層的拒絕服務攻擊有的利用了網絡協議的漏洞,有的則搶占網絡或者設備有限的處理能力,使得對拒絕服務攻擊的防治成為了一個令管理員非常頭痛的問題。尤其是目前在大多數的網絡環境骨干線路上普遍使用的防火墻、負載均衡等設備,在發生DDoS攻擊的時候往往成為整個網絡的瓶頸,造成全網的癱瘓。#p#

二. 數據包結構

要了解DDoS的攻擊原理,就要首先了解一下數據包的結構,才能知根知底,追本溯源。首先來回顧一下數據包的結構。

2.1 IP報文結構

2.2 TCP報文結構

一個TCP報頭的標識(code bits)字段包含6個標志位:

SYN:標志位用來建立連接,讓連接雙方同步序列號。如果SYN=1而ACK=0,則表示該數據包為連接請求,如果SYN=1而ACK=1則表示接受連接

FIN:表示發送端已經沒有數據要求傳輸了,希望釋放連接。

RST:用來復位一個連接。RST標志置位的數據包稱為復位包。一般情況下,如果TCP收到的一個分段明顯不是屬于該主機上的任何一個連接,則向遠端發送一個復位包。

URG:為緊急數據標志。如果它為1,表示本數據包中包含緊急數據。此時緊急數據指針有效。

ACK:為確認標志位。如果為1,表示包中的確認號時有效的。否則,包中的確認號無效。

PSH:如果置位,接收端應盡快把數據傳送給應用層, 不必等緩沖區滿再發送 。

2.3 UDP報文結構

2.4 ICMP報文結構

#p#

三. DDoS攻擊方式

3.1 SYN Flood攻擊

SYN-Flood攻擊是當前網絡上最為常見的DDoS攻擊,也是最為經典的拒絕服務攻擊,它利用了TCP協議實現上的一個缺陷,通過向網絡服務所在端口發送大量的偽造源地址的攻擊報文,就可能造成目標服務器中的半開連接隊列被占滿,從而阻止其他合法用戶進行訪問。這種攻擊早在1996年就被發現,但至今仍然顯示出強大的生命力。很多操作系統,甚至防火墻、路由器都無法有效地防御這種攻擊,而且由于它可以方便地偽造源地址,追查起來非常困難。它的數據包特征通常是,源發送了大量的SYN包,并且缺少三次握手的最后一步握手ACK回復。

3.1.1 原理

例如,攻擊者首先偽造地址對服務器發起SYN請求(我可以建立連接嗎?),服務器就會回應一個ACK+SYN(可以+請確認)。而真實的IP會認為,我沒有發送請求,不作回應。服務器沒有收到回應,會重試3-5次并且等待一個SYN Time(一般30秒-2分鐘)后,丟棄這個連接。

如果攻擊者大量發送這種偽造源地址的SYN請求,服務器端將會消耗非常多的資源來處理這種半連接,保存遍歷會消耗非常多的CPU時間和內存,何況還要不斷對這個列表中的IP進行SYN+ACK的重試。最后的結果是服務器無暇理睬正常的連接請求—拒絕服務。在服務器上用netstat –an命令查看SYN_RECV狀態的話,就可以看到:

如果我們抓包來看:

可以看到大量的SYN包沒有ACK回應。

3.1.2 SYN Flood防護

目前市面上有些防火墻具有SYN Proxy功能,這種方法一般是定每秒通過指定對象(目標地址和端口、僅目標地址或僅源地址)的SYN片段數的閥值,當來自相同源地址或發往相同目標地址的SYN片段數達到這些閥值之一時,防火墻就開始截取連接請求和代理回復SYN/ACK片段,并將不完全的連接請求存儲到連接隊列中直到連接完成或請求超時。當防火墻中代理連接的隊列被填滿時,防火墻拒絕來自相同安全區域(zone)中所有地址的新SYN片段,避免網絡主機遭受不完整的三次握手的攻擊。但是,這種方法在攻擊流量較大的時候,連接出現較大的延遲,網絡的負載較高,很多情況下反而成為整個網絡的瓶頸;

Random Drop:隨機丟包的方式雖然可以減輕服務器的負載,但是正常連接的成功率也會降低很多;

特征匹配:IPS上會常用的手段,在攻擊發生的當時統計攻擊報文的特征,定義特征庫,例如過濾不帶TCP Options 的syn 包等;

早期攻擊工具(例如synkiller,xdos,hgod等)通常是發送64字節的TCP SYN報文,而主機操作系統在發起TCP連接請求時發送SYN 報文是大于64字節的。因此可以在關鍵節點上設置策略過濾64字節的TCP SYN報文,某些宣傳具有防護SYN Flood攻擊的產品就是這么做的。隨著工具的改進,發出的TCP SYN 報文完全模擬常見的通用操作系統,并且IP頭和TCP頭的字段完全隨機,這時就無法在設備上根據特定的規則來過濾攻擊報文。這時就需要根據經驗判斷IP 包頭里TTL值不合理的數據包并阻斷,但這種手工的方法成本高、效率低。 圖是某攻擊工具屬性設置。 

SYN Cookie:就是給每一個請求連接的IP地址分配一個Cookie,如果短時間內連續受到某個IP的重復SYN報文,就認定是受到了攻擊,以后從這個IP地址來的包會被丟棄。但SYN Cookie依賴于對方使用真實的IP地址,如果攻擊者利用SOCK_RAW隨機改寫IP報文中的源地址,這個方法就沒效果了。

3.1.3 商業產品的防護算法

syn cookie/syn proxy類防護算法:這種算法對所有的syn包均主動回應,探測發起syn包的源IP地址是否真實存在;如果該IP地址真實存在,則該IP會回應防護設備的探測包,從而建立TCP連接;大多數的國內外抗拒絕服務產品采用此類算法。

safereset算法:此算法對所有的syn包均主動回應,探測包特意構造錯誤的字段,真實存在的IP地址會發送rst包給防護設備,然后發起第2次連接,從而建立TCP連接;部分國外產品采用了這樣的防護算法。

syn重傳算法:該算法利用了TCP/IP協議的重傳特性,來自某個源IP的第一個syn包到達時被直接丟棄并記錄狀態,在該源IP的第2個syn包到達時進行驗證,然后放行。 

綜合防護算法:結合了以上算法的優點,并引入了IP信譽機制。當來自某個源IP的第一個syn包到達時,如果該IP的信譽值較高,則采用syncookie算法;而對于信譽值較低的源IP,則基于協議棧行為模式,如果syn包得到驗證,則對該連接進入syncookie校驗,一旦該IP的連接得到驗證則提高其信譽值。有些設備還采用了表結構來存放協議棧行為模式特征值,大大減少了存儲量。#p#

3.2 ACK Flood攻擊

3.2.1 原理

ACK Flood攻擊是在TCP連接建立之后,所有的數據傳輸TCP報文都是帶有ACK標志位的,主機在接收到一個帶有ACK標志位的數據包的時候,需要檢查該數據包所表示的連接四元組是否存在,如果存在則檢查該數據包所表示的狀態是否合法,然后再向應用層傳遞該數據包。如果在檢查中發現該數據包不合法,例如該數據包所指向的目的端口在本機并未開放,則主機操作系統協議棧會回應RST包告訴對方此端口不存在。

這里,服務器要做兩個動作:查表、回應ACK/RST。這種攻擊方式顯然沒有SYN Flood給服務器帶來的沖擊大,因此攻擊者一定要用大流量ACK小包沖擊才會對服務器造成影響。按照我們對TCP協議的理解,隨機源IP的ACK小包應該會被Server很快丟棄,因為在服務器的TCP堆棧中沒有這些ACK包的狀態信息。但是實際上通過測試,發現有一些TCP服務會對ACK Flood比較敏感,比如說JSP Server,在數量并不多的ACK小包的打擊下,JSP Server就很難處理正常的連接請求。對于Apache或者IIS來說,10kpps的ACK Flood不構成危脅,但是更高數量的ACK Flood會造成服務器網卡中斷頻率過高,負載過重而停止響應??梢钥隙ǖ氖?,ACK Flood不但可以危害路由器等網絡設備,而且對服務器上的應用有不小的影響。抓包:

如果沒有開放端口,服務器將直接丟棄,這將會耗費服務器的CPU資源。如果端口開放,服務器回應RST。

3.2.2 ACK Flood防護

利用對稱性判斷來分析出是否有攻擊存在。所謂對稱型判斷,就是收包異常大于發包,因為攻擊者通常會采用大量ACK包,并且為了提高攻擊速度,一般采用內容基本一致的小包發送。這可以作為判斷是否發生ACK Flood的依據,但是目前已知情況來看,很少有單純使用ACK Flood攻擊,都會和其他攻擊方法混合使用,因此,很容易產生誤判。

一些防火墻應對的方法是:建立一個hash表,用來存放TCP連接“狀態”,相對于主機的TCP stack實現來說,狀態檢查的過程相對簡化。例如,不作sequence number的檢查,不作包亂序的處理,只是統計一定時間內是否有ACK包在該“連接”(即四元組)上通過,從而“大致”確定該“連接”是否是“活動的”。#p#

3.3 UDP Flood攻擊

3.3.1 原理

UDP Flood是日漸猖厥的流量型DoS攻擊,原理也很簡單。常見的情況是利用大量UDP小包沖擊DNS服務器或Radius認證服務器、流媒體視頻服務器。 100k pps的UDP Flood經常將線路上的骨干設備例如防火墻打癱,造成整個網段的癱瘓。由于UDP協議是一種無連接的服務,在UDP FLOOD攻擊中,攻擊者可發送大量偽造源IP地址的小UDP包。但是,由于UDP協議是無連接性的,所以只要開了一個UDP的端口提供相關服務的話,那么就可針對相關的服務進行攻擊。

正常應用情況下,UDP包雙向流量會基本相等,而且大小和內容都是隨機的,變化很大。出現UDP Flood的情況下,針對同一目標IP的UDP包在一側大量出現,并且內容和大小都比較固定。攻擊工具:

53端口的UDP Flood攻擊抓圖:

UDP Flood大包攻擊(占帶寬,分片):

3.3.2 UDP Flood防護

UDP協議與TCP 協議不同,是無連接狀態的協議,并且UDP應用協議五花八門,差異極大,因此針對UDP Flood的防護非常困難。其防護要根據具體情況對待:

判斷包大小,如果是大包攻擊則使用防止UDP碎片方法:根據攻擊包大小設定包碎片重組大小,通常不小于1500。在極端情況下,可以考慮丟棄所有UDP碎片。

攻擊端口為業務端口:根據該業務UDP最大包長設置UDP最大包大小以過濾異常流量。

攻擊端口為非業務端口:一個是丟棄所有UDP包,可能會誤傷正常業務;一個是建立UDP連接規則,要求所有去往該端口的UDP包,必須首先與TCP端口建立TCP連接。不過這種方法需要很專業的防火墻或其他防護設備支持。#p#

3.4 ICMP Flood攻擊

3.4.1 原理

ICMP Flood 的攻擊原理和ACK Flood原理類似,屬于流量型的攻擊方式,也是利用大的流量給服務器帶來較大的負載,影響服務器的正常服務。由于目前很多防火墻直接過濾ICMP報文,因此ICMP Flood出現的頻度較低。比較下面兩幅圖,就應該可以看出是否有ICMP Flood攻擊。

正常ICMP包:

大包攻擊的時候:

3.4.2 ICMP Flood防護

其防御也很簡單,直接過濾ICMP報文。這里就不做詳細說明。#p#

3.5 Connection Flood攻擊

3.5.1 原理

Connection Flood是典型的并且非常的有效的利用小流量沖擊大帶寬網絡服務的攻擊方式,這種攻擊方式目前已經越來越猖獗。這種攻擊的原理是利用真實的IP地址向服務器發起大量的連接,并且建立連接之后很長時間不釋放,占用服務器的資源,造成服務器服務器上殘余連接(WAIT狀態)過多,效率降低,甚至資源耗盡,無法響應其他客戶所發起的連接。

其中一種攻擊方法是每秒鐘向服務器發起大量的連接請求,這類似于固定源IP的SYN Flood攻擊,不同的是采用了真實的源IP地址。通常這可以在防火墻上限制每個源IP地址每秒鐘的連接數來達到防護目的。但現在已有工具采用慢速連接的方式,也即幾秒鐘才和服務器建立一個連接,連接建立成功之后并不釋放并定時發送垃圾數據包給服務器使連接得以長時間保持。這樣一個IP地址就可以和服務器建立成百上千的連接,而服務器可以承受的連接數是有限的,這就達到了拒絕服務的效果。

另外,蠕蟲大規模爆發的時候,由于蠕蟲代碼則比較簡單,傳播過程中會出現大量源IP地址相同的包,對于 TCP 蠕蟲則表現為大范圍掃描行為。這是在判斷Connection Flood時需要注意的。

在受攻擊的服務器上使用netstat –an來看:

存在大量連接狀態,來自少數的幾個源。如果統計的話,可以看到連接數對比平時出現異常。并且增長到某一值之后開始波動,說明此時可能已經接近性能極限。因此,對這種攻擊的判斷:在流量上體現并不大,甚至可能會很小;大量的ESTABLISH狀態;新建的ESTABLISH狀態總數有波動。

3.5.2 Connection Flood防護

主動清除殘余連接。

對惡意連接的IP進行封禁。

限制每個源IP的連接數。

可以對特定的URL進行防護。

反查Proxy后面發起HTTP Get Flood的源。#p#

3.6 HTTP Get攻擊

3.6.1 原理

這種攻擊主要是針對存在ASP、JSP、PHP、CGI等腳本程序,并調用MSSQLServer、MySQLServer、Oracle等數據庫的網站系統而設計的,特征是和服務器建立正常的TCP連接,并不斷的向腳本程序提交查詢、列表等大量耗費數據庫資源的調用,典型的以小博大的攻擊方法。一般來說,提交一個GET或POST指令對客戶端的耗費和帶寬的占用是幾乎可以忽略的,而服務器為處理此請求卻可能要從上萬條記錄中去查出某個記錄,這種處理過程對資源的耗費是很大的,常見的數據庫服務器很少能支持數百個查詢指令同時執行,而這對于客戶端來說卻是輕而易舉的,因此攻擊者只需通過Proxy代理向主機服務器大量遞交查詢指令,只需數分鐘就會把服務器資源消耗掉而導致拒絕服務,常見的現象就是網站慢如蝸牛、ASP程序失效、PHP連接數據庫失敗、數據庫主程序占用CPU偏高。這種攻擊的特點是可以完全繞過普通的防火墻防護,輕松找一些Proxy代理就可實施攻擊,缺點是對付只有靜態頁面的網站效果會大打折扣,并且有些Proxy會暴露攻擊者的IP地址。攻擊工具:

在遭受攻擊的服務器上抓包,大量不同IP在請求資源。在實際情況中,也有可能使用代理地址連接。

3.6.2 HTTP Get防護

對是否HTTP Get的判斷,要統計到達每個服務器的每秒鐘的GET 請求數,如果遠遠超過正常值,就要對HTTP協議解碼,找出HTTP Get及其參數(例如URL等)。

然后判斷某個GET 請求是來自代理服務器還是惡意請求。并回應一個帶key的響應要求請求發起端作出相應的回饋。如果發起端并不響應則說明是利用工具發起的請求,這樣HTTP Get請求就無法到達服務器,達到防護的效果。#p#

3.7 UDP DNS Query Flood攻擊

3.7.1 原理

UDP DNS Query Flood攻擊實質上是UDP Flood的一種,但是由于DNS服務器的不可替代的關鍵作用,一旦服務器癱瘓,影響一般都很大。

UDP DNS Query Flood攻擊采用的方法是向被攻擊的服務器發送大量的域名解析請求,通常請求解析的域名是隨機生成或者是網絡世界上根本不存在的域名,被攻擊的DNS 服務器在接收到域名解析請求的時候首先會在服務器上查找是否有對應的緩存,如果查找不到并且該域名無法直接由服務器解析的時候,DNS 服務器會向其上層DNS服務器遞歸查詢域名信息。域名解析的過程給服務器帶來了很大的負載,每秒鐘域名解析請求超過一定的數量就會造成DNS服務器解析域名超時。

根據微軟的統計數據,一臺DNS服務器所能承受的動態域名查詢的上限是每秒鐘9000個請求。而我們知道,在一臺P3的PC機上可以輕易地構造出每秒鐘幾萬個域名解析請求,足以使一臺硬件配置極高的DNS服務器癱瘓,由此可見DNS 服務器的脆弱性。同時需要注意的是,蠕蟲擴散也會帶來大量的域名解析請求。

3.7.2 UDP DNS Query Flood防護

在UDP Flood的基礎上對 UDP DNS Query Flood 攻擊進行防護

根據域名 IP 自學習結果主動回應,減輕服務器負載(使用 DNS Cache)

對突然發起大量頻度較低的域名解析請求的源 IP 地址進行帶寬限制 在攻擊發生時降低很少發起域名解析請求的源 IP 地址的優先級

限制每個源 IP 地址每秒的域名解析請求次數

四. 總結

看完這篇文章,您已經了解了7種主流的DDoS攻擊方式,并且也了解了相應的解決方法。雖然道高一尺,魔高一丈,新的攻擊方法也在源源不斷出現。但是,只要您掌握了相應的原理,破解DDoS攻擊并非難事,不過其前提是您在掌握原理的基礎上,還需要有相應的軟件、硬件來對抗。本文的最后,給出幾個小題目,幫您回憶一下前面所說的內容。

1. 對上述方法的總結。

2. 如果您的主要業務是UDP音頻應用,為了維護利益,盡可能降低攻擊對其業務的影響,您平時應該如何關注?

3. 僵尸網絡是個無堅不摧的矛嗎?如何緩解來自僵尸網絡的攻擊帶來的影響?如果一次ACK-Flood的攻擊流量是通過僵尸網絡發出來的,那么它通常會帶有什么特征。

【51CTO.COM 獨家特稿,轉載請注明出處及作者!】

【編輯推薦】

  1. 專題:DDoS攻擊防御與分析
  2. 設置路由器門限值預防DDoS攻擊
責任編輯:許鳳麗 來源: 51CTO.com
相關推薦

2019-01-10 08:24:06

2011-07-30 12:43:32

2009-09-15 16:08:00

2022-05-27 08:25:01

DDoS 攻擊網絡攻擊網絡安全

2012-10-23 10:19:28

2014-02-19 10:02:28

2017-10-12 15:41:45

2021-11-22 11:11:39

僵尸網絡DDoS攻擊黑客

2015-08-12 17:06:28

2022-06-27 08:47:29

BEM修飾符元素

2013-12-25 09:50:27

華為馬悅企業業務

2022-05-21 23:33:54

DDoS網絡安全負載均衡器

2009-01-16 10:40:50

2013-10-22 09:20:20

2013-10-22 10:36:49

2016-09-19 00:22:11

2012-11-30 15:37:10

2013-10-11 14:49:15

2016-09-01 11:44:07

2012-12-25 19:09:02

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美性极品xxxx做受 | 国产精品一区二区无线 | 亚洲人成网亚洲欧洲无码 | 亚洲一区二区三区在线视频 | 国产99热在线 | 亚洲一区精品视频 | 日韩二区 | 午夜久久久 | 久久久福利 | 日韩欧美一区二区在线播放 | 国产一区二区三区视频免费观看 | 国产激情视频网站 | 欧美日韩91 | 久久久成人一区二区免费影院 | 男女视频91 | 久久久噜噜噜www成人网 | 国产传媒在线观看 | 久久精品亚洲精品 | 成人小视频在线观看 | 欧产日产国产精品视频 | 中文字幕在线精品 | 欧美男人天堂 | 精品国产乱码久久久久久蜜退臀 | 欧美综合一区 | 久久久免费少妇高潮毛片 | 欧美狠狠操 | 亚洲一区在线日韩在线深爱 | 国产成人精品免费视频大全最热 | av黄色在线 | 日韩欧美在线免费观看 | 精品一区二区久久久久久久网精 | 涩涩视频在线看 | 天天成人综合网 | 久久婷婷香蕉热狠狠综合 | 一级黄色毛片 | 欧美日韩精品一区二区 | 91成人在线视频 | 久久久精品国产 | 午夜性视频 | 真人女人一级毛片免费播放 | 国产精品欧美一区二区 |