DDOS攻擊類型分析

1 網絡層攻擊

這一大類的攻擊主要針對堵帶寬的目標,從目標源上有兩種形勢,一種是攻擊者僞造源IP進行流量攻擊,基本上都是大數據包;另一種是反射放大攻擊,攻擊者僞裝受害者訪問第三方,通過第三方的大量數據包響應來堵塞受害者的網絡。

1.1 僞造大包攻擊

僞造大包攻擊通常需要攻擊者控制的網絡可以發送出相應攻擊流量的數據包,攻擊的同時也消耗自身的巨大資源,這樣的攻擊一般發生成攻擊者自有IDC機房或擁有大量的肉機。

1. UdpFlood

由於udp協議是一種無連接的服務,很容易僞造各式各樣的udp封包送達到目標服務,因此udpflood攻擊的具體形式和種類很多。但當前針對WEB服務發起的udpflood攻擊時,一般是採用大數據包,並無明確意義的udp端口,以堵塞網絡帶寬爲首要目標。
而針對具體的udp服務實現的udpflood需要更精細的防禦,相應的這樣的攻擊要歸類在應用層攻擊類別中。
參考:
http://baike.baidu.com/link?url=FIcTpZdvEURDGiFBR_KyXknOjB-3FDAAT8QsUo20xq8Vr9uhHm358DJWUQtIqwXxyWc5GGtMUd3x0b2MpBD_Ya

2. TcpFlood

這裏所指的tcpflood也是以製造流量爲主,混雜着一些標誌位,用於消耗目標的協議棧資源,受害系統收到這樣的包後通過連接分析最後還會響應reset包。如發出了只帶syn標誌的,但包的長度卻超過1k等。

3. IcmpFlood

正常的ICMP數據包爲96字節,而攻擊者使用的ICMPflood通常設定較大的長度

1.2 反射放大攻擊

反射放大攻擊是一種典型的四兩撥千斤的攻擊方式,利用了很多udp服務存在小請求大響應的特性,攻擊前事先找到足夠多提供這樣服務的服務器IP,再僞造受害者的IP向這些服務器發送請求,其結果是大量的響應數據都奔該服務器IP而去。

1. DNS反射

http://security.ctocio.com.cn/146/12741146.shtml

2. NTP反射

http://drops.wooyun.org/papers/955

3. SNMP反射

http://baike.baidu.com/view/2899.htm

4. SSDP反射

http://blog.csdn.net/lilypp/article/details/6631951
http://www.d1net.com/security/tech/319292.html

5. Chargen反射

http://baike.baidu.com/link?url=lZ22GHUPGjgdmvihgpAT1La2-Tb7djnZ69ur22g8UtdQT7ItQXgqE3cYqBiKI_ArfgxuJe0INSuM48gZqMtG8K

2 協議層攻擊

協議層在這裏是傳輸層與會話層的總述,這一層的攻擊主要利用了協議設計的缺陷,如TCP協議棧會主動響應入棧的數據包,又如有碎片數據帶來的預分配內在開銷等,當攻擊者發送了大量的請求包後,會導致系統頻繁應付響應而耗盡CPU、內存資源。

2.1 TCP/UDP/ICMP分片

TCP/IP協議設計實現時考慮網絡上各個設備的MTU不完全一致,當一個大數據包經過一個小的MTU設備時,數據包就會被拆分成一個或多個小包來適應當前的網絡設備,所以存在分片的機制。當協議棧收到分片通知時,需要預留一定的內存來組裝數據包,攻擊者惡意使用分片功能時,就會導致目標服務器的協議棧資源消耗過大。

2.2 SynFlood

TCP會響應每個syn包,發出syn+ack包,期待收到ack+1包,如果是一個僞造的不存在的IP發來的請求,則服務器在收不到ack+1的情況下,會持續的發上好幾次syn+ack包,同時還保持着這個未完成的連接,這種攻擊很容易佔滿服務器的連接隊列。

2.3 AckFlood

與synflood攻擊類似,ackflood攻擊時發送的都是ack包,如果目標系統允許ack來建立狀態連接就很容易導致連接表項資源耗盡,同時協議棧還會發現這類數據包不合法而響應reset包,導致系統資源消耗過大。

2.4 ZeroWindow

建立連接後,發出數據請求,服務器端準備好數據時,攻擊者發送ack包指定window大小爲0,這時服務端無法發送數據處於等待狀態,通過建立這類大量的連接來消耗服務器資源。

2.5 ConnectionFlood

僅建立連接後不發送數據,由服務器等待超時,在這個過程中建立大量的這樣的連接,實現拒絕服務攻擊。

2.6 SslFlood

不斷的發起ssl握手,ssl握手過程,服務器端消息的資源是客戶端的15倍。

2.7 SslKeyRenego

在協商加密算法時,服務器端消耗的資源是客戶端的15倍,而Renegotiating機制允許客戶端在一個連接中發起多次協商,導致服務器更易受到CPU耗盡的攻擊。
http://www.jybase.net/wangzhananquan/20120320804.html

3 應用層攻擊

這一層的攻擊是針對具體的服務請求來實現對資源的消耗,達到拒絕服務的目的。通常說的cc攻擊是這裏所說的大部分攻擊的一個泛稱。
應用層攻擊的範圍不僅僅針對HTTP服務,常見的還有DNS服務,移動互聯網飛速發展的今天,APP所使用的服務也很容易受到攻擊,這類服務雖然與WEB服務有一定的相似,但從辨別性質上卻有所不同,同樣遊戲類服務也很容易受到攻擊。

3.1 GetFlood

直接對url進行大量的請求,挑選最耗服務器資源的url進行請求。真正實現攻擊時還是有多種模式,如多URL併發的請求,單一URL請求,隨機URL請求等。

3.2 SlowLoris

也稱爲SlowHeaders,攻擊者始終構造不完整的http header在發送,同時還間隔一定時間的發送數據,導致服務器一直處於等待狀態。

3.3 SlowPost

也稱爲slow body,攻擊的重點放在了post數據上,通過將Http header中的content-length設置爲一個較大的值,同時間隔一定時間再發送數據,導致服務器一直處於等待狀態。

3.4 SlowRead

與前面ZeroWindow攻擊類似,在這裏是把window設置一個較小的數,讓服務器始終準備着迴應數據。

3.5 HashDos

WEB站點後臺實現時,維護輸入的參數數據時採用了hash算法,但默認情況下hash桶的大小不夠大,容易產生碰撞,碰撞後會採用鏈表查詢的方式,這種情況會極大耗用CPU資源。
攻擊者正是利用了這一原理來實現拒絕服務攻擊,攻擊者需要提交大量的參數個數,同時此類參數的名稱得到的hash容易碰撞,這種情況下,後臺維護參數時無法使用hash特性而純粹使用的是鏈表,很容易造成CPU耗盡的情況。
一般方法是限制提交參數中的個數,同時升級後臺hash處理的語言,減少碰撞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章