防火墙攻击防范技术1 概述攻击防范功能是防火墙的重要特性之一,通过分析报文的内容特征和行为特征判断报文是否具有攻击特性,并且对攻击行为采取措施以保护网络主机或者网络设备。
防火墙的攻击防范功能能够检测拒绝服务型(Denial of Service,DoS)、扫描窥探型、畸形报文型等多种类型的攻击,并对攻击采取合理的防范措施。
攻击防范的具体功能包括黑名单过滤、报文攻击特征识别、流量异常检测和入侵检测统计。
1.1 产生背景随着网络技术的普及,网络攻击行为出现得越来越频繁。
另外,由于网络应用的多样性和复杂性,使得各种网络病毒泛滥,更加剧了网络被攻击的危险。
目前,Internet上常见的网络安全威胁分为以下三类:●DoS攻击DoS攻击是使用大量的数据包攻击目标系统,使目标系统无法接受正常用户的请求,或者使目标主机挂起不能正常工作。
主要的DoS攻击有SYN Flood、Fraggle 等。
DoS攻击和其它类型的攻击不同之处在于,攻击者并不是去寻找进入目标网络的入口,而是通过扰乱目标网络的正常工作来阻止合法用户访问网络资源。
●扫描窥探攻击扫描窥探攻击利用ping扫描(包括ICMP和TCP)标识网络上存在的活动主机,从而可以准确地定位潜在目标的位置;利用TCP和UDP端口扫描检测出目标操作系统和启用的服务类型。
攻击者通过扫描窥探就能大致了解目标系统提供的服务种类和潜在的安全漏洞,为进一步侵入目标系统做好准备。
●畸形报文攻击畸形报文攻击是通过向目标系统发送有缺陷的IP报文,如分片重叠的IP报文、TCP标志位非法的报文,使得目标系统在处理这样的IP报文时崩溃,给目标系统带来损失。
主要的畸形报文攻击有Ping of Death、Teardrop等。
在多种网络攻击类型中,DOS攻击是最常见的一种,因为这种攻击方式对攻击技能要求不高,攻击者可以利用各种开放的攻击软件实施攻击行为,所以DoS攻击的威胁逐步增大。
成功的DoS攻击会导致服务器性能急剧下降,造成正常客户访问失败;同时,提供服务的企业的信誉也会蒙受损失,而且这种危害是长期性的。
防火墙必须能够利用有效的攻击防范技术主动防御各种常见的网络攻击,保证网络在遭受越来越频繁的攻击的情况下能够正常运行,从而实现防火墙的整体安全解决1.2 技术优点攻击防范通过特征识别技术,能够精确识别出数十种攻击特征报文,如Large ICMP攻击报文、畸形TCP报文、Tracert探测报文等。
对于采用服务器允许的合法协议发起的DoS/DDoS攻击,攻击防范采用基于行为模式的异常检测算法,能够精确识别攻击流量和正常流量,有效阻断攻击流量,同时保证正常流量通过,避免对正常流量产生拒绝服务。
攻击防范能够检测到的流量异常攻击类型包括SYN Flood、ICMP Flood、UDP Flood等。
2 攻击防范技术实现2.1 ICMP重定向攻击1. 攻击介绍攻击者向同一个子网的主机发送ICMP重定向报文,请求主机改变路由。
一般情况下,设备仅向同一个网段内的主机而不向其它设备发送ICMP重定向报文。
但一些恶意的攻击可能跨越网段向另外一个网络的主机发送虚假的重定向报文,以期改变这些主机的路由表,干扰主机正常的IP报文转发。
2. 防御方法检测进入防火墙的报文类型是否为ICMP重定向报文,如果是,则根据用户配置选择对报文进行丢弃或转发,同时记录日志。
2.2 ICMP不可达攻击1. 攻击介绍不同的系统对ICMP不可达报文(类型为3)的处理不同,有的系统在收到网络(代码为0)或主机(代码为1)不可达的ICMP报文后,对于后续发往此目的地的报文直接认为不可达,好像切断了目的地与主机的连接,造成攻击。
2. 防御方法检测进入防火墙的报文类型是否为ICMP不可达报文,如果是,则根据用户配置选择对报文进行丢弃或转发,同时记录日志。
2.3 地址扫描攻击1. 攻击介绍运用ping类型的程序探测目标地址,对此做出响应的系统表示其存在,该探测可以用来确定哪些目标系统确实存在并且是连接在目标网络上的。
也可以使用TCP/UDP报文对一定地址发起连接(如TCP ping),通过判断是否有应答报文来探测目标网络上有哪些系统是开放的。
2. 防御方法检测进入防火墙的ICMP、TCP和UDP报文,统计从同一个源IP地址发出报文的不同目的IP地址个数。
如果在一定的时间内,目的IP地址的个数达到设置的阈值,则直接丢弃报文,并记录日志,然后根据配置决定是否将源IP地址加入黑名单。
2.4 端口扫描攻击1. 攻击介绍端口扫描攻击通常使用一些软件,向目标主机的一系列TCP/UDP端口发起连接,根据应答报文判断主机是否使用这些端口提供服务。
利用TCP报文进行端口扫描时,攻击者向目标主机发送连接请求(TCP SYN)报文,若请求的TCP端口是开放的,目标主机回应一个TCP ACK报文,若请求的服务未开放,目标主机回应一个TCP RST报文,通过分析回应报文是ACK报文还是RST报文,攻击者可以判断目标主机是否启用了请求的服务。
利用UDP报文进行端口扫描时,攻击者向目标主机发送UDP报文,若目标主机上请求的目的端口未开放,目标主机回应ICMP 不可达报文,若该端口是开放的,则不会回应ICMP报文,通过分析是否回应了ICMP不可达报文,攻击者可以判断目标主机是否启用了请求的服务。
这种攻击通常在判断出目标主机开放了哪些端口之后,将会针对具体的端口进行更进一步的攻击。
2. 防御方法检测进入防火墙的TCP和UDP报文,统计从同一个源IP地址发出报文的不同目的端口个数。
如果在一定的时间内,端口个数达到设置的阈值,则直接丢弃报文,并记录日志,然后根据配置决定是否将源IP地址加入黑名单。
2.5 IP源站选路选项攻击1. 攻击介绍IP报文中的源站选路选项(Source Route)通常用于网络路径的故障诊断和某些特殊业务的临时传送。
携带IP源站选路选项的报文在转发过程中会忽略传输路径中各个设备的转发表项,比如,若要指定一个IP报文必须经过三台路由器R1、R2、R3,则可以在该报文的源路由选项中明确指明这三个路由器的接口地址,这样不论三台路由器上的路由表如何,这个IP报文就会依次经过R1、R2、R3。
而且这些带源路由选项的IP报文在传输的过程中,其源地址和目标地址均在不断改变,因此,通过设置特定的源路由选项,攻击者便可以伪造一些合法的IP 地址,从而蒙混进入目标网络。
2. 防御方法检测进入防火墙的报文是否设置IP源站选路选项,如果是,则根据用户配置选择对报文进行丢弃或转发,并记录日志。
2.6 路由记录选项攻击1. 攻击介绍与IP源站选路功能类似,在IP路由技术中,还提供了路由记录选项(Route Record)。
携带路由记录选项的IP报文在转发过程中,会在路由记录选项字段中记录它从源到目的过程中所经过的路径,也就是记录一个处理过此报文的路由器的列表。
IP路由记录选项通常用于网络路径的故障诊断,但若被攻击者利用,攻击者可以通过提取选项中携带的路径信息探测出网络结构。
2. 防御方法检测进入防火墙的报文是否设置IP路由记录选项,如果是,则根据用户配置选择对报文进行丢弃或转发,并记录日志。
2.7 Tracert探测1. 攻击介绍Tracert探测一般是连续发送TTL从1开始递增的目的端口为端口号较大的UDP 报文,也有些系统是发送ICMP Ping报文。
由于报文经过路由器时TTL会被减1,且协议规定如果TTL为0,路由器须给报文的源IP回送一个TTL超时的ICMP差错报文。
Tracert攻击者分析返回的ICMP送错报文中的源IP地址,从而获取到达目的地所经过的路径信息,达到窥探网络拓扑结构的目的。
2. 防御方法检测ICMP报文是否为超时报文(类型为11)或目的端口不可达报文(类型为3,代码为3),如果是,则根据用户配置选择对报文进行转发或丢弃,同时记录日志。
2.8 Land攻击1. 攻击介绍Land攻击利用TCP连接建立的三次握手功能,通过将TCP SYN包的源地址和目标地址都设置成某一个受攻击者的IP地址,导致受攻击者向自己的地址发送SYN ACK消息。
这样,受攻击者在收到SYN ACK消息后,就会又向自己发送ACK消息,并创建一个空TCP连接,而每一个这样的连接都将保留直到超时。
因此,如果攻击者发送了足够多的SYN报文,就会导致被攻击者系统资源大量消耗。
各种系统对Land攻击的反应不同,UNIX主机将崩溃,Windows NT主机会变得极其缓慢。
2. 防御方法检测每一个IP报文的源地址和目标地址,若两者相同,或者源地址为环回地址127.0.0.1,则根据用户配置选择对报文进行转发或拒绝接收,并将该攻击记录到日志。
2.9 Smurf攻击1. 攻击介绍简单的Smurf攻击是向目标网络主机发ICMP应答请求报文,该请求报文的目的地址设置为目标网络的广播地址,这样目标网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。
高级的Smurf攻击是将ICMP应答请求报文的源地址改为目标主机的地址,通过向目标主机持续发送ICMP应答请求报文最终导致其崩溃。
2. 防御方法检查ICMP应答请求报文的目的地址是否为子网广播地址或子网的网络地址,如是,则根据用户配置选择对报文进行转发或拒绝接收,并将该攻击记录到日志。
2.10 Fraggle攻击1. 攻击介绍Fraggle攻击类似于Smurf攻击,只是它利用UDP应答报文而非ICMP报文。
攻击者向某子网广播地址发送源地址为目标网络或目标主机的UDP报文,目的端口号使用7(ECHO服务)或19(Chargen服务)。
该子网内启用了ECHO服务或者Chargen服务的每个主机都会向目标网络或目标主机发送响应报文,从而引发大量无用的响应报文,导致目标网络的阻塞或目标主机的崩溃。
2. 防御方法检查进入防火墙的UDP报文,如果报文的目的端口号为7或19,则根据用户配置选择对报文进行转发或拒绝接收,并将该攻击记录到日志,否则允许通过。
2.11 WinNuke攻击1. 攻击介绍WinNuke攻击是向Windows系统的特定目标的NetBIOS端口(139)发送OOB (Out-of-Band,带外)数据包,这些攻击报文的指针字段与实际的位置不符,即存在重合,从而引起一个NetBIOS片断重叠,致使已经与其它主机建立TCP连接的目标主机在处理这些数据的时候崩溃。
2. 防御方法检查进入防火墙的UDP报文,如果报文的目的端口号为139,且TCP的紧急标志被置位,而且携带了紧急数据区,则根据用户配置选择对报文进行转发或拒绝接收,并将该攻击记录到日志。
2.12 SYN Flood攻击1. 攻击介绍SYN Flood攻击通过伪造一个SYN报文向服务器发起连接,其源地址是伪造的或者一个不存在的地址。