防火墙发展至今,已经历过四代,分别为第一代包过滤防火墙、第二代代理防火墙(应用网关防火墙)、第三代状态防火墙和第四代防火墙:NGFW

第一代防火墙----包过滤防火墙(Packet Filtering

包过滤指在网络层对每一个数据包进行检查,根据配置的安全策略转发或丢弃数据包。

包过滤防火墙的基本原理是:通过配置ACL(Access Control List)实施数据包的过滤。主要基于数据包中的源/目的IP地址、源/目的端口号、IP标识和报文传递的方向等信息。

第二代防火墙----代理防火墙(代理服务器防火墙/应用代理防火墙)(Application Proxy

代理服务作用于网络的应用层,其实质是把内部网络和外部网络用户之间直接进行的业务由代理接管。代理检查来自用户的请求。认证通过后,该防火墙将代表客户与真正的服务器建立连接,转发客户请求,并将真正服务器返回的响应回送给客户。

代理防火墙能够完全控制网络信息的交换,控制会话过程,具有较高的安全性。

第三代防火墙----状态防火墙(状态检测防火墙)(Stateful Inspection

状态分析技术是包过滤技术的扩展(非正式的也可称为“动态包过滤”)。基于连接状态的包过滤在进行数据包的检查时,将每个数据包看成是独立单元的同时,还要考虑前后报文的历史关联性。

基本原理简述如下:

  • 状态防火墙使用各种状态表来追踪激活的TCP(Transmission Control Protocol)会话和

UDP(User Datagram Protocol)伪会话,由ACL表来决定哪些会话允许建立,只有与被允许会话相关联的数据包才被转发。


UDP伪会话即为在处理基于UDP协议包时为UDP建立虚拟连接,以对UDP连接过程进行状态监控的会话过程。


  • 状态防火墙在网络层截获数据包,然后从应用层提取出安全策略所需要的状态信息,并

保存到动态状态表中,通过分析这些状态表和与该数据包有关的后续连接请求来做出恰当决定。

NGFWNext Generation Firewall

从第三代到NGFW第四代防火墙发展过程中,有一个中间产物:

UTM:Unified Threat Management 统一威胁管理;UTM的特性和NGFW差不多,但是性能要比NGFW弱很多。只能适合小的网络场景。UGFW统一网关防火墙在华为被称为USG 统一安全网关,就属于UTM范畴。

NGFW是传统状态防火墙和统一威胁管理 (UTM) 设备的下一代产品。它不仅包含传统防火墙的全部功能 (基础包过滤、状态检测、NAT、VPN等) ,还集成了应用和用户的识别和控制、入侵防御 (IPS) 等更高级的安全能力。

NGFW的定义

Gartner早在2007年,针对企业业务流程和IT架构的变化,结合安全威胁的新趋势,就提出了Next-Generation Firewall (NGFW)的概念。2009年,Gartner正式发布《Defining the Next-Generation Firewall》。

Gartner把NGFW看做不同信任级别的网终之间的一个线速 (wire-speed) 实时防护设备,能够对流量执行深度检测,并阻断攻击。Gartner认为NGFW必须具备以下能力:

  • 传统的防火墙功能
  • 应用识别与应用控制技术
  • IPS与防火墙深度集成
  • 利用防火墙以外的信息,增强管控能力

随后的状态检测防火墙 (也称传统防火墙) 集成了TCP/UDP和应用状态的检测能力,实现了L3-L4层的防护。2004年出现了将传统防火墙、内容安全和VPN等功能集合到一起的UTM设备。UTM的出现在一定程度上简化了安全产品部署的难度。

拥有应用识别技术的NGFW可以区分流量对应的应用,将IPS、病毒防护等多种安全业务与防火墙业务深度集成、并行处理。

防火墙状态化监控_firewall

讲到四代防火墙,那么就要说一下它们使用到的主要技术:

包过滤技术:“静态包过滤”:Static Packet Filtering、动态包过滤(“基于状态的包过滤防火墙” 技术:Stateful-based Packet Filtering)

包过滤是最早使用的一种防火墙技术,它的第一代模型是“静态包过滤”(Static Packet Filtering),使用包过滤技术的防火墙通常工作在OSI模型中的网络层(Network Layer)上,后来发展更新的“动态包过滤”(Dynamic Packet Filtering)增加了传输层(Transport Layer),简而言之,包过滤技术工作的地方就是各种基于TCP/IP协议的数据报文进出的通道,它把这两层作为数据监控的对象,对每个数据包的头部、协议、地址、端口、类型等信息进行分析,并与预先设定好的防火墙过滤规则(Filtering Rule)进行核对,一旦发现某个包的某个或多个部分与过滤规则匹配并且条件为“阻止”的时候,这个包就会被丢弃。

动态包过滤功能在保持着原有静态包过滤技术和过滤规则的基础上,会对已经成功与计算机连接的报文传输进行跟踪,并且判断该连接发送的数据包是否会对系统构成威胁,一旦触发其判断机制,防火墙就会自动产生新的临时过滤规则或者把已经存在的过滤规则进行修改,从而阻止该有害数据的继续传输,但是由于动态包过滤需要消耗额外的资源和时间来提取数据包内容进行判断处理,所以与静态包过滤相比,它会降低运行效率,但是静态包过滤已经几乎退出市场了,我们能选择的,大部分也只有动态包过滤防火墙了。

基于包过滤技术的防火墙,其缺点是很显著的:它得以进行正常工作的一切依据都在于过滤规则的实施,但是偏又不能满足建立精细规则的要求(规则数量和防火墙性能成反比),而且它只能工作于网络层和传输层,并不能判断高级协议里的数据是否有害,但是由于它廉价,容易实现,所以它依然服役在各种领域,在技术人员频繁的设置下为我们工作着。

应用代理技术

代理服务器作为一个为用户保密或者突破访问限制的数据转发通道,在网络上应用广泛。

一个完整的代理设备包含一个服务端和客户端,服务端接收来自用户的请求,调用自身的客户端模拟一个基于用户请求的连接到目标服务器,再把目标服务器返回的数据转发给用户,完成一次代理工作过程。那么,如果在一台代理设备的服务端和客户端之间连接一个过滤措施呢?这样的思想便造就了“应用代理” 防火墙,这种防火墙实际上就是一台小型的带有数据检测过滤功能的透明代理服务器(Transparent Proxy),但是它并不是单纯的在一个代理设备中嵌入包过滤技术,而是一种被称为“应用协议分析”(Application Protocol Analysis)的新技术。

“应用协议分析”技术工作在OSI模型的最高层――应用层上,在这一层里能接触到的所有数据都是最终形式,也就是说,防火墙“看到”的数据和我们看到的是一样的,而不是一个个带着地址端口协议等原始内容的数据包,因而它可以实现更高级的数据检测过程。整个代理防火墙把自身映射为一条透明线路,在用户方面和外界线路看来,它们之间的连接并没有任何阻碍,但是这个连接的数据收发实际上是经过了代理防火墙转向的,当外界数据进入代理防火墙的客户端时,“应用协议分析”模块便根据应用层协议处理这个数据,通过预置的处理规则(没错,又是规则,防火墙离不开规则)查询这个数据是否带有危害,由于这一层面对的已经不再是组合有限的报文协议,甚至可以识别类似于“GET /sql.asp?id=1 and 1”的数据内容,所以防火墙不仅能根据数据层提供的信息判断数据,更能像管理员分析服务器日志那样“看”内容辨危害。

而且由于工作在应用层,防火墙还可以实现双向限制,在过滤外部网络有害数据的同时也监控着内部网络的信息,管理员可以配置防火墙实现一个身份验证和连接时限的功能,进一步防止内部网络信息泄漏的隐患。最后,由于代理防火墙采取是代理机制进行工作,内外部网络之间的通信都需先经过代理服务器审核,通过后再由代理服务器连接,根本没有给分隔在内外部网络两边的计算机直接会话的机会,可以避免入侵者使用“数据驱动”攻击方式(一种能通过包过滤技术防火墙规则的数据报文,但是当它进入计算机处理后,却变成能够修改系统设置和用户数据的恶意代码)渗透内部网络,可以说,“应用代理”是比包过滤技术更完善的防火墙技术。

但是,任何技术都有其不完美的地方,代理防火墙的缺陷可以说是致命的。代理防火墙是以牺牲速度为代价换取了比包过滤防火墙更高的安全性能,在网络吞吐量不是很大的情况下,也许用户不会察觉到什么,然而到了数据交换频繁的时刻,代理防火墙就成了整个网络的瓶颈,而且一旦防火墙的硬件配置支撑不住高强度的数据流量而发生罢工,整个网络可能就会因此瘫痪了。所以,代理防火墙的普及范围还远远不及包过滤型防火墙,而在软件防火墙方面更是几乎没见过类似产品了――单机并不具备代理技术所需的条件,所以就目前整个庞大的软件防火墙市场来说,代理防火墙很难有立足之地。

状态监视技术

这是继“包过滤”技术和“应用代理”技术后发展的防火墙技术,它是CheckPoint技术公司在基于“包过滤”原理的“动态包过滤”技术发展而来的,与之类似的有其他厂商联合发展的“深度包检测”(Deep Packet Inspection)技术。

这种防火墙技术通过一种被称为“状态监视”的模块,在不影响网络安全正常工作的前提下采用抽取相关数据的方法对网络通信的各个层次实行监测,并根据各种过滤规则作出安全决策。

“状态监视”(Stateful Inspection)技术在保留了对每个数据包的头部、协议、地址、端口、类型等信息进行分析的基础上,进一步发展了“会话过滤”(Session Filtering)功能,在每个连接建立时,防火墙会为这个连接构造一个会话状态,里面包含了这个连接数据包的所有信息,以后这个连接都基于这个状态信息进行,这种检测的高明之处是能对每个数据包的内容进行监视,一旦建立了一个会话状态,则此后的数据传输都要以此会话状态作为依据。

例如:

一个连接的数据包源端口是8000,那么在以后的数据传输过程里防火墙都会审核这个包的源端口还是不是8000,否则这个数据包就被拦截,而且会话状态的保留是有时间限制的,在超时的范围内如果没有再进行数据传输,这个会话状态就会被丢弃。

状态监视可以对包内容进行分析,从而摆脱了传统防火墙仅局限于几个包头部信息的检测弱点,而且这种防火墙不必开放过多端口,进一步杜绝了可能因为开放端口过多而带来的安全隐患。

由于状态监视技术相当于结合了包过滤技术和应用代理技术,因此是最先进的,但是由于实现技术复杂,在实际应用中还不能做到真正的完全有效的数据安全检测,而且在一般的计算机硬件系统上很难设计出基于此技术的完善防御措施(市面上大部分软件防火墙使用的其实只是包过滤技术加上一点其他新特性而已)。