发明名称 一种动静态结合的软件安全性测试方法
摘要 本发明涉及一种计算机软件安全性测试方法。一种动静态结合的软件安全性测试方法,首先,将可执行程序进行反汇编及中间语言转换,生成文件的函数调用图和控制流图;然后通过对函数调用图的静态分析,找到系统脆弱点,并利用动态分析方法构造测试用例生成执行路径;再以函数调用图为基础,寻找其被调用的函数,如果该函数处于前述生成的执行路径上,则控制流图在基本块一级找到触发该脆弱点的具体路径,则该敏感点对应的漏洞挖掘过程结束;如果无法找到该路径,则重新构造测试用例生成执行路径,寻找其被调用的函数,如此往复循环。本发明较好解决了单一依靠Fuzz动态测试带来的路径状态空间爆炸的问题,大大提高了路径覆盖的命中率和软件测试分析的效率。
申请公布号 CN102360334A 申请公布日期 2012.02.22
申请号 CN201110315845.6 申请日期 2011.10.17
申请人 中国人民解放军信息工程大学 发明人 魏强;王清贤;曹琰;彭建山;尹中旭;刘杰;欧阳永基
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 郑州大通专利商标代理有限公司 41111 代理人 陈大通
主权项 一种动静态结合的软件安全性测试方法,其特征是:包括下述步骤:1)将被测可执行程序进行反汇编,得到汇编代码;2)将汇编代码转换为统一的中间汇编语言形式,以屏蔽底层具体会变语言的差异; 3)根据中间汇编语言形式,生成文件的函数调用图(CG)和控制流图(CFG);4)定义敏感点函数特征,通过对函数调用图(CG)的静态分析,找到系统脆弱点所处函数;5)利用动态分析方法,构造合适的测试用例,运行被测可执行程序,生成并记录执行路径;6)根据函数调用图(CG),以某个敏感点为起点,寻找其被调用的函数,记录该路径,一直上溯找到某个祖先节点,如果该祖先节点处于步骤5)生成的执行路径上,再根据控制流图(CFG),在基本块一级找到触发该脆弱点的具体路径,则该敏感点对应的漏洞挖掘过程结束;7)如果无法找到该路径,则重新执行步骤5),构造测试用例生成执行路径,然后执行步骤6),如此往复循环,直至该敏感点对应的漏洞挖掘过程结束。
地址 450002 河南省郑州市俭学街7号