1. 程式人生 > >DDOS攻擊攻擊種類和原理

DDOS攻擊攻擊種類和原理

廣域網 forward tcp連接建立 所有 執行 系統 pre http get 效率

SYN攻擊是當前網絡上最為常DDos攻擊,也是最為經典的拒絕服務攻擊,它利用了TCP協議實現上的一個缺陷,通過向網絡服務所在端口發送大量的偽造源地址的攻擊報文,就可能造成目標服務器中的半開連接隊列被占滿,從而阻止其他合法用戶進行訪問。這種攻擊早在1996年就被發現,但至今仍然顯示出強大的生命力。很多操作系統,甚至防火墻、路由器都無法有效地防禦這種攻擊,而且由於它可以方便地偽造源地址,追查起來非常困難。它的數據包特征通常是,源發送了大量的SYN包,並且缺少三次握手的最後一步握手ACK回復。
DDoS攻擊它的原理說白了就是群毆,用好多的機器對目標機器一起發動DoS攻擊,但這不是很多黑客一起參與的,這種攻擊只是由一名黑客來操作的。這名黑客不是擁有很多機器,他是通過他的機器在網絡上占領很多的"肉雞",並且控制這些"肉雞"來發動DDoS攻擊,要不然怎麽叫做分布式呢。還是剛才的那個例子,你的機器每秒能發送10攻擊數據包,而被攻擊的機器每秒能夠接受100的數據包,這樣你的攻擊肯定不會起作用,而你再用10臺或更多的機器來對被攻擊目標的機器進行攻擊的話,那結果就可想而知了。
DRDoS分布反射式拒絕服務攻擊這是DDoS攻擊的變形,它與DDoS的不同之處就是DrDoS不需要在攻擊之前占領大量的"肉雞"。它的攻擊原理和Smurf攻擊原理相近,不過DRDoS是可以在廣域網上進行的,而Smurf攻擊是在局域網進行的。它的作用原理是基於廣播地址與回應請求的。一臺計算機向另一臺計算機發送一些特殊的數據包如ping請求時,會接到它的回應;如果向本網絡的廣播地址發送請求包,實際上會到達網絡上所有的計算機,這時就會得到所有計算機的回應。這些回應是需要被接收的計算機處理的,每處理一個就要占用一份系統資源,如果同時接到網絡上所有計算機的回應,接收方的系統是有可能吃不消的,就象遭到了DDoS攻擊一樣。不過是沒有人笨到自己攻擊自己,不過這種方法被黑客加以改進就具有很大的威力了。黑客向廣播地址發送請求包,所有的計算機得到請求後,卻不會把回應發到黑客那裏,而是發到被攻擊主機。這是因為黑客冒充了被攻擊主機。黑客發送請求包所用的軟件是可以偽造源地址的,接到偽造數據包的主機會根據源地址把回應發出去,這當然就是被攻擊主機的地址。黑客同時還會把發送請求包的時間間隔減小,這樣在短時間能發出大量的請求包,使被攻擊主機接到從被欺騙計算機那裏傳來的洪水般的回應,就像遭到了DDoS攻擊導致系統崩潰。駭客借助了網絡中所有計算機來攻擊受害者,而不需要事先去占領這些被欺騙的主機,這就是Smurf攻擊。而DRDoS攻擊正是這個原理,黑客同樣利用特殊的發包工具,首先把偽造了源地址的SYN連接請求包發送到那些被欺騙的計算機上,根據TCP三次握手的規則,這些計算機會向源IP發出SYN+ACK或RST包來響應這個請求。同Smurf攻擊一樣,黑客所發送的請求包的源IP地址是被攻擊主機的地址,這樣受欺騙的主機就都會把回應發到被攻擊主機處,造成被攻擊主機忙於處理這些回應而癱瘓。

