NetScreen防火墻幫你檢測和防御九種DoS攻擊
DoS攻擊內(nèi)容回顧
1. 拒絕服務(wù)攻擊的目的是用極大量的虛擬信息流耗盡受害者的資源,使其無法處理合法的信息流。攻擊的目標(biāo)可以是防火墻、防火墻所保護(hù)的網(wǎng)絡(luò)資源、個(gè)別主機(jī)的特定硬件平臺或操作系統(tǒng)等。通常DoS攻擊中的源地址是欺騙性的。
2. 發(fā)自多個(gè)源地址的DoS攻擊稱為分布式拒絕服務(wù)攻擊(DDoS)。DoS攻擊中的源地址可以是欺騙性地址,也可以是被損害過的主機(jī)的實(shí)際地址,或者是攻擊者目前正用作“zombie代理”且從中發(fā)起攻擊的主機(jī)實(shí)際地址。
3. netscreen防火墻提供了九種拒絕服務(wù)攻擊的檢測和防御:會(huì)話表泛濫攻擊的檢測和防御、SYN-ACK-ACK代理泛濫攻擊的檢測和防御、SYN泛濫攻擊的檢測和防御、ICMP泛濫攻擊的檢測和防御、UDP泛濫攻擊的檢測和防御、陸地攻擊的檢測和防御、Ping of Death攻擊的檢測和防御、Teardrop攻擊的檢測和防御和WinNuke攻擊的檢測和防御。
DoS攻擊的檢測和防御——會(huì)話表泛濫攻擊
1.攻擊者通過填滿防火墻的會(huì)話表,使防火墻不能產(chǎn)生任何新的會(huì)話,拒絕新的連接請求,從而產(chǎn)生DoS攻擊。防火墻主要采用基于源和目標(biāo)的會(huì)話限制和主動(dòng)調(diào)整會(huì)話超時(shí)的主動(dòng)失效機(jī)制兩種手段來減輕這類攻擊。
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ì)話限制將限制來自相同源地址的并發(fā)會(huì)話數(shù)目,可以阻止像Nimda、沖擊波這樣的病毒和蠕蟲的DoS攻擊。這類病毒會(huì)感染服務(wù)器,然后從服務(wù)器產(chǎn)生大量的信息流。由于所有由病毒產(chǎn)生的信息流都始發(fā)于相同的IP地址,因此基于源的會(huì)話限制可以保證防火墻能抑制這類巨量的信息流。當(dāng)來自某個(gè)IP 地址的并發(fā)會(huì)話數(shù)達(dá)到最大限值后,防火墻開始封鎖來自該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ā)連接請求到達(dá)任意主機(jī),而不管其來源。當(dāng)訪問某服務(wù)器的并發(fā)會(huì)話數(shù)超限時(shí),防火墻將封鎖到該服務(wù)器的所有其他的連接嘗試。
5.在默認(rèn)情況下,最初的TCP三次握手的超時(shí)值為20秒,會(huì)話建立后,超時(shí)值改變?yōu)?800秒;對于HTTP和UDP,超時(shí)值分別為300秒和60秒。當(dāng)發(fā)生攻擊時(shí),并發(fā)會(huì)話數(shù)很快增長,但由于超時(shí)值的限制,那些沒有完成的連接會(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秒)。該功能要通過命令來設(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í)值超過1740秒的TCP會(huì)話和超時(shí)值超過240秒的HTTP會(huì)話,首先開始刪除最早的會(huì)話。提前60秒超時(shí)的設(shè)置導(dǎo)致所有的UDP會(huì)話超時(shí),并在下一次垃圾清掃時(shí)被刪除。當(dāng)會(huì)話表的使用下降到最大并發(fā)會(huì)話數(shù)的60%時(shí),停止加速失效,會(huì)話超時(shí)值恢復(fù)為原來的默認(rèn)值。這樣可以有效地抑制使防火墻會(huì)話表泛濫的攻擊。
DoS攻擊的檢測和防御——SYN-ACK-ACK代理泛濫攻擊
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è)攻擊者,他沒有響應(yīng)登陸而是繼續(xù)發(fā)起SYN-ACK-ACK會(huì)話,由此引發(fā)了SYN-ACK-ACK代理泛濫,最終會(huì)填滿防火墻的會(huì)話表,從而拒絕合法用戶的連接請求。
2.為阻擋這種攻擊,可以啟動(dòng)SCREEN的“SYN-ACK-ACK Proxy Protection”選項(xiàng)。在來自相同IP地址的連接數(shù)目達(dá)到SYN-ACK-ACK代理閥值后(默認(rèn)是512,可選1-250000之間任何整數(shù)以適應(yīng)不同的網(wǎng)絡(luò)環(huán)境)防火墻將拒絕來自該地址的更多其他連接請求。
DoS攻擊的檢測和防御——SYN泛濫攻擊
1. 利用欺騙性的IP源地址(不存在或不可到達(dá))大量發(fā)送請求TCP連接的SYN片段,這些無法完成的TCP連接請求,造成受害主機(jī)的內(nèi)存緩沖區(qū)被填滿,甚至操作系統(tǒng)被破壞,從而無法再處理合法的連接請求,此時(shí)就發(fā)生了SYN泛濫。
2.為阻擋這種攻擊,可以啟動(dòng)SCREEN的“SYN Flood Protection”選項(xiàng)。防火墻設(shè)定每秒通過指定對象(目標(biāo)地址和端口、僅目標(biāo)地址或僅源地址)的SYN片段數(shù)的閥值,當(dāng)來自相同源地址或發(fā)往相同目標(biāo)地址的SYN片段數(shù)達(dá)到這些閥值之一時(shí),防火墻就開始截取連接請求和代理回復(fù)SYN/ACK片段,并將不完全的連接請求存儲到連接隊(duì)列中直到連接完成或請求超時(shí)。當(dāng)防火墻中代理連接的隊(duì)列被填滿時(shí),防火墻拒絕來自相同安全區(qū)域(zone)中所有地址的新SYN片段,避免網(wǎng)絡(luò)主機(jī)遭受不完整的三次握手的攻擊。
3.設(shè)置下列檢測和防御SYN泛濫攻擊的閥值
Attack Threshold:每秒發(fā)往相同目標(biāo)地址和端口號的SYN片段數(shù)目達(dá)到該閥值時(shí)將激活SYN代理(默認(rèn)值是200)。如果設(shè)置Attack Threshold=1000pps,當(dāng)攻擊者每秒發(fā)送999個(gè)FTP封包和999個(gè)HTTP封包,由于每一組封包(具有相同目的地址和端口號的封包被視為一組)都沒有超過1000pps的設(shè)定閥值,因此不會(huì)激活SYN代理。
Alarm Threshold:每秒代理的發(fā)往相同目標(biāo)地址和端口號的未完成的連接請求數(shù)超過此閥值時(shí)將觸發(fā)警告(默認(rèn)值是1024)。如果設(shè)定Attack Threshold=300,Alarm Threshold=1000,則每秒發(fā)往相同目標(biāo)地址和端口號的前300個(gè)SYN片段可以通過防火墻,在同一秒內(nèi),防火墻代理后面的1000個(gè)SYN片段,第1001個(gè)代理連接請求(即該秒內(nèi)第1301個(gè)連接請求)將會(huì)觸發(fā)警告。
Source Threshold:防火墻開始丟棄來自該源地址的連接請求之前,每秒從單個(gè)源IP地址接收的SYN片段數(shù)目(不管目標(biāo)地址和端口號是什么)。默認(rèn)值是 4000pps。設(shè)置了此閥值時(shí),不管目標(biāo)地址和端口號是什么,防火墻都將跟蹤SYN封包的源地址;當(dāng)超過此閥值時(shí),對于該秒的剩余時(shí)間及下一秒內(nèi),防火墻將拒絕來自該源地址的所有其他SYN封包。
Distination Threshold:當(dāng)每秒發(fā)往單個(gè)目標(biāo)IP地址(不管目標(biāo)端口號)的SYN片段數(shù)目超過此閥值時(shí),防火墻將拒絕發(fā)往該目標(biāo)地址的所有新連接請求。默認(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ì)列中丟棄前的最長等待時(shí)間。默認(rèn)是20秒。
Queue size:防火墻開始拒絕新連接請求前,代理連接隊(duì)列中最大存放代理連接請求的數(shù)量。默認(rèn)值是10240.
DoS攻擊的檢測和防御——ICMP泛濫攻擊
1. 受害者耗盡所有資源來響應(yīng)ICMP回應(yīng)請求,直至無法處理有效的網(wǎng)絡(luò)信息時(shí),就發(fā)生ICMP泛濫。
2.啟用SCREEN的“ICMP Flood Protection”選項(xiàng)可以抵御ICMP泛濫攻擊。一旦超過設(shè)定的閥值(默認(rèn)為每秒1000個(gè)封包),防火墻在該秒余下的時(shí)間和下一秒內(nèi)拒絕來自相同安全區(qū)域(zone)所有地址的更多ICMP回應(yīng)請求。
DoS攻擊的檢測和防御——UDP泛濫攻擊
1. 當(dāng)攻擊者大量發(fā)送含有UDP數(shù)據(jù)報(bào)的IP封包以減慢受害者的操作速度,以致于受害者無法處理有效的連接時(shí),就發(fā)生UDP泛濫。
2.啟用SCREEN的“UDP Flood Protection”選項(xiàng)可以抵御UDP泛濫攻擊。如果發(fā)送給單個(gè)目標(biāo)的UDP數(shù)據(jù)報(bào)數(shù)目超過設(shè)定的閥值(默認(rèn)為每秒1000個(gè)封包),防火墻在該秒余下的時(shí)間和下一秒內(nèi)拒絕來自相同安全區(qū)域(zone)并發(fā)往該目標(biāo)地址的更多UDP數(shù)據(jù)報(bào)。
DoS攻擊的檢測和防御——陸地(Land)攻擊
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é)合,防御這種攻擊。
DoS攻擊的檢測和防御——Ping of Death攻擊
1.IP協(xié)議規(guī)定最大IP封包長度是65535字節(jié),其中包括長度通常為20字節(jié)的封包包頭。ICMP回應(yīng)請求是一個(gè)含有8字節(jié)ICMP包頭的IP封包,因此ICMP回應(yīng)請求數(shù)據(jù)區(qū)最大長度是65507字節(jié)(65535-20-8)。
2.許多ping程序允許用戶指定大于65507字節(jié)的封包大小,在發(fā)送過大的ICMP封包時(shí),它將被分解成許多碎片,重組過程可能導(dǎo)致接受系統(tǒng)崩潰。
3.啟用SCREEN的“Ping of Death Attack Protection”選項(xiàng),防火墻將檢測并拒絕這些過大且不規(guī)則的封包,即便是攻擊者通過故意分段來隱藏總封包大小。
DoS攻擊的檢測和防御——Teardrop攻擊
1. IP包頭的碎片偏移字段表示封包碎片包含的數(shù)據(jù)相對原始未分段封包數(shù)據(jù)的開始位置或偏移。當(dāng)一個(gè)封包碎片的開始位置與前一個(gè)封包的結(jié)束位置發(fā)生重疊時(shí)(例如,一個(gè)封包的偏移是0,長度是820,下一個(gè)封包的偏移是800),將會(huì)導(dǎo)致有些系統(tǒng)在重組封包時(shí)引起系統(tǒng)崩潰,特別是含有漏洞的系統(tǒng)。 Teardrop攻擊就是利用了IP封包碎片重組的特性。
2.啟用SCREEN的“Teardrop Attack Protection”選項(xiàng),只要防火墻檢測到封包碎片中這種差異就丟棄該封包。
DoS攻擊的檢測和防御——WinNuke攻擊
1. WinNuke攻擊是針對互聯(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ā)修改后的指針,然后在事件日志中寫入一個(gè)條目,說明其已封鎖了一個(gè)WinNuke攻擊的嘗試。
防火墻的應(yīng)用是目前比較實(shí)用和流行的檢測和防御設(shè)備,上面九種防止DoS攻擊的方法您學(xué)會(huì)了嗎?這對于網(wǎng)絡(luò)安全的學(xué)習(xí)是很實(shí)用的。
【編輯推薦】