|
从概念走向实用 应用防火墙其实是个安全“老兵”了。在十几年前,就已经出现了应用防火墙的概念。但是为什么迟迟没有产品出现呢?华城技术有限公司负责人杨磊说:“因为系统的硬件平台跟不上。以前,网络层数据的转发处理就占用了cpu大量的资源,cpu根本无法再做应用层的处理;而可以进行高速网络数据处理的asic技术又处理不了应用层数据的复杂性,所以应用防火墙没有诞生的条件。”随着np(网络处理器)性能的迅速提升,特别是基于通用cpu的多核np 体系(例如broadcom的双核np 1250,将2个64位mips芯片集成在一块处理器芯片里面,而且后续推出了集成4个cpu的处理器;而cavium公司也推出了集成16个mips cpu和硬件加速处理单元的网络服务处理器octeon)产生之后,利用多cpu的并行处理能力和软件的灵活性,应用防火墙可以实现对复杂应用的安全处理,并且能够达到千兆线速的性能。 在2004年,应用防火墙终于冲破概念的围城,真正实现了产品化。国外有teros、sanctum、netcontinuum和kavado等厂商推出了web应用防火墙,目前在国内记者看到的产品仅仅有华城技术(secnumen)的approck和f5网络公司的trafficshield。 现在我们所说的应用防火墙,一般是指web应用防火墙和数据库防火墙(也叫sql防火墙),而现在我们所能见到的产品基本都是web应用防火墙。
应用前面的铜墙铁壁 安装了网络防火墙和ids,就能抵挡应用层攻击吗?不能。因为在保护应用方面,网络防火墙和ids各有不足。
网络防火墙有洞 网络防火墙技术的发展已经非常成熟,也是目前网络安全技术中最实用和作用最大的技术。 但是,作为目前应用最为广泛的http服务器等应用服务器,通常是部署在防火墙的dmz区域,防火墙完全向外部网络开放http应用端口,这种方式对于http应用没有任何的保护作用。即使使用http代理型的防火墙,防火墙也只是验证http协议本身的合法性,完全不能理解http协议所承载的数据,也无从判断对http服务器的访问行为是否合法。攻击者知道正面攻破网络防火墙十分困难,于是从简单的端口扫描攻击转向通过应用层协议进入企业内部,目前,利用网上随处可见的攻击软件,攻击者不需要对网络协议有深厚的理解,即可完成诸如更换web网站主页、盗取管理员密码、破坏整个网站数据等攻击。而这些攻击过程中产生的网络层数据,和正常数据没有什么区别。一个最简单的例子就是在请求中包含sql注入代码,或者提交可以完成获取其他用户认证信息的跨站脚本,这些数据不管是在传统防火墙所处理的网络层和传输层,还是在代理型防火墙所处理的协议会话层,都会认为是合法的。 明白了防火墙的工作原理,我们就知道,对于应用层攻击,网络防火墙是无能为力的。
入侵检测有限 目前最成熟的入侵检测技术就是攻击特征检测。入侵检测系统首先建立一个包含目前大多已知攻击特征的数据库,然后检测网络数据中的每一个报文,判断是否含有数据库中的任何一个攻击特征,如果有,则认为发生相应的攻击,否则认为是合法的数据。 入侵检测系统作为防火墙的有力补充,加强了网络的安全防御能力。但是,入侵检测技术的作用存在一定的局限性。由于需要预先构造攻击特征库来匹配网络数据,对于未知攻击和不能有效提取攻击特征的攻击,入侵检测系统不能检测和防御。另外就是其技术实现的矛盾,如果需要防御更多的攻击,那么就需要很多的规则,但是随着规则的增多,系统出现的虚假报告(对于入侵防御系统来说,会产生中断正常连接的问题)率就会上升,同时,系统的效率会降低。
对于应用攻击,入侵检测系统可以有效的防御部分攻击,但不是全部。
应用防火墙有效 网络面临的许多安全问题单靠网络防火墙是无法解决的,必须通过一种全新设计的高性能安全代理专用设备来配合网络防火墙。具体来说,利用网络防火墙阻挡外面的端口扫描攻击,利用应用安全防护技术,深层管理和控制由用户访问外部资源而引起的应用层攻击,解决针对应用的、具有破坏性的复杂攻击。 应用防火墙真正实现了对网络应用的保护,是传统安全技术的有效补充。应用防火墙可以阻止针对web应用的攻击,而不仅仅是验证http协议。这些攻击包括利用特殊字符或通配符修改数据的数据攻击、设法得到命令串或逻辑语句的逻辑内容攻击,以及以账户、文件或主机为主要目标的目标攻击。2004年所出现的web应用10大漏洞,应用防火墙均可以防御,未知攻击也无法越过应用防火墙。 业界标准的应用防火墙一般采用主动安全技术实现对应用的保护。主动安全技术是指建立正面规则集,也就是说明哪些行为和访问是合法的规则描述。对于接收到的应用数据(从网络协议还原出来的应用数据,不是数据报文头),判断是否符合合法规则。因为只允许通过已知的正常数据,这种方式可以防御所有的未知攻击。 应用防火墙技术是现有网络安全架构的一个重要补充,而不是取代传统防火墙和入侵检测等安全设备。传统安全设备阻挡攻击者从正面入侵,着重进行网络层的攻击防护;而应用防火墙着重进行应用层的内容检查和安全防御,与传统安全设备共同构成全面、有效的安全防护体系。
|
表1 3种安全产品防御能力比较 |
|
攻击类型 |
网络防火墙 |
入侵检测 |
应用防火墙 |
|
未经验证的输入 |
不能防御 |
部分防御 |
全部防御 |
|
不完整的访问控制 |
不能防御 |
不能防御 |
全部防御 |
|
不完整的认证和会话管理 |
不能防御 |
不能防御 |
全部防御 |
|
跨站脚本(xss)漏洞 |
不能防御 |
部分防御 |
全部防御 |
|
缓冲区溢出 |
不能防御 |
部分防御 |
全部防御 |
|
注入的漏洞 |
不能防御 |
部分防御 |
全部防御 |
|
不恰当的错误处理 |
不能防御 |
不能防御 |
全部防御 |
|
不安全的存储 |
不能防御 |
不能防御 |
全部防御 |
|
拒绝服务 |
部分防御 |
部分防御 |
全部防御 |
|
不安全的配置管理 |
部分防御 |
部分防御 |
全部防御 |
|
未知攻击 |
不能防御 |
不能防御 |
全部防御 |
严格把关 应用防火墙安装在传统网络防火墙与应用服务器之间,在iso模型的第七层上运行。所有的会话信息,包括上行和下行的会话信息,都要流经应用防火墙。下行请求经过应用防火墙,并且在积极模型的情况下,进行政策的解析处理。这就要求应用防火墙安装在缓存服务器的前端,以保证请求的有效性。上行请求经过只允许有效请求通过的应用防火墙,因此避免了有害请求进入服务器。应用防火墙了解解析和输出的会话请求,提供与已有应用的联机集成,并与web应用技术相兼容。应用防火墙监听80和443 tcp端口,并从客户机接收输入的http/https请求,然后解析这些请求,将这些请求与会话建立关系或者创建一次会话,然后将请求与会话的政策相匹配。如果这个请求符合安全策略,它就被转发给web服务器,否则请求就被拒绝。 像华城技术有限公司的approck应用防火墙的用户行为检测技术,就是从网络数据中还原出应用数据流,并在应用数据的基础上归纳用户行为,然后进行用户行为的合法性判断,从而精确的判断出攻击行为。通过和积极安全模型结合,用户行为检测可以实现只允许发生符合正常用户行为的访问数据通过,任何异常数据都会被阻止。 实行安全策略的最佳方法就是为用户与应用系统间的交互设定一个详细模型或策略。一旦定义了合法活动,则其他活动就会被视为非法活动而被禁止访问。拥有一个可精确识别用户活动的模型对执行安全策略是至关重要的。f5网络公司的trafficshield的应用流量模型是对合法用户与web应用间交互的逻辑表述。应用流量模型可自动“搜寻”整个应用系统,映射用户与网站间的互动流程或全部模式。除追踪流量模式外,可映射应用系统的能力远比之前为用户互动制定模型的方法更为精确。
积极和消极 为什么应用防火墙可以阻止未知的攻击呢?这和应用防火墙的工作原理有关。从安全产品对各种攻击的应对方法来说,安全产品的工作原理有两种:积极安全防御模型和消极安全防御模型。
积极安全防御 积极安全防御的原理是:对正常的网络行为建立模型,把所有通过安全设备的网络数据拿来和保存在模型内的正常模式相匹配,如果不是这个正常范围以内,那么就认为是攻击行为,对其作出处理。这样做的最大好处是可以阻挡未知攻击。对这种方式来说,建立一个安全的、有效的模型就可以对各种攻击作出反应了。具有代表性的产品有网络防火墙、应用防火墙。 一个简单的例子就是网路防火墙中的状态检测技术,管理员可以配置基于网络地址、端口和协议的允许访问的规则,只要不是这些允许的访问,都禁止访问。在防火墙运行过程中,根据允许访问的规则建立动态状态表项,只有符合这些合法状态表项的访问数据才允许通过防火墙,其他的所有访问都禁止通行。网络防火墙在网络层做到了积极安全防御。但是对于应用层数据,由于网络防火墙不理解,所以对于应用层的攻击,网络防火墙也是无能为力的。 应用防火墙也和网络防火墙一样,通过积极安全防御模型来防范攻击,但是最大的不同是应用防火墙建立的允许访问的规则是描述应用的,而不是描述网络地址、端口和协议号等网络层的信息。应用防火墙建立对应用描述的允许规则以后,对所有的应用层数据进行检查,判断是否是允许通过的应用层数据,如果不是,就禁止通行。这样的原理可以防护未知攻击,因为各种针对应用的攻击和未知的攻击都不包括在允许访问的应用层描述规则集中。
消极安全防御 消极安全防御的原理是:对已经发现的攻击方式,经过专家分析后给出其特征进而来构建攻击特征集,然后在网络数据中寻找与之匹配的行为,从而起到发现或阻挡的作用。它的缺点是使用消极安全防御体系的安全产品不能对未被发现的攻击方式作出反应。具有代表性的产品有入侵检测系统(ids)、入侵防御系统(ips)、病毒防火墙等。 使用消极安全防御模型的产品,可以作为网络安全防御体系中的一个补充,但是由于对未知攻击的无能为力以及不断的数据库更新,起到的作用比较有限,同时对网络的性能有一定的影响。 可以看出,积极安全防御更加安全和有效,但是它的技术实现也更加复杂。随着厂商对积极安全防御的重视,以及技术的不断发展,使用积极安全防御模型的安全产品将会日益完善。
6方面考察应用防火墙 如果你是某网站的cio,发现网站的重要资料被窃,但是防火墙上没有任何攻击日志,那你就要考虑购买应用防火墙了。选择应用防火墙,需要关注6个方面: 1.理解应用层数据。web应用防火墙能够理解用户请求的是什么网页,是在提交用户信息,还是在访问某个新闻页面。同时,能够理解用户提交的各种信息,比如用户名、密码、身份证号码等。只有理解这些应用层的信息,才可能针对各个不同的应用发挥保护作用。所以,在选购应用防火墙时,必须确定厂家宣称的应用防火墙是否真正能够理解应用层的数据。 2.积极安全防御。只有建立在积极安全模型上的保护应用安全的产品才能称为真正的应用防火墙。目前市场上有一些通过建立针对应用的攻击特征库来检查攻击数据的应用安全产品,这种产品需要预先配置攻击特征库,对于未发现的攻击是无能为力的。这样的产品可以看作是针对应用的ids或者ips产品,而不能算作是真正的应用防火墙产品。在选购应用防火墙时,可以通过产品是否提供针对正常应用的规则配置来确定是否具有积极安全防御的特性。 3.处理性能。由于应用防火墙需要处理应用层数据,必须要对网络的报文进行重组、流还原和协议解析等处理,其复杂程度远远高于基于单个报文、仅仅处理网络层信息的传统网络安全设备。为了保证已有网络的可用性和实时性,应用防火墙不能成为应用的瓶颈,必须使用高速的处理算法和新一代的硬件平台。 在选购应用防火墙时,需要确定产品的性能指标是否适合被保护的应用环境。一些针对应用层的指标,如http会话并发数、每秒请求数等是否满足要求。另外,针对提供硬件平台的产品,需要关心硬件的性能是否高于同档次的传统防火墙产品。比如,如果厂家宣称其应用防火墙的处理能力能够达到数据转发速率是每秒100兆,那么它的硬件处理能力必须强于同样标称为每秒100兆的网络防火墙。可以通过比较cpu性能、内存、接口总线带宽等来衡量硬件的性能指标。 4.应用层会话管理。应用层防火墙最好具有应用层会话管理的功能,才能做到基于对用户行为的检测功能。比如web应用防火墙,必须能够实现建立http会话的能力,因为http协议本身是一个无状态的协议,只有建立起应用层的会话管理,才能够精确的判断用户是否在进行攻击行为。应用层会话管理一般包括http会话建立,同时也需要能够保护已有客户端和服务器的会话维护信息,如提供cookie验证功能、cookie加密功能。 在选购时,必须确认厂商宣称的会话管理不是基于传统网络层防火墙的网络层信息五元组的会话信息,而是真正可以标识用户访问行为的应用层会话管理能力。 5.智能的安全规则配置。针对应用防火墙,同样需要建立安全规则。这个安全规则是基于应用的,而不是简单的基于ip地址、端口等网络层信息。比如针对web应用防火墙来说,安全规则必须包含允许用户请求的http方法、各个缓冲区的合法长度、允许上传和下载文件类型、允许用户进行动态提交的内容等信息。网络层安全产品都是不具备这种规则的配置的,这也是区分网络层安全产品和应用防火墙的一个特征。 由于针对应用层的安全规则包含的信息非常复杂,而且,针对不同的商业应用环境,规则都需要重新配置,这个配置工作量是非常巨大的。真实世界中的web应用非常复杂,而且网站在不断的动态变化。如果使用传统的配置方法,那么应用防火墙的管理员必须理解每个应用、每个网页的作用、每次提交的请求,甚至每个提交变量的范围,然后创建针对每个url、每个请求串、每个变量的安全规则,并且,时刻都需要根据web应用的变化来改变应用防火墙上的安全规则。要在现实中做到这些是非常困难的,传统的配置方式不能够满足应用防火墙策略周全性和变化性的特点,需要应用智能的方式来满足应用防火墙的安全策略配置。 6.稳定性。由于很多web应用和企业的商业利益息息相关,不能容忍访问中断,因此,放在应用前面的应用防火墙必须要有很高的稳定性,不能成为故障点。
(感谢华城技术有限公司和f5网络公司提供相关资料)
|