一句话:系统实证表明深度学习模型仅在极有限场景下能有效引导覆盖率模糊测试。
本文对深度学习在覆盖率引导模糊测试中的作用进行了系统性实证研究。作者复现并评估 4 类深度学习模型在 6 个项目上的表现,分析其在模糊测试过程中的优势与不足,并探讨二者结合的未来方向。结果显示,这些模型仅在非常有限的场景下有效;其效果受训练数据不平衡、标签依赖、模型过度泛化以及当前模型表达能力不足等因素制约。因此,模型为覆盖某个分支而估计的梯度在许多场景中帮助有限。该工作提醒研究者审慎看待深度学习引导的模糊测试,并指出了改进方向。
Fuzzing has been a widely-used technique for discovering software vulnerabilities. Many existing fuzzers leverage coverage-feedback to evolve seeds to maximize (optimize) program branch coverage. Recently, some techniques propose to train deep learning models to predict the branch coverage of an arbitrary input. Those techniques have proved their success in improving coverage and discovering bugs under different experimental settings. However, deep learning models, usually as a black magic box, are notoriously lack of explanation. Moreover, their performance can be sensitive to the collected runtime coverage information for training, indicating potentially unstable performance. To this end, in this work we conduct a systematic and extensive empirical study on 4 types of deep learning models across 6 projects to reproduce the actual performance of deep learning fuzzers, analyze the advantages and disadvantages of deep learning in the process of fuzzing applications, and explore the future direction of the combination of the two. Our empirical results reveal that the deep learning models can only be effective in very limited scenarios, which is largely restrained by training data imbalance, dependant labels, model over-generalization, and the insufficient expressiveness of the state-of-the-art models. Consequently, the estimated gradients by the models to cover a branch can be less helpful in many scenarios.
@inproceedings{paperbot6534,
title = {A First Look at the Effect of Deep Learning in Coverage-guided Fuzzing},
author = {Siqi Li and Yun Lin and Xiaofei Xie and Yuekang Li and Xiaohong Li and Weimin Ge and Yang Liu and Jinsong Dong},
booktitle = {ASE},
year = {2021},
doi = {10.1109/ase51524.2021.9678794}
}