2.2 正常化
防范应用层攻击,很大程度上依赖于字符串匹配。不正常的匹配会造成安全漏洞。比如,为了探知某种请求的安全策略是否被启用,防火墙通常根据请求的URL与安全策略来进行匹配。一旦与某种策略条件完全匹配,防火墙就采用对应的安全策略。指向同一个资源的URL或许有多种不同形态,如果该URL的编码方式不同的话,二进制方式的比较就不起作用了。攻击者会利用各种技术,对输入的URL进行伪装,企图避开字符串匹配,以达到越过安全设备的目的。
这些攻击行为,在欺骗IDS和IPS方面,特别有效,因为攻击代码只要与安全设备的特征库有一点点不同的话,就能够达到目的。如图2所示。

解决字符串匹配问题需要利用正常化技术,深度检测能够识别和阻止大量的攻击。对于防范隐藏在帧数据、Unicode、URL编码,双重URL编码和多形态的Shell等类型的攻击行为,必须要用到正常化技术,如图3所示。

2.3 协议一致性
应用层协议,如HTTP、SMTP、POP3、DNS、IMAP和FTP,在应用程序中经常用到。每个协议,都由RFC(Request For Comments)相关规范创建。
深度检测防火墙,必须确认应用层数据流是否与这些协议定义相一致,以防止隐藏其中的攻击。
深度检测在应用层进行状态检测。协议一致性,通过对协议报文的不同字段进行解密而实现,当协议中的字段被识别出来后,防火墙采用RFC定义的应用规则,来检查其合法性。如图4所示。
