可编程模糊测试技术
作者:
作者单位:

作者简介:

杨梅芳(1993-),女,内蒙古通辽人,硕士生,主要研究领域为软件安全,程序分析;刘宝旭(1972-),男,博士,研究员,博士生导师,CCF专业会员,主要研究领域为网络攻防技术,安全态势感知技术;霍玮(1982-),男,博士,副研究员,博士生导师,CCF专业会员,主要研究领域为软件漏洞挖掘和安全评测,基于大数据的软件安全分析,智能终端系统及应用安全分析;龚晓锐(1973-),男,高级工程师,主要研究领域为网络攻防,软件逆向分析,Web安全,移动互联网安全;邹燕燕(1989-),女,助理研究员,CCF专业会员,主要研究领域为软件安全,程序分析;贾晓启(1982-),男,博士,研究员,博士生导师,主要研究领域为网络攻防技术,操作系统安全,云计算安全;尹嘉伟(1994-),男,硕士生,CCF学生会员,主要研究领域为软件安全,程序分析;邹维(1964-),男,博士,研究员,博士生导师,CCF高级会员,主要研究领域为软件安全分析理论与技术,网络安全评测.

通讯作者:

邹燕燕,E-mail:zouyanyan@iie.ac.cn

中图分类号:

基金项目:

中国科学院网络测评技术重点实验室资助项目;网络安全防护技术北京市重点实验室资助项目;中国科学院重点实验室基金(CXJJ-17S049);国家重点研发计划(2016QY071405)


Programmable Fuzzing Technology
Author:
Affiliation:

Fund Project:

Program of Key Laboratory of Network Assessment Technology, the Chinese Academy of Sciences; Program of Beijing Key Laboratory of Network Security and Protection Technology; Foundation of Key Laboratory of Network Assessment Technology, the Chinese Academy of Sciences (CXJJ-17S049); National Key Research and Development Program of China (2016QY0714 05)

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    模糊测试是一种有效的漏洞挖掘技术.为了改善模糊测试因盲目变异而导致的效率低下的问题,需要围绕输入特征、变异策略、种子样本筛选、异常样本发现与分析等方面不断定制模糊测试器,从而花费了大量的定制成本.针对通用型模糊测试器(即支持多类输入格式及目标软件的模糊测试器)的低成本定制和高可扩展性需求,提出了一种可编程模糊测试框架,基于该框架,漏洞挖掘人员仅需编写模糊测试制导程序即可完成定制化模糊测试,在不降低模糊测试效果的基础上,可大幅提高模糊测试器开发效率.该框架包含一组涉及变异、监控、反馈等环节的模糊测试原语,作为制导程序的基本语句;还包含一套编程规范(FDS)及FDS解析器,支持制导程序的编写、解析和模糊测试器的生成.基于实现的可编程模糊测试框架原型Puzzer,在26个模糊测试原语的支持下,漏洞挖掘人员平均编写54行代码即可实现当前主流的5款万级代码模糊测试器的核心功能,并可覆盖总计87.8%的基本操作.基于Puzzer实现的AFL等价模糊测试器,仅用51行代码即可达到与AFL相当的模糊测试效果,具有良好的有效性.

    Abstract:

    Fuzzing is an effective vulnerability discovery technology.In order to solve the inefficiency problem caused by blind mutation in fuzzing,safety engineers need to customize fuzzer from all aspects,such as input characteristics,mutation method,seed samples screening,abnormal samples found and analysis,which will result in huge expenditure.To meet the need of low cost customization and high scalability of the universal fuzzer (i.e.fuzzer that supports multi-type input formats and softwares),this paper first proposes a programmable fuzzing framework.Based on the framework,the only thing safety engineers need to do is writing directive programs when they want to customize fuzzing.It can sharply improve the efficiency of developing fuzzer without reducing effectiveness of fuzzing.The framework contains a set of fuzzing primitives,fuzzing directive specification (FDS) and FDS parser.Fuzzing primitives which involve mutation,monitoring and guiding are basic statements of directive program.FDS and FDS parser can support writing and parsing directive programs,as well as generating fuzzers.Based on the implementation of a prototype framework called Puzzer,safety engineers can accomplish core functions and cover 87.8% of total basic operations of five mainstream fuzzers with only about 54 lines of code.A fuzzer which has equivalent function of AFL can be accomplished using Puzzer to achieve the same effectiveness with only 51 lines of code.

    参考文献
    相似文献
    引证文献
引用本文

杨梅芳,霍玮,邹燕燕,尹嘉伟,刘宝旭,龚晓锐,贾晓启,邹维.可编程模糊测试技术.软件学报,2018,29(5):1258-1274

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2017-07-01
  • 最后修改日期:2017-08-29
  • 录用日期:2017-11-21
  • 在线发布日期: 2018-01-09
  • 出版日期:
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号