泛洪攻击(Flood)与TCP代理(TCP proxy)
下文摘自H3C攻擊防范指導手冊
泛洪攻擊
網(wǎng)絡(luò)上常常會發(fā)生泛洪攻擊和網(wǎng)絡(luò)掃描攻擊。泛洪攻擊指攻擊者向攻擊目標發(fā)送大量的虛假請求,驅(qū)使被攻擊者由于不斷應(yīng)付這些無用信息而筋疲力盡,合法的用戶卻由此無法享受到相應(yīng)服務(wù),即發(fā)生拒絕服務(wù)。掃描攻擊是攻擊者對網(wǎng)絡(luò)進行主機或端口掃描,通常攻擊者通過掃描了解網(wǎng)絡(luò)的狀況,為后續(xù)的攻擊做準備。
防火墻通過檢測網(wǎng)絡(luò)流量,分析異常流量的特征,能成功檢測出各種泛洪攻擊和網(wǎng)絡(luò)掃描攻擊,具體功能包括:ICMP Flood 攻擊檢測、UDP Flood 攻擊檢測、SYN Flood 攻擊檢測、連接數(shù)限制和掃描攻擊檢測。
ICMP Flood攻擊檢測
短時間內(nèi)向特定目標不斷請求 ICMP 回應(yīng),致使目標系統(tǒng)負擔過重而不能處理合法的傳輸任務(wù),就發(fā)生了 ICMP Flood。啟用 ICMP Flood 攻擊檢測功能時,要求設(shè)置一個連接速率閾值,一旦發(fā)現(xiàn)保護主機 ICMP 連接速率超過該值,防火墻會輸出發(fā)生 ICMP Flood 攻擊的告警日志,并且根據(jù)用戶的配置可以阻止發(fā)往該主機的后續(xù)連接請求。
UDP Flood攻擊檢測
短時間內(nèi)向特定目標不斷發(fā)送 UDP 報文,致使目標系統(tǒng)負擔過重而不能處理合法的傳輸任務(wù),就發(fā)生了 UDP Flood。啟用 UDP Flood 攻擊檢測功能時,要求設(shè)置一個連接速率閾值,一旦發(fā)現(xiàn)保護主機響應(yīng)的 UDP 連接速率超過該值,防火墻會輸出發(fā)生 UDP Flood 攻擊的告警日志,并且根據(jù)用戶的配置可以阻止發(fā)往該主機的后續(xù)連接請求。
SYN Flood攻擊檢測
由于資源的限制,TCP/IP 棧只能允許有限個 TCP 連接。SYN Flood 偽造 SYN 報文向服務(wù)器發(fā)起連接,服務(wù)器在收到報文后用 SYN_ACK 應(yīng)答,此應(yīng)答發(fā)出去后,不會收到 ACK 報文,造成一個半連接。若攻擊者發(fā)送大量這樣的報文,會在被攻擊主機上出現(xiàn)大量的半連接,耗盡其資源,使正常的用戶無法訪問,直到半連接超時。在一些創(chuàng)建連接不受限制的實現(xiàn)里,SYN Flood 具有類似的影響,它會消耗掉系統(tǒng)的內(nèi)存等資源。
啟用 SYN Flood 攻擊檢測功能時,要求設(shè)置一個連接速率閾值和半開連接數(shù)量閾值,一旦發(fā)現(xiàn)保護主機響應(yīng)的 TCP 新建連接速率超過連接速度閾值或者半開連接數(shù)量超過半開連接數(shù)量閾值,防火墻會輸出發(fā)生 SYN Flood 攻擊的告警日志,并且可以根據(jù)用戶的配置采取以下三種措施:
- 阻止發(fā)往該保護主機的后續(xù)連接請求;
- 切斷保護主機上的最老半連接會話;
- 向 TCP Proxy 添加受保護 IP 地址。
連接數(shù)限制
連接數(shù)限制包括源 IP 連接數(shù)限制和目的 IP 連接數(shù)限制。啟用連接數(shù)限制功能時,要求設(shè)置一個連接數(shù)閾值,一旦 IP 的連接數(shù)超過該值,防火墻會輸出告警日志,并用可以根據(jù)用戶配置阻止該 IP新建連接。
攻擊者運用掃描工具探測目標地址和端口,用來確定哪些目標系統(tǒng)連接在目標網(wǎng)絡(luò)上以及主機開啟哪些端口服務(wù)。啟用掃描攻擊保護功能時,要求設(shè)置一個掃描速率閾值,一旦存在 IP 主動發(fā)起的連接速率超過該值,則判定該 IP 正在進行掃描探測,防火墻會輸出發(fā)生掃描攻擊的告警日志,阻止掃描者發(fā)起的后續(xù)連接,并且可以根據(jù)用戶配置將掃描者加入到黑名單。
TCP代理
1. SYN Flood攻擊詳細介紹
一般情況下,TCP 連接的建立需要經(jīng)過三次握手,即:
(1) TCP 連接請求的發(fā)起者向目標服務(wù)器發(fā)送 SYN 報文;
(2) 目標服務(wù)器收到 SYN 報文后,建立處于 SYN_RECEIVED 狀態(tài)的 TCP 半連接,并向發(fā)起者回復 SYN ACK 報文,等待發(fā)起者的回應(yīng);
(3) 發(fā)起者收到 SYN ACK 報文后,回應(yīng) ACK 報文,這樣 TCP 連接就建立起來了。利用 TCP 連接的建立過程,一些惡意的攻擊者可以進行 SYN Flood 攻擊。攻擊者向服務(wù)器發(fā)送大量請求建立 TCP 連接的 SYN 報文,而不回應(yīng)服務(wù)器的 SYN ACK 報文,導致服務(wù)器上建立了大量的 TCP 半連接。從而達到耗費服務(wù)器資源,使服務(wù)器無法處理正常業(yè)務(wù)的目的。
2. TCP Proxy功能簡介
TCP Proxy 功能用來防止服務(wù)器受到 SYN Flood 攻擊。客戶端通過 TCP 代理請求與受保護的服務(wù)器建立連接時,TCP 代理首先驗證客戶端的請求是否為 SYN Flood 攻擊,驗證通過后客戶端和服務(wù)器之間才能建立 TCP 連接,從而避免服務(wù)器受到攻擊。
TCP Proxy 支持兩種代理方式:單向代理和雙向代理。單向代理方式是指僅對 TCP 連接的正向報文進行處理;雙向代理是指對 TCP 連接的正向和反向報文都進行處理。用戶可以根據(jù)實際的組網(wǎng)情況進行選擇。
例如:在如 圖 1-1 所示的組網(wǎng)中,從客戶端發(fā)出的報文經(jīng)過TCP代理,而從服務(wù)器端發(fā)出的報文不經(jīng)過TCP代理,此時只能使用單向代理方式;在如 圖 1-2 所示的組網(wǎng)中,從客戶端發(fā)出的報文經(jīng)和從服務(wù)器端發(fā)出的報文都經(jīng)過TCP代理,此時可以使用單向代理方式,也可以使用雙向代理方式。
3. TCP Proxy處理流程
3.1. 單向代理
單向代理方式下,TCP Proxy的處理流程如 圖 1-3 所示。
TCP 代理收到某客戶端發(fā)來的與受保護服務(wù)器(匹配某個受保護 IP 表項)建立 TCP 連接的請求(SYN 報文)后,先代替服務(wù)器向客戶端回應(yīng)序號錯誤的 SYN ACK 報文。如果收到客戶端回應(yīng)的RST 報文,則認為該 TCP 連接請求通過 TCP 代理的驗證。一定時間內(nèi),TCP 代理收到客戶端重發(fā)的 SYN 報文后,直接向服務(wù)器轉(zhuǎn)發(fā),在客戶端和服務(wù)器之間建立 TCP 連接。TCP 連接建立后,TCP代理直接轉(zhuǎn)發(fā)后續(xù)的報文,不對報文進行處理。
3.2. 雙向代理
雙向代理方式下,TCP Proxy的處理流程如 圖 1-4 所示。
TCP 代理收到某客戶端發(fā)來的與受保護服務(wù)器建立 TCP 連接的請求(SYN 報文)后,先代替服務(wù)器向客戶端回應(yīng)正常的 SYN ACK 報文(窗口值為 0)。如果收到客戶端回應(yīng)的 ACK 報文,則認為該 TCP 連接請求通過 TCP 代理的驗證。TCP 代理再向服務(wù)器發(fā)送同樣的 SYN 報文,并通過三次握手與服務(wù)器建立 TCP 連接。雙向代理方式中,在客戶端和 TCP 代理、TCP 代理和服務(wù)器之間建立兩個 TCP 連接。由于兩個 TCP 連接使用的序號不同,TCP 報文交互過程中,TCP 代理接收到客戶端或服務(wù)器發(fā)送的報文后,需要修改報文序號,再轉(zhuǎn)發(fā)給對端,這樣才能保證通信正常。
總結(jié)
以上是生活随笔為你收集整理的泛洪攻击(Flood)与TCP代理(TCP proxy)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实例说明listen()函数第二个参数的
- 下一篇: listen()函数中backlog参数