状态检测技术以及竞争厂商对比------为什么所有的状态检测防火墙并不完全相同?提纲1概述:防火墙安全2状态检测概念StatefulInspection2.1不同防火墙实现状态检测的不同之处2.2CiscoPIX防火墙安全之缺陷2.3NetScreen防火墙安全之缺陷2.4状态检测处理的公共服务和协议servicesandprotocols3检测攻击和防护攻击3.1CheckPoint的方法3.2CiscoPIX在检测攻击和防护攻击上的局限性3.3NetScreen在检测攻击和防护攻击上的局限性3.4攻击的防护能力总结:CheckPoint的状态检测技术是防火墙的工业标准1概述:防火墙安全很多的防火墙产品的出现给网络安全管理者进行产品选型过程中出现困难。为了决定哪个产品是最安全的而翻阅大量的市场和销售的文档令人头疼。本文针对防火墙选择过程提供一些技术背景,解释并比较CheckPoint、Cisco、NetScreen提出的安全解决方案。2.状态检测概念StatefulInspection状态检测由CheckPoint公司发明,是企业防火墙的事实上的技术标准。为了提供全面的安全解决方案,一个防火墙必须能跟踪和控制所有会话的flow,与原始的“包过滤”技术不同,状态检测分析流入和流出网络的“流”,因此可以基于通讯会话信息(也可基于应用信息)做出实时的安全判断,这个结果通过跟踪穿越防火墙网关的通讯会话的状态state和上下文来实现,不管这个连接connection包含多么复杂的协议。2.1不同防火墙实现状态检测的不同之处状态防火墙所能提供的安全级别由是否能跟踪大量的数据和对数据是否进行了彻底的分析来决定。防火墙只有跟踪每一个通讯会话session的实际状态和许可会话所动态打开的TCP或UDP端口。如果防火墙没有这个能力,就必须打开一个很大的端口范围来支持哪怕是最基本的Internet服务。防火墙如果不加鉴别地打开一定范围的端口将会在在安全配置上出现严重的可被利用的漏洞。为了跟踪上下文,一个防火墙必须检查包的内容以确保每个进入网络的数据包能匹配通讯会话原有的的参数或属性,这就能确保可疑的或恶意的数据包与正常通讯数据包的上下文区别开来,因此不会威胁防火墙的安全,为了跟踪和处理某一应用的状态state信息和上下文context信息,应用的信息被看作具有一定状态的traffic,以下是一个防火墙所应该跟踪和分析的状态和上下文关系的例子:状态和上下文信息数据包的头信息(源地址、目的地址、协议、源端口、目的端口、包长度)连接状态信息(哪一个连接打开了哪一个端口)TCP和IP分段数据(例如:分段号、顺序号)数据包重组、应用类型、上下文校验(即:包属于哪个通讯会话session)到防火墙的哪一个接口上从防火墙的哪一个接口上出去第二层信息(如VLANID号)数据包到达的日期和时间真正的状态检测意味着能跟踪通讯的所有的状态和上下文信息,所以说,只有CheckPointFireWall-1®‚能提供真正的状态检测StatefulInspection.2.2CiscoPIX防火墙安全之缺陷尽管Cisco也讲他的技术是状态检测,但是CiscoPIX防火墙并不能够对所有支持的应用和服务提供状态安全机制。因此,他所能提供的安全是不完整的。例如,PIX不能处理MicrosoftExchange服务的完整的状态和上下文信息,CISCO为了配置PIX能支持fMSExchange服务,Cisco建议用户在要发MAIL的外部HOST上打开一定范围的端口(TCP1024到65535),如果PIX要维护MSExchange服务的状态,他将自动打开那些所需的应用和通讯会话的端口,Cisco对MSExchange的支持方式是违反安全惯例的:在防火墙上不加选择地打开一定范围的没有用的可被利用的漏洞。并且,PIX不理解MSExchange这种应用。由于不理解通讯的上下文,PIX防火墙不能够阻止夹杂在合法的MSExchange数据中的可以数据包。对MSExchange的处理方式是CiscoPIX不能按照状态检测数据包的一个简单例子。更多更全面的对比,祥见表1.2.3NetScreen防火墙安全之缺陷NetScreen的状态检测的实现也是不完整的。NetScreen防火墙设备在对所有的应用执行安全策略时也不能够重组碎片fragmentedTCP包,这就意味着在网络遭受HTTP-driven攻击时会出现严重的安全问题。如果一个攻击(例如一个可疑的URL)被分片成多个数据包,NetScreen防火墙不能检测到,也不能够阻断这个攻击。对包进行分片易如反掌,NetScreen防火墙这个缺陷使被他保护的网络很容易被很多知名的攻击手段所攻击。。例如,对于红色代码CodeRed,如果一个可疑的URLstring被分片,并按多个包发送,这种攻击将穿越NetScreen防火墙而不被发现,一旦目的服务器收到后,这些恶意的包将被重新组装,最终导致服务器“缓冲区溢出”(更详细的内容见下面的“检测攻击和防护攻击”章节).在所有应用和服务上的TCP包的重新组装是任何一个状态检测防火墙的最基本的要求。如果防火墙没有这个功能,或者丢弃合法连接的分片的包fragmentedpackets,或者允许夹杂有网络攻击的恶意分片进入网络。这两种情况的问题都是潜在的安全威胁。2.4状态检测处理的公共服务和协议FireWall-1对应用的状态的了解深度体现了CHECKPOINT几年来对各种应用和各种协议的研究和分析的成果。这个功能的核心是“TCPpacketreassembly”TCP包的重新组装。如果FireWall-1收到了分片的数据包之后,首先重新组装成原始格式,因此,对整个数据流,streamofdata的分析符合协议的定义definitions,以及包所承载的信息内容的合法性。状态检测防火墙必须对各种应用有很大深度的理解才能实现完全的网络保护。NetScreen和Cisco产品都不支持所有应用的“TCPpacketreassembly”在表1中,对号表示应用或者协议的状态基于安全目的进行维护。协议或应用CheckPointCiscoPIXNetScreenFireWall-1IPSecurityProtocol(IPSec)√√DomainNamingService(DNS)√InternetControlMessageProtocol(ICMP)√GeneralPacketRadioServiceTunnelingProtocol(GTP)√SessionInitiationProtocol(SIP)√√不完整HPOpenViewServices√SUNRemoteProcedureCall(RPC)Services√MicrosoftDistributedComponentObjectModel(DCOM)√MicrosoftExchangeServices√协议或应用CheckPointCiscoPIXNetScreenIPSecurityProtocol(IPSec)DomainNamingService(DNS)InternetControlMessageProtocol(ICMP)GeneralPacketRadioServiceTunnelingProtocol(GTP)HPOpenViewServicesSUNRemoteProcedureCall(RPC)ServicesMicrosoftDistributedComponentSessionInitiationProtocol(SIP)MicrosoftDistributedComponentObjectModel(DCOM)MicrosoftExchangeServices3.检测攻击和防御攻击3.1CheckPoint实现方法CheckPoint的状态检测引擎针对所有类型的网络攻击进行保护。这就包括简单的包破坏packetcorruptionattacks的攻击,以及更高级别的攻击例如:oversizedpackets、malicioususeofIPpacketoptions、SYNfloods,基于分片的攻击方式自动地被FireWall-1阻止和记录blockedandlogged。CheckPoint的独特的可扩展的软件模式,可以很方便地应用于高水平的网络安全需求。诸如隐藏内部maildomains,DNS确认,FTP,SMTP,HTTP和其他命令集的严格控制,阻止Java和ActiveX,以及基于用户的email尺寸限制,等等这些功能都可以在FireWall-1policyeditor中轻易实现。并且,CheckPoint’sFireWall-1的SmartDefense™技术具备一体化的防攻击能力。SmartDefense可以检测和防止所有已知的攻击和已知攻击的变种。SmartDefense也可以使管理员能够在线地很快地更新他们的安全策略。3.2CiscoPIX在检测攻击和防护攻击上的局限性CiscoPIX防火墙不提供对恶意URL或者基于HTTP攻击的直接保护,远离网络攻击的威胁,例如CodeRed。Cisco建议用户用其他专门的入侵检测产品来防止攻击(CISCO也能提供IDS产品)。因此加上IDS同时也可以当WEB服务器受到威胁时减轻损失。(例如,对WEB服务器的内部开放连接进行预防).3.3NetScreen在检测攻击和防护攻击上的局限性尽管NetScreen确实提供了一些集成的攻击防护功能。但是这种方式缺乏关键的功能。一个NetScreen防火墙不能抵御知名攻击well-knownattacks的变种。(例如红色代码或尼姆达病毒)。对于所有的NetScreen设备,攻击特征码(例如一个恶意的URL)必须与防火墙数据库中的特征码精确的匹配才可以识别出来。攻击的任何一个变种,不论变动如何微小,都可以穿越防火墙而不被识别。这个情况的直接结果就是NetScreen防火墙不能支持有规律的特征码匹配,所以,管理员不得不用特定的wildcard自己查找攻击攻击特征变量,因此,攻击可以通过加以微小的变化就能绕过NetScreen防火墙进入网络。例如在CodeRed恶意URL增加一个空格,或者改变一个字符。FireWall-1中对有规律的特征匹配的好处可以在.htrworm蠕虫病毒中体现,当前发布的蠕虫攻击以一个恶意URL做起始,以.htr结束。使用有规律的特征匹配功能,防火墙可以检查所有可疑的URL以及其变种,从而阻止了所有版本的攻击。NetScreen设备不能阻止.htrworm蠕虫病毒的各种变种版本的攻击,因为他不支持特征匹配功能,所以他只能检测到特定的以.htr结束的URL类型,从而增加了用户的安全风险NetScreen只能检测有限数量的攻击(例如恶意URLs),NetScreen防火墙不能检测和阻止其他额外的攻击类型。并且攻击检测的数量也不能通过升级内存或其他组件来增加。最近以来,所有的NetScreen平台有同样的(攻击数量)限制,(见表2),用户不能扩展恶意URL的检测数量。即使是最高配置的设备,这个限制也是极低(如NS-5000仅支持64个),一旦达到限制,管理员必须选择是否以放弃旧攻击的代价来换取抵御新的攻击。表2显示可被检测和阻断的HTTP-driven攻击的最大数量。这些限制的确是太低了,尤其是考虑到NetScreen的恶意URL的检测机制是大小写敏感的。由于NetScreen不支持有规律的特征匹配功能,安全管理员必须定义所有知名攻击的大写和小写组合。这就意味着由于同种攻击的不同组合很快就可以达到这个数量限制。表2,可检测的恶意URL的最大数目NetScreenPlatformMaximum#ofUserDefinedAttacks4(includingvariantsi.e.CodeRedII)NS-5XT,NS-5XP48NS-5048NS-10048NS-204,NS-20848NS-50048NS