由计算机科学家组成的一支协作团队开发了一个框架,以提高当前流行网络浏览器Mozilla Firefox的安全性。这个被称为RLBox的框架最终将使数百万用户的浏览器更加安全。 (图片来源:加州大学圣地亚哥分校)
来自加州大学圣地亚哥分校,德克萨斯州奥斯汀分校,斯坦福大学以及Mozilla的研究者们开发了一种新的框架以提升网络浏览器的安全性。这一被称为RLBox的框架已经被火狐集成从而完善该浏览器的安全性。
RLBox框架通过将易受攻击的第三方库与浏览器其余部分分离,从而控制潜在损害,以此增加浏览器安全性--这种做法被称为沙箱(boxing)。这项研究将发表在USENIX Security Symposium上。
如火狐这类的浏览器,依赖于第三方库来支持媒体解码(例如,渲染图像或播放音频文件)以及实现许多其他功能。这些库通常是用低级编程语言编写的,比如C语言,并且对性能进行了高度优化。
“不幸的是,C语言代码中的漏洞往往是安全脆弱区——即攻击者特别擅长利用的安全漏洞。”本文的第一作者Deian Stefan说道,他是加州大学圣地亚哥分校计算机科学与工程系的助理教授。
RLBox框架允许浏览器继续使用现成的、高度调优的库,而不必担心这些库的安全影响。“通过库的隔离,我们可以确保攻击者不会利用这些被隔离库中的错误来破坏浏览器的其余部分。”该项目的主要博士生参与者Shravan Narayan说道。
RLBox的一个关键点是潜在的沙箱机制,它使得有漏洞的库不会干扰浏览器的其余部分。本研究考虑了不同权衡策略下的沙箱技术。但该最终与旧金山Fastly(编者注:Fastly为美国一家云计算服务提供商)的工程团队合作,采用了一种基于WebAssembly的沙箱技术。WebAssembly是一种新的中间语言,在设计内核参考了沙箱技术。该团队认为,WebAssembly将会被广泛使用,成为未来安全浏览器和安全系统的关键部分。最近的一篇发表于Mozilla Hacks博客上的文章详细介绍了WebAssembly沙箱工作。
“不幸的是,仅仅把一个库放进沙箱是不够的,你需要仔细检查从沙箱里输出的所有数据--否则一个老练的攻击者会诱使浏览器做错误的事情,使沙箱的努力白费。”Stefan介绍道。通过标记所有跨越边界的数据,并确保所有这些被标记的数据在使用之前都被验证,RLBox消除了上述这类攻击。
RLBox已经被集成到Mozilla的火狐浏览器中,对Linux系统用户在Firefox 74版中开放,对Mac用户在Firefox 75版中开放,同时也计划在其他平台使用。
Mozilla的首席工程师Bobby Holley介绍道:“这是一件大事,安全对我们而言是首要任务,而在C/C++编程中又太容易犯一些危险的错误。虽然我们正在使用Rust语言(编者注:Rust语言在句法上与C语言较为相似)编写了许多新代码,但火狐浏览器背后是一个巨大的代码库,有数百万行维系运营的C/C++代码,这些代码都不会很快被迭代。RLBbox框架能够在一个粒度上快速而又简单地隔离现有的代码块,这对当前浏览器使用的进程级沙箱而言是不可能实现的。”
该研究中,研究团队使用RLBox隔离了6个库。火狐将其与沙箱石墨字体特征库(sandboxed Graphite font shaping library)一起进行先发。Mozilla计划在未来更广泛地应用沙箱技术,最终使数百万用户的浏览器更为安全。
作者:Joshua Baxt
翻译:汪亚及
审校:董子晨曦
引进来源:加州大学圣地亚哥分校