论文标题

Muzz:在多线程程序中进行有效的错误狩猎的线程感知灰色框模糊

MUZZ: Thread-aware Grey-box Fuzzing for Effective Bug Hunting in Multithreaded Programs

论文作者

Chen, Hongxu, Guo, Shengjian, Xue, Yinxing, Sui, Yulei, Zhang, Cen, Li, Yuekang, Wang, Haijun, Liu, Yang

论文摘要

Grey-box的绒毛测试揭示了数以千计的现实软件漏洞,这是由于其轻巧的仪器,快速覆盖的反馈和动态调整策略。但是,直接将灰色框模糊应用于输入依赖性多线程程序可能非常低效。在实践中,多线程相关的错误通常被埋葬在复杂的程序流中。同时,现有的灰色框构函技术不会强调影响多线程程序中执行状态的线程插条。因此,尽管它们可能获得高码覆盖统计信息,但主流灰色盒子爆炸器仍无法有效地测试多线程中的有问题段。 为此,我们提出了Muzz,这是一种新的Grey-Box模糊技术,可以在多线程程序中寻找错误。 Muzz拥有三种新型的线索仪器,即面向覆盖范围的仪器,线程仪器和计划干预仪器。在模糊过程中,这些仪器会产生运行时反馈对线程交织引起的压力执行状态。通过在动态种子选择和执行策略中利用反馈,穆兹保留了在多线程上下文中暴露错误的更有价值的种子。 我们评估了12个现实世界软件程序的Muzz。实验表明,在多线程相关的种子产生和并发性检测中,穆兹的表现都优于AFL。此外,通过针对生成的种子重播目标程序,Muzz还揭示了比AFL更多的并发袋(例如,数据率,螺纹裂缝)。总共穆兹(Muzz)检测到了8个新的并发效率和19个新的并发袋。在撰写本文时,已将4个CVE ID分配给了报告的问题。

Grey-box fuzz testing has revealed thousands of vulnerabilities in real-world software owing to its lightweight instrumentation, fast coverage feedback, and dynamic adjusting strategies. However, directly applying grey-box fuzzing to input-dependent multithreaded programs can be extremely inefficient. In practice, multithreading-relevant bugs are usually buried in sophisticated program flows. Meanwhile, the existing grey-box fuzzing techniques do not stress thread-interleavings which affect execution states in multithreaded programs. Therefore, mainstream grey-box fuzzers cannot effectively test problematic segments in multithreaded programs despite they might obtain high code coverage statistics. To this end, we propose MUZZ, a new grey-box fuzzing technique that hunts for bugs in multithreaded programs. MUZZ owns three novel thread-aware instrumentations, namely coverage-oriented instrumentation, thread-context instrumentation, and schedule-intervention instrumentation. During fuzzing, these instrumentations engender runtime feedback to stress execution states caused by thread interleavings. By leveraging the feedback in the dynamic seed selection and execution strategies, MUZZ preserves more valuable seeds that expose bugs in a multithreading context. We evaluate MUZZ on 12 real-world software programs. Experiments show that MUZZ outperforms AFL in both multithreading-relevant seed generation and concurrency-vulnerability detection. Further, by replaying the target programs against the generated seeds, MUZZ also reveals more concurrency-bugs (e.g., data-races, thread-leaks) than AFL. In total, MUZZ detected 8 new concurrency-vulnerabilities and 19 new concurrency-bugs. At the time of writing, 4 CVE IDs have been assigned to the reported issues.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源