[发明专利]二进制程序漏洞测试方法、装置及可读存储介质有效
申请号: | 202010397145.5 | 申请日: | 2020-05-12 |
公开(公告)号: | CN111581106B | 公开(公告)日: | 2023-05-23 |
发明(设计)人: | 席泽生;张波;马媛媛;邵志鹏;孙歆;管小娟;周诚;陈牧;陈璐;李尼格;戴造建;李勇 | 申请(专利权)人: | 全球能源互联网研究院有限公司;国家电网有限公司;国网浙江省电力有限公司;南京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57 |
代理公司: | 北京三聚阳光知识产权代理有限公司 11250 | 代理人: | 李博洋 |
地址: | 102209 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 二进制 程序 漏洞 测试 方法 装置 可读 存储 介质 | ||
1.一种二进制程序漏洞测试方法,其特征在于,包括以下步骤:
对目标二进制程序进行插桩处理并生成插桩信息一致的LLVM位码和可执行文件;
清除插桩后的冗余指令,所述清除插桩后的冗余指令,包括:
输入插桩处理后的LLVM位码;
删除插桩处理引入的外部全局变量;
在插桩处理后的LLVM位码中的每一个基本块中,删除插桩处理的额外代码;
对每个基本块,解析插桩指令并得到随机插桩编号,删除插桩指令,并插入一条指令以保存插桩编号的值;
相互嵌套执行对所述可执行文件进行模糊测试及对所述LLVM位码进行符号执行的过程,其中,
通过模糊测试,生成测试用例并更新覆盖信息;
通过符号执行,搜索程序执行树,当根据所述覆盖信息发现所述程序执行中有分支未被覆盖时,生成相应的测试用例并加入到测试用例集合中;
通过模糊测试,监控所述测试用例集合,当有新的测试用例时,读取新的测试用例并加入到模糊测试的测试用例队列中,并基于新的测试用例,继续探索所述分支后面的分支,生成测试用例并更新覆盖信息;
当检测到符合终止条件时,结束漏洞测试过程。
2.根据权利要求1所述的二进制程序漏洞测试方法,其特征在于,生成插桩信息一致的LLVM位码和可执行文件,具体包括:
对目标二进制程序先插桩并编译为LLVM位码;
将所述LLVM位码编译为目标代码,生成object文件;
将object文件链接为可执行文件。
3.根据权利要求1所述的二进制程序漏洞测试方法,其特征在于,通过KLEE进行符号执行,所述插入一条指令具体包括:插入一条KLEE未支持的指令AtmoicRMW。
4.根据权利要求3所述的二进制程序漏洞测试方法,其特征在于,对所述LLVM位码进行符号执行,具体包括:
输入插桩处理后的LLVM位码和覆盖信息;
创建一个初始状态并将其加入状态集合中;
从初始状态开始进行遍历,在状态集合中选择一个状态;
得到当前状态的指令,根据指令的不同类型并对其进行解释执行;
当指令为分支条件时,当前状态分叉为两个状态并更新路径条件;
当前分支的路径条件可满足时,将生成的新状态加入状态集合;
当遇到指令AtmoicRMW时解析得到基本块编号,基于所述基本块编号检查当前分支是否被覆盖;
计算当前分支的哈希值,当覆盖到新的分支时,生成测试用例,并将其加入到测试用例集合;
当当前分支生成新的分支后,将该状态优先级降低,符号执行优先探索其它分支;
对其它类型的指令,符号执行根据相应的语义进行解释与执行;
输出新生成的测试用例集合。
5.根据权利要求4所述的二进制程序漏洞测试方法,其特征在于,从初始状态开始进行遍历的遍历搜索方法采用深度优先策略或广度优先策略。
6.根据权利要求1所述的二进制程序漏洞测试方法,其特征在于,对所述可执行文件进行模糊测试,具体包括:
输入已有测试用例,待测二进制程序以及来自符号执行的新增测试用例集合;
依次遍历已有测试用例中的每一个测试用例,对其进行变异得到新的测试用例;
待测二进制程序执行新的测试用例,得到覆盖信息以及运行结果;
当运行结果发现异常,判定为触发漏洞的测试用例;当测试用例使得新的分支被覆盖,将其加入测试用例集合并更新覆盖信息;
完成一个测试用例的处理后,检查是否符号执行探索到新的未覆盖分支,当发现新的测试用例,将其加入到已有测试用例的最前列,并将新增测试用例集清空;
输出生成的所有测试用例。
7.根据权利要求6所述的二进制程序漏洞测试方法,其特征在于,输出生成的所有测试用例包括触发漏洞的输入测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于全球能源互联网研究院有限公司;国家电网有限公司;国网浙江省电力有限公司;南京理工大学,未经全球能源互联网研究院有限公司;国家电网有限公司;国网浙江省电力有限公司;南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010397145.5/1.html,转载请声明来源钻瓜专利网。