基于延后策略的动态多路径分析方法.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于延后策略的动态多路径分析方法

基于延后策略的动态多路径分析方法(? 陈恺1-3+ 冯登国12 苏璞睿2 1(信息安全国家重点实验室 中国科学院研究生院, 北京市 100049) 2(信息安全国家重点实验室 中国科学院软件研究所, 北京市 100190) 3(信息安全共性技术国家工程研究中心,北京市 100190) 摘 要: 多路径分析是弥补传统动态分析方法的不足,对可执行程序全面分析的重要方法之一。现有多路径方法主要采用随机构造或者根据路径条件构造输入进行路径触发,这两者均存在路径分析不全面和缺乏针对性的问题。本文通过对路径条件分析,确定了检测条件的基本组成元素,提出了弱控制依赖和路径引用集的概念和计算规则,并以此为基础提出一种延后策略的多路径分析方法。在程序分析过程中,对特定的程序检测点和检测点条件,有针对性地进行路径筛选,从语义上进行路径表达式简化,在保证检测点可达和检测表达式具有相同构造形式的前提下,简化检测表达式,减少分析路径的数量。通过对7款恶意软件分析实验,结果表明本方法提高了分析效率和准确性。 关键词: 多路径分析,可执行程序,漏洞检测,动态分析,延后策略 软件分析是检测软件漏洞、软件恶意行为等安全性问题的基础。从分析目标的不同,现有软件分析方法一般分为面向源代码的软件分析和面向可执行程序的软件分析。前者针对有源代码的程序,具有更加丰富的类型信息和结构信息,相对而言,分析准确性更高。但是现有软件多数不提供源代码,尤其是大型的商业软件和进口软件等;同时,即使部分软件提供了源代码,也不能保证使用的可执行程序和源代码之间的对应关系,这一问题在文献[1]中进行了详细讨论。由于大量的应用软件无法获得源程序,并在一些重要领域应用,直接对其可执行程序进行安全性分析、确保这类软件的安全性显得极为重要,该问题也是国内外研究的热点问题。可执行程序分析方法一般分为静态方法和动态方法两种。 静态分析使用反汇编手段,将可执行程序的二进制代码转变为汇编语言并以此为基础进行分析。其优点在于可以较为全面的分析程序代码,但是由于分析过程依赖于大量的推理和符号演算,因此效率较低,且会造成一定数量的误报[2],对于一些经过变形和混淆[3]技术处理的代码也不能很好处理。动态分析方法的基本思想是利用程序运行时的数据提高分析效率和准确性,同时避免由于变形等反静态分析技术带来的不可分析性。传统的动态分析一次只能分析一个运行实例,例如Softice、Ollydbg等,为了提高动态分析的全面性,需要构造执行应用程序的多种可能执行路径,即对可执行程序进行多路径分析。 按照动态多路径分析方法的发展,可以将其分为三类。第一类是将可执行程序放在可控环境中(例如调试器等)执行并手动更改分支语句的判断条件进行多路径分析。这类方法需要大量的人工参与,非常繁琐且不具全面性。第二类是自动构造不同的输入,尝试触发程序执行的各种不同路径以暴露出程序潜在的安全问题。这类方法也称为Fuzz方法。虽然此类方法在一定程度上提高了第一类方法的效率和覆盖率,但是大多数情况下,此类方法仅能穷举有限个输入,并不能对所有的输入都进行测试。因此通过此方法验证的程序会有一定数量的漏报,而且会耗费大量时间重复已有测试结果。第三类方法是通过对程序执行过程中的路径条件的求解,有选择地对路径进行分析,较有代表性的如EXE[2]等。这类方法使用动态分析方式,提高了静态分析的准确性和效率,同时避免了Fuzz方法的随机性,增加了路径选择的效率,本文所做工作也是以此类方法为基础。但是这类方法仍然会产生过多的分析路径,也没有对路径条件进行分析筛选,以至于难以应用到大型程序中[4]。目前国际上部分学者使用启发式方法尝试减少路径分析数量[5],但是效果仍然不理想[4]。本文所述方法从路径条件与检测点之间关系入手,围绕着条件表达式的组成结构加以展开。 我们发现,多路径分析的作用之一在于确定某条语句或若干条语句的集合(称为程序检测点集合)在不同的执行路径下是否满足一定的需求,例如判断某条语句是否存在漏洞或者是否存在恶意行为等。此时在程序分析过程中,部分分支条件的取值并不会影响程序检测点的判断条件,因此产生了条件冗余。针对以上应用场景,本文提出了一种延后策略的可执行程序动态多路径分析方法。与传统多路径分析方法不同,本方法在程序的分支路径选择过程中,并不立即进行路径表达式求解和启用新进程进行多路径分析,而是仅记录分支条件;当遇到程序检测点时,有选择的对部分分支语句进行多路径分析,减少需要分析的路径数量和检测表达式长度,提高了分析效率和准确性。 本文主要做了如下贡献: 1)对路径执行条件进行分析,确定了检测条件的基本组成元素,提出了弱控制依赖和路径引用集的概念和计算规则,并以此为基础对路径条件进行筛选,简化了检测条件表达式,提高了表达式求解的效率和准确性

您可能关注的文档

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档