论文学习:2018-TIFS-sequence covering for efficient host based intrusion detection
•引入:想要根据系统调用序列进行异常检测,最直接的想法就是使用正常序列与未知序列进行比对;若未知序列与正常序列相似,则可认为是正常序列;若未知序列与正常序列相差较大,则可认为它是异常序列。
•序列比对:欧式距离是最容易理解的相似度比对算法,它根据欧式空间中两点的距离进行计算;但是用于序列相似度计算时,它只能反映出同一位置上序列元素的差异性,而无法捕获序列元素的前后关系。
Eg:(1,2,3,4,5) (4,5,1,2,3)
每个位置的序列元素都相差2-3,因此欧式距离很大;但这两个序列的相似度并不低,它们是循环移动两位的关系。
•想精确的计算序列的相似度:生物信息学领域提出了许多序列相似度度量方法(如最长公共子序列算法、最长公共子串算法)。
Eg:(1,2,3,4,5)(4,5,1,2,3)
最长公共子串/序列为(1,2,3)此时相似度为60%(相似度较高)
•这些方法也可以成功地应用在系统调用序列上。但是这些方案
1.没有考虑除最长公共序列以外的元素
Eg: (1,2,3,4,5) (6,7,1,2,3)之间的最长公共子序列仍为(1,2,3);但后者与前者相似度明显不如(4,5,1,2,3)与前者高
2.因为都是用于两两序列比对的算法、应用于异常检测时需要位置序列与所有正常序列进行比对;因此时间复杂度很高,只能应用于中小规模的问题上。
该论文提出了 用于入侵检测的序列覆盖算法(SC4ID)
用于入侵检测的序列覆盖算法:
•最优覆盖:得到的公共子串组【aae,gea,gd】就是s的S-最优覆盖
•正常序列组S,对未知序列s的最优覆盖记为
(s“aaef”是S中的一个子串,最优覆盖数量为1,相似度很高)
(当s与S没有长度大于1的公共子串时,最优覆盖数量为s的长度,如s“fdfdfd”的最优覆盖为[f,d,f,d,f,d],最优覆盖数量为6,相似度很低)