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