###
Journal of Software:2021.32(4):988-1005

基于深度学习的混合模糊测试方法
高凤娟,王豫,司徒凌云,王林章
(计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023;南京大学 计算机科学与技术系, 江苏 南京 210023;南京大学 信息管理学院, 江苏 南京 210023)
Deep Learning-based Hybrid Fuzz Testing
GAO Feng-Juan,WANG Yu,SITU Ling-Yun,WANG Lin-Zhang
(State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210023, China;Department of Computer Science and Technology, Nanjing University, Nanjing 210023, China;School of Information Management, Nanjing University, Nanjing 210023, China)
Abstract
Chart / table
Reference
Similar Articles
Article :Browse 513   Download 394
Received:September 13, 2020    Revised:October 26, 2020
> 中文摘要: 随着软件技术的快速发展,面向领域的软件系统在广泛使用的同时带来了研究与应用上的新挑战.由于领域应用对安全性、可靠性有着很高的要求,而符号执行和模糊测试等技术在保障软件系统的安全性、可靠性方面已经发展了数十年,许多研究和被发现的缺陷表明了它们的有效性.但是,由于两者的优劣各有不同,将这两者相结合仍是近期热门研究的话题.目前的结合方法在于两者相互协助,例如,模糊测试不可达的区域交给符号执行求解.但是,这些方法只能在模糊测试(或符号执行)运行时判定是否应该借助符号执行(或模糊测试),无法同时利用这两者的优势,从而导致性能不足.基于此,提出基于深度学习,将基于符号执行的测试与模糊测试相结合的混合测试方法.该方法旨在测试开始之前就判断适合模糊测试(或符号执行)的路径集,从而制导模糊测试(或符号执行)到达适合它们的区域.同时,还提出混合机制实现两者之间的交互,从而进一步提升整体的覆盖率.基于 LAVA-M中程序的实验结果表明,所提方法相对于单独符号执行或模糊测试,能够提升 20%+的分支覆盖率,增加约 1~13倍的路径数目,多检测出 929个缺陷.
Abstract:With the rapid development of software techniques, domain-driven software raises new challenges in software security and robustness. Symbolic execution and fuzzing have been rapidly developed in recent decades, demonstrating their ability in detecting software bugs. Enormous detected and fixed bugs demonstrate their feasibility. However, it is still a challenging task to combine the two methods due to their corresponding weakness. State-of-the-art techniques focus on incorporating the two methods such as using symbolic execution to solve paths when fuzzing gets stuck in complex paths. Unfortunately, such methods are inefficient because they have to switch to fuzzing (resp. symbolic execution) when conducting symbolic execution (resp. fuzzing). This paper presents a new deep learning-based hybrid testing method using symbolic execution and fuzzing. This method tries to predict paths that are suitable for fuzzing (resp. symbolic execution) and guide the fuzzing (resp. symbolic execution) to reach the paths. To further enhance the effectiveness, a hybrid mechanism is proposed to make them interact with each other. The proposed approach is evaluated on the programs in LAVA-M, and the results are compared with that using symbolic execution or fuzzing independently. The proposed method achieves more than 20% increase of branch coverage, 1 to 13 times increase of the path number, and uncover 929 more bugs.
文章编号:     中图分类号:TP311    文献标志码:
基金项目:国家自然科学基金(62032010);江苏省研究生科研与实践创新计划 国家自然科学基金(62032010);江苏省研究生科研与实践创新计划
Foundation items:National Natural Science Foundation of China (62032010); Postgraduate Research & Practice Innovation Program of Jiangsu Province
Reference text:

高凤娟,王豫,司徒凌云,王林章.基于深度学习的混合模糊测试方法.软件学报,2021,32(4):988-1005

GAO Feng-Juan,WANG Yu,SITU Ling-Yun,WANG Lin-Zhang.Deep Learning-based Hybrid Fuzz Testing.Journal of Software,2021,32(4):988-1005