Edge Super Duper 安全模式关闭 JavaScript JIT 编译器以提高安全性

673 阅读2分钟

Microsoft 尝试禁用 JIT JavaScript 编译器以提供更好的安全性。

Microsoft Edge 漏洞研究负责人 Johnathan Norman详细介绍了 Edge 中的一项实验,该实验禁用了 JavaScript 即时 (JIT) 编译器以启用一些额外的安全保护。

Norman 将 JIT 编译描述为“非常复杂的过程,很少有人理解,而且错误的余地很小”,Norman 指出 V8 JavaScript 引擎的所有漏洞中有一半与该过程有关。

在 JIT 引擎关闭的情况下,Edge 可以开启保护——例如来自英特尔的基于硬件的控制流执行技术 (CET),以及 Windows 的任意代码保护 (ACG) 和控制流保护 (CFG) ) -- 以前与 JIT 不兼容。

“这很不幸,因为渲染器进程处理不受信任的内容,应该尽可能地锁定,”诺曼说。

“通过禁用 JIT,我们可以启用两种缓解措施,并使利用任何渲染器进程组件中的安全漏洞变得更加困难。

“攻击面的减少消除了我们在漏洞利用中看到的一半漏洞,并且每个剩余的漏洞都变得更加难以利用。换句话说,我们降低了用户的成本,但增加了攻击者的成本。”

image.png图片:微软

在禁用 JIT 的情况下测试 Edge 时,Norman 表示用户很少注意到日常浏览的差异,但在基准测试中,无 JIT Edge 的性能下降了 58%。

“我们测量功耗改进的测试显示平均提高 15%,我们的回归显示功耗增加了约 11%。内存也是一个混合的故事,负面影响测试显示回归 2.3%,但在测试中获得了更大的收益显示出改善,”诺曼写道。

“页面加载时间显示出最严重的下降,测试显示回归平均约为 17%。然而,启动时间只有积极影响,没有回归。”

Super Duper 安全模式目前可通过 edge://flags 为浏览器的金丝雀、开发和测试版发布渠道的用户提供,并且当前开启 CET,但目前与 WebAssembly 不兼容。

“这将需要一些时间,但我们希望在渲染器过程中具有 CET、ACG 和 CFG 保护。一旦完成,我们希望找到一种方法来根据风险智能地启用这些缓解措施,并使用户能够权衡取舍,”诺曼说。

“这当然只是一个实验;事情可能会发生变化,我们有很多技术挑战需要克服。此外,当我们作为一项功能推出时,我们半开玩笑的名称可能需要更改为更专业的名称.”

在 Twitter 上,Norman 表示正在计划将 Super Duper Mode 引入 MacOS 和 Android,并使 WebAssembly 工作。

原文:www.zdnet.com/article/edg…