- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基干系统调用软件行为模型探讨
基于系统调用的软件行为模型研究 由于软件产品的复杂性,开发出来的软件会存在缺陷。在无法获取软件源代码前提下,要检测出缺陷,就必须对软件进行动态分析,建立软件行为模型。因此本文采用一种基于频率的序列简化算法来简化系统调用序列来提高模型生成效率,并通过实验验证:在确保模型精确性的同时,能大幅缩减软件模型生成时间
【关键词】软件行为 隐马尔可夫模型 序列简化算法
随着计算机技术、网络技术以及通信技术的快速发展,网络安全的重要性也日益突出。网络威胁也有原来的单一病毒形式转向恶意软件,因此,确保一个软件安全正常的运行成为了当前一个急需解决的问题。目前,软件安全缺陷可以归为下面几类:共享数据方面、错误处理方面、接口设计方面等
入侵检测指的是在一个系统中,检测异常行为的能力,而这种异常行为通常是由安全攻击,病毒和软件设计缺陷所引起的。目前主要有两种途径进行入侵检测,一种是基于网络的入侵检测,另一种是基于主机的入侵检测技术,而基于主机的入侵检测技术又分为基于用户行为的和基于软件行为的入侵检测检测技术
1 软件行为及隐马尔可夫模型的研究
1.1 软件行为模型研究
程序在正常情况下和在异常情况下运行,系统调用序列会产生偏差,可以在很大程度上体现软件的行为特征,因此,可以利用系统调用来研究软件的行为特征。最早的动态建立的软件行为模型是Forrest提出的N-gram模型。在这个模型中,他用若干个长度为N的系统调用序列,来描述一个软件的行为
1.2 隐马尔可夫模型
在马尔可夫链中,每个状态都和一个观测事件一一对应,也就是说可以直接观测到状态。隐马尔科夫模型(Hidden Markov Model)则是在马尔科夫模型中发展而来,它的观测值和状态不是一一对应,能够描述更为复杂的问题,它通过一些概率分布来表示模型特征,是一个双重随机过程
2 软件行为模型改进
2.1 基于频率的子序列抽取算法
N-gram是自然语言研究领域广泛使用的一个概念,它表示的是长度为N的字符序列。在计算机系统中,每个系统调用都有一个对应的编号,随着程序的运行,会产生一个系统调用序列。每一个长度为N的系统调用序列,就称为一个N-gram
基于频率的序列简化算法其核心思想就是:从原有序列中抽取出一些子序列,这些子序列的出现频率较高(具体的频率要求根据实际需要可做适当修改),然后用这些子序列的编号替换原有序列中的子序列,从而得到一个更加精炼的序列,并且保持原有序列中元素的先后关系
下面具体阐述基于频率的序列简化算法,为了描述方便,首先定义几个变量:
Ck表示长度为k的序列集合,即k-grams
Cki表示长度为k的序列集合中第i个元素
Ckif(s)、f(Ck)、分别表示这些序列的出现频率
该算法用伪代码描述如下:
2.2 基于系统调用的隐马尔可夫模型改进
为了能够更加准确的描述一个软件的行为,扩大输入数据的覆盖率是非常重要的,也就是要尽可能多的让获取到的系统调用序列覆盖全部的程序执行路径,获取系统调用序列是尽量让软件进行不同的操作
假如经过序列简化算法化简后的系统调用序列是{①②③④⑤⑥⑦⑧⑨},这就作为隐马尔可夫模型的观察值了。假定计算机就两种状态:安全和不安全,这作为隐马尔可夫模型的状态集。所以前向变量αt(i)表示在给定模型参数λ(A,B,π)下,出现观察序列为O1,O2,O3…Ot,并且t时刻的状态为i的概率。例如α4(安全)表示在给定模型参数λ(A,B,π)下,出现系统调用序列为①②③④,并且在4时刻为安全状态的概率。后向变量βt(i)表示在给定模型参数λ(A,B,π)和t时刻状态为i的条件下,后续观察序列为Ot+1,Ot+2,Ot+3……OT的概率大小。例如β4(安全)表示已知模型参数λ(A,B,π)和t时刻状态为安全,后续观察序列为⑤⑥⑦⑧⑨的概率大小
在前向后向算法中,必须借助上述前向变量和后向变量来定义另外两个用来做似然估计的变量和,分别为3.1式和3.2式,和的大小范围都是0到1
表示给定观察序列和隐马尔可夫模型参数λ,在t时刻处于i状态并且在t+1时刻处于j状态的概率。如果定义当前的HMM模型参数λ为(A,B,π),则可以得到新的HMM模型参数Baum等研究人员已经证明新的模型参数能更好的描述模型特征,即,因此如果迭代计算上面3个式子,即不断重新估计隐马尔可夫模型,那么经过若干次的计算后,可以得到隐马尔可夫模型的最大似然估计。前向后向算法与维特比算法的区别是,维特比算法得到的是全局最优解,而前向后向算法得到的是一个最大似然估计,是一个局部最优解。最后得到的这个隐马尔可夫模型就是基于系统调用的软件行为模型
3 软件行为模型验证
3.1 实验过程
文档评论(0)