模式匹配的缺陷
模式匹配是第一代和第二代入侵检测系统在网络数据包里检查某个攻击特征存在性的一种技术。它主要具有如下两个技术缺陷:
1.计算负荷大
支撑这一算法所需的计算量非常惊人,对一个满负荷的100兆以太网而言,所需的计算量是每秒720亿次计算。这一计算速度要求大大超出了现有的技术条件。同时,这种办法虽然可以把系统构建为部分覆盖的功能,但是这样的系统有严重的性能问题,并容易被黑客规避。
2.检测准确率低
第二个根本弱点是使用固定的特征模式来检测入侵只能检测特定的特征,这将会错过通过对原始攻击串做对攻击效果无影响的微小变形而衍生所得的攻击。
新IDS技术的优势
20世纪90年代早期,入侵检测技术就开始被广泛用于保护各大公司的信息安全。但早期入侵检测系统的核心技术一直没有大的发展。而最近协议分析加命令解析技术的出现给IDS技术添加了新鲜的血液。协议分析加命令解析技术是一种新的入侵检测技术,它结合高速数据包捕捉、协议分析和命令解析来进行入侵检测,给入侵检测战场带来了许多决定性的优势。
● 提高了性能:协议分析利用已知结构的通信协议,与模式匹配系统中传统的穷举分析方法相比,在处理数据帧和连接时更迅速、有效。
● 提高了准确性:与非智能化的模式匹配相比,协议分析减少了虚警和误判的可能性,命令解析(语法分析)和协议解码技术的结合,在命令字符串到达操作系统或应用程序之前,模拟它的执行,以确定它是否具有恶意。
● 基于状态的分析:当协议分析入侵检测系统引擎评估某个包时,它考虑了在这之前相关的数据包内容,以及接下来可能出现的数据包。与此相反,模式匹配入侵检测系统孤立地考察每个数据包。
● 反规避能力:因为协议分析入侵检测系统具有判别通信行为真实意图的能力,它较少地受到黑客所用的像URL编码、干扰信息、TCP/IP分片等入侵检测系统规避技术的影响。
● 系统资源开销小:协议分析入侵检测系统的高效性降低了在网络和主机探测中的资源开销,而模式匹配技术却是个可怕的系统资源消费者。
模式匹配不懂“理解”
模式匹配系统没有判别模式的真实含义和实际效果的能力,因此,所有的变形都将成为攻击特征库里一个不同的特征,这就是模式匹配系统有一个庞大的特征库的原因。每一个这样的额外特征都需要执行一次完整的搜索过程。当特征数据库很大时,这种实际上无用的多余尝试,听起来极其可怕――这是上述算法的一个固有的内在缺陷。
这种随特征而增长的计算负荷,是当今市场上没有基于模式匹配的入侵检测系统可以跟进到百兆以太网领域的根本原因。基于模式匹配的入侵检测系统在一个满负荷的100兆以太网上,将不得不丢弃30%~75%的数据流量。某些系统,即使在利用率为20%的100兆以太网上也已经开始漏掉某些攻击行为。黑客们了解这一弱点并利用了它,他们在目标网络上产生大量本地流量数据,使被攻击的以太网被数据所淹没,以此来使自己的攻击被错漏,躲过入侵检测系统的检测。
由于有了协议分析加命令解析的高效技术,基于运行在单个Intel架构计算机上的入侵检测系统的千兆网络警戒系统,就能分析一个高负载的千兆以太网上同时存在的超过300万个连接,而不错漏一个包。
协议分析缩减计算量
协议分析是第三代入侵检测机器用来检测攻击特征存在的技术,它充分利用了网络协议的高度有序性,使用这些知识快速检测某个攻击特征的存在。这种高效的技术,使得所需的计算量大大减小――即使在高负载的高速网络上,仍可逐个分析所有的数据包。
下面是一个基于协议解码的第三代入侵检测系统中进行协议规则检测的典型例子:
第一步――直接跳到第13个字节,并读取2个字节的协议标识。如果值是0800,则说明这个以太网帧的数据域携带的是IP包,基于协议解码的入侵检测利用这一信息指示第二步的检测工作。
第二步――跳到第24个字节处读取1字节的第四层协议标识。如果读取到的值是06,则说明这个IP帧的数据域携带的是TCP包,入侵检测利用这一信息指示第三步的检测工作。
第三步――跳到第35个字节处读取一对端口号。如果有一个端口号是0080,则说明这个TCP帧的数据域携带的是HTTP包,基于协议解码的入侵检测利用这一信息指示第四步的检测工作。
第四步――让解析器从第55个字节开始读取URL。
URL串将被提交给HTTP解析器,在它被允许提交给Web服务器前,由HTTP解析器来分析它是否可能会做攻击行为。
命令串的语法解析
URL串第一个字节的位置被提交给解析器。解析器是一个命令解释程序,入侵检测引擎包括了多种不同的命令语法解析器,因此,它能对不同的高层协议――如Telnet、FTP、HTTP、SMTP、SNMP、DNS等的用户命令进行详细的分析。
命令解析器具有读取攻击串及其所有可能的变形,并发掘其本质含义的能力。解析器将发现“/./phf”和“/phf”,或者用其他“/.”所做的变换是同一个攻击,也就是“/phf”攻击。这样,在攻击特征库中只需要一个特征,就能检测这一攻击所有可能的变形。这是基于解码/解析的系统同模式匹配系统相比只要一个较小的特征库就能检测较大范围攻击的原因。
解析器将使用同Web服务器相同的机制来处理URL,它们的区别是,在发掘出命令的真实含义后,Web服务器将执行命令,并可能会遭到恶意命令攻击的破坏,而入侵检测系统将给恶意命令做好标记,主机将会在这些包到达操作系统、应用程序之前丢弃它们。
检测分片攻击和协议校验
协议分析入侵检测系统中,协议将被解码,如果设置IP分片标志,数据包将会先进行重组,然后再详细分析是否具攻击行为。通过数据包重组,系统可以检测使用像数据分片、TCP或RPC段边界欺骗等规避技术的攻击。并且执行协议解码时,将进行彻底的协议校验,这意味着将检查每个层次协议域,看是否有非法或可疑的值,包括是否使用了保留的域,是否有非法的值、异常的默认值、不当的选项、流水号乱序、流水号跳号、流水号重叠、校验和错、CRC校验错等。
协议解码带来了效率上的提高,因为系统在每一层上都沿着协议栈向上解码,因此可以使用所有当前已知的协议信息,来排除所有不属于这一个协议结构的攻击。这一点模式匹配系统做不到,因为它“看不懂”协议,它只会一个接一个地做简单的模式匹配。
最大程度地减小虚警
协议解码还能排除模式匹配系统中常见的虚警。虚警发生在这样的情况下:一个字节串恰好与某个特征串匹配,但这个串实际上并非一个攻击。比如,某个字节串有可能是一篇关于网络安全的技术论文的电子邮件文本,在这种情况下,“攻击特征”实际上只是数据包数据域中的英语自然语言。这种类型的失误不会发生在基于协议解码的系统中,因为系统知道每个协议中潜在的攻击串所在的精确位置,并使用解析器来确保某个特征的真实含义被正确理解了――这远比简单地匹配字串先进。因为字串是被实际解析的,一个URL(或者其他串)将被检查字符的合法性和语法的正确性,以帮助确定它确实是一种攻击,或者一定程度上可疑。这在模式匹配系统是做不到的。入侵检测问题中解码/解析技术的这种自然优势,使它取得了在入侵检测系统性能和可靠性方向上的领导地位。