资料图(来自:Mozilla)
RLBox 是一个创新项目,旨在将沙箱的安全性提升到一个新的水平。它并未将应用程序与操作系统的底层隔离,而是将应用程序的内部组件(即第三方库)与应用程序的核心引擎分开执行。
RLBox 将于下月向 Firefox 浏览器用户提供,此技术可防止在第三方库中发现的错误和漏洞影响使用该库的另一个项目。
这项工作可追溯到 2019 年,属于这家浏览器开发商与加州大学圣迭戈分校、德克萨斯大学奥斯汀分校、以及斯坦福大学学者共同开发的一部分。
按照计划,Mozilla 将于今年 3 月面向 Linux 平台的 Firefox 74、以及 4 月份面向 Mac 平台的 Firefox 75 版本更新中引入。
起初,开发团队已将 Firefox 的 Graphite 字体库放入 RLBox 沙箱中运行。未来计划包括将其它 Firefox 组件放入 RLBox 沙箱环境,以及扩展至其它平台(比如 Windows)。
需要指出的是,RLBox 并不是 Mozilla Firefox 浏览器的专属,因为它只是第一个采用的应用程序项目。实际上,RLBox 还兼容各种应用程序的通用框架。
文档指出,RLBox 由两部分组成。其(1)是基于 WebAssembly 的沙箱环境,其(2)是开发者可用来使 RLBox 适应其它应用程序、及其较旧版本的编程 API 。
研究人员称,RLBox 的 WebAssembly 沙箱环境,主要基于由 Fastly 开发的 Lucet 开源 WebAssembly 编译器和运行时。
Mozilla 首席工程师 Bobby Holley 表示,为 Firefox 添加 RLBox 支持很是重要。不过他们的主要工作,还包括改编此沙箱、并添加通用API 。
开发者可对现有项目进行 RLBox 改造,其中大多数项目具有数百万行代码和数十个第三方库,且彼此不尽相同。
Holley 补充道:“安全是我们的头灯大事,毕竟在 C / C++ 环境中很容易犯下危险的错误”。
长久以来,Mozilla 一直想要努力摆脱 C 和 C++ 。作为 Rust 的创始者和主要支持者,这家浏览器开发商显然希望该语言能够作为前者的安全替代。
Rust 已在 Firefox 中首次实现使用,目前 Mozilla 正在通过 Rust 编写大量新代码。可惜 Firefox 的历史代码库相当庞大,因而无法在短期内彻底告别 C / C++ 。
本文素材来自互联网