状态检测技术是防火墙近几年才应用的新技术。
传统的包过滤防火墙只是通过检测IP包头的相关信息来决定数据流的通过还是拒绝,而状态检测技术采用的是一种基于连接的状态检测机制,将属于同一连接的所有包作为一个整体的数据流看待,构成连接状态表,通过规则表与状态表的共同配合,对表中的各个连接状态因素加以识别。这里动态连接状态表中的记录可以是以前的通信信息,也可以是其他相关应用程序的信息,因此,与传统包过滤防火墙的静态过滤规则表相比,它具有更好的灵活性和安全性。
先进的状态检测防火墙读取、分析和利用了全面的网络通信信息和状态,包括:
通信信息:即所有7层协议的当前信息。防火墙的检测模块位于操作系统的内核,在网络层之下,能在数据包到达网关操作系统之前对它们进行分析。防火墙先在低协议层上检查数据包是否满足企业的安全策略,对于满足的数据包,再从更高协议层上进行分析。它验证数据的源地址、目的地址和端口号、协议类型、应用信息等多层的标志,因此具有更全面的安全性。
通信状态:即以前的通信信息。对于简单的包过滤防火墙,如果要允许FTP通过,就必须作出让步而打开许多端口,这样就降低了安全性。状态检测防火墙在状态表中保存以前的通信信息,记录从受保护网络发出的数据包的状态信息,例如FTP请求的服务器地址和端口、客户端地址和为满足此次FTP临时打开的端口,然后,防火墙根据该表内容对返回受保护网络的数据包进行分析判断,这样,只有响应受保护网络请求的数据包才被放行。这里,对于UDP或者RPC等无连接的协议,检测模块可创建虚会话信息用来进行跟踪。
应用状态:即其他相关应用的信息。状态检测模块能够理解并学习各种协议和应用,以支持各种最新的应用,它比代理服务器支持的协议和应用要多得多;并且,它能从应用程序中收集状态信息存入状态表中,以供其他应用或协议做检测策略。例如,已经通过防火墙认证的用户可以通过防火墙访问其他授权的服务。
操作信息:即在数据包中能执行逻辑或数学运算的信息。状态监测技术,采用强大的面向对象的方法,基于通信信息、通信状态、应用状态等多方面因素,利用灵活的表达式形式,结合安全规则、应用识别知识、状态关联信息以及通信数据,构造更复杂的、更灵活的、满足用户特定安全要求的策略规则。