[NOTE] Fuzzing JavaScript Engines with Aspect-preserving Mutation (S&P 20)

这篇文章主要解决fuzzer该如何利用poc作为种子集进行fuzz。poc作为已发现漏洞的验证,以它作为种子开始fuzz更有可能找到漏洞。但是,目前粗暴的变异方法无法保证poc保持特有的结构,尤其是对于JavaScript引擎这种对种子格式要求比较高的程序。

通过对已有漏洞的分析,作者提出了structure-preserving 和 type-preserving 两种针对poc的变异规则;第一种要求保持种子的运行结构(如控制流),第二种要求保持变量的类型。

为了实现上述变异规则,作者采用了对poc的ast节点进行变异的方法,而非常见的基于二进制位的变异,这个有意思。

No Comments

Leave a Reply

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