[发明专利]设备固件的模糊测试方法及系统有效
申请号: | 202011418123.9 | 申请日: | 2020-12-07 |
公开(公告)号: | CN112417461B | 公开(公告)日: | 2023-10-03 |
发明(设计)人: | 阚志刚;龚伟炜;卢佐华;陈彪 | 申请(专利权)人: | 北京梆梆安全科技有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F11/36 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 姚琳洁;朱文杰 |
地址: | 100083 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 设备 模糊 测试 方法 系统 | ||
1.一种设备固件的模糊测试方法,其特征在于,包括:
配置待测试的目标固件程序的仿真环境;基于所述仿真环境,并行运行多个用于测试所述目标固件程序的虚拟机;
确定与所述目标固件程序对应的多个模糊测试Fuzz实例,建立各所述虚拟机与各所述Fuzz实例之间的网络连接关系;
从预设的种子文件序列中获取各所述Fuzz实例分别对应的、用于生成测试用例的种子文件,并利用各所述种子文件生成各所述Fuzz实例分别对应的测试用例;以及将各所述测试用例通过所述网络连接关系分别发送至对应的各所述虚拟机;
利用各所述虚拟机并行执行各自对应的所述测试用例,得到所述目标固件程序对应的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述从预设的种子文件序列中获取各所述Fuzz实例分别对应的、用于生成测试用例的种子文件,并利用各所述种子文件生成各所述Fuzz实例分别对应的测试用例,包括:
针对任一所述Fuzz实例,从预设的种子文件序列中获取所述Fuzz实例对应的第一种子文件;
判断所述第一种子文件是否正被其他所述Fuzz实例使用;
若否,则获取所述第一种子文件,并利用所述第一种子文件生成所述Fuzz实例对应的测试用例。
3.根据权利要求2所述的方法,其特征在于,各所述种子文件对应各自的能量值;所述能量值基于各所述种子文件被各所述Fuzz实例使用的总次数所确定;
所述从预设的种子文件序列中获取所述Fuzz实例对应的第一种子文件,包括:
获取所述种子文件序列中能量值最高的所述种子文件,作为所述Fuzz实例对应的所述第一种子文件。
4.根据权利要求3所述的方法,其特征在于,所述利用所述第一种子文件生成所述Fuzz实例对应的测试用例,包括:
确定所述第一种子文件被各所述Fuzz实例使用的总次数;
根据所述总次数,确定所述第一种子文件当前待生成测试用例的目标数量;所述目标数量和所述总次数之间正相关;
利用所述第一种子文件生成所述Fuzz实例对应的目标数量个所述测试用例。
5.根据权利要求4所述的方法,其特征在于,所述利用各所述虚拟机并行执行各自对应的所述测试用例,得到所述目标固件程序对应的测试结果之后,所述方法还包括:
若所述测试结果为测试异常,则将所述测试用例作为新的种子文件加入所述种子文件序列;为所述新的种子文件配置初始能量值;
若所述测试结果为测试正常,则将当前执行的所述测试用例对应的种子文件返回所述种子文件序列。
6.根据权利要求5所述的方法,其特征在于,所述将当前执行的所述测试用例对应的种子文件返回所述种子文件序列之后,所述方法还包括:
根据所述种子文件当前的总能量值、以及生成所述测试用例所使用的能量值,确定所述种子文件对应的剩余能量值;
更新所述种子文件对应的能量值为所述剩余能量值。
7.根据权利要求6所述的方法,其特征在于,更新所述种子文件对应的能量值为所述剩余能量值之后,所述方法还包括:
判断所述种子文件对应的所述剩余能量值是否小于预设能量阈值;
若是,则丢弃所述种子文件。
8.根据权利要求1所述的方法,其特征在于,所述仿真环境包括以下参数:各固件程序运行时依赖的系统内核和虚拟硬件、以及各所述固件程序对应的固件文件系统;
所述配置待测试的目标固件程序的仿真环境,包括:
确定所述目标固件程序运行时依赖的系统内核和虚拟硬件、以及所述目标固件程序对应的固件文件系统;
根据所述系统内核、所述虚拟硬件和所述固件文件系统,配置所述目标固件程序的所述仿真环境。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京梆梆安全科技有限公司,未经北京梆梆安全科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011418123.9/1.html,转载请声明来源钻瓜专利网。