Firefox渲染器中细粒度隔离的改造(扩展版)
密码学与安全
2020-03-11 v2
摘要
Firefox及其他主流浏览器依赖数十个第三方库来渲染音频、视频、图像及其他内容。这些库是漏洞的频繁来源。为缓解此威胁,我们正在将Firefox迁移至一种将这些库隔离在轻量级沙箱中的架构,从而大幅降低一旦被攻陷所造成的影响。改造隔离可能耗费大量人力、极易引入安全漏洞,并且需要对性能给予关键关注。为此,我们开发了RLBox,一个将Firefox转换为安全且高效地使用不可信代码的负担最小化的框架。为实现此目标,RLBox采用静态信息流强制以及以轻量级动态检查的形式直接表达于C++类型系统中的机制。RLBox通过基于软件的故障隔离或多核进程隔离支持高效沙箱化。性能开销适中且为瞬态,仅对页面延迟有轻微影响。我们通过沙箱化对性能敏感的的图像解码库(libjpeg与libpng)、视频解码库(libtheora与libvpx)、libvorbis音频解码库以及zlib解压缩库来展示这一点。RLBox使用WebAssembly沙箱,已被集成进生产版Firefox中以沙箱化libGraphite字体整形库。
引用
@article{arxiv.2003.00572,
title = {Retrofitting Fine Grain Isolation in the Firefox Renderer (Extended Version)},
author = {Shravan Narayan and Craig Disselkoen and Tal Garfinkel and Nathan Froyd and Eric Rahm and Sorin Lerner and Hovav Shacham and Deian Stefan},
journal= {arXiv preprint arXiv:2003.00572},
year = {2020}
}
备注
Accepted at Usenix Security 2020