1. 拒絕服務(wù)攻擊的目的是用極大量的虛擬信息流耗盡受害者的資源,使其無(wú)法處理合法的信息流。攻擊的目標(biāo)可以是防火墻、防火墻所保護(hù)的網(wǎng)絡(luò)資源、個(gè)別主機(jī)的特定硬件平臺(tái)或操作系統(tǒng)等。通常DoS攻擊中的源地址是欺騙性的。
2. 發(fā)自多個(gè)源地址的DoS攻擊稱為分布式拒絕服務(wù)攻擊(DDoS)。DDoS攻擊中的源地址可以是欺騙性地址,也可以是被損害過(guò)的主機(jī)的實(shí)際地址,或者是攻擊者目前正用作“zombie代理”且從中發(fā)起攻擊的主機(jī)實(shí)際地址。
3. NetScreen防火墻提供了九種拒絕服務(wù)攻擊的檢測(cè)和防御:
會(huì)話表泛濫攻擊的檢測(cè)和防御
SYN-ACK-ACK代理泛濫攻擊的檢測(cè)和防御
SYN泛濫攻擊的檢測(cè)和防御
ICMP泛濫攻擊的檢測(cè)和防御
UDP泛濫攻擊的檢測(cè)和防御
陸地攻擊的檢測(cè)和防御。
Ping of Death攻擊的檢測(cè)和防御
Teardrop攻擊的檢測(cè)和防御
WinNuke攻擊的檢測(cè)和防御。
1.攻擊者通過(guò)填滿防火墻的會(huì)話表,使防火墻不能產(chǎn)生任何新的會(huì)話,拒絕新的連接請(qǐng)求,從而產(chǎn)生DoS攻擊。防火墻主要采用基于源和目標(biāo)的會(huì)話限制和主動(dòng)調(diào)整會(huì)話超時(shí)的主動(dòng)失效機(jī)制兩種手段來(lái)減輕這類攻擊。
2.選擇SCREEN選項(xiàng)“Source IP Based Session Limit”和“Destination IP Based Session Limit” 將啟動(dòng)基于源和目標(biāo)的會(huì)話限制功能。默認(rèn)的基于源和目標(biāo)的會(huì)話限制是每秒128個(gè)并發(fā)連接。
3.基于源的會(huì)話限制將限制來(lái)自相同源地址的并發(fā)會(huì)話數(shù)目,可以阻止像Nimda、沖擊波這樣的病毒和蠕蟲(chóng)的DoS攻擊。這類病毒會(huì)感染服務(wù)器,然后從服務(wù)器產(chǎn)生大量的信息流。由于所有由病毒產(chǎn)生的信息流都始發(fā)于相同的IP地址,因此基于源的會(huì)話限制可以保證防火墻能抑制這類巨量的信息流。當(dāng)來(lái)自某個(gè)IP 地址的并發(fā)會(huì)話數(shù)達(dá)到最大限值后,防火墻開(kāi)始封鎖來(lái)自該IP地址的所有其他連接嘗試。假如網(wǎng)絡(luò)發(fā)生了沖擊波病毒,我們可以將內(nèi)網(wǎng)的基于源的會(huì)話限制設(shè)置為一個(gè)比較低的值(比如設(shè)為50),那些不能上網(wǎng)的機(jī)器,很可能就是中了毒,立刻隔離并進(jìn)行查殺病毒和打補(bǔ)丁。
4.攻擊者可以從上百個(gè)被他控制的主機(jī)上發(fā)起分布式拒絕服務(wù)(DDoS)攻擊。基于目標(biāo)的會(huì)話限制可以確保防火墻只允許可接受數(shù)目的并發(fā)連接請(qǐng)求到達(dá)任意主機(jī),而不管其來(lái)源。當(dāng)訪問(wèn)某服務(wù)器的并發(fā)會(huì)話數(shù)超限時(shí),防火墻將封鎖到該服務(wù)器的所有其他的連接嘗試。
5.在默認(rèn)情況下,最初的TCP三次握手的超時(shí)值為20秒,會(huì)話建立后,超時(shí)值改變?yōu)?800秒;對(duì)于HTTP和UDP,超時(shí)值分別為300秒和60秒。當(dāng)發(fā)生攻擊時(shí),并發(fā)會(huì)話數(shù)很快增長(zhǎng),但由于超時(shí)值的限制,那些沒(méi)有完成的連接會(huì)話就會(huì)迅速填滿會(huì)話表。防火墻提供了一種主動(dòng)失效機(jī)制,當(dāng)會(huì)話表的使用達(dá)到一個(gè)高限值時(shí)(比如最大并發(fā)會(huì)話數(shù)的80%),縮短會(huì)話超時(shí)值,提前刪除會(huì)話。當(dāng)會(huì)話表的使用低于某個(gè)低限值時(shí)(比如最大并發(fā)會(huì)話數(shù)的60%),超時(shí)值恢復(fù)為默認(rèn)值,超時(shí)進(jìn)程恢復(fù)正常。主動(dòng)失效機(jī)制將以設(shè)定的會(huì)話主動(dòng)失效速率縮短默認(rèn)的會(huì)話超時(shí)值,加速會(huì)話失效。失效速率值可在2~10個(gè)單位間選擇(每個(gè)單位表示10秒)。該功能要通過(guò)命令來(lái)設(shè)置。
set flow aging low-watermark 60
set flow aging high-watermark 80
set flow aging early-ageout 6
上述設(shè)置的作用是當(dāng)會(huì)話表的使用達(dá)到最大并發(fā)會(huì)話數(shù)的80%時(shí),啟動(dòng)主動(dòng)失效機(jī)制加速會(huì)話失效。此時(shí),TCP的會(huì)話超時(shí)值由1800秒縮短為1740秒, HTTP的會(huì)話超時(shí)值由300秒縮短為240秒,而UDP的會(huì)話超時(shí)值縮短為0。防火墻將自動(dòng)刪除超時(shí)值超過(guò)1740秒的TCP會(huì)話和超時(shí)值超過(guò)240秒的HTTP會(huì)話,首先開(kāi)始刪除最早的會(huì)話。提前60秒超時(shí)的設(shè)置導(dǎo)致所有的UDP會(huì)話超時(shí),并在下一次垃圾清掃時(shí)被刪除。當(dāng)會(huì)話表的使用下降到最大并發(fā)會(huì)話數(shù)的60%時(shí),停止加速失效,會(huì)話超時(shí)值恢復(fù)為原來(lái)的默認(rèn)值。這樣可以有效地抑制使防火墻會(huì)話表泛濫的攻擊。
1.當(dāng)認(rèn)證用戶發(fā)起Telnet或FTP連接時(shí),防火墻截取用戶發(fā)往Telnet或FTP服務(wù)器的SYN片段,在其會(huì)話表中創(chuàng)建一個(gè)條目,并代發(fā)一個(gè) SYN-ACK片段給用戶,然后該用戶用ACK應(yīng)答,從而完成最初的三次握手。之后,防火墻向用戶發(fā)出登陸提示。如果用戶是一個(gè)攻擊者,他沒(méi)有響應(yīng)登陸而是繼續(xù)發(fā)起SYN-ACK-ACK會(huì)話,由此引發(fā)了SYN-ACK-ACK代理泛濫,最終會(huì)填滿防火墻的會(huì)話表,從而拒絕合法用戶的連接請(qǐng)求。
2.為阻擋這種攻擊,可以啟動(dòng)SCREEN的“SYN-ACK-ACK Proxy Protection”選項(xiàng)。在來(lái)自相同IP地址的連接數(shù)目達(dá)到SYN-ACK-ACK代理閥值后(默認(rèn)是512,可選1-250000之間任何整數(shù)以適應(yīng)不同的網(wǎng)絡(luò)環(huán)境)防火墻將拒絕來(lái)自該地址的更多其他連接請(qǐng)求。
1. 利用欺騙性的IP源地址(不存在或不可到達(dá))大量發(fā)送請(qǐng)求TCP連接的SYN片段,這些無(wú)法完成的TCP連接請(qǐng)求,造成受害主機(jī)的內(nèi)存緩沖區(qū)被填滿,甚至操作系統(tǒng)被破壞,從而無(wú)法再處理合法的連接請(qǐng)求,此時(shí)就發(fā)生了SYN泛濫。
2.為阻擋這種攻擊,可以啟動(dòng)SCREEN的“SYN Flood Protection”選項(xiàng)。防火墻設(shè)定每秒通過(guò)指定對(duì)象(目標(biāo)地址和端口、僅目標(biāo)地址或僅源地址)的SYN片段數(shù)的閥值,當(dāng)來(lái)自相同源地址或發(fā)往相同目標(biāo)地址的SYN片段數(shù)達(dá)到這些閥值之一時(shí),防火墻就開(kāi)始截取連接請(qǐng)求和代理回復(fù)SYN/ACK片段,并將不完全的連接請(qǐng)求存儲(chǔ)到連接隊(duì)列中直到連接完成或請(qǐng)求超時(shí)。當(dāng)防火墻中代理連接的隊(duì)列被填滿時(shí),防火墻拒絕來(lái)自相同安全區(qū)域(zone)中所有地址的新SYN片段,避免網(wǎng)絡(luò)主機(jī)遭受不完整的三次握手的攻擊。
3.設(shè)置下列檢測(cè)和防御SYN泛濫攻擊的閥值
Attack Threshold:每秒發(fā)往相同目標(biāo)地址和端口號(hào)的SYN片段數(shù)目達(dá)到該閥值時(shí)將激活SYN代理(默認(rèn)值是200)。如果設(shè)置Attack Threshold=1000pps,當(dāng)攻擊者每秒發(fā)送999個(gè)FTP封包和999個(gè)HTTP封包,由于每一組封包(具有相同目的地址和端口號(hào)的封包被視為一組)都沒(méi)有超過(guò)1000pps的設(shè)定閥值,因此不會(huì)激活SYN代理。
Alarm Threshold:每秒代理的發(fā)往相同目標(biāo)地址和端口號(hào)的未完成的連接請(qǐng)求數(shù)超過(guò)此閥值時(shí)將觸發(fā)警告(默認(rèn)值是1024)。如果設(shè)定Attack Threshold=300,Alarm Threshold=1000,則每秒發(fā)往相同目標(biāo)地址和端口號(hào)的前300個(gè)SYN片段可以通過(guò)防火墻,在同一秒內(nèi),防火墻代理后面的1000個(gè)SYN片段,第1001個(gè)代理連接請(qǐng)求(即該秒內(nèi)第1301個(gè)連接請(qǐng)求)將會(huì)觸發(fā)警告。
Source Threshold:防火墻開(kāi)始丟棄來(lái)自該源地址的連接請(qǐng)求之前,每秒從單個(gè)源IP地址接收的SYN片段數(shù)目(不管目標(biāo)地址和端口號(hào)是什么)。默認(rèn)值是 4000pps。設(shè)置了此閥值時(shí),不管目標(biāo)地址和端口號(hào)是什么,防火墻都將跟蹤SYN封包的源地址;當(dāng)超過(guò)此閥值時(shí),對(duì)于該秒的剩余時(shí)間及下一秒內(nèi),防火墻將拒絕來(lái)自該源地址的所有其他SYN封包。
Distination Threshold:當(dāng)每秒發(fā)往單個(gè)目標(biāo)IP地址(不管目標(biāo)端口號(hào))的SYN片段數(shù)目超過(guò)此閥值時(shí),防火墻將拒絕發(fā)往該目標(biāo)地址的所有新連接請(qǐng)求。默認(rèn)值是40000pps。如果設(shè)定Distination Threshold=1000pps,當(dāng)攻擊者每秒發(fā)送999個(gè)FTP封包和999個(gè)HTTP封包時(shí),防火墻將發(fā)往同一目標(biāo)的FTP和HTTP封包看成是一個(gè)組的成員,并拒絕發(fā)往該目標(biāo)地址的第1001個(gè)封包(FTP或HTTP封包)。
Timeout:未完成的TCP連接被從代理連接隊(duì)列中丟棄前的最長(zhǎng)等待時(shí)間。默認(rèn)是20秒。
Queue size:防火墻開(kāi)始拒絕新連接請(qǐng)求前,代理連接隊(duì)列中最大存放代理連接請(qǐng)求的數(shù)量。默認(rèn)值是10240.
1. 受害者耗盡所有資源來(lái)響應(yīng)ICMP回應(yīng)請(qǐng)求,直至無(wú)法處理有效的網(wǎng)絡(luò)信息時(shí),就發(fā)生ICMP泛濫。
2.啟用SCREEN的“ICMP Flood Protection”選項(xiàng)可以抵御ICMP泛濫攻擊。一旦超過(guò)設(shè)定的閥值(默認(rèn)為每秒1000個(gè)封包),防火墻在該秒余下的時(shí)間和下一秒內(nèi)拒絕來(lái)自相同安全區(qū)域(zone)所有地址的更多ICMP回應(yīng)請(qǐng)求。
1. 當(dāng)攻擊者大量發(fā)送含有UDP數(shù)據(jù)報(bào)的IP封包以減慢受害者的操作速度,以致于受害者無(wú)法處理有效的連接時(shí),就發(fā)生UDP泛濫。
2.啟用SCREEN的“UDP Flood Protection”選項(xiàng)可以抵御UDP泛濫攻擊。如果發(fā)送給單個(gè)目標(biāo)的UDP數(shù)據(jù)報(bào)數(shù)目超過(guò)設(shè)定的閥值(默認(rèn)為每秒1000個(gè)封包),防火墻在該秒余下的時(shí)間和下一秒內(nèi)拒絕來(lái)自相同安全區(qū)域(zone)并發(fā)往該目標(biāo)地址的更多UDP數(shù)據(jù)報(bào)。
1. Land攻擊將SYN泛濫攻擊和IP地址欺騙結(jié)合在一起。當(dāng)攻擊者大量發(fā)送以被攻擊者的IP地址作為源和目的地址的SYN封包時(shí),就發(fā)生Land攻擊。被攻擊者向自己發(fā)送SYN-ACK封包進(jìn)行響應(yīng),創(chuàng)建一個(gè)空的連接,該連接一直保持到連接超時(shí)為止。大量的這種空連接將耗盡系統(tǒng)的資源,導(dǎo)致DoS發(fā)生。
2.啟用SCREEN的“Land Attack Protection”選項(xiàng)可以封鎖Land攻擊。防火墻將SYN泛濫防御和IP地址欺騙防御技術(shù)有機(jī)地相結(jié)合,防御這種攻擊。
1.IP協(xié)議規(guī)定最大IP封包長(zhǎng)度是65535字節(jié),其中包括長(zhǎng)度通常為20字節(jié)的封包包頭。ICMP回應(yīng)請(qǐng)求是一個(gè)含有8字節(jié)ICMP包頭的IP封包,因此ICMP回應(yīng)請(qǐng)求數(shù)據(jù)區(qū)最大長(zhǎng)度是65507字節(jié)(65535-20-8)。
2.許多ping程序允許用戶指定大于65507字節(jié)的封包大小,在發(fā)送過(guò)大的ICMP封包時(shí),它將被分解成許多碎片,重組過(guò)程可能導(dǎo)致接受系統(tǒng)崩潰。
3.啟用SCREEN的“Ping of Death Attack Protection”選項(xiàng),防火墻將檢測(cè)并拒絕這些過(guò)大且不規(guī)則的封包,即便是攻擊者通過(guò)故意分段來(lái)隱藏總封包大小。
1. IP包頭的碎片偏移字段表示封包碎片包含的數(shù)據(jù)相對(duì)原始未分段封包數(shù)據(jù)的開(kāi)始位置或偏移。當(dāng)一個(gè)封包碎片的開(kāi)始位置與前一個(gè)封包的結(jié)束位置發(fā)生重疊時(shí)(例如,一個(gè)封包的偏移是0,長(zhǎng)度是820,下一個(gè)封包的偏移是800),將會(huì)導(dǎo)致有些系統(tǒng)在重組封包時(shí)引起系統(tǒng)崩潰,特別是含有漏洞的系統(tǒng)。 Teardrop攻擊就是利用了IP封包碎片重組的特性。
2.啟用SCREEN的“Teardrop Attack Protection”選項(xiàng),只要防火墻檢測(cè)到封包碎片中這種差異就丟棄該封包。
1. WinNuke攻擊是針對(duì)互聯(lián)網(wǎng)上運(yùn)行Windows系統(tǒng)的計(jì)算機(jī)。攻擊者將TCP片段發(fā)送給已建立連接的主機(jī)(通常發(fā)送給設(shè)置了緊急標(biāo)志URG的 NetBIOS端口139),這樣就產(chǎn)生NetBIOS碎片重疊,從而導(dǎo)致運(yùn)行Windows系統(tǒng)的機(jī)器崩潰。重新啟動(dòng)遭受攻擊的機(jī)器后,會(huì)顯示下面的信息:
An exception OE has occurred at 0028:[address] in VxD MSTCP(01)
000041AE. This was called from 0028:[address] in VxD NDIS(01)
00008660.It may be possible to continue normally.
Press any key to attempt to continue.
Press CTRL ALT DEL to restart your computer. You will lose any unsaved information in all applications.
Press any key to continue.
2.啟用SCREEN的“WinNuke Attack Protection”選項(xiàng),防火墻掃描所有流入139端口(NetBIOS會(huì)話服務(wù))的封包,如果發(fā)現(xiàn)其中一個(gè)封包設(shè)置了URG標(biāo)志,防火墻將取消該 URG標(biāo)志,清除URG指針,轉(zhuǎn)發(fā)修改后的指針,然后在事件日志中寫(xiě)入一個(gè)條目,說(shuō)明其已封鎖了一個(gè)WinNuke攻擊的嘗試。