防火墙攻击防范技术白皮书
关键词:攻击防范,拒绝服务
摘 要:本文主要分析了常见的网络攻击行为和对应的防范措施,并且介绍了H3C防火墙攻击防范的主要特色和典型组网应用。
缩略语:
缩略语 | 英文全名 | 中文解释 |
DMZ | De-Militarized Zone | 非军事区 |
DDoS | Distributed Denial of Service | 分布式拒绝服务 |
DoS | Denial of Service | 拒绝服务 |
目 录
攻击防范功能是防火墙的重要特性之一,通过分析报文的内容特征和行为特征判断报文是否具有攻击特性,并且对攻击行为采取措施以保护网络主机或者网络设备。
防火墙的攻击防范功能能够检测拒绝服务型(Denial of Service,DoS)、扫描窥探型、畸形报文型等多种类型的攻击,并对攻击采取合理的防范措施。攻击防范的具体功能包括黑名单过滤、报文攻击特征识别、流量异常检测和入侵检测统计。
随着网络技术的普及,网络攻击行为出现得越来越频繁。另外,由于网络应用的多样性和复杂性,使得各种网络病毒泛滥,更加剧了网络被攻击的危险。
目前,Internet上常见的网络安全威胁分为以下三类:
l DoS攻击
DoS攻击是使用大量的数据包攻击目标系统,使目标系统无法接受正常用户的请求,或者使目标主机挂起不能正常工作。主要的DoS攻击有SYN Flood、Fraggle等。DoS攻击和其它类型的攻击不同之处在于,攻击者并不是去寻找进入目标网络的入口,而是通过扰乱目标网络的正常工作来阻止合法用户访问网络资源。
l 扫描窥探攻击
扫描窥探攻击利用ping扫描(包括ICMP和TCP)标识网络上存在的活动主机,从而可以准确地定位潜在目标的位置;利用TCP和UDP端口扫描检测出目标操作系统和启用的服务类型。攻击者通过扫描窥探就能大致了解目标系统提供的服务种类和潜在的安全漏洞,为进一步侵入目标系统做好准备。
l 畸形报文攻击
畸形报文攻击是通过向目标系统发送有缺陷的IP报文,如分片重叠的IP报文、TCP标志位非法的报文,使得目标系统在处理这样的IP报文时崩溃,给目标系统带来损失。主要的畸形报文攻击有Ping of Death、Teardrop等。
在多种网络攻击类型中,DOS攻击是最常见的一种,因为这种攻击方式对攻击技能要求不高,攻击者可以利用各种开放的攻击软件实施攻击行为,所以DoS攻击的威胁逐步增大。成功的DoS攻击会导致服务器性能急剧下降,造成正常客户访问失败;同时,提供服务的企业的信誉也会蒙受损失,而且这种危害是长期性的。
防火墙必须能够利用有效的攻击防范技术主动防御各种常见的网络攻击,保证网络在遭受越来越频繁的攻击的情况下能够正常运行,从而实现防火墙的整体安全解决
攻击防范通过特征识别技术,能够精确识别出数十种攻击特征报文,如Large ICMP攻击报文、畸形TCP报文、Tracert探测报文等。
对于采用服务器允许的合法协议发起的DoS/DDoS攻击,攻击防范采用基于行为模式的异常检测算法,能够精确识别攻击流量和正常流量,有效阻断攻击流量,同时保证正常流量通过,避免对正常流量产生拒绝服务。攻击防范能够检测到的流量异常攻击类型包括SYN Flood、ICMP Flood、UDP Flood等。
攻击者向同一个子网的主机发送ICMP重定向报文,请求主机改变路由。一般情况下,设备仅向同一个网段内的主机而不向其它设备发送ICMP重定向报文。但一些恶意的攻击可能跨越网段向另外一个网络的主机发送虚假的重定向报文,以期改变这些主机的路由表,干扰主机正常的IP报文转发。
检测进入防火墙的报文类型是否为ICMP重定向报文,如果是,则根据用户配置选择对报文进行丢弃或转发,同时记录日志。
不同的系统对ICMP不可达报文(类型为3)的处理不同,有的系统在收到网络(代码为0)或主机(代码为1)不可达的ICMP报文后,对于后续发往此目的地的报文直接认为不可达,好像切断了目的地与主机的连接,造成攻击。
检测进入防火墙的报文类型是否为ICMP不可达报文,如果是,则根据用户配置选择对报文进行丢弃或转发,同时记录日志。
运用ping类型的程序探测目标地址,对此做出响应的系统表示其存在,该探测可以用来确定哪些目标系统确实存在并且是连接在目标网络上的。也可以使用TCP/UDP报文对一定地址发起连接(如TCP ping),通过判断是否有应答报文来探测目标网络上有哪些系统是开放的。
检测进入防火墙的ICMP、TCP和UDP报文,统计从同一个源IP地址发出报文的不同目的IP地址个数。如果在一定的时间内,目的IP地址的个数达到设置的阈值,则直接丢弃报文,并记录日志,然后根据配置决定是否将源IP地址加入黑名单。
端口扫描攻击通常使用一些软件,向目标主机的一系列TCP/UDP端口发起连接,根据应答报文判断主机是否使用这些端口提供服务。利用TCP报文进行端口扫描时,攻击者向目标主机发送连接请求(TCP SYN)报文,若请求的TCP端口是开放的,目标主机回应一个TCP ACK报文,若请求的服务未开放,目标主机回应一个TCP RST报文,通过分析回应报文是ACK报文还是RST报文,攻击者可以判断目标主机是否启用了请求的服务。利用UDP报文进行端口扫描时,攻击者向目标主机发送UDP报文,若目标主机上请求的目的端口未开放,目标主机回应ICMP不可达报文,若该端口是开放的,则不会回应ICMP报文,通过分析是否回应了ICMP不可达报文,攻击者可以判断目标主机是否启用了请求的服务。这种攻击通常在判断出目标主机开放了哪些端口之后,将会针对具体的端口进行更进一步的攻击。
检测进入防火墙的TCP和UDP报文,统计从同一个源IP地址发出报文的不同目的端口个数。如果在一定的时间内,端口个数达到设置的阈值,则直接丢弃报文,并记录日志,然后根据配置决定是否将源IP地址加入黑名单。
IP报文中的源站选路选项(Source Route)通常用于网络路径的故障诊断和某些特殊业务的临时传送。携带IP源站选路选项的报文在转发过程中会忽略传输路径中各个设备的转发表项,比如,若要指定一个IP报文必须经过三台路由器R1、R2、R3,则可以在该报文的源路由选项中明确指明这三个路由器的接口地址,这样不论三台路由器上的路由表如何,这个IP报文就会依次经过R1、R2、R3。而且这些带源路由选项的IP报文在传输的过程中,其源地址和目标地址均在不断改变,因此,通过设置特定的源路由选项,攻击者便可以伪造一些合法的IP地址,从而蒙混进入目标网络。
检测进入防火墙的报文是否设置IP源站选路选项,如果是,则根据用户配置选择对报文进行丢弃或转发,并记录日志。
与IP源站选路功能类似,在IP路由技术中,还提供了路由记录选项(Route Record)。携带路由记录选项的IP报文在转发过程中,会在路由记录选项字段中记录它从源到目的过程中所经过的路径,也就是记录一个处理过此报文的路由器的列表。IP路由记录选项通常用于网络路径的故障诊断,但若被攻击者利用,攻击者可以通过提取选项中携带的路径信息探测出网络结构。
检测进入防火墙的报文是否设置IP路由记录选项,如果是,则根据用户配置选择对报文进行丢弃或转发,并记录日志。
Tracert探测一般是连续发送TTL从1开始递增的目的端口为端口号较大的UDP报文,也有些系统是发送ICMP Ping报文。由于报文经过路由器时TTL会被减1,且协议规定如果TTL为0,路由器须给报文的源IP回送一个TTL超时的ICMP差错报文。Tracert攻击者分析返回的ICMP送错报文中的源IP地址,从而获取到达目的地所经过的路径信息,达到窥探网络拓扑结构的目的。
检测ICMP报文是否为超时报文(类型为11)或目的端口不可达报文(类型为3,代码为3),如果是,则根据用户配置选择对报文进行转发或丢弃,同时记录日志。
Land攻击利用TCP连接建立的三次握手功能,通过将TCP SYN包的源地址和目标地址都设置成某一个受攻击者的IP地址,导致受攻击者向自己的地址发送SYN ACK消息。这样,受攻击者在收到SYN ACK消息后,就会又向自己发送ACK消息,并创建一个空TCP连接,而每一个这样的连接都将保留直到超时。因此,如果攻击者发送了足够多的SYN报文,就会导致被攻击者系统资源大量消耗。各种系统对Land攻击的反应不同,UNIX主机将崩溃,Windows NT主机会变得极其缓慢。
检测每一个IP报文的源地址和目标地址,若两者相同,或者源地址为环回地址127.0.0.1,则根据用户配置选择对报文进行转发或拒绝接收,并将该攻击记录到日志。
简单的Smurf攻击是向目标网络主机发ICMP应答请求报文,该请求报文的目的地址设置为目标网络的广播地址,这样目标网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。高级的Smurf攻击是将ICMP应答请求报文的源地址改为目标主机的地址,通过向目标主机持续发送ICMP应答请求报文最终导致其崩溃。
检查ICMP应答请求报文的目的地址是否为子网广播地址或子网的网络地址,如是,则根据用户配置选择对报文进行转发或拒绝接收,并将该攻击记录到日志。
Fraggle攻击类似于Smurf攻击,只是它利用UDP应答报文而非ICMP报文。攻击者向某子网广播地址发送源地址为目标网络或目标主机的UDP报文,目的端口号使用7(ECHO服务)或19(Chargen服务)。该子网内启用了ECHO服务或者Chargen服务的每个主机都会向目标网络或目标主机发送响应报文,从而引发大量无用的响应报文,导致目标网络的阻塞或目标主机的崩溃。
检查进入防火墙的UDP报文,如果报文的目的端口号为7或19,则根据用户配置选择对报文进行转发或拒绝接收,并将该攻击记录到日志,否则允许通过。
WinNuke攻击是向Windows系统的特定目标的NetBIOS端口(139)发送OOB (Out-of-Band,带外)数据包,这些攻击报文的指针字段与实际的位置不符,即存在重合,从而引起一个NetBIOS片断重叠,致使已经与其它主机建立TCP连接的目标主机在处理这些数据的时候崩溃。
检查进入防火墙的UDP报文,如果报文的目的端口号为139,且TCP的紧急标志被置位,而且携带了紧急数据区,则根据用户配置选择对报文进行转发或拒绝接收,并将该攻击记录到日志。
SYN Flood攻击通过伪造一个SYN报文向服务器发起连接,其源地址是伪造的或者一个不存在的地址。服务器在收到该报文后发送SYN ACK报文应答,由于攻击报文的源地址不可达,因此应答报文发出去后,不会收到ACK报文,造成一个半连接。如果攻击者发送大量这样的报文,会在被攻击主机上出现大量的半连接,从而消耗其系统资源,使正常的用户无法访问。
将防火墙作为客户端与服务器通信的中继,当客户端发起连接时,防火墙并不把SYN报文传递给服务器,而是自己向客户端发送SYN ACK报文,之后如果防火墙收到客户端的确认报文,才会与服务器进行连接。
ICMP Flood攻击通过短时间内向特定目标系统发送大量的ICMP消息(如执行ping程序)来请求其回应,致使目标系统忙于处理这些请求报文而不能处理正常的网络数据报文。
通过智能流量检测技术检测通向特定目的地址的ICMP报文速率,如果报文速率超过阈值上限,则认为攻击开始,就根据用户的配置选择丢弃或者转发后续连接请求报文,同时将该攻击记录到日志。当速率低于设定的阈值下限后,检测到攻击结束,正常转发后续连接请求报文。
攻击原理与ICMP Flood攻击类似,攻击者在短时间内通过向特定目标发送大量的UDP消息,导致目标系统负担过重而不能处理正常的数据传输任务。
通过智能流量检测技术检测通向特定目的地址的UDP报文速率,如果报文速率超过阈值上限,则检测到攻击开始,就根据用户的配置选择丢弃或者转发后续连接请求报文,同时将该攻击记录到日志。当速率低于设定的阈值下限后,检测到攻击结束,正常转发后续连接请求报文。
H3C在攻击防范技术的实现上具有以下三个方面的特色。
传统的防火墙/路由器的策略配置通常都是围绕报文入接口、出接口展开的,随着防火墙的不断发展,已经逐渐摆脱了只连接外网和内网的角色,出现了内网/外网/DMZ的模式,并且向着提供高端口密度的方向发展。在这种组网环境中,传统基于接口的策略配置方式给网络管理员带来了极大的负担,安全策略的维护工作量成倍增加,从而也增加了因为配置引入安全风险的概率。
除了复杂的基于接口的安全策略配置,某些防火墙支持全局的策略配置,全局策略配置的缺点是配置粒度过粗,一台防火墙只能配置同样的安全策略,满足不了用户在不同安全区域或者不同接口上实施不同安全策略的要求,使用上具有明显的局限性。
H3C实现的攻击防范功能支持基于安全区域的配置方式,所有攻击检测策略均配置在安全区域上,配置简洁又不失灵活性,既降低网络管理员配置负担,又能满足复杂组网情况下针对安全区域实施不同攻击防范策略的要求。
H3C实现的攻击防范功能提供了丰富的告警日志信息,可以与第三方软件配合使用,其日志和审计功能不仅能够针对攻击进行实时监测,还能对攻击的历史日志进行方便的查询和统计分析,便于对攻击事件进行有效的跟踪和追查。
针对以上的攻击,H3C提供了灵活的防范措施,可根据用户的实际需要,选择对攻击行为进行日志输出、报文丢弃、加入黑名单(对扫描攻击有效)、启用TCP Proxy功能(对TCP SYN Flood攻击有效)、通知Server释放最老的半连接(对TCP SYN Flood攻击有效)等动作。
图1 SYN Flood攻击防范组网应用
在图1所示的SYN Flood攻击防范组网应用中,防火墙的内网属于Trust域,内部服务器的网络属于DMZ域,外部网络属于Untrust域。
在H3C防火墙设备上采用基于域的配置,对DMZ域内的服务器进行SYN Flood攻击防范检测配置,根据服务器的实际流量,配置服务器允许的最大响应的新建连接速率及最大半连接数。若服务器受到SYN Flood攻击,防火墙输出SYN Flood告警日志,并且可以选择对后续向DMZ域内的服务器发起的访问进行TCP代理,保证到达服务器的TCP连接请求都是正常的。
Copyright ©2008 杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。