3.3.1 经典免疫模型
1994年福里斯特等率先提出了将自然免疫机制引入计算机系统的安全保护框架中,使用了否定选择算法来检测受保护的数据和程序文件的变化,为研究入侵检测系统开辟了崭新的领域,国内外许多学者在这一领域进行了大量卓越的工作,其中以霍夫迈尔的研究成果最具代表性。霍夫迈尔等人将免疫的原理和思想推广到网络入侵检测系统中,并进行了深入的理论分析和研究,其免疫模型以一个局域广播网为研究背景,其自身定义为计算机之间的正常连接(包括局域网内部计算机的连接以及外部计算机与局域网内部计算机的连接),即将一次网络连接中计算机的源IP地址、目的IP地址和服务这三个网络连接属性用49位的二进制串来表示,即抗体和抗原的逻辑结构采用二进制串。每个检测器随机生成并经历否定选择过程,检测器分为未成熟、成熟、激活和记忆四种状态。检测器识别非我模式的匹配规则一般采用海明距离或r-连续位。该模型的核心是否定选择算法,图3-3显示了否定选择算法产生检测器的示意图。
图3-3 否定选择算法
图3-3中随机产生的检测器我们称为候选检测器,可能匹配自我模式,从而引发自反应(Autoimmune Response),因此需要进行筛选,即按某一匹配规则与自我模式集中每一个单元进行匹配的过程,如果候选检测器与每一个自我模式都不匹配,那么它就可以作为一个有效的检测器进入检测系统承担检测任务。达斯等给出传统候选检测器生成算法,该算法的基本过程包括:
(1)定义自身长度为L的有限字符串集。
(2)产生一个检测器集R,R中的每个检测器与自我模式集S中的字符串都不匹配。
(3)通过与检测器R匹配情况监视S的变化,如果与任何一个检测器匹配,则表示自身产生了改变和偏移。
在最初的算法描述中,候选的检测器是随机产生的,然后测试以删除与自身字串相匹配的检测器,该过程重复进行,直到所需数量的检测器被产生出来。用概率分析方法来估算为满足一定的可靠性所应有的检测器的数目。匹配采用了r-连续位规则:如果两个字符串a和b至少有连续的r位相同,则称a和b是在r连续位匹配规则下是匹配的,其中r的取值范围为:r∈[0,L],L=min(字符串a的长度,字符串b的长度)。两个随机的二进制模式串a和b在连续位规则下匹配的概率为:P[Match(a,b)]=2-r[(1-r)/2+1]。在连续位匹配规则中,r参数对两字符串的匹配概率影响很大,几乎是当r减少一位则匹配概率将增加约一倍。r参数大小的最优选取应根据实际情况而定,有关参数的设定如下:
(1)NRO:表示候选检测器的数目;
(2)NR:表示有效检测器的数目;
(3)NS:表示“自我”集合中模式的数目;
(4)PM:表示任意两个随机模式间相互匹配的概率;
(5)Pf:表示任一“非我”模式不被NR个有效检测器所匹配的概率,也称漏检概率,即
(6)f:表示任一随机模式与“自我”集合中的NS个模式都不匹配的概率可得
当PM足够小时,根据泰勒级数展开,近似取ln(1-PM)≈(-PM),因此有
同理有
则有效检测器的数目NR:
由NR=NROf及式(3-1),则候选检测器的数目NRO:
式(3-2)中如果Pf和PM固定不变,那么NRO随NS成指数式增长,NRO对NS很敏感,即使NS发生不太大的变化,也会导致候选检测器集合有较大的变化,增加了算法的计算代价。而从候选检测器中产生一个有效检测器所需的迭代次数可作以下的估计。任一随机模式与“自我”集合中的NS个模式都不匹配的概率为产生一个有效探测器需迭代的次数ρ是以f为参数的几何随机变量,随机变量的数学期望为:
式(3-3)表明每产生一个有效检测器所需产生候选检测器的迭代次数随NS成指数式增长,例如假设PM=0.002,当NS为5000个时,迭代次数为ρ=22248;当NS=6000时,ρ=1.6×105,可见迭代次数ρ随NS成指数式增长。因此传统的否定选择算法存在有效检测器生成的效率低下的问题。
虽然霍夫迈尔对网络IDS免疫模型的研究取得令人兴奋的结果,但金姆等将其结果应用于网络入侵检测系统中时,发现他的结果只当否定选择算法应用于小规模网络通信数据集合时才能成功,而在处理真实的网络流量数据中该算法存在着严重的伸缩性(Scaling)问题,实验结果表明要达到80%的非自身检测率,利用上述否定选择算法生成有效检测器的时间需要1429年。
如前所述,人体大约有108个抗体,但有约1016种病原体要识别,自然免疫系统采用的方法是动态防护,大约每10天会全部更换一次,以适应当前的待检物质。免疫系统采用的动态覆盖实际上是以一定的时间作为代价来换取一定的空间。入侵检测的免疫模型中,在任一特定时刻检测系统可不必包括能检测所有可能的入侵的检测器集合,因为这样做往往开销太大,会严重影响到系统的性能。在某一时刻只包括所有检测器集合的一个子集,这要求检测器集能随时间动态变化,也就是说有效检测器集需要随时更新,而传统的否定选择算法要花费很长的时间才能产生一个有效检测器,严重影响着入侵检测系统的性能。所以如何提高有效检测器产生的效率,以解决传统否定选择算法效率低下的问题,是当前IDS的免疫建模研究中的一个重点。总的来说,目前的免疫模型存在以下几个缺陷。
(1)网络行为特征的描述方式。免疫模型采用二进制串表示网络行为的特征模式,并以海明距离或r-连续位为匹配规则,虽然建模简单且易于性能分析,如能够较准确估计出为达到理想的检测率而所需的检测器数量,同时也能估计出“洞”的数量,但面对复杂多变的网络行为,这种表示方式显得过于简单,以致系统的实用性很低。
(2)检测器集的规模。为了保持较高的检测水准,不得不动态产生大量的检测器,致使检测器的数量达到无法管理的地步,特别是当特征模式的表示方法采用二进制时,这种情况更糟。同时入侵检测的免疫模型中以一定的时间作为代价来换取一定的空间的做法并不有效,即检测时间和检测空间之间存在矛盾的问题。
(3)入侵特征知识的提取。二进制表示的检测器不便于提取有意义的入侵特征知识。
(4)自我集合和非我集合的尖锐划分问题。实际的网络行为十分复杂,判定其是否异常,没有明确的标准,实际上只是个程度的问题,因此简单地将网络行为模式集合尖锐地划分为自我集合和非我集合是不适当的。
(5)检测器集批量更新的问题。自我集合和非我集合的界定是由在一个特定的网络环境条件下的某一时间段内收集的审计数据确定的,随着网络行为的变化或检测时间的延长,自我和非我集合会有较大的变动,导致检测器集批量更新,由于数据集的尺寸巨大,模型必须拥有增量式更新的特点。
(6)免疫模型算法的效率。随着高速网络的出现以及网络环境的动态变化,有效检测器的高效率产生十分重要。
针对上述当前免疫检测模型的研究现状,本章研究建模思路和模型设计的目标。