摘要
JavaScript引擎是浏览器的重要组成部分,很多攻击都针对Java Script引擎发起,业界对面向JavaScript引擎的漏洞挖掘技术一直展现出强烈的需求。本文提出一种面向JavaScript引擎的子树类型敏感灰盒测试技术,并且实现了系统ILS,在路径反馈的模糊测试框架上,通过对JavaScript代码的语法分析,构建子树类型敏感的变异策略,能够大幅提升测试种子的有效率,从而驱动更高的代码覆盖能力和漏洞发现能力。通过将ILS和多个主流JavaScript引擎漏洞挖掘工具Superion、CodeAlchemist进行性能对比,在Jerryscript、Chakra Core和JavaScriptCore等典型JavaScript引擎对象上的测试实验表明:ILS在24 h内,其种子测试有效率上提升36%,代码行覆盖率上能提升72%,代码函数覆盖率上能提升80%,漏洞发现效率上提升100%。最后,ILS在这3个JavaScript引擎总共发现26个未知Bug,并得到厂商的确认和修复。