Mozilla 當(dāng)前正在 Firefox 每夜構(gòu)建版(Nightly Build)和 Beta 通道測(cè)試一項(xiàng)全新的安全體系架構(gòu),特點(diǎn)是能夠?qū)⒚總€(gè)站點(diǎn)都置于單獨(dú)的操作系統(tǒng)進(jìn)程中。由官方描述可知,當(dāng)前在 Firefox 啟動(dòng)時(shí),瀏覽器將啟動(dòng)一個(gè)具有特權(quán)的父進(jìn)程、八個(gè) Web 內(nèi)容進(jìn)程、最多兩個(gè)附加的半特權(quán) Web 內(nèi)容進(jìn)程,以及四個(gè)用于 Web 擴(kuò)展、GPU 操作、聯(lián)網(wǎng)和媒體解碼的實(shí)用程序進(jìn)程。
Firefox 站點(diǎn)隔離功能示意(來自:Mozilla 官網(wǎng))
不過在設(shè)置了一定數(shù)量的進(jìn)程之后,后續(xù)很可能將惡意站點(diǎn)放入另一個(gè)站點(diǎn)已在使用的同一進(jìn)程中,并賦予其訪問共享進(jìn)程內(nèi)存的權(quán)限。
在利用 Spectre 漏洞攻擊的情況下,惡意站點(diǎn)很可能借此取得同一進(jìn)程中其它站點(diǎn)的數(shù)據(jù)。
此外現(xiàn)有方案意味著任何廣告、或嵌入頁(yè)面和子幀的內(nèi)容,都將與父頁(yè)面置于相同的進(jìn)程中,而不會(huì)區(qū)分它們是否來自同一站點(diǎn)。
慶幸的是,在實(shí)施了“站點(diǎn)隔離”政策之后,不屬于同一站點(diǎn)的每個(gè)嵌入式元素都將具有各自的進(jìn)程,然后客戶端操作系統(tǒng)將為瀏覽器提供內(nèi)存防護(hù)和安全性保證。
Mozilla 高級(jí)平臺(tái)工程師 Anny Gakhokidze 在博客中寫道:在更危險(xiǎn)的情況下,惡意站點(diǎn)可能將合法站點(diǎn)嵌入子幀,并試圖誘騙受害者輸入敏感信息。
在成功執(zhí)行類似 Spectre 攻擊的情況下,頂級(jí)站點(diǎn)可能會(huì)從其嵌入的子幀訪問其不應(yīng)訪問的敏感信息(反之亦然)。
而新版 Firefox 瀏覽器引入的站點(diǎn)隔離安全架構(gòu),將有效地提升惡意站點(diǎn)執(zhí)行此類攻擊的難度。
此外 Firefox 會(huì)將同一網(wǎng)站的 http 和 https 版本都視作不同的站點(diǎn),意味著兩者也將置于單獨(dú)的進(jìn)程中。
ZDNet 指出,該功能將充分利用由社區(qū)維護(hù)的有效頂級(jí)域名列表,其中包括了 github.io 和 blogger.com 等在內(nèi)站點(diǎn)。
這些網(wǎng)站擁有許多子域名節(jié)點(diǎn),所以 Firefox 也會(huì)將各個(gè)子版塊都視作單獨(dú)的站點(diǎn)來實(shí)施隔離。
Anny Gakhokidze 補(bǔ)充道,新架構(gòu)也在其它方面改善了 Firefox 的體驗(yàn):
比如一個(gè)站點(diǎn)消耗的計(jì)算資源(或垃圾收集)不該導(dǎo)致其它頁(yè)面的響應(yīng)能力降級(jí)、或者在頁(yè)面崩潰的時(shí)候波及其它進(jìn)程中的網(wǎng)頁(yè)。
更棒的是,通過使用更多進(jìn)程來加載網(wǎng)站,將使得我們能夠把工作分配到許多 CPU 核心,從而更高效地利用底層硬件。
據(jù)悉,F(xiàn)irefox 早在 2019 年初就首次帶來了名為“Project Fission”的站點(diǎn)隔離功能,而競(jìng)爭(zhēng)對(duì)手谷歌為 Chrome 實(shí)施的站點(diǎn)隔離方案也有一段時(shí)間了。
感興趣的朋友,可嘗試在 Firefox Nightly 中導(dǎo)航至 about:preferences#experimental,然后啟用 Fission 復(fù)選框并重啟瀏覽器。
至于 Firefox 正式版 / Beta 通道的用戶,亦可導(dǎo)航至about:config 頁(yè)面,然后將fission.autostart 設(shè)定為啟用,并重啟瀏覽器。
最后,Linux 平臺(tái)的 Firefox 用戶請(qǐng)注意,Project Fission Wiki 頁(yè)面上的許多已知問題表明,你們可能遭遇內(nèi)存使用量過多、以及 X11 連接器耗盡資源等 Bug 。
(舉報(bào))