Firefox 95加入新的沙盒技术RLBox,可高效隔离恶意程序保护浏览器

Firefox安全性再强化,Firefox 95导入最新的沙盒技术RLBox,通过高性能的隔离技术来隔离子组件,使得即便受隔离的模块存在零日漏洞,也完全不会使Firefox受到威胁。

这个称为RLBox的新型沙盒技术,是Mozilla和加利福尼亚大学圣地亚哥分校合作开发,有别与传统基于程序的沙盒,RLBox使用WebAssembly来隔离具有潜在bug程序代码,现在Graphite、Hunspell、Ogg、Expat和Woff2总共5个模块,已经使用该隔离技术,并且在桌面和行动Firefox全平台提供支持。

目前所有主要浏览器,都是通过沙盒程序来执行网页内容,这种方法在理论上,可以避免恶意程序代码通过浏览器漏洞,来入侵用户的计算机,在桌面操作系统,Firefox甚至会在自己的程序中,隔离每个网站,以确保网站间的安全。

不过恶意攻击者也不是省油的灯,Mozilla提到,他们通常会通过联合使用两个漏洞来攻击用户,除了破坏网站的沙盒程序之外,也尽可能逃离沙盒的隔离。因此除了在程序上隔离,沙盒技术的下一阶段发展,便是要朝向在功能之间设下隔离边界前进,像是Firefox在执行解码任务时,会在一个专用且锁定的程序中进行,使该程序仅拥有受限的接口。

但这个方法存在严重的限制,Mozilla提到,除了需要先解耦程序代码,使其成为异步运行之外,这个工作还很耗时,也可能产生额外的性能成本,另外,每个程序都有固定的内存开销,添加更多的程序,会使得应用程序占用的内存增加。

现在Mozilla提出另一种更精细的隔离方法RLBox,RLBox并不会将程序代码放到单独的程序中执行,而是将其编译成为WebAssembly,并将该WebAssembly编译成为原生程序代码,因此在Firefox中不会加入任何.wasm文件,WebAssembly仅为构建过程的中间语言。

但这个转换步骤对于目标程序代码,设置了两个重要的限制,第一是不能意外跳转到程序其余部分,第二则是不能访问指定区域以外的内存。这些限制使得可信和不可信程序代码间共享内存空间变得更加安全,并且大致上能跟过去一样,在同一个程序中执行。这个方法还有另一项好处,便是不需要大动作重构程序代码,就能完成实例。

官方提到,RLBox保护Firefox免受意外bug,以及供应链攻击,在上游组件披露漏洞时,开发人员也不需要着急地修补。Mozilla会继续将RLBox隔离技术扩展使用到更多的组件上,不过像是太过于依赖与其他程序共享内存,或是性能敏感的组件,无法接受任何额外成本的组件,便不适合应用RLBox隔离技术。