基于系统调用短序列软件漏洞检测方法研究.docVIP

基于系统调用短序列软件漏洞检测方法研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于系统调用短序列软件漏洞检测方法研究

基于系统调用短序列软件漏洞检测方法研究   摘 要:软件受到攻击后将在所执行的系统调用状况中有所体现,因此可将基于系统调用的入侵检测技术应用于软件漏洞的检测。本文针对无源码的可执行程序,引入系统调用节点和系统调用上下文信息的概念来刻画软件行为的动态特性和漏洞的位置信息,利用改进的STIDE算法构造软件正常行为特征库来检测并定位漏洞。实验结果表明该方法能够准确获取软件行为信息,且具有较强的漏洞检测能力。   关键词:漏洞检测;行为建模;系统调用短序列;STIDE算法;函数调用链   中图分类号:TP393.08 文献标识码:A   1 引言(Introduction)   软件漏洞是存在于软件系统内的一组弱点或缺陷,这组弱点或缺陷被恶意主体(攻击者或攻击程序)加以利用,可达到访问未授权信息或损坏系统的目的。软件由于其功能及行为的复杂性不可避免地存在一些漏洞,这给整个软件系统带来了极大的隐患。传统的漏洞检测技术分为针对源代码进行检查的静态检测技术和在缺少源代码的情况下对软件漏洞进行检测和防护的动态检测技术,但这些技术仅能检测出已知漏洞类型,能检测的对象有限,且存在检测规模大、误报率高等缺点[1]。   研究表明,软件受到攻击后将在所执行的系统调用状况中有所体现,并且系统调用之间的关系也在一定程度上反映了软件的分支结构。考虑到软件系统在未遭到攻击时,安全漏洞(而非引起系统崩溃的错误)并未给系统造成损失,可在软件系统交付使用后,当其遭到攻击的时候拦截攻击并检测出漏洞以便日后进行修补[2-5]。因此将基于系统调用的入侵检测技术应用于软件漏洞的检测是很有必要的。   本文针对无源码的可执行程序,提出一种基于系统调用短序列的软件漏洞检测方法。将目标程序在安全环境下运行,监测其系统调用序列和堆栈信息,利用改进的STIDE算法将系统调用序列“分割”为短序列,并建立正常行为特征库和位置信息库。再将目标程序暴露于攻击下,采用同样的算法得到短序列进行模式匹配,通过计算横向异常值和纵向异常值来判断是否发生行为偏离。当行为偏离超过阈值时告警,并根据可疑系统调用的位置特征与位置信息?熘械奈恢锰卣鹘?行比对,定位漏洞。   2 相关研究(Correlational research)   目前对软件行为的动态检测大多采用异常检测方式,在可信环境下通过静态分析软件代码或者动态监控软件实例,从中提取软件行为特征建立软件的正常行为模型,然后监控软件的实际运行,提取其行为特征并与正常行为模型进行比较。如果软件行为发生的偏差超过指定阈值,则判定软件行为不可信。   目前软件行为模型已经取得了一些研究成果,按照不同的组织模式,相关研究主要包括基于短序列的N-gram模型[5]、Var-gram模型[6],以及引入系统调用频率特性[7]、数据挖掘理论或隐式马尔可夫链的模型;基于自动机的FSA模型、Abstract Stack模型、Call Graph模型、Execution Graph模型;基于系统调用参数的Dyck模型、DTEMSB-BTCS模型;基于虚拟路径的Vt-Path模型、VPstatic模型。   现有研究将基于系统调用的入侵检测模型应用于漏洞检测技术,具体方法为:采用动态训练方式,结合系统调用的PC值构造出程序执行路径的有限状态自动机,自动机的节点为系统调用对应的PC值,而状态转换为系统调用。当每个系统调用发生时,在检测程序中存储当前的函数堆栈,根据异常发生的状态机所属函数来判断可能的函数漏洞在哪个函数中。基于状态机的漏洞检测方法需要建立自动机,存在时间、空间消耗较大及不可能路径等问题。   针对上述已有技术存在的不足,本文将基于系统调用短序列模型和STIDE算法加以改进并应用于软件漏洞检测,其目的在于发挥短序列模型汇聚时间短、运行时间负载较低的优势,同时克服由于缺乏定位信息和系统调用上下文信息导致模型对上下文不敏感、粒度粗等缺点,增强了模型的检测能力。   3 基于系统调用短序列的软件漏洞检测模型   (Software vulnerability detection model based on   short sequence of system calls)   3.1 基本概念   定义1:系统调用短序列SCS(System Call Sequence)是指包含一定数量的系统调用节点的有序集合:   其中,n表示短序列长度,SC表示系统调用节点。   定义2:系统调用节点SC(System Call)是指含有系统调用相关信息的一个系统调用向量:   其中,SCI表示系统调用基本信息,SCP表示系统调用属性,SCC表示系统调用上下文。这三个向量值唯一标识一个系统调用节点。   定义3:系统调用基本信息SCI

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档