主流防火墙比较Word格式.docx
《主流防火墙比较Word格式.docx》由会员分享,可在线阅读,更多相关《主流防火墙比较Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
基于硬件的防火墙硬件方面一般是采用专门设计的实现防火墙必要功能的ASIC,NP架构等量身定制的硬件,供防火墙跑的操作系统也是专门设计的。
而基于软件的防火墙硬件方面一般采用通用架构的pc硬件,操作系统也因此采用的多是基于unix系列或者nt系列的通用操作系统。
这里面checkpoint可以归类为基于软件的防火墙,而netscreen则是基于硬件的。
两种架构的描述:
性能:
netscreen没有采用传统的工业架构布局,而是使用的是独立研发体系结构,包括netscreen专用的screenos操作系统和为实现防火墙功能而特别设计的ASIC芯片(这包括从低端的netscreen5,10的采用的megascreen芯片到高端的netscreen500,5000等使用的Gigascreen芯片),它们与RISC处理器等设备紧密集成,为客户提供专用的防火墙的各项功能。
由于netscreen防火墙设计上就是为了完成必要的防火墙工作,同时对数据包的访问控制,加密,地址转换等工作是通过上述专门的硬件来实现的,这就从结构上非常好的避免了传统的基于工业架构的软件防火墙不是专门为了防火墙设计,极大的依赖cpu,同时总线带宽受限制等重大的弊病,从这一点来看,理论上对防火墙的要求越高,netscreen体现的价值就越大。
在netscreen的站点上,关于防火墙的白页宣称它的高端netscreen5400,在操作系统screenos版本为3.0防火墙时防火墙的通透性可以达到12Gbps之高(vpn可达6Gbps)-这是本人所了解的性能最高的防火墙。
checkpoint防火墙本身是一套软件,而基于软件的checkpoint防火墙本质上从操作系统到硬件架构都是使用的通用的系统,因此尽管软件本身可能已经尽可能的得到了优化,但受架构的局限,性能在理论上先天不足。
Checkpoint为了解决这个问题,相继推出了软硬件的加速方案,这些方案主要功能是一致的:
一方面包括将数据包的访问控制,加解密,地址翻译等非常消耗系统资源的工作从cpu转移到专门的插卡来处理,减小cpu负荷,另外一方面通过优化软件对数据的处理层次,将本来在高层的处理工作向下放,向硬件层次靠拢。
通过上述两个方面,从而实现减少承载它的系统的压力,改进提升系统性能的目的。
我们可以看到的SecureXL,checkpointPerformancePack,VPN-1AcceleratorCard以及和Corrent公司,Nortel等公司合作推出的各种加速卡,都是这一思想的产物。
从checkpoint的站点上得到的资源来看,这些解决方案的效果还是比较理想的。
在checkpoint的高端产品上(如和Bivio合作推出的1000s平台上的防火墙性能可达4.0Gbps,在64byte小包上也可达到3.2Gbps的通透性)。
此外根据checkpoint公布的资料来看,在这个月checkpoint自己的测试中,使用了5月13宣称的新技术ApplicationInteglligence后,性能在原来的基础上进一步提升了31%。
稳定性兼容性:
由于netscreen采用的专门的软硬件,因此系统的稳定性上理论上应该领先,同时由于防火墙操作系统是专用的screenos,不存在防火墙和硬件的兼容性问题。
而checkpoint使用的优化和定制后的操作系统和硬件,但是由于防火墙需要运行在通用的操作系统和硬件之上,而这些操作系统和硬件不是特定为防火墙各项功能设计的,因此可能会存在稳定性和兼容方面的隐患。
功能和灵活性:
netscreen采用的专门设计的操作系统和硬件架构,决定了灵活性上要相对差一些,而且可能提供的功能相对较少。
比如早期为很多人诟病的高版本的screenos操作系统无法使用在早期的硬件平台上,从保护投资的角度上是很难为客户所接受的。
又如netscreen的策略数目是有限的,如果用完了访问控制策略,如果要新增新的策略,那么必须去掉已经配置好的某些策略。
此外对硬件的依赖决定了很难扩充新的功能模块,防火墙从购买之日起能提供的功能就基本上不会有太多的改变了,客户买了某种型号的防火墙后可能无法期待后期的重大升级。
而Checkpoint由于架构不依赖硬件,因此理论上功能是可以无限扩充的,它能给客户更多的控制和定制功能。
防火墙所在系统安全更新
netscreen这种基于硬件的防火墙由于采用专用的screenos操作系统,安全问题暴露很少,需要打安全patch的必要性小。
checkpoint跑在windows和unix上,由于这些操作系统本身的安全问题,管理员需要不断的更新操作系统本身的patch(尤其是windows平台上的,yiming简直受不了window隔三差五的patch了~~),这对防火墙的管理者而言是个比较痛苦的活儿。
维护成本
netscreen这种基于硬件的防火墙运行起来很容易,基本上加电开机就可以跑起来了,而且防火墙维护者不需要了解防火墙以外的任何技术。
Checkpoint正常运行需要先安装操作系统,安装各种驱动(比如网卡),配置操作系统等,这是个比较讨厌的活儿。
不过checkpoint为了解决这个问题,也推出了软硬件集成在一起的产品,国内常见的就是和NOKIA合作推出的产品,比如NOKIAIP740,就是绑定在一起的基于freebsd的checkpoint套件,直接开电防火墙就能跑起来。
此外值得注意的是,如果checkpoint防火墙运行在unix平台上,需要防火墙的维护者对unix系统熟悉,不要小看这一点,在很多的公司,这对管理员是个很大的挑战。
4.数据包的处理方式
除了防火墙的体系架构,最重要的部分就是防火墙对数据包的处理方式了,虽然checkpoint和netscreen都说自己都是基于statefulinspection的防火墙,但两者还是有区别的。
个人认为,准确的讲:
checkpoint更多的是SPI(statefulpacketinspection),而netscreen则更多的是SPF(statefulpacketfilter)
netscreen使用的是核心是SPF,所谓SPF,一言以蔽之,即:
在传统的包过滤的基础上增加了对数据包的状态判断。
一个数据包如果不是意图建立连接的数据包同时又不属于任何已经建立的连接的话,这个数据包直接就被丢弃或者拒绝-根本无需去和访问控制列作比较。
这样就大大增加了安全性,同时提高了性能。
目前基本上主流的防火墙都采用了这一非常成熟的技术,与此同时,为了更加有效的发挥防火墙的作用,netscreen公司和其他大多数公司一样,在对数据包的处理方式上,除了SPF,还增加了ApplicationProxy方式,利用这一方式,netscreen对高层的一些应用可以进一步加以控制,比如利用syngateway抵抗Denialofservice攻击即为一例。
(注:
关于SPF,SPI,ApplicationProxy等具体概念,不是这里讨论的内容,大家可参考相关资料)
我们来看看netscreen是如何利用ASIC芯片和SPF处理tcp数据包的:
当数据包到达netscreen的网络端口时,要先进行基本的有效性检查,验证数据包合法后,screenos检查这个数据包是否是已存在的某个连接的session的一部分(比如属于一个已经建立成功的telnet)。
如果该数据包声明属于已存在的某个连接的session的一部分,那么进一步检查tcp的sequeuce号等参数来确认是有效的数据包,是就通过,否丢弃。
如果该数据包不属于任何已经建立的session,那么搜索管理员事先设置的访问控制列内容,如果访问控制列内没有符合该数据包的内容,数据包被丢弃,如果存在符合该数据包特性的访问控制规则,那么一条新的session建立。
请注意这些工作是在它的ASIC芯片上进行的。
为什么要强调这一点呢?
我们来考虑如下问题:
决定防火墙性能的主要取决于什么?
为了回答这个问题,我们先温习一下防火墙的基本概念:
防火墙是在两个网络间实现访问控制的一个或一组软件或硬件系统。
防火墙的最主要功能就是屏蔽和允许指定的数据通讯,而该功能的实现又主要是依靠一套访问控制策略,由访问控制策略来决定通讯的合法性。
从上面的防火墙的概念我们可以看出,防火墙的主要工作就是进行访问控制,那么同样条件下,访问控制的处理速度越快,那么防火墙的性能自然就愈好。
同时,另外一方面,一般来说,某个数据包被拒绝,往往是与访问控制列的acl逐条比较,如果前面的acl不符合,那么在访问控制列的最后部分才会被拒绝。
如果系统性能较差,这会是个非常耗费资源和性能的工作。
Netscreen在实现SPF时,通过在ASIC硬件而非cpu上进行访问控制的策略的比较,显著的提升了速度。
在netscreen的白页上,介绍它的防火墙可以以线速处理4万条以上的访问控制规则,这个结果是令人非常满意的。
这也是netscreen在实现SPF中最为闪光的一部分。
Checkpoint的工作方式主要基于SPI,SPI是工作在SPF之上的,它在提供SPF的功能基础上,增加了对数据包内容(高层)的分析功能。
这对管理员对网络的安全控制能力无疑增进了一大步,同时,也是非常实用的一个功能,对一个有经验的管理员来说,利用SPI可以大大地减小网络的安全管理工作。
一个很简单的例子:
一家企业分布在各地机构的局域网需要对外开放snmp管理功能,常见的防火墙一般也就是放开tcp/udp161和162端口,无法再做更多的控制了,但是利用SPI,管理员就可以控制仅仅对外开放snmp的get功能,不允许set动作,这就极大的减少了snmp端口开放的危害性。
又比如,利用SPI,管理员可以强制通过80端口的数据包必须是真实的http数据,而不是流或者即时通讯工具。
我们知道代理型防火墙同样能够提供高层访问控制,但是代理型防火墙工作在高层,他们在处理client和server的连接时,作为“二传手“来分析解释和控制数据包,每个client到server的连接被截获,演变成client到代理,代理到server,server到代理,再从代理到client的通讯形式。
这就增大了延迟,同时对每种类型的通讯都需要高层的分析解释能力的单独的软件来做,局限较大。
而checkpoint的数据包处理引擎INSPECT工作在网络层和数据链路层之间,他们并不打断client和server端的连接。
由于工作在最低端,进出端口的所有的数据包都会被核查,只有符合INSPECT引擎审核通过的数据包才能向高层发送。
INSPCET引擎使用可定制的INSCPET语言来理解和分析需要关心的数据包内容,并实现对数据包的动态控制。
由于INSCPET语言的对象是整个原始的数据包,因此就在SPF的基础上增加了高层的控制,如:
不仅向SFP那样可以对底层的ip地址限制,还可以控制到高层内容,如限制邮件的content-type。
同时,管理员可以从checkpoint站点上不断取得新的INSCPET代码,从而增加对应用的扩充。
2003年5月13日,checkpoint又宣称推出近年来功能上重大的升级,即所谓的ApplicationInteglligence,该升级主要的卖点就在于宣称能够检测和防止应用层的网络攻击。
我们知道,随着网络技术的不断发展,网络攻击行为已经逐步向高层转移,利用操作系统和网络设备本身安全问题入侵和攻击的浪潮已经逐步降低,人们越来越将攻击的目标转向高层的应用,相信这以后会是网络安全攻防的趋势。
关于这方面的内容,各位可以参考OWASPWebApplicationSecurityTopTen这篇文档(http:
//www.owasp.org/需要使用代理)
本人对这一技术非常感兴趣,仔细的研究了一下checkpoint公布的相关文档,关于ApplicationInteglligence的功能,主要有以下四点:
1:
确认网络通讯符合相关的协议标准,比如:
不允许http头出现二进制数据内容。
2:
确认网络通讯没有滥用相关的协议标准,比如:
不允许P2P通讯利用80口穿过防火墙。
3:
限制应用程序携带恶意数据,比如:
控制跨站脚本
4:
控制对应用程序的操作,比如上面我们举的snmp例子。
仔细的分析上面的内容,个人理解对checkpoint而言,其实ApplicationInteglligence也不能算是非常新的技术,可能只是在SPI基础上的升级和进一步扩充。
此外关于checkpoint需要注意一点的是,checkpoint数据包处理引擎INSPECT对高层的数据包核查并不象想象的那样支持非常多的应用,而是将主要精力放在了常用的http,ftp,mail等一些比较普遍的应用上,也即,不是所有的高层的所有数据包都会被INSPECT审核,使用者不要迷信checkpoint宣称的INSPECT技术,我们可以看下面的例子:
这里是checkpoint在sqlslammer蠕虫蔓延时的一个扩展的INSPECTCODE,
deffuncsql_worm_slammer(){
(
dport=1434,
packetlen>
=(20+8+1+96+4),
[UDPDATA:
1]=0x04,
[UDPDATA+97:
4,b]=0xDCC9B042,
LOG(long,LOG_NOALERT,0)or1,
drop
)
oraccept;
};
本人没有找到关于checkpointINSPECTCODE的说明文档,但是观察上面的内容,我们可以猜出来一些东西。
至少从这个CODE内容看,这是个基于签名的代码,我们可以看到比较关键部门可能包括两点:
dport=1434,端口1434,packetlen>
=(20+8+1+96+4),数据包长度?
20是ip头,8是udp长度,1,96,4是什么?
本人没使劲猜(我猜得到开始,猜不到结局……;
))
从上面的内容来看,其实checkpoint防火墙本身在处理sqlslammer蠕虫时,并不象想象的那样真正的懂得sql的应用的,它可能只是执行了简单的匹配而已(本来想多看几个INSPECTCODE的,可惜要口令,幸亏原来下了一个sqlslammer的)。
前面的话:
这是个0.8版本的,很遗憾,本来想花点力气来写这一部分的,但是实在是抽不出专门的时间,so,先放个草一点的上来吧。
首先各位应该清楚的是,作为目前市场上主流的商用防火墙,无论是NETSCREEN还是Checkpoint,就基本的防火墙功能而言两者没有太大的差异也不可能有太大的差异(如果你听相关的厂家鼓吹自己产品的某种基本功能与竞争对手有多么明显的差异,那他必定在糊弄你)所以我们这篇文章不打算浪费时间讨论任何与防火墙的基本功能有关的内容。
1.Checkpoint
在本文的第一部分我们提到过,目前利用操作系统和网络设备本身安全问题入侵和攻击的浪潮已经逐步呈下降趋势,人们越来越将攻击的目标转向高层的应用,关于这一点著名的市场调查研究机构Gartner也有一个调查结论可以参考,如下:
Todayover70%ofattacksagainstacompany'
snetworkcomeatthe'
ApplicationLayer'
nottheNetworkorSystemlayer.
-----GartnerGroup
目前越来越多的商用防火墙厂家都在应用层安全这一方面投入力量进行研发,这也是防火墙适应安全市场变化的一个体现,作为业界的翘楚,Checkpoint自然也不会落后,5月份该公司推出的所谓AI(ApplicationInteglligence)就是强化防火墙对应用层安全功能的一个很好的验证。
在Checkpoint的文档里,AI主要完成如下功能:
确认通信是否遵循相关的协议标准;
进行异常协议检测;
限制应用程序携带恶意数据的能力;
对应用层操作进行控制。
AI只是一个概念,在Checkpoint的防火墙产品上,是如何具体体现的呢?
从Yiming能拿到的资料上来看,Checkpoint的AI由两个内容组成:
InspectionModule和SecurityServer。
InspectionModule在part1中我们已经作了说明,它构成Checkpointfirewall的内核,在完成防火墙acl等基本功能以外,它还能对一些高层的应用,主要是HTTP、SMTP、FTP的一些属性进行直接的限制和保护。
来看一个例子理解:
Checkpoint的HTTPWormCatcher,相信大家都留意到,一段日子以来,利用80端口进行网络自动传播的蠕虫非常活跃,因为一般而言,现在互联网上的企业即使安装了防火墙,80端口通常也都是开放的,如果防火墙没有检查数据高层内容的能力(SPF类型),同时被保护的WEB系统又存在有相应的安全漏洞,那么这些攻击数据包会顺利的进入防火墙后被保护的主机,此时,虽然WEB系统是被防火墙保护的,但由于防火墙不具有高层应用的核查能力,无法对80口经由的数据包高层内容进行核查,从蠕虫的角度来看,这个防火墙等同于虚设。
Checkpoint防火墙的HTTPWormCatcher就是针对这一问题的一个解决方法。
该技术的关键在于不仅对数据包使用的端口,数据包的状态进行核查,在需要的时候,还要对数据包的内容进行模式匹配核查。
管理员通过SmartDefense配置HTTPWormCatcher,根据蠕虫的特征来添加蠕虫的特征码(如添加规则匹配.IDA则防火墙将阻挡CodeRed攻击),防火墙根据匹配从而拦截阻断含有对应特征码的网络数据包。
目前最新版本(NGwithAIR54)中就应用层安全提供的一些功能:
控制最大的URL长度,限制P2P软件的使用,记录web访问的详细日志等等。
由于InspectionModule的特性(工作在内核,靠近底层),因此InspectionModule在实施对高层的数据包的控制时性能比较理想。
SecurityServer:
SecurityServer是工作在InspectionModule之上的,它就像一个插件,辅助InspectionModule完成的对所关心的高层数据限制和保护的工作,由于Checkpoint不可能将所有的和高层有关的限制和保护功能都放入到它的内核(InspectionModule)中,由此产生了SecurityServer这个模块,它和防火墙内核交互,完成一些更加复杂的访问控制和审核任务,在实际的工作中,SecurityServer像一个代理服务器模块,底层的InspectionModule将数据包交给SecurityServer处理,SecurityServer完成相应的工作后,再将处理完毕的数据反馈给InspectionModule。
由于是在InspectionModule内核之上的一个插件,SecurityServer对应用层控制就能够灵活许多,可以对数据实施更多的核查,但也正是因为这个代理的特性,性能上#@$%了点。
SecurityServer是个奇怪的名字,本人猜测Checkpoint这么叫可能主要是想掩饰Checkpoint防火墙使用了部分代理模块的特征—这可是性能降低的代名词;
从实际情况看来,应用了SecurityServer也确实会带来性能上的降低,今年3月NetworkComputing的一次测试中,Checkpoint的防火墙使用了SecurityServer后,性能由766Mbps下降到122Mbps,这是非常明显的一个降低。
但是防火墙性能降低的换来的是功能上的增强,很多依靠InspectionModule无法完成的复杂工作,借助于SecurityServer后就变得可行了,SecurityServer大大增强了防火墙对高层的控制能力。
比如,ftp应用中,可以限制ftp连结中使用的命令,限制传输的的文件路径,和防病毒产品联动实现病毒扫描等等。
要更多的功能还是更快的速度,这是需要防火墙的用户去权衡的问题了。
后台的InspectionModule加SecurityServer构成了前台展现的Resource和SmartDefense。
(用过Checkpoint的人应该知道,这两者都可以在SmartDashborad的界面上看到,其中Resource在SmartDashborad的Manager菜单里,而SmartDefense就在主界面内)。
SmartDefense
SmartDefense是集成在CheckpointFIREWALL-1中的一个非常重要的模块,通过这个模块,Checkpoint防火墙逐步将对网络攻击的防范手段集中起来,一方面防火墙阻断普通的非授权数据包,另一方面防火墙对照管理员配置的特定的控制规则来搜索授权通过的数据包应用,即使这些数据包从端口以及连结状态上符合防火墙要求,如果数据包的内容不符合某些相应的规则特征,则数据包被认为是具有攻击特性的,被丢弃。
SmartDefense主要防范的内容包括两大类:
提供网络层的网络安全服务,主要用来防范网络层的网络安全事件。
比如,对DoS服务的控制和阻断、对ipfragment的控制、SYN攻击的防范、防范IPSPOOF等(具体内容参看SmartDefense,没什么好讲的)。
提供ApplicationIntelligence这个我们在第一部分提到过,主要用来防范应用层的网络安全事件。
比如,对MAIL、HTTP、FTP、VOIP等控制(具体内容参看SmartDefense)。
可以看到,Checkpoint在不断强化SmartDefense的功能,这也是Checkpoint一个比较有特色的东西,个人理解Checkpoint通过这个模块开始向传统的IDP(入侵防御系统)渗透。
说到这里我们要多说几句,目前入侵防御类产品(IDS,IDP,IPS等等)技术上还存在较多的问题,其中一个比较关键点在于误报漏报太严重。
单纯的看尤其是入侵防御系统,误报问题不解决,入侵防御类产品本身将成为网络问题的发生