首页 百科知识 实时IDS:基于系统调用的解决方案

实时IDS:基于系统调用的解决方案

时间:2024-03-20 百科知识 版权反馈
【摘要】:基于进程运行时的系统调用构建IDS的思想最先是由斯蒂芬尼·福莱斯特等人于1996年提出的。本文给出的IDS方案,也是一种基于系统调用的属于异常检测类的方案。将HMM应用于IDS的基本思想,是先为系统的正常行为特性建立一个HMM,然后根据系统实时运行时观测到的“符号”值,算出实时行为与正常行为的偏离度,据此判断系统的当前行为是否正常。HMM是一种通用模型,基于对其构成诸要素定义的不同,HMM对实际系统的模拟效果也不尽相同。

实时IDS:基于系统调用的解决方案

基于系统调用的实时IDS方案

武汉东湖学院计算机科学学院 黄干平

本文给出一种基于进程系统调用的实时IDS方案。方案选择网络服务进程(特权进程)作为系统的代表进行监测,使用隐马尔可夫模型(HMM)对系统行为进行模拟和测试,使用实时P(O|λ)值和近期对“某些重要文件”的读、写频率这样两个条件作为判断系统是否遭受入侵的标准。实验和分析表明,该方案有较高的预报准确率和较小的时间开销。

一、引言

随着信息全球一体化进程的快速发展,计算机信息系统的安全性变得越来越重要。构建入侵检测系统(IDS)已成为构建信息系统的首要和基本任务。

入侵检测技术是通过对计算机系统的一些系统和用户的行为信息的分析来检测系统是否遭受入侵。已有的入侵检测技术可以分为两种类型,即误用检测(misuse detection)和异常检测(anomaly detection)。误用检测使用以前积累的已知的攻击资料,而异常检测使用的是正常行为资料。误用检测的优点是能比较准确地检测出已知的攻击,误判率低;缺点是不能检测到新出现的攻击,漏判率高。异常检测正好相反,其检测未知攻击的能力较强,而误判率相对较高:以前未使用过、记录过的系统的正常行为模式有可能被误判为入侵。

基于进程运行时的系统调用构建IDS的思想最先是由斯蒂芬尼·福莱斯特(Stephanie Forrest)等人于1996年提出的。他们认为系统调用处于系统操作的最低层,其使用模式能较准确地反映系统特征。他们构造的初始方案是,先将特权进程(运行网络服务程序的进程)在正常情况下运行时所获得的系统调用序列,按一定的尺寸以滑动窗口的方式划分成短序列,并将他们记录下来构成正常模式信息库。然后,将特权进程实时运行所获得的系统调用按同样的方法划分成短序列,并与正常模式库中的短序列进行比较,以符合率的高低判断是否有入侵。这是一个创新思路,但初始方案尚有许多不足。随后,国际国内众多研究人员围绕这一思路给出了若干改进方案。有的提出不是简单地用系统调用短序列反映系统行为特征,而是要用不同的系统调用使用模式及模式间的重迭关系来反映系统的行为特征;有的注意到系统调用的使用频率和概率分布,提出使用隐马尔可夫模型(HMM)模拟系统的行为特征,以实际系统调用偏离该模型的程度来判断入侵;有的对系统调用短序列的结构和存放方式做了探讨,提出用树型和等价节点技术来存放系统调用短序列,减少存放和检索的时空开销;有的在同样使用HMM的前提下,提出了使用模糊逻辑判断系统遭受入侵的几条规则,以减少误判和漏判,提高准确率;有的提出相邻系统调用指令的时间间隔是不同的,而且这个时间间隔是一个相对定值,通过计算系统调用序列中两个相邻系统调用之间的时间间隔分布建立入侵检测的正常行为数据库

本文给出的IDS方案,也是一种基于系统调用的属于异常检测类的方案。它选择运行网络服务程序的特权进程(如登录服务进程,邮件服务进程,文件上下传进程等)作为系统的代表进行监测。首先,获取特权进程在正常运行状态下的系统调用序列,以滑动窗口的方式将其按一定尺寸划分成短序列,并提取互异短序列集合,在此集合之上构造特权进程正常行为的隐马尔可夫模型(HMM);其次,给出一种新的由两个条件组成的判别系统是否遭受攻击的标准:一是基于特权进程实际运行时所获得的系统调用短序列的序列(它们作为HMM的可见符号序列)算出的P(O|λ)的值偏低。二是近期对“某些重要文件”的读、写频率过高。之所以将对“某些重要文件”的读、写频率作为是否入侵的条件之一,是因为绝大多数攻击(破坏或窃取),最终(或从最低层讲)都是通过对某些文件的读写实现的:要么将破坏性代码写入可执行程序文件,要么非法或越权读取机密数据文件的内容。这里所说的“某些重要文件”,可以由系统管理员根据以往的经验确定。

