谷歌宣布在其 Chrome 浏览器中引入了 V8 沙箱,以应对 V8 引擎中存在的内存损坏漏洞。这个沙箱的概念是将 V8 执行的代码限制在进程虚拟地址空间的子集内,并将其与进程的其他部分隔离开来,从而限制漏洞对系统的影响。这一举措旨在缓解常见的 V8 漏洞所带来的风险。
V8 沙箱的动机在于现有的内存安全技术在优化 JavaScript 引擎方面存在不足。尽管这些技术无法完全防止 V8 本身的内存损坏,但它们可以限制攻击面。因此,V8 沙箱被认为是向内存安全迈出的一步。
这个功能通过将可以访问沙箱外部内存的数据类型替换为沙箱兼容的替代方案,有效地防止攻击者访问其他内存。在 Chrome 版本 123 中,该功能已默认启用,并覆盖了多个操作系统平台。
尽管引入 V8 沙箱会增加一些性能开销,但基准测试结果显示,这种安全功能在典型工作负载上仅增加了约 1% 的开销。
此外,谷歌还强调了 Kernel Address Sanitizer (KASan) 在检测本机代码中的内存错误以及帮助强化 Android 固件安全性方面的作用。使用支持 KASan 的构建可以帮助在内存损坏漏洞和稳定性问题影响用户设备之前捕获它们。