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