《表2 JavaScript引擎漏洞检测工具汇总》
已有的JavaScript引擎漏洞检测方法和实现的工具种类繁多,各有优势,在静态漏洞检测工具中uchex[63]是经典的通过语义分析和符号执行的检测工具。chromeuchex,typy[64]等工具是在uchex的基础上针对JavaScript引擎的API进行适配并进行了性能上的优化;Dachshund、StateFuzzer[65]、GramFuzz[66]、JFF[43]是对模糊测试方法中的样本生成针对不同的漏洞类型进行改进,检测相应漏洞。Dachshund是针对漏洞利用过程中关键的JIT代码编译时的常量绑定方式进行模糊测试,增大了大整数在生成样本中出现的机率。StateFuzzer是在样本生成的时候破坏了原本的文件格式打破原本的文件格式扰乱执行流,主要检测JavaScript引擎在处理非常规文件格式时候的容错率。JFF通过将已有的1day漏洞样本进行最小的变异带来了样本变异的创新。在样本变异的方面,sigpwn将AFL当中的覆盖率反馈的机制引入到了JavaScript引擎的模糊测试当中,在语法层面给每一种语法增加了单独的uid(uniqueID),使用和AFL相同的布隆过滤器的方法实现覆盖率反馈。GramFuzz通过分析已有的JavaScript文件生成相应的语法树并生成相应的语法片段,通过结构化的策略变异生成测试用例。表2列出了各种JavaScript引擎漏洞检测方法之间的比较。
图表编号 | XD0067423700 严禁用于非法目的 |
---|---|
绘制时间 | 2019.06.01 |
作者 | 林宏阳、彭建山、赵世斌、朱俊虎、许航 |
绘制单位 | 数字工程与先进计算国家重点实验室、数字工程与先进计算国家重点实验室、数字工程与先进计算国家重点实验室、数字工程与先进计算国家重点实验室、数字工程与先进计算国家重点实验室 |
更多格式 | 高清、无水印(增值服务) |