1. 程式人生 > >DoS攻擊

DoS攻擊

用處 技術 dos攻擊 時間 完成 偏移 重復 用戶 黑客

一、DoS攻擊相關的幾個概念

1. DoSDenial of Service,拒絕服務,即無法及時接收並處理外界合法請求。

2. DoS攻擊:指造成DoS的攻擊行為,目的是使攻擊目標計算機無法提供正常的服務。最常見的DoS攻擊有計算機網絡帶寬攻擊和連通性攻擊。其中,帶寬攻擊是指以極大通信量沖擊通往目標計算機的網絡,使得所有可用網絡資源都被消耗殆盡,導致合法的用戶請求無法通過,無法到達目標計算機。而連通性攻擊則是指用大量的連接請求攻擊目標計算機,使得所有可用的操作系統資源都被消耗殆盡,導致目標計算機無法處理合法用戶的請求。

3. DDoS攻擊DDoSDistributed Denial of Service

DDoS攻擊即是分布式DoS攻擊。攻擊者借助客戶/服務器技術,控制並利用多個傀儡機(肉雞),對一個或多個攻擊目標發起DDoS攻擊,從而成倍地提高DoS攻擊的威力。

4. DRDoS攻擊DRDoSDistributed Reflection Denial of ServiceDRDoS攻擊即是分布式反射DoS攻擊。DRDoS攻擊與DoS攻擊、DDoS攻擊不同,它不是直接對攻擊目標發起請求,而是通過IP欺騙,發送大量源IP地址為攻擊目標IP地址的數據包給攻擊主機(第三方),然後攻擊主機對IP地址源(即攻擊目標)做出大量回應,從而形成DoS攻擊。攻擊者往往會選擇那些響應包遠大於請求包的第三方服務來利用,以達到放大反射攻擊的效果,這樣的服務包括

DNSNTPSSDPChargenMemcached等。

二、一些常見DoS攻擊的攻擊原理

1. SYN泛洪

  SYN泛洪攻擊是利用了TCP協議的缺陷進行的DoS攻擊。首先看看下圖所示的TCP連接三次握手過程簡略示意圖:

技術分享圖片

  一般正常的三次握手過程在①②③這三步執行之後就完成,客戶端與服務器就可成功建立TCP連接。如果客戶端通過偽造不存在的IP作為源地址向服務器發送SYN報文,服務器收到之後回應一個SYN+ACK報文並在自己的半連接隊列中為收到的SYN報文創建一個條目,等待客戶端的ACK應答。但由於客戶端采取了IP欺騙,服務器發送的SYN-ACK報文根本得不到回應,這時服務器會不斷等待、重傳直至重傳次數超過系統規定的最大重傳次數才停止,並將這個

SYN項目從半連接隊列中刪除。SYN泛洪攻擊就是在短時間內偽造大量不存在的IP地址並快速發送大量這樣的SYN報文給攻擊目標計算機,使其半連接隊列被阻塞,正常的SYN請求反而被丟棄,同時還要不斷對這個龐大的半連接隊列中所有項目進行SYN+ACK的重試,系統可用資源急劇減少,系統運行緩慢,嚴重者會引起網絡堵塞甚至系統癱瘓。

  SYN泛洪防禦:

<1>縮短SYN Timeout時間,即從服務器收到一個SYN報文到確認這個SYN報文無用這個過程花費的時間。

<2>設置SYN Cookie,就是給每一個請求連接的IP地址分配一個Cookie,如果短時間內連續收到某個IP的重復SYN報文,就認定是受到了攻擊,以後從這個IP地址來的包一概丟棄。

2. 死亡之ping

  在TCP/IPRFC文檔中對包的最大尺寸都有嚴格限制規定,許多操作系統的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服務的另一臺主機,通過將chargenecho服務互指,來回傳送毫無用處且占滿帶寬的垃圾數據,在兩臺主機之間生成足夠多的無用數據流,將很快導致網絡可用帶寬耗盡。

5. Land攻擊

  Land攻擊就是向攻擊目標發送一個SYN包,包中源地址和目標地址都設置成攻擊目標的IP,這樣將導致接收服務器創建一個空連接,每一個連接都將保留直到超時。在Land攻擊下,許多Unix將崩潰,NT變得極其緩慢。

6. IP欺騙

  利用TCP協議棧的RST位,使用IP欺騙,偽裝成與攻擊目標連接的合法用戶,向攻擊目標發送一個帶有RST位的TCP數據段,使攻擊目標清空緩沖區中與合法用戶已經建立好的連接,這時合法用戶再發送數據到攻擊目標會被拒絕服務,因為已經不存在連接了,只能重新開始建立新的連接了。

DoS攻擊