Microsoft Edge 漏洞研究负责人 Johnathan Norman 透露,该团队正在 Edge 中试验一项新功能,拟禁用 JavaScript JIT 编译器以启用一些额外的安全保护。他们还给这项实验取了一个有趣且略带挑衅性的名字,为“Super Duper Secure Mode(SDSM)”。
Norman 称,JIT 编译是一个“非常复杂的过程,很少有人理解,而且误差很小”。然而虽然 JIT 能够改进浏览器的性能,但其同时也引入了一些漏洞,“性能和复杂性通常是有代价的,我们通常以安全漏洞和后续补丁的形式承担这种代价。”
2019 年之后的 CVE 数据表明,为 V8 发布的 CVE 中约有 45% 与 JIT 引擎相关。此外,攻击者也会武器化和滥用这些漏洞;Mozilla 的一项分析表明,超过一半的“野外”Chrome 漏洞利用了 JIT 漏洞。
Norman 指出,在简单的禁用 JIT 后,这种攻击面的减少有可能显著提高用户的安全性;它将消除大约一半的必须修复的 V8 漏洞。对于用户来说,这意味着更少的安全更新和更少的紧急补丁需要。同时,通过禁用 JIT,还可以启用两种缓解措施,并使利用任何渲染器进程组件中的安全漏洞变得更加困难。
“攻击面的减少消除了我们在漏洞利用中看到的一半漏洞,还使得每个剩余的漏洞都变得更加难以利用。换句话说,我们降低了用户的成本,但增加了攻击者的成本。”
性能影响方面,Norman 称,在测试禁用 JIT 的 Edge 时,用户很少会注意到日常浏览的差别;但在基准测试中,没有 JIT 的 Edge 性能则大幅下降了 58%。
目前,SDSM 禁用 JIT(TurboFan/Sparkplug)并启用 CET,但暂不与 WebAssembly 兼容。该团队计划在接下来的几个月里,慢慢地启用新的缓解措施并增加对 Web Assembly 的支持。用户现下可以在 Edge Canary、Dev 和 Beta 中的 edge://flags 下找到该功能。
Norman 还透露,其正计划将该功能引入 MacOS 和 Android。