论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
摘 要: 对Lane T等人提出的IDS用户行为异常检测模型进行了简要介绍,在此基础上提出一种新的检测模型,此模型利用多种长度不同的shell命令序列表示用户的行为模式,建立多个样本序列库来描述正常用户的行为轮廓。检测时,采用序列匹配的方法挖掘用户命令流中的行为模式,以行为模式所对应的长度可变的命令序列为单位进行相似度赋值,并将加窗滤噪后的相似度作为用户身份的判决依据。基于UNIX用户shell命令数据的实验表明,同Lane T等人的检测模型相比,新的检测模型具有更高的检测性能。
关键词: IDS;异常检测;行为模式;机器学习;相似度
中图分类号:TP18;TP393.08 文献标识码:A
Anomaly Detection of User Behaviors Based on Machine Learning
SUN Hong-wei,TIAN Xin-guang, ZHANG Er-yang
(1.School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China;
2. Putian Telecom Corporation, Beijing 100088, China)
Abstract: Anomaly detection acts as one of the important directions of research on Intrusion Detection Systems (IDSs). In this paper, an anomaly detection model originated mainly by Terran Lane is briefly introduced. Then a new anomaly detection model based on machine learning is presented. The model uses shell command sequences of variable length to represent a valid user’s behavior patterns and uses more than one dictionaries of shell command sequences to build the user’s behavior profile. While performing detection, the model digs behavior patterns by sequence matching method and evaluates the similarities of the corresponding command sequences to the dictionaries. The two models are tested with UNIX users’ shell command data. The results show that the new model originated by us has higher detection performance.
Key words: IDS; anomaly detection; behavior pattern; machine learning; similarity measure
目前,异常检测是入侵检测系统(IDS)研究的主要方向,这种检测技术建立系统或用户的正常行为模式,通过被监测系统或用户的实际行为模式和正常模式之间的比较和匹配来检测入侵,其特点是不需要过多有关系统缺陷的知识,具有较强的适应性,并且能够检测出未知的入侵模式。虚警概率高是目前限制异常检测应用的主要因素。异常检测的关键问题在于正常行为模式(库)的建立以及如何利用该模式(库)对当前行为进行比较和判断。
国内外已经开展了神经网络、机器学习等智能技术在异常检测中的应用研究,研究目标主要是提高检测系统的准确性、实时性、高效性以及自适应性,其中一些研究成果在检测性能和可操作性上已接近或达到了实用化水平。本文介绍了Lane T等人提出的基于机器学习的IDS用户行为异常检测模型,在其基础上提出一种新的检测模型,此模型用多种长度不同的shell命令序列表示用户行为模式,建立多个样本序列库来描述正常用户的行为轮廓,检测时以长度可变的命令
序列为单位进行相似度赋值,并将加窗滤噪后的相似度作为用户身份的判决依据。利用UNIX用户shell命令数据进行的实验表明,新的检测模型具有很高的检测性能和较强的可操作性。
2 基于机器学习的定长命令序列检测模型
2.1 机器学习基本原理
机器学习是人工智能的一个新的分支,它是通过对人类认知机理的研究,借助机器(计算机系统)建立各种学习模型,赋予机器学习的能力,在此基础上构建具有特定应用的面向任务的学习系统。一个机器学习系统主要有学习单元、知识库、执行单元组成,其中学习单元利用外界信息源提供的信息来建立知识库并对其做出改进(增加新知识或重新组织已有知识),执行单元利用知识库中的知识执行任务,任务执行后的信息又反馈给学习单元作为进一步学习的输入。学习单元是机器学习系统实现学习功能的核心部分,它涉及处理外界信息的方式以及获取新知识过程中所用的方法。知识库用来存储知识,包括系统原有的领域知识(这种知识是长期的、相对稳定的),以及通过学习而获得的各种新知识(这种知识是短期的、变化的),选择何种知识表示对学习系统的设计起着非常重要的作用。执行单元是使学习系统具有实际用途,同时又能够评价学习方法好坏的关键部分。
机器学习研究中的很大一部分工作集中在分类和问题求解这两个领域;经过三十多年的发展,目前已有了很多学习方法,如归纳学习、实例学习、遗传学习等,但这些方法均有其局限性,结合具体的应用领域探讨新的学习方法和算法是目前的研究主流。
2.2 定长命令序列检测模型的描述
美国Purdue大学的Lane T等人提出了一种基于机器学习的用户行为异常检测模型,并对模型进行了深入的研究和实验。其模型利用长度固定的shell命令序列表示用户的行为模式,建立样本序列库来描述正常用户的行为轮廓;工作时,将被监测用户的命令序列同正常用户的样本命令序列库进行比较和匹配,根据两者的相似度对被监测用户的身份进行判断。模型的要点简述如下[2]:
(1)将长度固定的shell命令序列作为描述用户行为模式的最小数据单元,采用实例学习方法建立正常用户的样本序列库(知识库)。
(2)定义两序列之间的相似度,它用于表示两个序列所代表的行为模式之间的相似程度。在此基础上,定义一个序列同样本序列库的相似度,它用于表示此序列所代表的行为模式同正常用户各种行为模式之间的最大相似程度。
(3)模型工作时,计算被监测用户序列流中的每个序列同正常用户样本序列库的相似度,然后,对相似度进行加窗滤噪处理,得到按时间顺序排列的相似度判决值,根据判决值的大小对被监测用户的身份进行实时判决。
模型中有以下几个关键问题:一、最佳序列长度的选择;二、样本序列的提取;三、相似度函数的定义;四、滤噪算法的选择。Lane T等人针对以上问题利用UNIX用户的shell命令数据做了大量实验,以下是他们得出的结论:
(1)最佳序列长度同具体用户的行为特点有关。随着序列长度的增大(从1到15),模型的检测性能随用户的不同而呈现出不同的变化趋势。
(2)在各种相似度函数中,关心相邻命令之间相关性的相似度函数对应的检测性能优于不考虑相关性的相似度函数。均值滤噪和中值滤噪算法[2]对应的检测性能差别不大。
(3)在聚类、按出现概率提取、按时间顺序截取、随机选择等样本序列提取方法中,聚类方法对不同用户的适应性要强一些,但实现起来最复杂。
3 基于机器学习的变长命令序列检测模型
3.1 变长命令序列检测模型的描述
Lane T等人提出的定长命令序列检测模型主要有两个缺点:一、在用户行为模式的表示上缺乏灵活性和适应性。行为模式是指用户操作过程中体现出的某种规律性;实际中,不同用户所具有的行为模式存在差异,同一用户完成不同行为模式时所执行的命令个数也不尽相同,因而,用长度固定的命令序列难以全面准确地表示出用户的整体行为轮廓。二、不容易估算针对具体用户的最佳序列长度。Lane T等人主要采用实验方法来确定最佳序列长度,这种方法所需的计算量很大,而且其性能缺乏稳定性。我们针对定长命令序列检测模型的以上不足进行了改进和修正,提出一种变长命令序列检测模型,具体描述如下:
(1)根据正常用户的历史行为,定义种长度不同的shell命令序列,用于表示正常用户的各种行为模式。
设序列长度的集合为,其中表示第种序列的长度,且。在样本序列库的个数确定的情况下,可有不同的选择。例如时,可以为(即三种序列的长度分别为),也可以为或其它组合。和对检测性能有直接影响,在选择它们时,除了要充分考虑正常用户的行为特点之外,还需考虑模型的复杂度及检测效率(和越大,检测系统的存储量和工作中的运算量也会越大)。
(2)针对每种序列建立一个样本序列库,用个样本序列库来描述正常用户的行为轮廓(行为模式集合)。按照正常用户历史行为中各序列的出现概率来提取样本序列。
设个样本序列库的集合,其中表示长度为的序列对应的样本序列库。设正常用户的训练数据(历史数据)为,它是一个长度为的shell命令流,其中表示按时间顺序排列的第个命令,对应的长度为()的命令序列流可表示为,其中。我们设定一个概率门限,将()中出现概率大于的命令序列视为正常用户的行为模式,即是由这些命令序列组成。
(3)定义序列之间以及序列同样本序列库之间的相似度函数,用以描述行为模式之间以及行为模式同用户整体行为轮廓之间的相似程度。
设长度为的两序列和的相似度为,其计算方法如下[1]:
第一步:设定,,。
第二步:如果(其中表示中的第个命令),则,;否则,,。
第三步:。如果,返回执行第二步;否则,。
根据以上定义,如果时(即两序列相同),则有。
序列和样本序列库的相似度函数定义为:
(1)
(4)检测时,以长度可变的命令序列为单位进行相似度赋值,并将加窗滤噪后的相似度作为用户身份的判决依据。
对于被监测用户的命令流,将它所对应的长度为的序列流表示为,其中。模型工作时,按照以下方法定义第个长度可变的序列并计算它同样本序列库集合的相似度。
第一步:设定,,。
第二步:如果,根据(1)式计算;否则,结束序列定义和相似度计算过程。
第三步:如果(即与中的某个序列相同),则,,,,,并返回执行第二步;否则,。
第四步:如果,返回执行第二步;如果,则,,,,,并返回执行第二步。
按照以上方法进行变长序列的定义和相似度计算,可得到按时间顺序排列的相似度输出值序列,其中为中的变长序列个数,,对此序列进行加窗滤噪处理,得到相似度判决值,对此值设定一个门限,若它大于,将被监测用户判为正常用户,否则,将其判为异常用户。采用均值滤噪算法时的相似度判决值为:
(2)
式中表示用户第个变长序列对应时间点上的相似度判决值(模型在中第个变长序列之后的每个序列对应时间点上都做一次判决),为窗长度,它是一个很重要的参数,决定了从被监测用户行为发生到检测系统对其行为做出判断的最短时间(即检测时间)。
3.2 模型的分析与比较
我们提出的变长命令序列检测模型主要有以下几个特点:
(1)用多种长度不同的命令序列表示正常用户的行为模式,并针对每种命令序列建立一个样本序列库,这可以更好地反映正常用户的实际行为轮廓。
(2)以长度可变的序列为单位进行相似度赋值,其实质是在被监测用户命令流中进行行为模式挖掘。行为模式挖掘过程中,以当前命令为起点组成多个长度不同的序列,并按照长度从大到小的顺序依次同相应的样本序列库进行比较,如果其中一个序列同相应样本序列库中的某个序列相同,则认为挖掘到一个行为模式,将此序列提取出来并进行相似度赋值,序列长度越大,所赋的值也越大,如果任何一个序列同相应样本序列库中的序列都不相同,则将当前命令提取出来作为长度为1的序列,并将它与样本序列库的相似度赋以0值;然后,再以此序列之后的下一个命令为起点组成多个序列继续进行挖掘和赋值。
Lane T等人的定长序列检测模型关心的是以当前命令为起点的定长序列与正常用户各个行为模式之间的最大相似程度,而变长序列检测模型关心的是以当前命令为起点的多个长度不同的序列是否能够同正常用户的某个行为模式完全匹配。
(3)定长序列检测模型对正常用户和异常用户的检测时间是相同的。变长序列检测模型则不然,其检测时间为个变长序列持续时间(不考虑模型的计算时间),设变长序列的平均长度为,则平均检测时间为个命令持续时间;当被监测用户是正常用户时,在其命令流中挖掘到的行为模式会比较多,相对较大,最大可为,当被监测用户是异常用户时,在其命令流中只能挖掘到很少的(正常用户的)行为模式,相对较小(最小可为1);所以,模型对异常用户的平均检测时间相对要短。
(4)此模型需要建立多个样本序列库,因而对检测系统数据存储空间的需求相对较大。
4 实验结果
我们利用普渡大学的shell命令实验数据[1]对上述两种检测模型的性能进行了实验。其数据库包含八个UNIX用户在两年时间内的活动记录。每个用户的数据文件中均滤除了用户名、主机名、网址等标识信息,仅保留了shell命令的名称及参数;用户命令流中的命令按照在shell会话中的出现次序进行排列,不同的shell会话按照时间顺序进行连接,每个会话开始和结束的时间点上插入了标识符。实验中采用了四个用户(分别为USER1、USER2、USER3、USER4)的数据,每个用户各有个shell命令。
我们进行了分组实验,每组实验中将一个用户设为正常用户,而将其他三个设为异常用户,分别采用两种模型进行训练和测试;正常用户的前个命令用于模型的训练(建立样本序列库),正常用户和异常用户的后个命令用于模型检测性能的测试。在定长序列检测模型中,序列长度为;在变长序列检测模型中,序列长度集合。两种模型中,每种样本序列库均由正常用户的近个序列中出现概率大于的序列组成,检测时采用均值滤噪算法计算判决值。
图1和图2给出了一组实验的结果,实验中将USER1设为正常用户,两种模型的窗长度均为。图1给出的是采用定长序列检测模型时USER1和USER2的后个命令对应的归一化判决值曲线,图中纵坐标表示加窗滤噪后的相似度判决值。图2给出了采用变长序列检测模型时相应的归一化判决值曲线,图中,USER1(正常用户)对应的变长序列个数为,平均序列长度为,而USER2(异常用户)对应的变长序列个数为,平均序列长度为。可以看出,图2中两条曲线的可分性明显好于图1。
为了在对异常用户的平均检测时间相同的情况下比较两种模型的性能,我们做了四组实验,四个用户各在一组实验中被设为正常用户。每组实验中,采用变长序列检测模型时,用于性能测试的各异常用户命令流(包含个命令)中的变长序列个数平均约为,因此,我们将变长序列检测模型的窗长度设为,而将定长序列检测模型的窗长度设为,以保证两种模型对异常用户的平均检测时间基本相同。实验中通过调整判决门限可以得到不同虚警概率情况下对三个异常用户的平均检测概率。表1给出了USER4被设为正常用户时的一组实验结果。
表1 USER4被设为正常用户时的实验结果
虚警概率
0
0.001
0.005
0.010
0.050
定长序列模型的 平均检测概率
0.67
0.70
0.76
0.79
0.96
变长序列模型的 平均检测概率
0.83
0.86
0.88
0.92
0.99
根据表1的实验结果,在虚警概率较低的区间,变长序列检测模型对应的平均检测概率相对定长序列检测模型有明显的提高。其余三组实验的结果也证明了这一点,这里不再一一列出。
5 结论
本文提出一种新的基于机器学习的IDS用户行为异常检测模型,并利用UNIX用户的shell命令数据进行了实验,实验结果表明,新模型的检测性能同Lane T等人提出的检测模型相比有较大改善。由于模型中的学习方法和检测算法对不同的检测数据有一定的适应性,因而此模型也可以用于shell命令之外其它数据类型(如系统调用)的IDS,但具体的应用范围及检测性能还需要进一步的研究和实验。
大学排名
参考文献:
[1] Lane T. Machine learning techniques for the computer security domain of anomaly detection[Ph.D.Thesis]. Purdue University, 2000.
[2] Lane T., Brodley C E. An application of machine learning to anomaly detection. Proceedings of the 20th National Information Systems Security Conference, 1997:366-377.
[3] Kosoresow A P, Hofmeyr S A. A shape of self for UNIX processes. IEEE Software,1997,14(5):35-42.
[4] Warrender C, Forrest S, Pearlmutter B. Detecting Intrusions Using System Calls: Alternative Data Models. Proceedings the 1999 IEEE Symposium on Security and Privacy. Berkely, California, USA:IEEE Computer Society, 1999:133-145.