基于延后策略的动态多路径分析方法陈恺1-3+冯登国12苏璞睿21(信息安全国家重点实验室中国科学院研究生院,北京市100049)2(信息安全国家重点实验室中国科学院软件研究所,北京市100190)3(信息安全共性技术国家工程研究中心,北京市100190)摘要:多路径分析是弥补传统动态分析方法的不足,对可执行程序全面分析的重要方法之一
现有多路径方法主要采用随机构造或者根据路径条件构造输入进行路径触发,这两者均存在路径分析不全面和缺乏针对性的问题
本文通过对路径条件分析,确定了检测条件的基本组成元素,提出了弱控制依赖和路径引用集的概念和计算规则,并以此为基础提出一种延后策略的多路径分析方法
在程序分析过程中,对特定的程序检测点和检测点条件,有针对性地进行路径筛选,从语义上进行路径表达式简化,在保证检测点可达和检测表达式具有相同构造形式的前提下,简化检测表达式,减少分析路径的数量
通过对7款恶意软件分析实验,结果表明本方法提高了分析效率和准确性
关键词:多路径分析,可执行程序,漏洞检测,动态分析,延后策略软件分析是检测软件漏洞、软件恶意行为等安全性问题的基础
从分析目标的不同,现有软件分析方法一般分为面向源代码的软件分析和面向可执行程序的软件分析
前者针对有源代码的程序,具有更加丰富的类型信息和结构信息,相对而言,分析准确性更高
但是现有软件多数不提供源代码,尤其是大型的商业软件和进口软件等;同时,即使部分软件提供了源代码,也不能保证使用的可执行程序和源代码之间的对应关系,这一问题在文献[1]中进行了详细讨论
由于大量的应用软件无法获得源程序,并在一些重要领域应用,直接对其可执行程序进行安全性分析、确保这类软件的安全性显得极为重要,该问题也是国内外研究的热点问题
可执行程序分析方法一般分为静态方法和动态方法两种
静态分析使用反汇编手段,将可执行程序的二进制代码转变为汇编语言