本文的第二部分阐述了HMM模型的建立过程,第三部分讨论模型的训练和检测方法,第四部分给出实验结果及其分析,最后是小结和进一步工作的说明。

二、隐马尔可夫模型(HMM)的建立

隐马尔可夫模型,描述的是一种双重随机过程:一个是状态转移的随机过程,另一个是可见符号的观察过程。将HMM应用于IDS的基本思想,是先为系统的正常行为特性建立一个HMM,然后根据系统实时运行时观测到的“符号”值,算出实时行为与正常行为的偏离度,据此判断系统的当前行为是否正常。HMM是一种通用模型,基于对其构成诸要素定义的不同,HMM对实际系统的模拟效果也不尽相同。

本文要构造的HMM诸要素的定义如下:

(1)状态空间:Q={0,1,2}表示系统的状态集合,0表示正常状态,1表示异常状态,2表示模糊状态;

(2)观测序列:O=O1O2…OT,每个Oi都是等长的系统调用短序列,它们是在系统实际运行时获得的实时系统调用序列上,以宽度为w的滑动窗口获得的;

(3)可见符号及其概率分布:img65为模型的可见符号集,每一个Vi也是长度为w的系统调用短序列,但它们是互不相同的,即img66。可见,符号集是在模型训练时获得的;img67)是可见符号的概率分布,即bij=P{观测到符号Vj|系统当前处于状态i};

(4)状态转移概率分布:img68img69img70

(5)初始状态概率分布:img71

在作了上述定义之后,HMM可表示为λ= (A,B,π),模型的三个参数中,π为模型初始状态,重要性最小;B为观测符号的概率分布,对系统行为的判定影响最大。λ=(A,B,π)的初值,是在系统完全正常的运行状态下确定的。

本文将系统的状态设置为三种,即:

正常状态:当前的P(O|λ)高于阈值且对指定重要文件的读、写频率正常;

异常状态:当前的P(O|λ)低于阈值且对指定重要文件的读、写频率过高;

模糊状态:当前的P(O|λ)高于阈值但对指定重要文件的读、写频率高,或者当前P(O|λ)低于阈值但对指定重要文件的读、写频率低。

然后假定,在正常运行的情况下,任一状态到“正常状态”的转移概率均为1,到“异常状态”和“模糊状态”的转移概率均为0,据此确定π和A;为确定B,先记录下特权进程正常运行时发出的系统调用序列,使用滑动窗口的方法,获得系统调用短序列的序列,作为模型观测符号序列,以获得“正常状态”下的B值;通过运行某种“木马”程序,模拟“异常状态”和“模糊状态”,以获得这两种状态下的B值。

下面给出计算P(O|λ)的方法。

为了简化运算,引入向前概率和向后概率,它们定义如下。

向前概率:

at(j)为部分观测序列O1O2…Ot(直到t时刻)且t时刻处于状态qj相对于λ的出现概率。递推公式为

后向概率:

其中t=T时,假定img75(www.xing528.com)

根据向前及向后概率可推导出img76,代入(3)及(5)可得

在实际应用中,随着观测序列长度的不断增加,计算出的观测序列在正常情况下的出现概率P(O|λ)会越来越小,这样就很难根据这个概率的大小来判断观测序列是否正常,怎样调整λ中各要素使P(O|λ)的值达到最大,这是值得研究的一个问题。目前尚无解析法,只能使用一种称之为Baum—Welch重复估算的迭代方法。它需要两个变量

img78定义为在时刻t为状态qi,和在时刻t+1为状态qj的概率:

img80是时刻t且处于状态qi的概率:

将两个参数在时刻t上计数累加就可以分别得到从状态i转移到状态j的概率以及状态i的数学期望。计算以上变量的值,一个新的模型img82可以由下列等式得出。

从观测序列O调整得到img84后,将img85与P(O|λ)作比较,如果P(O|λ)比img86大,说明已达到最佳点,结束估算。否则,用img87代替P(O|λ)继续重新估算。

三、入侵检测方案

