《软件学报杂志》发表论文赏析
作者:杨梅芳,霍玮,邹燕燕,尹嘉伟,刘宝旭,龚晓锐,贾晓启,邹维
单位:杨梅芳,中国科学院 信息工程研究所, 北京 100195;中国科学院 网络测评技术重点实验室(中国科学院 信息工程研究所), 北京 100195;网络安全防护技术北京市重点实验室(中国科学院 信息工程研究所), 北京 100195;中国科学院大学 网络空间安全学院, 北京 10004911,霍玮,中国科学院 信息工程研究所, 北京 100195;中国科学院 网络测评技术重点实验室(中国科学院 信息工程研究所), 北京 100195;网络安全防护技术北京市重点实验室(中国科学院 信息工程研究所), 北京 100195;中国科学院大学 网络空间安全学院, 北京 10004902,邹燕燕,中国科学院 信息工程研究所, 北京 100195;中国科学院 网络测评技术重点实验室(中国科学院 信息工程研究所), 北京 100195;网络安全防护技术北京市重点实验室(中国科学院 信息工程研究所), 北京 100195;中国科学院大学 网络空间安全学院, 北京 10004903,尹嘉伟,中国科学院 信息工程研究所, 北京 100195;中国科学院 网络测评技术重点实验室(中国科学院 信息工程研究所), 北京 100195;网络安全防护技术北京市重点实验室(中国科学院 信息工程研究所), 北京 100195;中国科学院大学 网络空间安全学院, 北京 10004904,刘宝旭,中国科学院 信息工程研究所, 北京 100195;中国科学院 网络测评技术重点实验室(中国科学院 信息工程研究所), 北京 100195;网络安全防护技术北京市重点实验室(中国科学院 信息工程研究所), 北京 100195;中国科学院大学 网络空间安全学院, 北京 10004905,龚晓锐,中国科学院 信息工程研究所, 北京 100195;中国科学院 网络测评技术重点实验室(中国科学院 信息工程研究所), 北京 100195;网络安全防护技术北京市重点实验室(中国科学院 信息工程研究所), 北京 100195;中国科学院大学 网络空间安全学院, 北京 10004906,贾晓启,中国科学院 信息工程研究所, 北京 100195;中国科学院 网络测评技术重点实验室(中国科学院 信息工程研究所), 北京 100195;网络安全防护技术北京市重点实验室(中国科学院 信息工程研究所), 北京 100195;中国科学院大学 网络空间安全学院, 北京 10004907,邹维,中国科学院 信息工程研究所, 北京 100195;中国科学院 网络测评技术重点实验室(中国科学院 信息工程研究所), 北京 100195;网络安全防护技术北京市重点实验室(中国科学院 信息工程研究所), 北京 100195;中国科学院大学 网络空间安全学院, 北京 10004908
摘要:模糊测试是一种有效的漏洞挖掘技术.为了改善模糊测试因盲目变异而导致的效率低下的问题,需要围绕输入特征、变异策略、种子样本筛选、异常样本发现与分析等方面不断定制模糊测试器,从而花费了大量的定制成本.针对通用型模糊测试器(即支持多类输入格式及目标软件的模糊测试器)的低成本定制和高可扩展性需求,提出了一种可编程模糊测试框架,基于该框架,漏洞挖掘人员仅需编写模糊测试制导程序即可完成定制化模糊测试,在不降低模糊测试效果的基础上,可大幅提高模糊测试器开发效率.该框架包含一组涉及变异、监控、反馈等环节的模糊测试原语,作为制导程序的基本语句;还包含一套编程规范(FDS)及FDS解析器,支持制导程序的编写、解析和模糊测试器的生成.基于实现的可编程模糊测试框架原型Puzzer,在26个模糊测试原语的支持下,漏洞挖掘人员平均编写54行代码即可实现当前主流的5款万级代码模糊测试器的核心功能,并可覆盖总计87.8%的基本操作.基于Puzzer实现的AFL等价模糊测试器,仅用51行代码即可达到与AFL相当的模糊测试效果,具有良好的有效性.
关键词:模糊测试;漏洞挖掘;可编程;制导程序;抽象语法树
基金资助:中国科学院网络测评技术重点实验室资助项目;网络安全防护技术北京市重点实验室资助项目;中国科学院重点实验室基金(CXJJ-17S049);国家重点研发计划(2016QY071405)