论文部分内容阅读
模糊测试是一种用于查找软件漏洞的流行技术。然而,最先进的模糊测试工具还有很多不足之处。基于符号执行的模糊测试工具虽然能产生高质量的输入,但运行缓慢,而基于随机修改的模糊测试工具虽然运行速度快,但难以产生高质量的输入。提出了一种新的基于修改的模糊测试工具,称为Angora,其性能远远优于目前最先进的模糊测试工具。Angora的主要目标是通过非符号执行的手段来解决路径约束,从而增加访问的代码覆盖范围。为了有效地解决路径约束,提出了了下面几个关键技术:高效的字节级污点跟踪,上下文敏感的路径分支检测,基于梯度下降的搜索和输入长度的智能修改等。在LAVA-M数据集中,Angora找到了几乎所有注入的漏洞,发现了比任何其他模糊测试工具更多的漏洞,并且在程序who中找到的漏洞数量是当前在该数据集上第二好的模糊测试工具的8倍。Angora还发现了LAVA作者注入但未能触发的103个漏洞。还测试了八个流行的成熟开源程序。Angora在file,jhead,nm,objdump和size程序里分别找到了6,52,29,40和48个新的程序崩溃。同时,测量了Angora在这几个程序中模糊测试得到的的代码覆盖率,并评估了其关键技术对其总的性能结果的贡献。