[论文解读] Faster Fuzzing: Reinitialization with Deep Neural Models
本论文通过使用生成对抗网络(GANs)从真实AFL生成的输入中提取合成种子文件,提出了一种增强美国模糊测试工具(AFL)模糊测试的方法。在相同CPU时间内,基于GAN的重新初始化方法比随机重新初始化方法发现了14.23%更多的唯一代码路径和6.16%更多的新路径,同时平均路径长度也长出13.84%,表明其在探索更深代码路径方面表现更优。
We improve the performance of the American Fuzzy Lop (AFL) fuzz testing framework by using Generative Adversarial Network (GAN) models to reinitialize the system with novel seed files. We assess performance based on the temporal rate at which we produce novel and unseen code paths. We compare this approach to seed file generation from a random draw of bytes observed in the training seed files. The code path lengths and variations were not sufficiently diverse to fully replace AFL input generation. However, augmenting native AFL with these additional code paths demonstrated improvements over AFL alone. Specifically, experiments showed the GAN was faster and more effective than the LSTM and out-performed a random augmentation strategy, as measured by the number of unique code paths discovered. GAN helps AFL discover 14.23% more code paths than the random strategy in the same amount of CPU time, finds 6.16% more unique code paths, and finds paths that are on average 13.84% longer. Using GAN shows promise as a reinitialization strategy for AFL to help the fuzzer exercise deep paths in software.
研究动机与目标
- 通过加速发现新颖且深入的代码路径,提升AFL模糊测试的效率。
- 评估像GAN和LSTM这样的深度生成模型是否能在重新初始化AFL时优于随机种子生成。
- 确定来自生成模型的合成种子文件是否能有效增强AFL,而无需取代其原生的基于变异的探索机制。
- 量化基于GAN的重新初始化在代码路径多样性与深度方面相对于随机和LSTM策略的性能提升。
- 探索使用无监督深度学习在极少人工输入或格式分析的情况下,规模化提升模糊测试效率的可行性。
提出的方法
- 在AFL生成的种子文件上训练GAN,以学习能触发唯一代码路径的输入数据分布。
- 使用训练好的GAN生成器生成合成种子文件,用于重新初始化AFL,并将这些文件注入AFL工作目录。
- 从代码路径发现率和多样性角度,将GAN生成的种子与随机字节采样和LSTM生成的种子进行比较。
- 使用唯一代码路径数量、路径长度和24小时模糊测试周期内的发现时间等指标衡量性能。
- 使用Keras在拼接的AFL种子文件上训练LSTM和GAN模型,并通过温度调节提升LSTM输出的多样性。
- 应用AFL的编译器插桩和遗传变异框架,定期使用合成种子重新初始化,以跳出局部最优。
实验结果
研究问题
- RQ1与随机或基于LSTM的重新初始化相比,GAN生成的种子文件是否能提升AFL中唯一代码路径的发现速率?
- RQ2使用深度生成模型是否能导致在被测软件中发现更长、更深嵌套的代码路径?
- RQ3与使用其合成种子所节省的模糊测试时间相比,GAN和LSTM的训练时间如何?
- RQ4GAN和LSTM生成的合成种子文件在代码路径长度和方差方面,与真实AFL生成输入的统计分布有多接近?
- RQ5无监督深度学习模型是否能有效增强AFL,而无需人工格式分析或程序状态暴露?
主要发现
- 在24小时模糊测试运行中,基于GAN的重新初始化策略每秒发现的唯一代码路径比随机重新初始化策略多14.23%。
- 与随机策略相比,GAN重新初始化发现了6.16%更多的新代码路径(即初始AFL运行中未出现的路径),表明其在探索未测绘代码区域方面更具优势。
- 使用GAN生成的种子发现的平均代码路径长度比随机重新初始化长13.84%,表明其在深入程序逻辑方面的表现更优。
- GAN训练耗时约30分钟,远短于LSTM模型所需的14小时训练时间,且LSTM在路径发现方面表现更差。
- LSTM生成的种子在代码路径发现率上比GAN低28.7%,在新路径发现率上低29.5%,效果不如GAN和随机策略。
- GAN和LSTM生成的合成种子文件在均值和方差上均未匹配原生AFL生成的代码路径长度,表明应将其用作增强手段,而非替代AFL原生的变异策略。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。