ASPF是一种应用层状态检测技术,它通过与NAT和ALG等技术的组合应用,实现对应用层协议状态的处理和检测。
1.1 产生背景
随着计算机技术和网络技术的普及,网络安全问题也越来越得到关注。防火墙作为一种控制两个网络之间IP通信的安全机制,已成为网络安全部署的首要选择。防火墙的目的就是在信任网络(区域)和非信任网络(区域)之间建立一道屏障,并实施相应的安全策略。应该说,在网络中应用防火墙是一种非常有效的网络安全手段。
通常,防火墙的实现技术分为两类:包过滤技术和应用层报文过滤技术。
包过滤技术的核心是定义ACL规则来过滤IP数据包。对于需要转发的数据包,包过滤防火墙首先获取其包头信息(包括IP层所承载的上层协议的协议号、数据包的源地址、目的地址、源端口和目的端口等),然后与用户设定的ACL规则进行比较,根据比较的结果对数据包进行处理(允许通过或者丢弃)。
包过滤技术的优点在于它只进行网络层的过滤,处理速度较快,尤其是在流量中等、配置的ACL规模适中的情况下对设备的性能几乎没有影响。而且,包过滤技术的实现对于上层应用以及用户来讲都是透明的,无须在用户主机上安装特定的软件。尽管包过滤技术具有以上优势,但其却具有明显的弊端,主要表现在以下几个方面:
(1) 基于IP包头的静态数据过滤
通常,IP数据包中的目的地址、源地址、源端口和目标端口被用来判断是否允许数据包通过。这种基于IP包头的静态匹配,虽然可以允许或拒绝特定的应用层服务,但是无法理解特定服务的上下文会话。例如,对于多通道的应用层协议,由于传统的包过滤防火墙只能知晓控制通道的连接信息,而无法预知后续动态协商的数据通道信息,因此就无法对其制定完善的安全过滤策略。
(2) 无法检测来自于应用层的攻击行为
由于包过滤防火墙仅对网络层进行检查和过滤,不对报文的应用层内容进行解析和检测,因此无法对一些来自于应用层的威胁进行防范,例如无法防范来自不可信网站的Java applet或Active X插件对内部主机的破坏。
(3) 维护比较困难
<