第10期2006年10月电 子 学 报ACTAELECTRONICASINICAVol.34 No.10
Oct. 2006
基于进程行为的异常检测模型
苏璞睿,冯登国
(中国科学院软件研究所信息安全国家重点实验室,北京100080)
摘 要: 利用系统漏洞实施攻击是目前计算机安全面临的主要威胁.本文提出了一种基于进程行为的异常检测模型.该模型引入了基于向量空间的相似度计算算法和反向进程频率等概念,区分了不同系统调用对定义正常行为的不同作用,提高了正常行为定义的准确性;该模型的检测算法针对入侵造成异常的局部性特点,采用了局部分析算法,降低了误报率.
关键词: 入侵检测;异常检测;非层次聚类
中图分类号: TN918 文献标识码: A 文章编号: 0372-2112(2006)10-1809-03
AnAnomalyIntrusionDetectionModelBasedonNonhierarchicalClustering
SUPu-rui,FENGDeng-guo
(StateKeyLaboratoryofInformationSecurity,InstituteofSoftware,ChineseAcademyofSciences,Beijing100080,China)
Abstract: Moreandmoreintrudersexploitthevulnerabilitiesofsystemandapplicationstointrudethesystem.Thispaperin-troducedananomalyintrusiondetectionmodelanalyzingprocesses.behaviors.ItintroducesthesimilaritycalculationmethodbasedonVector-space.Anditintroducesanargumenttovaluethecapabilitiesofsystemcallstodifferentiatetheprocessbehaviors.Think-ingofthecharactersoftheabnormalitiescausedbyintrusions,thedetectionalgorithmadoptsthemethodoflocallyanalyzing.
Keywords: intrusiondetection;anomalydetection;nonhierarchicalclustering
扰,引入滤噪函数,提高了检测准确性.
本文第2节详细介绍模型基本思想和其中的关键算法;第3节介绍实验结果,对模型的检测效率和准确性进行评估;最后总结全文并讨论下一步工作.
1 引言
利用系统漏洞实施攻击是目前计算机安全面临的主要威胁.监控特权进程的系统调用数据是防范该类入侵的有效方式之一.系统调用是进程访问系统资源的接口,进程执行的系统调用序列粗略的描绘出进程的行为.基于系统调用的检测方法最早由S.Forrest等人提出,目前已取得了一些进展,包括S.Forrest等人最初提出的N-gram模型[2],在N-gram基础上发
[13][17]
展的Var-gram模型,V-tpath模型等等.N-gram模型直接将训练数据截为定长片段定义正常行为,正常行为定义规模大,影响检测效率.Var-gram模型主要是针对N-gram模型中序列长度不易确定的问题而提出的,该模型采用不同长度的序列来定义正常行为,但Var-gram模型不仅没有有效解决长度问题,还引入了复杂的匹配算法,严重影响了检测效率.
本文提出了一种无监督训练算法,该算法直接利用系统实时运行数据作为训练数据,降低了对训练数据的要求.本文引入了反向进程频率和系统调用出现频率等参数,通过权值区分不同系统调用在定义正常行为中的不同作用.在正常行为定义生成和实时检测过程中,序列匹配采用了基于向量空间模型的相似度计算算法,更准确地衡量序列的匹配程度.在检测过程中,针对正常行为定义的不完整性等原因造成的干
收稿日期:2005-12-20;修回日期:2006-04-10
2 检测模型
操作系统采用编号来区分不同的系统调用,编号范围一般在0~255之间.本文直接采用系统调用号i表示一个系统
调用类型.一个系统调用序列(SystemCallSequence)是多个系统调用有序的排列,即系统调用序列S=3s0,s1,,,,sl-14,其中,0[si<n,0[i<l,n是系统调用总数,0[n<256.定义1 对于训练集合P,P中包含了各种不同应用程序在不同环境下运行进程的系统调用序列,系统调用s在集合P中的反向进程频率定义如下:
Nipfi=,其中N是P中进程总数,Ni是出现系统调用i
Ni
的进程数.
对于系统调用集合中每一个系统调用,计算其反向进程频率得到:IPF=(ipf0,ipf1,,,,ipfn-1).其中ipfi是系统调用i的反响进程频率.
对于应用程序APP的训练数据,计算各个系统调用在
;
1810
训练数据中出现的频率得到:
SFAPP=(sf0,sf1,,,,sfn-1)
电 子 学 报
E的密度QX,E:=
i
2006年
Neighbor(Xi,E);
其中,sfi是系统调用i在应用程序APP训练数据集和出现的频率.
根据系统调用频率和反向进程频率得到各个系统调用在定义正常行为中的权值:
WAPP=(w0,w1,,,,wn-1),其中wi=ipfi#sfi
对于一个确定的系统调用序列,它在定长为l的系统调
用序列中可能在l个不同位置出现,对于n种不同的系统调用.将长度为l的系统调用序列用n#l的向量空间表示,定义vi,j=3s0,0,s0,1,,,,s0,l-1,s1,0,s1,1,,,,s1,l-1,,,si,j,,,,sn-1,l-14
(3) 取S中密度最大的向量Xi,ifProfile为空then
S:=S-Neighbor(Xi,E)
Covered:=Covered+|Neighbor(Xi,E) Profile:=ProfileU{Xi}Else
IfProfile中存在Y,Distance(Y,Xi)[Ec,then S:S-{Xi}
Covered:=Covered+1; Else
S:=S-Neighbor(Xi,E)
Covered:=Covered+|Neighbor(Xi,E)| Endif EndifEndif
(4) IfCovered\Sum*(1-A)then返回集合Profile,即正常行为定义
Else 执行3
EndifEnd
实时监控过程中,将为每一个被监控的进程建立一个队列,并利用一个长度为l(与正常行为定义中序列长度一致),步长为1的滑动窗口将实时数据截为定长片断Sj.Sj=3s0,s1,,,,sl-14.
定义5 向量
X=wx0gvx0,0+wx1gvx1,1+,,+wxl-1gvxl-1,l-与Profile的距离,记为
DistanceX,Profile=min{Distance(X,Y)|YIProfile}在检测过程中,我们借鉴了http://www.77cn.com.cnne的滤噪思想,引入了滤噪函数F(Si),保留入侵行为造成的明显异常的同时,去除了一些噪声的影响,降低误报率.滤噪函数F(Si)如下所示 …… 此处隐藏:5282字,全部文档内容请下载后查看。喜欢就下载吧 ……