[NOTE] Not All Coverage Measurements Are Equal: Fuzzing by Coverage Accounting for Input Prioritization (NDSS 20)

Edge coverage是指导fuzz进行的一个重要指标。有一些edge涉及的代码可能比其它edge更容易产生漏洞,但是,在很多fuzzer中不同edge却被同等对待,如何区分不同edge的重要性是本篇文章要解决的问题。

作者从提出了三个衡量措施。1. Function。作者爬取统计了易产生内存泄漏的函数(memcpy等,文章的实现着重于挖掘内存漏洞),对于一个edge,统计它所到达块包含的此类函数数量。2. Loop。如果该edge是一个back edge,记为1。3. Instruction。统计对于一个edge,它所到达块中涉及内存操作指令的数量。

如果三者的和大于0,则该edge是一个security sensitive edge,一个输入含有的security sensitive edge数量,指导它在种子队列中的优先程度。这样,不同的edge被不同对待,并指导fuzz的进行。

No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *