目前,绝大多数IDS(入侵检测系统)的检测机制还停留在:基本的数据包捕获加以非智能模式匹配与特征搜索技术来探测攻击。而协议分析能够智能地"理解"协议,利用网络协议的高度规则性快速探测攻击的存在,从而避免了模式匹配所做的大量无用功–导致所需计算的大量减少。
特征模式匹配技术的流程
模式匹配技术按照以下方式进行操作:
网络上每一个数据包都被检查,寻找攻击特征;
与攻击特征相同长度的一组字节从可疑数据包首部取出,并对两组字节进行比较;
如果两组字节一样,攻击特征即被检测出来;
如果两组字节不一样,攻击特征"前移一个字节",重复比较流程;
第二次检测时,特征与数据包中第二位开始的字节进行比较;
该流程被重复,每次的比较起始位置都增加一个字节,直到所有的数据字节都与攻击特征进行比较。
特征模式匹配技术的两个缺陷
特征模式匹配技术有两个最根本的缺陷:
计算的负载–持续该运算法则所需的计算量极其巨大,对于满负载的100Mbps以太网,需要的计算量将是:(攻击特征字节数)×(数据包字节数)×(每秒的数据包数)×(数据库的攻击特征数)。假设一个攻击特征有20字节,平均数据包大小为300字节,每秒30000个数据包,数据库有2000个攻击特征,我们每秒就需要有360000000000字节的计算量。这样的计算速率远远超过当今技术允许的范围。折中的方法就是通过在发现一个字节不匹配时就放弃继续对比,认为该数据包安全,这样可以构造出一个所谓部分覆盖的IDS。因为这种系统有性能问题困扰,因此容易被黑客利用。
探测准确性–第二个根本的缺陷是模式匹配/特征搜索技术使用固定的特征模式来探测攻击。使用固定的特征模式就只能探测出明确的、唯一的攻击特征,即便是最轻微变换的攻击串都会被忽略。
特征模式匹配IDS的根本问题
一个基于模式匹配的IDS系统不能智能地判断看似不同字符串/命令串的真实含义和最终效果。在模式匹配系统中,每一个这样的变化都要求攻击特征数据库增加一个特征记录。这种技术运算规则的内在缺陷使得所谓的庞大特征库实际上是徒劳的,最后的结果往往是付出更高的计算负载,而导致更多的丢包率,也就产生遗漏更多攻击的可能,黑客们往往利用这种缺陷进行攻击。
基于模式匹配技术的IDS的根本问题在于它把数据包作为一系列随机变换的字节流,它假设数据包的结构不可知。当模式匹配被用来从大量随机变化数据,如一个数据影像或一个音频流中搜索特征模式时,可以说是一个正确明智的方法。模式匹配软件最初就是为分析数据影像和音频信息而开发的。但很明显,分析数据影像和分析网络通信协议是截然不同的。模式匹配软件可以在入侵检测系统中使用,但它绝不是理想的,因为它本身就不是被设计来完成这种任务的。