DoS攻击内容回顾
1. 拒绝服务攻击的目的是用极大量的虚拟信息流耗尽受害者的资源,使其无法处理合法的信息流。攻击的目标可以是防火墙、防火墙所保护的网络资源、个别主机的特定硬件平台或操作系统等。通常DoS攻击中的源地址是欺骗性的。
2. 发自多个源地址的DoS攻击称为分布式拒绝服务攻击(DDoS)。DoS攻击中的源地址可以是欺骗性地址,也可以是被损害过的主机的实际地址,或者是攻击者目前正用作“zombie代理”且从中发起攻击的主机实际地址。
3. netscreen防火墙提供了九种拒绝服务攻击的检测和防御:会话表泛滥攻击的检测和防御、SYN-ACK-ACK代理泛滥攻击的检测和防御、SYN泛滥攻击的检测和防御、ICMP泛滥攻击的检测和防御、UDP泛滥攻击的检测和防御、陆地攻击的检测和防御、Ping of Death攻击的检测和防御、Teardrop攻击的检测和防御和WinNuke攻击的检测和防御。
DoS攻击的检测和防御——会话表泛滥攻击
1.攻击者通过填满防火墙的会话表,使防火墙不能产生任何新的会话,拒绝新的连接请求,从而产生DoS攻击。防火墙主要采用基于源和目标的会话限制和主动调整会话超时的主动失效机制两种手段来减轻这类攻击。
2.选择SCREEN选项“Source IP Based Session Limit”和“Destination IP Based Session Limit” 将启动基于源和目标的会话限制功能。默认的基于源和目标的会话限制是每秒128个并发连接。
3.基于源的会话限制将限制来自相同源地址的并发会话数目,可以阻止像Nimda、冲击波这样的病毒和蠕虫的DoS攻击。这类病毒会感染服务器,然后从服务器产生大量的信息流。由于所有由病毒产生的信息流都始发于相同的IP地址,因此基于源的会话限制可以保证防火墙能抑制这类巨量的信息流。当来自某个IP 地址的并发会话数达到最大限值后,防火墙开始封锁来自该IP地址的所有其他连接尝试。假如网络发生了冲击波病毒,我们可以将内网的基于源的会话限制设置为一个比较低的值(比如设为50),那些不能上网的机器,很可能就是中了毒,立刻隔离并进行查杀病毒和打补丁。
4.攻击者可以从上百个被他控制的主机上发起分布式拒绝服务(DDoS)攻击。基于目标的会话限制可以确保防火墙只允许可接受数目的并发连接请求到达任意主机,而不管其来源。当访问某服务器的并发会话数超限时,防火墙将封锁到该服务器的所有其他的连接尝试。
5.在默认情况下,最初的TCP三次握手的超时值为20秒,会话建立后,超时值改变为1800秒;对于HTTP和UDP,超时值分别为300秒和60秒。当发生攻击时,并发会话数很快增长,但由于超时值的限制,那些没有完成的连接会话就会迅速填满会话表。
防火墙提供了一种主动失效机制,当会话表的使用达到一个高限值时(比如最大并发会话数的80%),缩短会话超时值,提前删除会话。当会话表的使用低于某个低限值时(比如最大并发会话数的60%),超时值恢复为默认值,超时进程恢复正常。主动失效机制将以设定的会话主动失效速率缩短默认的会话超时值,加速会话失效。失效速率值可在2~10个单位间选择(每个单位表示10秒)。该功能要通过命令来设置。
- set flow aging low-watermark 60
- set flow aging high-watermark 80
- set flow aging early-ageout 6
上述设置的作用是当会话表的使用达到最大并发会话数的80%时,启动主动失效机制加速会话失效。此时,TCP的会话超时值由1800秒缩短为1740秒, HTTP的会话超时值由300秒缩短为240秒,而UDP的会话超时值缩短为0。防火墙将自动删除超时值超过1740秒的TCP会话和超时值超过240秒的HTTP会话,首先开始删除最早的会话。提前60秒超时的设置导致所有的UDP会话超时,并在下一次垃圾清扫时被删除。当会话表的使用下降到最大并发会话数的60%时,停止加速失效,会话超时值恢复为原来的默认值。这样可以有效地抑制使防火墙会话表泛滥的攻击。
DoS攻击的检测和防御——SYN-ACK-ACK代理泛滥攻击
1.当认证用户发起Telnet或FTP连接时,防火墙截取用户发往Telnet或FTP服务器的SYN片段,在其会话表中创建一个条目,并代发一个 SYN-ACK片段给用户,然后该用户用ACK应答,从而完成最初的三次握手。之后,防火墙向用户发出登陆提示。如果用户是一个攻击者,他没有响应登陆而是继续发起SYN-ACK-ACK会话,由此引发了SYN-ACK-ACK代理泛滥,最终会填满防火墙的会话表,从而拒绝合法用户的连接请求。
2.为阻挡这种攻击,可以启动SCREEN的“SYN-ACK-ACK Proxy Protection”选项。在来自相同IP地址的连接数目达到SYN-ACK-ACK代理阀值后(默认是512,可选1-250000之间任何整数以适应不同的网络环境)防火墙将拒绝来自该地址的更多其他连接请求。
DoS攻击的检测和防御——SYN泛滥攻击
1. 利用欺骗性的IP源地址(不存在或不可到达)大量发送请求TCP连接的SYN片段,这些无法完成的TCP连接请求,造成受害主机的内存缓冲区被填满,甚至操作系统被破坏,从而无法再处理合法的连接请求,此时就发生了SYN泛滥。
2.为阻挡这种攻击,可以启动SCREEN的“SYN Flood Protection”选项。防火墙设定每秒通过指定对象(目标地址和端口、仅目标地址或仅源地址)的SYN片段数的阀值,当来自相同源地址或发往相同目标地址的SYN片段数达到这些阀值之一时,防火墙就开始截取连接请求和代理回复SYN/ACK片段,并将不完全的连接请求存储到连接队列中直到连接完成或请求超时。当防火墙中代理连接的队列被填满时,防火墙拒绝来自相同安全区域(zone)中所有地址的新SYN片段,避免网络主机遭受不完整的三次握手的攻击。
3.设置下列检测和防御SYN泛滥攻击的阀值
Attack Threshold:每秒发往相同目标地址和端口号的SYN片段数目达到该阀值时将激活SYN代理(默认值是200)。如果设置Attack Threshold=1000pps,当攻击者每秒发送999个FTP封包和999个HTTP封包,由于每一组封包(具有相同目的地址和端口号的封包被视为一组)都没有超过1000pps的设定阀值,因此不会激活SYN代理。
Alarm Threshold:每秒代理的发往相同目标地址和端口号的未完成的连接请求数超过此阀值时将触发警告(默认值是1024)。如果设定Attack Threshold=300,Alarm Threshold=1000,则每秒发往相同目标地址和端口号的前300个SYN片段可以通过防火墙,在同一秒内,防火墙代理后面的1000个SYN片段,第1001个代理连接请求(即该秒内第1301个连接请求)将会触发警告。
Source Threshold:防火墙开始丢弃来自该源地址的连接请求之前,每秒从单个源IP地址接收的SYN片段数目(不管目标地址和端口号是什么)。默认值是 4000pps。设置了此阀值时,不管目标地址和端口号是什么,防火墙都将跟踪SYN封包的源地址;当超过此阀值时,对于该秒的剩余时间及下一秒内,防火墙将拒绝来自该源地址的所有其他SYN封包。
Distination Threshold:当每秒发往单个目标IP地址(不管目标端口号)的SYN片段数目超过此阀值时,防火墙将拒绝发往该目标地址的所有新连接请求。默认值是40000pps。如果设定Distination Threshold=1000pps,当攻击者每秒发送999个FTP封包和999个HTTP封包时,防火墙将发往同一目标的FTP和HTTP封包看成是一个组的成员,并拒绝发往该目标地址的第1001个封包(FTP或HTTP封包)。
Timeout:未完成的TCP连接被从代理连接队列中丢弃前的最长等待时间。默认是20秒。
Queue size:防火墙开始拒绝新连接请求前,代理连接队列中最大存放代理连接请求的数量。默认值是10240.
DoS攻击的检测和防御——ICMP泛滥攻击
1. 受害者耗尽所有资源来响应ICMP回应请求,直至无法处理有效的网络信息时,就发生ICMP泛滥。
2.启用SCREEN的“ICMP Flood Protection”选项可以抵御ICMP泛滥攻击。一旦超过设定的阀值(默认为每秒1000个封包),防火墙在该秒余下的时间和下一秒内拒绝来自相同安全区域(zone)所有地址的更多ICMP回应请求。
DoS攻击的检测和防御——UDP泛滥攻击
1. 当攻击者大量发送含有UDP数据报的IP封包以减慢受害者的操作速度,以致于受害者无法处理有效的连接时,就发生UDP泛滥。
2.启用SCREEN的“UDP Flood Protection”选项可以抵御UDP泛滥攻击。如果发送给单个目标的UDP数据报数目超过设定的阀值(默认为每秒1000个封包),防火墙在该秒余下的时间和下一秒内拒绝来自相同安全区域(zone)并发往该目标地址的更多UDP数据报。
DoS攻击的检测和防御——陆地(Land)攻击
1. Land攻击将SYN泛滥攻击和IP地址欺骗结合在一起。当攻击者大量发送以被攻击者的IP地址作为源和目的地址的SYN封包时,就发生Land攻击。被攻击者向自己发送SYN-ACK封包进行响应,创建一个空的连接,该连接一直保持到连接超时为止。大量的这种空连接将耗尽系统的资源,导致DoS发生。
2.启用SCREEN的“Land Attack Protection”选项可以封锁Land攻击。防火墙将SYN泛滥防御和IP地址欺骗防御技术有机地相结合,防御这种攻击。
DoS攻击的检测和防御——Ping of Death攻击
1.IP协议规定最大IP封包长度是65535字节,其中包括长度通常为20字节的封包包头。ICMP回应请求是一个含有8字节ICMP包头的IP封包,因此ICMP回应请求数据区最大长度是65507字节(65535-20-8)。
2.许多ping程序允许用户指定大于65507字节的封包大小,在发送过大的ICMP封包时,它将被分解成许多碎片,重组过程可能导致接受系统崩溃。
3.启用SCREEN的“Ping of Death Attack Protection”选项,防火墙将检测并拒绝这些过大且不规则的封包,即便是攻击者通过故意分段来隐藏总封包大小。
DoS攻击的检测和防御——Teardrop攻击
1. IP包头的碎片偏移字段表示封包碎片包含的数据相对原始未分段封包数据的开始位置或偏移。当一个封包碎片的开始位置与前一个封包的结束位置发生重叠时(例如,一个封包的偏移是0,长度是820,下一个封包的偏移是800),将会导致有些系统在重组封包时引起系统崩溃,特别是含有漏洞的系统。 Teardrop攻击就是利用了IP封包碎片重组的特性。
2.启用SCREEN的“Teardrop Attack Protection”选项,只要防火墙检测到封包碎片中这种差异就丢弃该封包。
DoS攻击的检测和防御——WinNuke攻击
1. WinNuke攻击是针对互联网上运行Windows系统的计算机。攻击者将TCP片段发送给已建立连接的主机(通常发送给设置了紧急标志URG的 NetBIOS端口139),这样就产生NetBIOS碎片重叠,从而导致运行Windows系统的机器崩溃。重新启动遭受攻击的机器后,会显示下面的信息:
- 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会话服务)的封包,如果发现其中一个封包设置了URG标志,防火墙将取消该 URG标志,清除URG指针,转发修改后的指针,然后在事件日志中写入一个条目,说明其已封锁了一个WinNuke攻击的尝试。
防火墙的应用是目前比较实用和流行的检测和防御设备,上面九种防止DoS攻击的方法您学会了吗?这对于网络安全的学习是很实用的。
【编辑推荐】