论文标题
Machina的HOMO:通过隔室分析改善模糊测试覆盖率
Homo in Machina: Improving Fuzz Testing Coverage via Compartment Analysis
论文作者
论文摘要
模糊测试通常是自动化的,但也经常被专家增强,这些专家将自己插入工作流程中,以贪婪地搜索错误。在本文中,我们在Machina或HM Fuzzing中提出了HOMO,其中分析指导了手动工作,从而最大程度地提高了收益。作为此范式的一个例子,我们引入了隔室分析。隔室分析使用整个程序主导仪分析来估算到达新代码的实用性,并将其与动态分析结合在一起,表明覆盖不足的边缘保护该代码。这导致了优先的隔室清单,即鉴于当前正在考虑的投入库,该程序的大型,未透明的部分通过语义分区和很大程度上无法到达。人类可以直接使用这种分类和对隔室的排名来集中手动努力,查找或塑造投入,以使车厢可用于未来的模糊。我们评估了隔室分析对OSS Fuzz语料库中七个项目的影响,在该项目中,我们看到AFL ++高达94%的覆盖范围改进,中位数为13%。我们进一步观察到,隔室的确定是高度稳定的,因此可以在一场模糊运动的早期进行,从而最大程度地发挥影响力。
Fuzz testing is often automated, but also frequently augmented by experts who insert themselves into the workflow in a greedy search for bugs. In this paper, we propose Homo in Machina, or HM-fuzzing, in which analyses guide the manual efforts, maximizing benefit. As one example of this paradigm, we introduce compartment analysis. Compartment analysis uses a whole-program dominator analysis to estimate the utility of reaching new code, and combines this with a dynamic analysis indicating drastically under-covered edges guarding that code. This results in a prioritized list of compartments, i.e., large, uncovered parts of the program semantically partitioned and largely unreachable given the current corpus of inputs under consideration. A human can use this categorization and ranking of compartments directly to focus manual effort, finding or fashioning inputs that make the compartments available for future fuzzing. We evaluate the effect of compartment analysis on seven projects within the OSS-Fuzz corpus where we see coverage improvements over AFL++ as high as 94%, with a median of 13%. We further observe that the determination of compartments is highly stable and thus can be done early in a fuzzing campaign, maximizing the potential for impact.