第10期2006年10月电 子 学 报ACTA ELECTRONICA SINICA Vol. 34 No. 10
Oct. 2006
基于进程行为的异常检测模型
苏璞睿, 冯登国
(中国科学院软件研究所信息安全国家重点实验室, 北京100080)
摘 要: 利用系统漏洞实施攻击是目前计算机安全面临的主要威胁. 本文提出了一种基于进程行为的异常检测模型. 该模型引入了基于向量空间的相似度计算算法和反向进程频率等概念, 区分了不同系统调用对定义正常行为的不同作用, 提高了正常行为定义的准确性; 该模型的检测算法针对入侵造成异常的局部性特点, 采用了局部分析算法, 降低了误报率.
关键词: 入侵检测; 异常检测; 非层次聚类
中图分类号: TN918 文献标识码: A 文章编号: 0372-2112(2006) 10-1809-03
An Anoma ly Intrusion Detection Model Based on Nonh ierarchical Clustering
SU Pu -rui, FENG Deng -guo
(State Key L abo ratory o f In f o rmation Sec urit y , Institute o f So ft ware , Chinese Acade my o f Scienc es, Bei j ing 100080, China )
Abstract: More and more intruders exploit the vulnerabilities of system and applications to i ntrude the sy s tem. This paper in -troduced an anomaly intrusion detection model analyzing processes . behaviors. It introduces the similarity calculation method based on Vector -space. And it introduces an argument to value the capabilities of system calls to differentiate the process behaviors. Think -ing of the characters of the abnormalities caused by intrusions, the detection algorithm adopts the method of locally analyzing.
Key words: intrusion detection; anomaly detection; nonhierarchical clustering
扰, 引入滤噪函数, 提高了检测准确性.
本文第2节详细介绍模型基本思想和其中的关键算法; 第3节介绍实验结果, 对模型的检测效率和准确性进行评估; 最后总结全文并讨论下一步工作.
1 引言
利用系统漏洞实施攻击是目前计算机安全面临的主要威胁. 监控特权进程的系统调用数据是防范该类入侵的有效方式之一. 系统调用是进程访问系统资源的接口, 进程执行的系统调用序列粗略的描绘出进程的行为. 基于系统调用的检测方法最早由S. Forrest 等人提出, 目前已取得了一些进展, 包括S. Forrest 等人最初提出的N -gram 模型[2], 在N -gram 基础上发
[13][17]
展的Var -gram 模型, V-t path 模型等等. N -gram 模型直接将训练数据截为定长片段定义正常行为, 正常行为定义规模大, 影响检测效率. Var -gram 模型主要是针对N -gram 模型中序列长度不易确定的问题而提出的, 该模型采用不同长度的序列来定义正常行为, 但Var -gram 模型不仅没有有效解决长度问题, 还引入了复杂的匹配算法, 严重影响了检测效率.
本文提出了一种无监督训练算法, 该算法直接利用系统实时运行数据作为训练数据, 降低了对训练数据的要求. 本文引入了反向进程频率和系统调用出现频率等参数, 通过权值区分不同系统调用在定义正常行为中的不同作用. 在正常行为定义生成和实时检测过程中, 序列匹配采用了基于向量空间模型的相似度计算算法, 更准确地衡量序列的匹配程度. 在检测过程中, 针对正常行为定义的不完整性等原因造成的干
收稿日期:2005-12-20; 修回日期:2006-04-10
2 检测模型
操作系统采用编号来区分不同的系统调用, 编号范围一般在0~255之间. 本文直接采用系统调用号i 表示一个系统
调用类型. 一个系统调用序列(System Call Sequence ) 是多个系统调用有序的排列, 即系统调用序列S =3s 0, s 1, , , , s l -14, 其中, 0[s i
N ipf i =, 其中N 是P 中进程总数, N i 是出现系统调用i
N i
的进程数.
对于系统调用集合中每一个系统调用, 计算其反向进程频率得到:IPF =(i pf 0, i pf 1, , , , i pf n -1) . 其中ipf i 是系统调用i 的反响进程频率.
对于应用程序APP 的训练数据, 计算各个系统调用在
;
1810
训练数据中出现的频率得到:
SF APP =(s f 0, sf 1, , , , s f n -1)
电 子 学 报
E 的密度Q X , E :=
i
2006年
N eighbor (X i , E ) ;
其中, s f i 是系统调用i 在应用程序APP 训练数据集和出现的频率.
根据系统调用频率和反向进程频率得到各个系统调用在定义正常行为中的权值:
W APP =(w 0, w 1, , , , w n -1) , 其中w i =ipf i #s f i
对于一个确定的系统调用序列, 它在定长为l 的系统调
用序列中可能在l 个不同位置出现, 对于n 种不同的系统调用. 将长度为l 的系统调用序列用n #l 的向量空间表示, 定义v i, j =3s 0, 0, s 0, 1, , , , s 0, l -1, s 1, 0, s 1, 1, , , , s 1, l -1, , , s i, j , , , , s n -1, l -14
(3) 取S 中密度最大的向量X i , if Profile 为空then
S :=S -Nei ghbor (X i , E )
Covered:=Covered+|Neighbor (X i , E ) Profile:=Profile U {X i }Else
If Profile 中存在Y , Distance (Y, X i ) [E c , then S :S -{X i }
Covered:=Covered+1; Else
S :=S -Nei ghbor (X i , E )
Covered:=Covered+|Neighbor(X i , E ) | Endif Endi f Endi f
(4) If Covered \Sum *(1-A ) then 返回集合Profile , 即正常行为定义
Else 执行3
Endi f End
实时监控过程中, 将为每一个被监控的进程建立一个队列, 并利用一个长度为l(与正常行为定义中序列长度一致) , 步长为1的滑动窗口将实时数据截为定长片断S j . S j =3s 0, s 1, , , , s l -14.
定义5 向量
X =w x 0g v x 0, 0+w x 1g v x 1, 1+, , +w x l -1g v x l -1, l -与Profile 的距离, 记为
Distance X , Pr ofile =mi n {Distance(X , Y ) |Y I Profile }在检测过程中, 我们借鉴了Terran D. Lane 的滤噪思想, 引入了滤噪函数F(S i ) , 保留入侵行为造成的明显异常的同时, 去除了一些噪声的影响, 降低误报率. 滤噪函数F (S i ) 如下所示:
F(S i ) =
1R j =
1
其中s i, j =1, 其他均为0.
对于应用程序APP , 如果其所有系统调用的权值为W =3w 0, w 1, , , , w n -14, 则系统调用S =3s 0, s 1, , , , s l -14可表示为向量
S =w s g v s
, 1+w s g v s
1
1
, 1+, , +w s
l -1
g v s
l -1
, l -1
对于应用程序APP 的系统调用序列集S 中, 各个系统调用序列对应的向量的集和称之为S 的向量集, 记为S . 如果S 为l -系统调用序列集, 则S 称之为l -系统调用向量集.
向量X 和向量Y 之间的相似性定义为:
X g Y
Sim(X , Y ) =cos (X , Y ) =
向量X 和向量Y 之间的距离定义为:
Distan ce(X, Y ) =1-Sim(X , Y ) =1-cos (X , Y )
定义2 如果两个向量X 和Y 之间的距离Distance (X , Y ) [E , 则称X 为Y 的E -邻居(E -Neighborhood ) (或Y 为X 为的E -邻居) .
定义3 在l -系统调用向量集S 中, X 的E -邻居集(E -Neighborhood Set ) 为:
Neighbor (X , E ) ={Y |Distance (X, Y ) [E , Y I S }
定义4 在l -系统调用向量集S 中, X (X I S ) 在半径为E 时的密度(Densi ty ) 记为Q ) |[17]. X , E =|Neighbor (X , E
训练生成正常行为定义首先需要分析各个系统调用的反向进程频率, 该方法已在前面介绍. 另外对搜集的训练数据统计各系统调用的使用频率, 最后得到各个系统调用的权值W APP . 之后对训练数据进行预处理. 利用定长l 的滑动窗口, 以步长为1的方式将各个进程的系统调用序列截为定长l 的序列, 得到训练数据集合l -系统调用序列集S , 并转换得到l -向量集S , 按如下算法训练生成正常行为定义:
正常行为定义生成算法
输入:S 训练数据集合, S 应用程序APP 的l -系统调用向量集, E 密度计算半径, E c 类间距离, A 异常点控制比例
输出:行为定义Profile A PP
Begin:
(1) 初始化, Profile:=NULL , j :=0, Covered:=0, Sum :=|S |;
() S 中, 计X i 半径为
[17]
和正常行为定义Profile 中凝聚点的最短距离称之为向量X
E
i
Distance S , Profile
i
i-R +1
其中, R 是滤噪序列长度. 检测过程中, 设置检测阈值N , 当
F(S i ) >N 时, 认为进程受到入侵.
本模型中的正常行为定义生成算法可直接改造为正常行为定义更新算法, 主要作以下修改:
(1) 增加了一个输入参数) ) ) 现有正常行为定义(OldPro -file ) ;
(2) 初始化时, 将Profile 初始化为OldProfile, 即Profile:=OldProfile;
3 实验结果
本实验通过两方面的数据完成:(1) 来自于美国新墨西哥[4]
,
第 10 期苏璞睿:基于进程行为的异常检测模型1811
据, 数据量丰富; (2) 搜集wu -ftpd 、traceroute 两个应用程序的相关数据, 在Redhat Linux 平台上构造了LBNL Traceroute 堆溢出攻击[5]和Wu -ftpd/bin SITE EXEC 攻击[6]. 所有实验数据分析处理在Red Hat 910, P4117G 系统上完成.
实验中xlock 包含了25个正常进程和2个异常进程的数据;T raceroute 包含了10个正常进程和1个异常进程数据. 表1中的最佳值平衡了行为定义规模和行为定义的条件熵两个主要指标. 当采用上述设置时, xlock 行为定义的大小为194(是Hofmeyr 方法[7]的3712%) , Traceroute 行为定义大小为107(是Hofmeyr 方法[8]的3219%). 行为定义的大小直接影响到实时检测时的效率, 通过降低行为定义规模, 本模型可有效提高检测效率.
我们对比分析了一个正常进程和一个异常进程系统调用序列和正常行为定义的距离之间的差异。从实验结果我们发现, 正常进程中, Distance S , Profile 主要集中在013附近, 而入侵进
i
(1) 在模型中引入了反向进程频率和系统调用使用频率等参数, 更准确地区分序列的相似程度, 提高了检测准确性;
(2) 利用基于非层次聚类的无监督算法训练生成正常行为定义, 提高了正常行为定义质量, 降低了正常行为定义规模;
(3) 提出了正常行为定义更新算法, 系统能在运行过程中不断完善正常行为定义, 有利于确保正常行为定义与动态变化的运行环境保持一致. 参考文献:
[1]CERT Coordination Center , CERT /CC Overview Incident and
Vulnerability Trends [OL ], http://www. cert. org/present/cer-t overview -trends/
[2]S Forres t, S A Hofmeyr , A Somayaji and T A Long s taff. A
sense of self for unix processes[A ].In Proceedings of 1996IEEE Symposium on Computer Security and Privacy[C]. 1996. [3]马振华. 现代应用数学手册) ) ) 概率统计与随机过程卷
[M ].北京:清华大学出版社[4]Wenke Lee, Dong X iang. Information -T heoretic M easures for
Anomaly Detection[A ].In Proceedings of the 2001IEEE Sym -po sium on Secu r i ty and Privacy[C]. 2001.
[5]Steven A Hofmeyr. Stephanie Forres t, Anil Somayaji. Intrusion
detection using sequences of system calls[J].Journal of Com -puter Security , 1998, 6:
[6]Chowalit Tinnagonsutibout, Pirawat Watanapongse. A novel ap -pro ach to process -based intrusion detection sys tem using read -sequence finite state automata with inbo u nd byte proler[A]. I -CEP2003[C]. 2003.
[7]N Nuansri. A process state -transition analysis and its application to intrusion detection[A ]. 15th Annual Computer Security Ap -plications Conference[C].1999.
[8]A Wepsi, M Dacier, H Debar. Intrusion detection using var-i
able -length audit trail patterns[A]. 3rd International Workshop on the Recent A dvances in Intrusion Detection, L NCS 1907[C].2000. 110-129.
[9]R Sekar , M Bendre, D Dhurjati, P Bolli neni. A fast au tomation -based method for detecting anomalous program behaviors[A ].
IEEE Symposiu m on Secu rity and Privacy[C]. 2001.
[10]H Feng, O Ko les nikov, P Fogla, W Lee, W Gong. Anomaly
detection usi ng call stack information [A ].IEEE Securi ty and
Privacy[C], 2003. 作者简介:
苏璞睿 男, 湖北宜昌人, 毕业于中国科学院软件研究所, 获博士学位, 主要从事网络安全和入侵检测相关研究, 发表论文10余篇, 参与并组织了多个重大项目技术攻关.
冯登国 男, 现为中国科学院软件所研究员、博士生导师, 信息安全国家重点实验室主任, 国家计算机网络入侵防范中心主任, 国家信息化专家咨询委员会委员, 目前主要从事信息与网络安全方面的研究与开发工作.
程的Distance S , Profile 分布则比较分散, 从0到019均大量存在.
i
异常进程中也存在大量序列的Distance S , Profile 值较小, 这主要
i
是因为在入侵发生前, 异常进程执行了大量的正常操作. 如果
采取类似于文献[8]中的全局统计分析方法, 可能会因为大量的正常行为掩盖入侵造成的异常, 因此, 本模型采用的局部分析方法则更有利于区分异常.
另外, 从进程中系统调用的距离变化情况来看, 正常进程系统调用的距离基本保持在一个相对低的水平, 而入侵进程中, 存在大量连续的系统调用序列, 其距离保持在一个高水平, 但也存在大量的系统调用序列的距离保持在较低水平(比如在进程的开始部分). 从实验结果看出:
(1) 正常进程和入侵进程系统调用序列在与正常行为定义的距离上具有明显差异, Distance S , Profile 具有较强的区分正
i
常行为和异常行为的能力;
(2) 滤噪函数可以去除正常进程中出现的偶然性异常, 但保留了异常进程中的连续异常特征, 降低了误报率.
为了更全面的评估检测算法的准确性, 我们以新墨西哥大学提供的数据作为测试数据完成了准确性评估. 评价入侵检测系统的准确性主要包括两个参数, 误报率和漏报率[8]. 实验数据主要包括新墨西哥大学提供的Inetd 、log 、named 、ftp 、lpr 、sendmail 、xlock 等应用程序数据和采集的wu -ftpd 和traceroute 数据. 实验中各个应用程序行为定义参数选择参考312进行, R 统一设置为R =2l. 通过对所有应用程序大批量数据的实验, 检测漏报率低于5%(详细数据请参见附录) . 对于误报率, 选择其中的xlock 、traceroute 等应用程序相关数据, 误报率低于013%. 这一实验结果要优于N -gram 等模型
[12]
.
4 总结
利用系统漏洞实施攻击是目前计算机安全面临的主要威胁. 通过分析进程行为差异是检测该类入侵的主要方法之一. 本文提出了基于非层次聚类的异常检测模型. 该模型具有以下特点:
第10期2006年10月电 子 学 报ACTA ELECTRONICA SINICA Vol. 34 No. 10
Oct. 2006
基于进程行为的异常检测模型
苏璞睿, 冯登国
(中国科学院软件研究所信息安全国家重点实验室, 北京100080)
摘 要: 利用系统漏洞实施攻击是目前计算机安全面临的主要威胁. 本文提出了一种基于进程行为的异常检测模型. 该模型引入了基于向量空间的相似度计算算法和反向进程频率等概念, 区分了不同系统调用对定义正常行为的不同作用, 提高了正常行为定义的准确性; 该模型的检测算法针对入侵造成异常的局部性特点, 采用了局部分析算法, 降低了误报率.
关键词: 入侵检测; 异常检测; 非层次聚类
中图分类号: TN918 文献标识码: A 文章编号: 0372-2112(2006) 10-1809-03
An Anoma ly Intrusion Detection Model Based on Nonh ierarchical Clustering
SU Pu -rui, FENG Deng -guo
(State Key L abo ratory o f In f o rmation Sec urit y , Institute o f So ft ware , Chinese Acade my o f Scienc es, Bei j ing 100080, China )
Abstract: More and more intruders exploit the vulnerabilities of system and applications to i ntrude the sy s tem. This paper in -troduced an anomaly intrusion detection model analyzing processes . behaviors. It introduces the similarity calculation method based on Vector -space. And it introduces an argument to value the capabilities of system calls to differentiate the process behaviors. Think -ing of the characters of the abnormalities caused by intrusions, the detection algorithm adopts the method of locally analyzing.
Key words: intrusion detection; anomaly detection; nonhierarchical clustering
扰, 引入滤噪函数, 提高了检测准确性.
本文第2节详细介绍模型基本思想和其中的关键算法; 第3节介绍实验结果, 对模型的检测效率和准确性进行评估; 最后总结全文并讨论下一步工作.
1 引言
利用系统漏洞实施攻击是目前计算机安全面临的主要威胁. 监控特权进程的系统调用数据是防范该类入侵的有效方式之一. 系统调用是进程访问系统资源的接口, 进程执行的系统调用序列粗略的描绘出进程的行为. 基于系统调用的检测方法最早由S. Forrest 等人提出, 目前已取得了一些进展, 包括S. Forrest 等人最初提出的N -gram 模型[2], 在N -gram 基础上发
[13][17]
展的Var -gram 模型, V-t path 模型等等. N -gram 模型直接将训练数据截为定长片段定义正常行为, 正常行为定义规模大, 影响检测效率. Var -gram 模型主要是针对N -gram 模型中序列长度不易确定的问题而提出的, 该模型采用不同长度的序列来定义正常行为, 但Var -gram 模型不仅没有有效解决长度问题, 还引入了复杂的匹配算法, 严重影响了检测效率.
本文提出了一种无监督训练算法, 该算法直接利用系统实时运行数据作为训练数据, 降低了对训练数据的要求. 本文引入了反向进程频率和系统调用出现频率等参数, 通过权值区分不同系统调用在定义正常行为中的不同作用. 在正常行为定义生成和实时检测过程中, 序列匹配采用了基于向量空间模型的相似度计算算法, 更准确地衡量序列的匹配程度. 在检测过程中, 针对正常行为定义的不完整性等原因造成的干
收稿日期:2005-12-20; 修回日期:2006-04-10
2 检测模型
操作系统采用编号来区分不同的系统调用, 编号范围一般在0~255之间. 本文直接采用系统调用号i 表示一个系统
调用类型. 一个系统调用序列(System Call Sequence ) 是多个系统调用有序的排列, 即系统调用序列S =3s 0, s 1, , , , s l -14, 其中, 0[s i
N ipf i =, 其中N 是P 中进程总数, N i 是出现系统调用i
N i
的进程数.
对于系统调用集合中每一个系统调用, 计算其反向进程频率得到:IPF =(i pf 0, i pf 1, , , , i pf n -1) . 其中ipf i 是系统调用i 的反响进程频率.
对于应用程序APP 的训练数据, 计算各个系统调用在
;
1810
训练数据中出现的频率得到:
SF APP =(s f 0, sf 1, , , , s f n -1)
电 子 学 报
E 的密度Q X , E :=
i
2006年
N eighbor (X i , E ) ;
其中, s f i 是系统调用i 在应用程序APP 训练数据集和出现的频率.
根据系统调用频率和反向进程频率得到各个系统调用在定义正常行为中的权值:
W APP =(w 0, w 1, , , , w n -1) , 其中w i =ipf i #s f i
对于一个确定的系统调用序列, 它在定长为l 的系统调
用序列中可能在l 个不同位置出现, 对于n 种不同的系统调用. 将长度为l 的系统调用序列用n #l 的向量空间表示, 定义v i, j =3s 0, 0, s 0, 1, , , , s 0, l -1, s 1, 0, s 1, 1, , , , s 1, l -1, , , s i, j , , , , s n -1, l -14
(3) 取S 中密度最大的向量X i , if Profile 为空then
S :=S -Nei ghbor (X i , E )
Covered:=Covered+|Neighbor (X i , E ) Profile:=Profile U {X i }Else
If Profile 中存在Y , Distance (Y, X i ) [E c , then S :S -{X i }
Covered:=Covered+1; Else
S :=S -Nei ghbor (X i , E )
Covered:=Covered+|Neighbor(X i , E ) | Endif Endi f Endi f
(4) If Covered \Sum *(1-A ) then 返回集合Profile , 即正常行为定义
Else 执行3
Endi f End
实时监控过程中, 将为每一个被监控的进程建立一个队列, 并利用一个长度为l(与正常行为定义中序列长度一致) , 步长为1的滑动窗口将实时数据截为定长片断S j . S j =3s 0, s 1, , , , s l -14.
定义5 向量
X =w x 0g v x 0, 0+w x 1g v x 1, 1+, , +w x l -1g v x l -1, l -与Profile 的距离, 记为
Distance X , Pr ofile =mi n {Distance(X , Y ) |Y I Profile }在检测过程中, 我们借鉴了Terran D. Lane 的滤噪思想, 引入了滤噪函数F(S i ) , 保留入侵行为造成的明显异常的同时, 去除了一些噪声的影响, 降低误报率. 滤噪函数F (S i ) 如下所示:
F(S i ) =
1R j =
1
其中s i, j =1, 其他均为0.
对于应用程序APP , 如果其所有系统调用的权值为W =3w 0, w 1, , , , w n -14, 则系统调用S =3s 0, s 1, , , , s l -14可表示为向量
S =w s g v s
, 1+w s g v s
1
1
, 1+, , +w s
l -1
g v s
l -1
, l -1
对于应用程序APP 的系统调用序列集S 中, 各个系统调用序列对应的向量的集和称之为S 的向量集, 记为S . 如果S 为l -系统调用序列集, 则S 称之为l -系统调用向量集.
向量X 和向量Y 之间的相似性定义为:
X g Y
Sim(X , Y ) =cos (X , Y ) =
向量X 和向量Y 之间的距离定义为:
Distan ce(X, Y ) =1-Sim(X , Y ) =1-cos (X , Y )
定义2 如果两个向量X 和Y 之间的距离Distance (X , Y ) [E , 则称X 为Y 的E -邻居(E -Neighborhood ) (或Y 为X 为的E -邻居) .
定义3 在l -系统调用向量集S 中, X 的E -邻居集(E -Neighborhood Set ) 为:
Neighbor (X , E ) ={Y |Distance (X, Y ) [E , Y I S }
定义4 在l -系统调用向量集S 中, X (X I S ) 在半径为E 时的密度(Densi ty ) 记为Q ) |[17]. X , E =|Neighbor (X , E
训练生成正常行为定义首先需要分析各个系统调用的反向进程频率, 该方法已在前面介绍. 另外对搜集的训练数据统计各系统调用的使用频率, 最后得到各个系统调用的权值W APP . 之后对训练数据进行预处理. 利用定长l 的滑动窗口, 以步长为1的方式将各个进程的系统调用序列截为定长l 的序列, 得到训练数据集合l -系统调用序列集S , 并转换得到l -向量集S , 按如下算法训练生成正常行为定义:
正常行为定义生成算法
输入:S 训练数据集合, S 应用程序APP 的l -系统调用向量集, E 密度计算半径, E c 类间距离, A 异常点控制比例
输出:行为定义Profile A PP
Begin:
(1) 初始化, Profile:=NULL , j :=0, Covered:=0, Sum :=|S |;
() S 中, 计X i 半径为
[17]
和正常行为定义Profile 中凝聚点的最短距离称之为向量X
E
i
Distance S , Profile
i
i-R +1
其中, R 是滤噪序列长度. 检测过程中, 设置检测阈值N , 当
F(S i ) >N 时, 认为进程受到入侵.
本模型中的正常行为定义生成算法可直接改造为正常行为定义更新算法, 主要作以下修改:
(1) 增加了一个输入参数) ) ) 现有正常行为定义(OldPro -file ) ;
(2) 初始化时, 将Profile 初始化为OldProfile, 即Profile:=OldProfile;
3 实验结果
本实验通过两方面的数据完成:(1) 来自于美国新墨西哥[4]
,
第 10 期苏璞睿:基于进程行为的异常检测模型1811
据, 数据量丰富; (2) 搜集wu -ftpd 、traceroute 两个应用程序的相关数据, 在Redhat Linux 平台上构造了LBNL Traceroute 堆溢出攻击[5]和Wu -ftpd/bin SITE EXEC 攻击[6]. 所有实验数据分析处理在Red Hat 910, P4117G 系统上完成.
实验中xlock 包含了25个正常进程和2个异常进程的数据;T raceroute 包含了10个正常进程和1个异常进程数据. 表1中的最佳值平衡了行为定义规模和行为定义的条件熵两个主要指标. 当采用上述设置时, xlock 行为定义的大小为194(是Hofmeyr 方法[7]的3712%) , Traceroute 行为定义大小为107(是Hofmeyr 方法[8]的3219%). 行为定义的大小直接影响到实时检测时的效率, 通过降低行为定义规模, 本模型可有效提高检测效率.
我们对比分析了一个正常进程和一个异常进程系统调用序列和正常行为定义的距离之间的差异。从实验结果我们发现, 正常进程中, Distance S , Profile 主要集中在013附近, 而入侵进
i
(1) 在模型中引入了反向进程频率和系统调用使用频率等参数, 更准确地区分序列的相似程度, 提高了检测准确性;
(2) 利用基于非层次聚类的无监督算法训练生成正常行为定义, 提高了正常行为定义质量, 降低了正常行为定义规模;
(3) 提出了正常行为定义更新算法, 系统能在运行过程中不断完善正常行为定义, 有利于确保正常行为定义与动态变化的运行环境保持一致. 参考文献:
[1]CERT Coordination Center , CERT /CC Overview Incident and
Vulnerability Trends [OL ], http://www. cert. org/present/cer-t overview -trends/
[2]S Forres t, S A Hofmeyr , A Somayaji and T A Long s taff. A
sense of self for unix processes[A ].In Proceedings of 1996IEEE Symposium on Computer Security and Privacy[C]. 1996. [3]马振华. 现代应用数学手册) ) ) 概率统计与随机过程卷
[M ].北京:清华大学出版社[4]Wenke Lee, Dong X iang. Information -T heoretic M easures for
Anomaly Detection[A ].In Proceedings of the 2001IEEE Sym -po sium on Secu r i ty and Privacy[C]. 2001.
[5]Steven A Hofmeyr. Stephanie Forres t, Anil Somayaji. Intrusion
detection using sequences of system calls[J].Journal of Com -puter Security , 1998, 6:
[6]Chowalit Tinnagonsutibout, Pirawat Watanapongse. A novel ap -pro ach to process -based intrusion detection sys tem using read -sequence finite state automata with inbo u nd byte proler[A]. I -CEP2003[C]. 2003.
[7]N Nuansri. A process state -transition analysis and its application to intrusion detection[A ]. 15th Annual Computer Security Ap -plications Conference[C].1999.
[8]A Wepsi, M Dacier, H Debar. Intrusion detection using var-i
able -length audit trail patterns[A]. 3rd International Workshop on the Recent A dvances in Intrusion Detection, L NCS 1907[C].2000. 110-129.
[9]R Sekar , M Bendre, D Dhurjati, P Bolli neni. A fast au tomation -based method for detecting anomalous program behaviors[A ].
IEEE Symposiu m on Secu rity and Privacy[C]. 2001.
[10]H Feng, O Ko les nikov, P Fogla, W Lee, W Gong. Anomaly
detection usi ng call stack information [A ].IEEE Securi ty and
Privacy[C], 2003. 作者简介:
苏璞睿 男, 湖北宜昌人, 毕业于中国科学院软件研究所, 获博士学位, 主要从事网络安全和入侵检测相关研究, 发表论文10余篇, 参与并组织了多个重大项目技术攻关.
冯登国 男, 现为中国科学院软件所研究员、博士生导师, 信息安全国家重点实验室主任, 国家计算机网络入侵防范中心主任, 国家信息化专家咨询委员会委员, 目前主要从事信息与网络安全方面的研究与开发工作.
程的Distance S , Profile 分布则比较分散, 从0到019均大量存在.
i
异常进程中也存在大量序列的Distance S , Profile 值较小, 这主要
i
是因为在入侵发生前, 异常进程执行了大量的正常操作. 如果
采取类似于文献[8]中的全局统计分析方法, 可能会因为大量的正常行为掩盖入侵造成的异常, 因此, 本模型采用的局部分析方法则更有利于区分异常.
另外, 从进程中系统调用的距离变化情况来看, 正常进程系统调用的距离基本保持在一个相对低的水平, 而入侵进程中, 存在大量连续的系统调用序列, 其距离保持在一个高水平, 但也存在大量的系统调用序列的距离保持在较低水平(比如在进程的开始部分). 从实验结果看出:
(1) 正常进程和入侵进程系统调用序列在与正常行为定义的距离上具有明显差异, Distance S , Profile 具有较强的区分正
i
常行为和异常行为的能力;
(2) 滤噪函数可以去除正常进程中出现的偶然性异常, 但保留了异常进程中的连续异常特征, 降低了误报率.
为了更全面的评估检测算法的准确性, 我们以新墨西哥大学提供的数据作为测试数据完成了准确性评估. 评价入侵检测系统的准确性主要包括两个参数, 误报率和漏报率[8]. 实验数据主要包括新墨西哥大学提供的Inetd 、log 、named 、ftp 、lpr 、sendmail 、xlock 等应用程序数据和采集的wu -ftpd 和traceroute 数据. 实验中各个应用程序行为定义参数选择参考312进行, R 统一设置为R =2l. 通过对所有应用程序大批量数据的实验, 检测漏报率低于5%(详细数据请参见附录) . 对于误报率, 选择其中的xlock 、traceroute 等应用程序相关数据, 误报率低于013%. 这一实验结果要优于N -gram 等模型
[12]
.
4 总结
利用系统漏洞实施攻击是目前计算机安全面临的主要威胁. 通过分析进程行为差异是检测该类入侵的主要方法之一. 本文提出了基于非层次聚类的异常检测模型. 该模型具有以下特点: