(资料图片仅供参考)
日前,奇安信代码安全实验室研究员张之义以共同一作身份与天津大学王俊杰教授团队完成学术论文《FuzzJIT: Oracle-Enhanced Fuzzing for JavaScript Engine JIT Compiler》,被信息安全领域四大顶级会议之一USENIX Security 2023录用。
该论文提出了一种寻找主流JavaScript引擎JIT (Just In Time) 编译器编译优化缺陷的思路,并通过模糊测试的方式进行了实现。
近些年在国内外的顶级破解大赛中,使用JavaScript引擎JIT编译器的漏洞成功攻破浏览器的案例越来越多。针对JIT编译器优化的研究也变得越来越重要。JavaScript引擎是用于执行网站中的JavaScript代码,其中JIT编译器引擎主要是加快引擎的执行速度,但同时也要确保执行结果是正确的。目前主流引擎的JIT编译优化均采用多级优化的机制层层优化IR中间代码,进而动态生成native代码。但在层层优化的过程中可能会一些未考虑到的情况。为了挖掘此类缺陷我们从触发JIT编译器优化,到针对优化策略变异,最后捕获JIT编译器bug这三个主要方面进行实现。截至论文成稿之前,成功在主流浏览器 Chrome (Edge-based Chromium) 浏览器的V8引擎,Safari浏览器的JavaScriptCore引擎,Firefox浏览器的SpiderMonkey以及Edge浏览器ChakraCore引擎中发现30多个和JIT编译器优化相关bug。