歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux網絡 >> Linux網絡編程--洪水攻擊詳解

Linux網絡編程--洪水攻擊詳解

日期:2017/3/2 17:14:31   编辑:Linux網絡

洪水攻擊詳解

①注解:洪水攻擊(FLOOD ATTACK)是指利用計算機網絡技術向目標主機發送大量無用的數據報文,使得目標主機忙於處理無用的數據報文而無法提供正常服務的網絡行為。

主要原理:利用了網絡協議中安全機制或者直接用十分簡單的ping資源的方法來對主機造成影響。

攻擊手段:使用畸形報文讓目標機處於處理或者等待,使用原始套接字進行程序設計。

分類:

ICMP回顯攻擊,利用原始套接字發送大量回顯請求或者回顯響應的數據,由於此數據協議棧默認是必須處理的,因此有影響

UDP,向目標主機UDP端口發送UDP報文,由於目標機需要對端口進行處理

SYN,利用TCP連接中三次握手,在發送一個SYN原始報文後,目標需要對發送的報文進行處理並等待超時

洪水攻擊

ICMP洪水攻擊

原理:在ping基礎上形成

分類:

直接洪水攻擊:主機與目標的帶寬比拼,用性能砸死他。缺點:目標機可以根據源ip,屏蔽攻擊源,甚至可能被反向攻擊。

偽裝ip攻擊:將發送方ip用偽裝ip代替,將直接洪水攻擊改進

反射攻擊:並非自身攻擊,而是利用偽裝ip,讓其他主機誤認為目標機在向其發送ICMP請求,結果:目標主機需要對所有請求進行ICMP應答發送

UDP洪水攻擊

UDPFlood防護

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

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

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

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

SYN洪水攻擊

簡介:又稱拒絕服務攻擊。是一種廣為人知的DoS(拒絕服務攻擊)與DDoS(分布式拒絕服務攻擊)的方式之一,這是一種利用TCP協議缺陷,發送大量偽造的TCP連接請求,從而使得被攻擊方資源耗盡(CPU滿負荷或內存不足)的攻擊方式。

原理剖析:

TCP三次握手:

在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。
第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態; 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。 完成三次握手,客戶端與服務器開始傳送數據.

攻擊手段:

主機A發送ICMP的SYN請求給主機B,主機A發送的報文源地址為偽造IP。主機B的第二次握手之後需要等待時間來接受A的確認包,在超時時間內會一直占用資源。如果B處理三次握手的資源不能滿足A發送數量,那麼B就會資源殆盡。主機A發送的是原始報文,發送速度應當是足夠高的,對B必然產生影響。

防護措施:

①縮短SYNtimeout超時時間。也就是第二次握手到第三次握手之間的等待時間。

②為每一個請求ip設置cookie,如果連續時間內收到某個ip請求,那麼認為是攻擊,從而攔截

Copyright © Linux教程網 All Rights Reserved