2. 基于信息论的试验分析
根据前面的定义,为了衡量两种方式的优劣,需要比较条件熵和相对条件熵。条件熵衡量的是短序列的规则性,而相对条件熵衡量的是训练集和测试集的规则性。 条件熵比较如前所述,系统调用和L-Call具有明显的序列特征,可以用前个事件来预测第个事件。如果条件熵越小,说明在给定条件下预测事件的不确定性就越小,预测模型也就会越准确。图5显示了四种程序的条件熵,其中轴表示短序列的长度,也就是N-Gram中的,轴表示条件熵值。从图中可以得到以下结论:
■ 随着短序列长度的增加,条件熵会逐渐减小。无论是否加入地址信息,这个结论都成立。
■ 给定同样长度的短序列,L-Call的条件熵要小于系统调用的条件熵,说明加上地址信息后预测下一个事件的准确性得到提高,这样建立的预测模型也会越精确。
相对条件熵比较
相对条件熵衡量的是训练集和测试集的规则性,相对条件熵越小,说明测试集与训练集越相似,因此根据训练集建立的模型来处理测试集也会更准确。本文比较了wu-ftpd的几个入侵实例和训练集(只包含正常数据)的相对条件熵,图6显示了测试结果,其中X轴表示短序列的长度,Y轴表示相对条件熵值。在每一副图中,虚线表示采用系统调用方式得到的相对条件熵,而实体线表示采用L-Call得到的相对条件熵。从图中可以看出,在给定相同的短序列长度的条件下,L-Call的相对条件熵明显小于系统调用的相对条件熵,这表明训练集对测试数据起了更大的帮助,因此根据训练集得到的检测模型效果也越好。
图6 wu-ftpd训练集和测试集的相对条件熵
3. System Call和L-Call的检测结果比较
表1给出在实际检测过程中的结果比较。试验平台采用Redhat6.2 和wu-ftpd.2.6.0,测试集包含36个入侵实例和21个正常实例。从表中可以看出使用系统调用的检测系统只能检测出24个入侵实例,同时还有5个正常实例被误报,但采用L-Call可以检测出全部36个入侵实例,并且没有误报。
表1 SystemCall和L-Call的检测结果比较
① 16(5)表示有16个正常实例被正确识别为正常,有5个被错误识别为攻击(即产生误报)
七、 结束语
L-Call是一个具有位置信息的系统调用表示方法,它不仅仅包含系统调用信息,还包含该系统调用被调用时的位置(用返回地址链表示),因此可以更细粒度地区分调用情况,也就可以更准确地识别入侵。根据前面的分析,可以得出L-Call具有以下特点:
1. 能够提高系统的检测性能。相比一般的系统调用,L-Call具有更小的条件熵和相对条件熵,因此建立的模型也更准确,更有利于检测入侵行为。
2. 可以适用于多种建模分析方法。从机器学习角度上,L-Call是一个新的事件表示方法,属于特征选择范畴。其它的建模方法,比如隐马尔可夫模型(HMM)、自动机理论、神经网络等都可以应用到L-Call中,而这些方法也都成功应用于基于系统调用的检测。
3. 可以有效地抵抗模仿攻击(Mimicry Attack)。如果入侵者企图绕过L-Call的检测,不仅要伪造系统调用,还需要伪造堆栈信息(最重要的是返回地址链),这大大增加了入侵的难度。
4. L-Call由于包含了位置信息,因此可进一步应用于系统调用的参数学习。
(责任编辑:adminadmin2008)