上节建立了正常状态下系统运行过程的隐马尔可夫模型,给出了计算P(O|λ)及更新λ的方法。本节在上述基础上,试图给出一种新的判断入侵的检测方案。前已述及,本方案的入侵判定标准有两条:一是实时计算的P(O|λ)值偏低,二是在最近的过去的一段时间对“某些重要文件”的读、写频率偏高。这两个条件都需要一个阈值做标准,它们可以通过特权进程在正常状态下的多次运行求平均值获得。若将前一个阈值记为L,后一个阈值记为U,对“某些重要文件”的读、写频率记为frw,则本方案的判别标准如下:

● img88,系统正常;

● img89,系统异常;

● img90或者img91,系统处于模糊状态。

本方案要求,不管检测为何种状态,都应实时给出提示,特别是在模糊状态,应及时采取措施,防止系统进入异常。

本检测方案的另一个重要组成部分是模型的训练问题,其核心是要动态地和实时地修改img92的值。这里涉及两个问题,即何时修改和怎样修改。关于“何时”,本方案选择检测到系统处于模糊状态时进行,因为“模糊状态”可能是由入侵行为造成,也可能是由于模型的参数不准造成,选择此时对本模型的参数进行更新是必要的和适时的。关于“怎样”,本方案使用的方法是近似的LRU算法,即,若可见符号Vk在最近的很长时间内未检测到,则按比例减少其bi(k)值,相应地增加bi(l)的值,img93,l≠k,使得保持img94。这样一来,若某可见符号很长时间未出现,它的概率分布值就会逐渐地趋向0,从而达到了与“遗忘因子”算法同样的效果,且基本上没有计算量,大大地减少了额外的时间开销。

四、实验结果及分析

本试验中所使用的系统调用轨迹主要来自于University of New Mexico和MIT的Lincon实验室。测试数据包括进程lpr和sendmail正常运行时发出的系统调用序列,以及有入侵时发出的系统调用序列,入侵程序分别为lprcp和sun sendmailcp。把系统调用短序列作为可见符号,短序列的长度为w(即每个可见符号中包含的系统调用数目),设系统调用序列读、写操作的平均出现频率为V,基于HMM计算的可见符号概率为P(O|λ),入侵检测的阈值为L。

观察表1与表3,我们发现P(O|λ)随着w的变化而变化,对正常数据的P(O|λ)影响不大,但对入侵数据的P(O|λ)影响非常大,当w逐渐增大时,入侵数据的P(O|λ)急剧减小。分析表1和表3的试验数据并进行相关计算可得到表2与表4的试验结果。表2和表4的数据可直观反映入侵检测方案的有效性,数据结果显示本文提出的入侵检测方案具有更好的检测效果。

表1 Lpr进程的正常数据与入侵数据的试验结果

表2 lprcp入侵程序的检测率与误判率

表3 sendmail进程的正常数据于入侵数据的试验结果

表4 sendmailcp入侵程序的检测率与误判率

五、结束语

本文提出的实时IDS检测方案,首先选择隐马尔可夫模型(HMM)对系统行为进行模拟和检测,使用特权进程的系统调用短序列反映系统行为,给出了时空开销更小的计算P(O|λ)的算法,给出了系统三种状态的概念和由两个条件组成的判断系统是否遭受入侵的标准。实验表明,本方案有较高的准确率和较低的误判率,为研制更好和更实用的IDS打下了基础。本方案还有一些问题需进一步研究,如HMM实时更新的方法和时机的选择,两条判别标准的阀值的确定,当系统进入模糊状态时该如何处理,等等。另外,系统调用的参数和系统调用之间的相互关系在入侵判断中的作用,以及神经网络方法在模型更新中的应用等,都需要做进一步的研究工作。

参考文献

[1]S.Hofmeyr,S.Forrest,A.Somayaji.Intrusion detection using sequence of system calls[J].Journal of Computer Security,1998(6):151—180.

[2]N.Jiang,K.Hua,JH.Oh.Exploiting pattern relationship for intrusion detection,2003[M].Symposium on Applications and the Internet (SAINT 03),2008:57—66.

[3]Bo Gao,Hui-Ye Ma,Yu-Hang Yang.HMMS(Hidden Markov Models) based On anomaly Intrusion Detection Method[M].Beijing:Proceedings of the First International Conference on Machine Learning and Cybernetics,2009:4—5.

[4]Sung-Bae,Cho,Incorporating soft computing techniques into a probabilistic intrusion detection system[J].IEEE Transactions On Systems,Man,And Cybernetics-Part C:Applications And Reviews,2011(5):VOL.32,NO.2.

[5]A.Jones,S.Li.Temporal signatures for intrusion detection[J].Research in security and privacy,CA,2008,(4):16-26.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