Designing New Operating Primitives to Improve Fuzzing Performance (CCS 2017)
本文提出缩短Fuzzing中每一次迭代的执行时间可以提高Fuzzing的性能。在AFL中,由于文件系统竞争(File System Contention)和系统调用fork()
的可扩展性(Scalability),并行运行120个核时会使得Fuzzing消耗的时间增加24倍。
本文提出了3个新的操作原语(Primitives)来提高Fuzzing的性能:
snapshot()
,一个新的系统调用。能够效率更高地克隆目标应用程序;- 双文件系统服务(Dual File System Service)。使得Fuzzer直接在一个内存文件系统(Memory File System)(如
tmpfs
)上高效执行,同时保证了在磁盘文件系统(Disk File System)(如ext4
)上数据的持久存储; - 在内存中共享测试用例日志。使得Fuzzer间能合作分析程序执行日志。
论文代码未开源。