DoS攻擊
一、與DoS攻擊相關的幾個概念
1. DoS:Denial of Service,拒絕服務,即無法及時接收並處理外界合法請求。
2. DoS攻擊:指造成DoS的攻擊行為,目的是使攻擊目標計算機無法提供正常的服務。最常見的DoS攻擊有計算機網絡帶寬攻擊和連通性攻擊。其中,帶寬攻擊是指以極大通信量沖擊通往目標計算機的網絡,使得所有可用網絡資源都被消耗殆盡,導致合法的用戶請求無法通過,無法到達目標計算機。而連通性攻擊則是指用大量的連接請求攻擊目標計算機,使得所有可用的操作系統資源都被消耗殆盡,導致目標計算機無法處理合法用戶的請求。
3. DDoS攻擊:DDoS即Distributed Denial of Service
4. DRDoS攻擊:DRDoS即Distributed Reflection Denial of Service,DRDoS攻擊即是分布式反射DoS攻擊。DRDoS攻擊與DoS攻擊、DDoS攻擊不同,它不是直接對攻擊目標發起請求,而是通過IP欺騙,發送大量源IP地址為攻擊目標IP地址的數據包給攻擊主機(第三方),然後攻擊主機對IP地址源(即攻擊目標)做出大量回應,從而形成DoS攻擊。攻擊者往往會選擇那些響應包遠大於請求包的第三方服務來利用,以達到放大反射攻擊的效果,這樣的服務包括
二、一些常見DoS攻擊的攻擊原理
1. SYN泛洪
SYN泛洪攻擊是利用了TCP協議的缺陷進行的DoS攻擊。首先看看下圖所示的TCP連接三次握手過程簡略示意圖:
、
一般正常的三次握手過程在①②③這三步執行之後就完成,客戶端與服務器就可成功建立TCP連接。如果客戶端通過偽造不存在的IP作為源地址向服務器發送SYN報文,服務器收到之後回應一個SYN+ACK報文並在自己的半連接隊列中為收到的SYN報文創建一個條目,等待客戶端的ACK應答。但由於客戶端采取了IP欺騙,服務器發送的SYN-ACK報文根本得不到回應,這時服務器會不斷等待、重傳直至重傳次數超過系統規定的最大重傳次數才停止,並將這個
SYN泛洪防禦:
<1>縮短SYN Timeout時間,即從服務器收到一個SYN報文到確認這個SYN報文無用這個過程花費的時間。
<2>設置SYN Cookie,就是給每一個請求連接的IP地址分配一個Cookie,如果短時間內連續收到某個IP的重復SYN報文,就認定是受到了攻擊,以後從這個IP地址來的包一概丟棄。
2. 死亡之ping
在TCP/IP的RFC文檔中對包的最大尺寸都有嚴格限制規定,許多操作系統的TCP/IP協議棧都規定ICMP包大小為64KB,且在對包的標題頭進行讀取之後,要根據該標題頭裏包含的信息來為有效載荷生成緩沖區。死亡之ping就是故意產生畸形的ping包,聲稱自己的尺寸超過ICMP包大小上限,或者直接發送尺寸超過ICMP包上限的報文,使未采取保護措施的網絡系統出現內存分配錯誤,緩沖區溢出,導致TCP/IP協議棧崩潰,最終報文接收方宕機。
3. 淚滴
對於一些大的IP數據包,需要對其進行拆分傳送,在IP報頭中有一個拆分標誌和一個偏移字段,如果拆分標誌為1,則表示這是一個大IP包,接收方需要根據偏移字段對接收到的幾個IP包分段進行重新組裝成一個完整的大IP包。由於在TCP/IP協議棧的實現中,對IP碎片中的包的標題頭所包含的信息是信任的,淚滴攻擊就是利用這一漏洞,在IP數據包中把偏移字段設置成錯誤的數值,這樣接收方就無法按照數據包中的偏移字段值正確組裝這些IP包分段,但是接收方會不斷嘗試,最終可能導致目標計算機操作系統資源耗盡而崩潰。
4. UDP泛洪
Unix服務器默認會打開一些容易被黑客惡意利用的UDP服務。例如,echo服務會顯示接收到的每一個數據包,而原本作為測試功能的chargen服務會在接收到每一個數據包時隨機反饋一些字符。UDP泛洪就是利用這兩個簡單的TCP/IP服務的漏洞進行惡意攻擊,通過偽造與某一主機的chargen服務之間的一次UDP連接,回復地址指向開著echo服務的另一臺主機,通過將chargen和echo服務互指,來回傳送毫無用處且占滿帶寬的垃圾數據,在兩臺主機之間生成足夠多的無用數據流,將很快導致網絡可用帶寬耗盡。
5. Land攻擊
Land攻擊就是向攻擊目標發送一個SYN包,包中源地址和目標地址都設置成攻擊目標的IP,這樣將導致接收服務器創建一個空連接,每一個連接都將保留直到超時。在Land攻擊下,許多Unix將崩潰,NT變得極其緩慢。
6. IP欺騙
利用TCP協議棧的RST位,使用IP欺騙,偽裝成與攻擊目標連接的合法用戶,向攻擊目標發送一個帶有RST位的TCP數據段,使攻擊目標清空緩沖區中與合法用戶已經建立好的連接,這時合法用戶再發送數據到攻擊目標會被拒絕服務,因為已經不存在連接了,只能重新開始建立新的連接了。
DoS攻擊