DDoS究竟如何攻擊?目前最流行也是最好用的攻擊方法就是使用SYN-Flood進行攻擊,SYN-Flood也就是SYN洪水攻擊。SYN-Flood不會完成TCP三次握手的第三步,也就是不發送確認連接的信息給服務器。這樣,服務器無法完成第三次握手,但服務器不會立即放棄,服務器會不停的重試並等待一定的時間後放棄這個未完成的連接,這段時間叫做SYN timeout,這段時間大約30秒-2分鐘左右。若是一個用戶在連接時出現問題導致服務器的一個線程等待1分鐘並不是什麽大不了的問題,但是若有人用特殊的軟件大量模擬這種情況,那後果就可想而知了。一個服務器若是處理這些大量的半連接信息而消耗大量的系統資源和網絡帶寬,這樣服務器就不會再有空余去處理普通用戶的正常請求(因為客戶的正常請求比率很小)。這樣這個服務器就無法工作了,這種攻擊就叫做:SYN-Flood攻擊。
到目前為止,進行DDoS攻擊的防禦還是比較困難的。首先,這種攻擊的特點是它利用了TCP/IP協議的漏洞,除非你不用TCP/IP,才有可能完全抵禦住DDoS攻擊。不過這不等於我們就沒有辦法阻擋DDoS攻擊,我們可以盡力來減少DDoS的攻擊。下面就是一些防禦方法:
1。確保服務器的系統文件是最新的版本,並及時更新系統補丁。
2。關閉不必要的服務。
3。限制同時打開的SYN半連接數目。
4。縮短SYN半連接的time out 時間。
5。正確設置防火墻
禁止對主機的非開放服務的訪問
限制特定IP地址的訪問
啟用防火墻的防DDoS的屬性
嚴格限制對外開放的服務器的向外訪問
運行端口映射程序禍端口掃描程序,要認真檢查特權端口和非特權端口。
6。認真檢查網絡設備和主機/服務器系統的日誌。只要日誌出現漏洞或是時間變更,那這臺機器就可   能遭到了攻擊。
7。限制在防火墻外與網絡文件共享。這樣會給黑客截取系統文件的機會,主機的信息暴露給黑客,   無疑是給了對方入侵的機會。
8。路由器
以Cisco路由器為例
Cisco Express Forwarding(CEF)
使用 unicast reverse-path
訪問控制列表(ACL)過濾
設置SYN數據包流量速率
升級版本過低的ISO
為路由器建立log server
能夠了解DDoS攻擊的原理,對我們防禦的措施在加以改進,我們就可以擋住一部分的DDoS攻擊。
ACK Flood攻擊
ACK Flood攻擊是在TCP連接建立之後,所有的數據傳輸TCP報文都是帶有ACK標誌位的,主機在接收到一個帶有ACK標誌位的數據包的時候,需要檢查該數據包所表示的連接四元組是否存在,如果存在則檢查該數據包所表示的狀態是否合法,然後再向應用層傳遞該數據包。如果在檢查中發現該數據包不合法,例如該數據包所指向的目的端口在本機並未開放,則主機操作系統協議棧會回應RST包告訴對方此端口不存在。
UDP Flood攻擊
UDP Flood是日漸猖厥的流量型DoS攻擊,原理也很簡單。常見的情況是利用大量UDP小包沖擊DNS服務器或Radius認證服務器、流媒體視頻服務器。 100k pps的UDP Flood經常將線路上的骨幹設備例如防火墻打癱,造成整個網段的癱瘓。由於UDP協議是一種無連接的服務,在UDP FLOOD攻擊中,攻擊者可發送大量偽造源IP地址的小UDP包。但是,由於UDP協議是無連接性的,所以只要開了一個UDP的端口提供相關服務的話,那麽就可針對相關的服務進行攻擊。
ICMP Flood攻擊
ICMP Flood 的攻擊原理和ACK Flood原理類似,屬於流量型的攻擊方式,也是利用大的流量給服務器帶來較大的負載,影響服務器的正常服務。由於目前很多防火墻直接過濾ICMP報文,因此ICMP Flood出現的頻度較低。比較下面兩幅圖,就應該可以看出是否有ICMP Flood攻擊。

Connection Flood攻擊
Connection Flood 寬網絡服務的攻擊方式,這種攻擊方式目前已經越來越猖獗。這種攻擊的原理是利用真實的IP地址向服務器發起大量的連接,並且建立連接之後很長時間不釋放,占用服務器的資源,造成服務器服務器上殘余連接(WAIT狀態)過多,效率降低,甚至資源耗盡,無法響應其他客戶所發起的連接。
其中一種攻擊方法是每秒鐘向服務器發起大量的連接請求,這類似於固定源IP的SYN Flood攻擊,不同的是采用了真實的源IP地址。通常這可以在防火墻上限制每個源IP地址每秒鐘的連接數來達到防護目的。但現在已有工具采用慢速連接的方式,也即幾秒鐘才和服務器建立一個連接,連接建立成功之後並不釋放並定時發送垃圾數據包給服務器使連接得以長時間保持。這樣一個IP地址就可以和服務器建立成百上千的連接,而服務器可以承受的連接數是有限的,這就達到了拒絕服務的效果。
HTTP Get攻擊
用MSSQLServer、MySQLServer、Oracle等數據庫的網站系統而設計的,特征是和服務器建立正常的TCP連接,並不斷的向腳本程序提交查詢、列表等大量耗費數據庫資源的調用,典型的以小博大的攻擊方法。一般來說,提交一個GET或POST指令對客戶端的耗費和帶寬的占用是幾乎可以忽略的,而服務器為處理此請求卻可能要從上萬條記錄中去查出某個記錄,這種處理過程對資源的耗費是很大的,常見的數據庫服務器很少能支持數百個查詢指令同時執行,而這對於客戶端來說卻是輕而易舉的,因此攻擊者只需通過Proxy代理向主機服務器大量遞交查詢指令,只需數分鐘就會把服務器資源消耗掉而導致拒絕服務,常見的現象就是網站慢如蝸牛、ASP程序失效、PHP連接數據庫失敗、數據庫主程序占用CPU偏高。這種攻擊的特點是可以完全繞過普通的防火墻防護,輕松找一些Proxy代理就可實施攻擊,缺點是對付只有靜態頁面的網站效果會大打折扣,並且有些Proxy會暴露攻擊者的IP地址。
UDP DNS Query Flood攻擊
UDP DNS Query Flood攻擊采用的方法是向被攻擊的服務器發送大量的域名解析請求,通常請求解析的域名是隨機生成或者是網絡世界上根本不存在的域名,被攻擊的DNS 服務器在接收到域名解析請求的時候首先會在服務器上查找是否有對應的緩存,如果查找不到並且該域名無法直接由服務器解析的時候,DNS 服務器會向其上層DNS服務器遞歸查詢域名信息。域名解析的過程給服務器帶來了很大的負載,每秒鐘域名解析請求超過一定的數量就會造成DNS服務器解析域名超時。
根據微軟的統計數據,一臺DNS服務器所能承受的動態域名查詢的上限是每秒鐘9000個請求。而我們知道,在一臺P3的PC機上可以輕易地構造出每秒鐘幾萬個域名解析請求,足以使一臺硬件配置極高的DNS服務器癱瘓,由此可見DNS 服務器的脆弱性。同時需要註意的是,蠕蟲擴散也會帶來大量的域名解析請求。

DDOS攻擊攻擊種類和原理