我现在在日常使用中用 Firefox 代替 Google Chrome,但我在一些网站上看到 Firefox 缺乏安全性,但在隐私方面表现更好,而 Chrome 则相反。Firefox 没有用于一般用途的沙盒,真的就不那么安全吗?我知道它使用用于 Flash、DRM 等的沙盒。我错了吗?Chrome 也是这样吗?因为我找不到太多关于它的信息。我已经在使用 uBlock Origin。对于 Firefox 来说,“firejail” 会是一个适合日常使用的沙盒吗?
答案1
Mozilla 的 Electrolysis 项目允许其浏览器利用与 Chrome 相同的沙盒技术,因为它实施了多进程架构,该架构使用特权进程来管理浏览器 chrome,使用非特权内容(子)进程来处理不受信任的(网络)内容。浏览器的多进程架构比这稍微复杂一些,但这就是事情的要点。
从 Linux 上的 Firefox 57 及更高版本开始,1Firefox 的发布分支使用与 Chrome 相同的核心沙盒功能。两种浏览器都使用 seccomp-BPF 来限制内容进程系统调用访问,以减少攻击面,并且两种浏览器的内容(子)进程都通过 setuid 包装器(Chrome 旧版回退)或非特权用户命名空间(现代内核上的 Firefox 和 Chrome)进行沙盒处理。2,3
因此,从高层的角度来看,Firefox 和 Chrome 的沙盒强度相当。
答案2
正如 Ramhound 指出的那样,Firefox 确实有脚本运行时沙箱,但 Firejail 则完全是另一回事。Chrome 和 Firefox 都没有尝试做 Firejail 所做的事情。
Firejail 不是通常内置于浏览器中的脚本运行时沙箱,而是一个强制访问控制完全在浏览器之外的层,例如操作系统或 Novell应用装甲。它隔离了整个浏览器(或其他非浏览器进程),而不仅仅是浏览器运行时组件中的特定区域,因此,如果浏览器沙箱被新攻击破坏,或者用户做了一些极其愚蠢的事情,您可以限制浏览器对系统的影响。您可以断言某个进程只能访问某些资源,并阻止任何其他操作。
就我个人而言,如果我的浏览器需要 MAC 层,我会使用 SELinux 或 AppArmor(我的发行版维护者喜欢的那个),或者更好的是,使用虚拟机来实现完全隔离。