物理科技生物学-PHYICA

计算机科学家开发了一个框架来保护浏览器免受第三方库中零日漏洞的影响

技术工程 2022-02-17 21:54:09

firefox Credit: Pixabay/ CC0公共领域来自加州大学圣地亚哥分校、德克萨斯大学奥斯汀分校和Mozilla的研究人员设计了一个名为RLBox的新框架,以使Firefox浏览器更加安全。本周,Mozilla已经开始在所有火狐平台上部署RLBox。RLBox通过将容易受到攻击的第三方库与浏览器的其他部分分开来遏制潜在的损害,从而提高浏览器的安全性——这种做法被称为沙盒。

像火狐这样的浏览器依赖第三方库来支持不同的功能——从XML解析到拼写检查和字体呈现。这些库通常是用低级编程语言编写的,比如C语言,不幸的是,在C代码中引入漏洞是极其容易的。RLBox保护用户免受这些库中不可避免的漏洞和利用这些库的供应链攻击。

加州大学圣地亚哥分校计算机科学与工程系助理教授Deian Stefan说:“资金充足的攻击者正在利用零日漏洞和供应链来锁定真正的用户。“为了对付如此复杂的攻击者,我们需要多层防御和新技术,以最大限度地减少我们需要信任的代码数量(以确保安全)。我们正是为此设计了RLBox。”

该团队在所有火狐平台上部署RLBox的努力在最近的Mozilla Hacks博客文章中有详细描述。

有了RLBox,开发人员可以改造像火狐这样的系统,将像第三方库这样的模块放在细粒度的软件沙箱中。像基于进程的沙箱一样,浏览器使用沙箱将一个站点与另一个站点隔离开来,软件沙箱确保沙箱模块中的错误不会造成安全漏洞——错误包含在沙箱中。“然而,与基于进程的沙盒不同,RLBox的沙盒技术使开发人员可以隔离石墨和Expat等紧密耦合的模块,而无需巨大的工程或性能成本,”领导该项目的加州大学圣地亚哥分校计算机科学博士学生Shravan Narayan说。

网络组装和沙盒

RLBox框架的核心由两部分组成。首先是沙盒技术本身:RLBox使用WebAssembly (Wasm)。具体来说,RLBox将模块编译为WebAssembly,然后使用快速且可移植的wasm2c编译器将Wasm编译为本机代码。Narayan说:“通过在本机代码之前编译到Wasm,我们可以免费获得沙盒:我们可以确保所有内存访问和控制流都将被检测,以限制在模块边界内。

Wasm还使得RLBox可以将沙盒代码的调用优化为简单的函数调用。在即将发表在2022年ACM SIGPLAN编程语言原理研讨会论文集上的一项研究中,研究人员表明,这是安全的,因为Wasm满足一组被称为“零成本条件”的理论条件这与其他大多数沙盒技术不同,后者要求沙盒-应用程序边界的粘合代码是安全的。这种粘合代码容易出错,在某些情况下,会导致大量的性能开销——团队的Wasm编译器忽略了这种粘合代码、它的复杂性和开销。

污染型系统

RLBox的第二个关键组件是它的污染类型系统。如果与沙盒代码(火狐代码)交互的代码没有仔细验证沙盒中的所有数据,老练的攻击者就可以突破Wasm沙盒。RLBox的类型系统是使用C++元编程实现的,它通过将所有从沙箱中出来的数据标记为“受污染”来防止这种攻击,并通过编译器错误确保开发人员在使用潜在的不安全数据之前对其进行清理。斯特凡说:“没有这样的类型系统,要确保开发人员将所有正确的检查放在所有正确的地方将是极其困难的。

Mozilla的杰出工程师Bobby Holley说:“RLBox是Firefox和我们用户的一大胜利。“它保护我们的用户免受意外缺陷和供应链攻击,并减少了我们在上游披露此类问题时进行争夺的必要性。”

该团队在RLBox上的原创工作发表在去年3月的USENIX安全研讨会上。从那以后,他们一直致力于将RLBox带给所有火狐用户。RLBox将在所有Firefox平台上发货,包括桌面和移动平台,沙盒化五个不同的模块:石墨、Hunspell、Ogg、Expat和Woff2。该团队正在积极致力于在火狐的未来版本中沙箱化更多模块,并支持火狐之外的用例。

来源:由phyica.com整理转载自PH,转载请保留出处和链接!

本文链接:http://www.phyica.com/jishugongcheng/10497.html

发表评论

用户头像 游客
此处应有掌声~

评论列表

还没有评论,快来说点什么吧~