快轉到主要內容

Android版Firefox究竟哪裡不安全?談網頁隔離的重要性

· 民國115年丙午年
·
切換正體/简体 ·
分類 Linux系統 自由軟體議題
標籤 Firefox

:お前さっき俺がウェブサイトでパスワード入力してる時、チラチラ見てただろ!(剛剛我在網頁輸入密碼的時候,你偷看了對吧!)

:いや、見てないですよ!(不我才沒有看)

:嘘つけ絶対見てた!(你這個騙子,你絕對看了!)

其實Firefox比Chrome更不安全!?其他網頁可能會竊取銀行網頁的的密碼資料?

GrpaheneOS開發者一直在攻擊手機版Firefox不安全,叫大家不要用。

參照:Avoid Gecko-based browsers like Firefox as they’re currently much more vulnerable to exploitation and inherently add a huge amount of attack surface。

可是用Chromium的話是在幫Google增長市佔率啊。所以我想知道這問題在哪。其中一條是網站隔離(Site Isolation)。

瀏覽器預設都會啓用sandbox,這背後防的是什麼呢。資安有一種叫做Spectre的安全性問題。Spectre是由CPU推測執行漏洞所引發的攻擊手法。2000年以後,現代的CPU幾乎都有分支預測設計,它會嘗試推測程式下一步要做什麼,然後執行指令。不論成功與否,指令都可能會暫時留在cache內。這就給惡意程式提供旁路攻擊(side channel)的機會了。

以瀏覽器來說,瀏覽器裡面最危險的就是JavaScript,因爲它是可執行程式,且能夠藏在網頁裡面在你開啓的時候默默執行。如果開啓多個網站,在同一條行程上同時執行多個網站的JavaScript,則「理論上」惡意程式有機會讀取其他網站記憶體裡的值,藉此竊取資料。即使有Same-Origin Policy也無法阻止惡意程式去讀取資料啊,因爲不同的JavaScript位於同一個記憶體位址。

故,瀏覽器每個分頁執行的行程都應該要隔離開來,甚至一個網站裡面的不同的iframe,JavaScript也要放在不同行程執行,不能讓其他分頁任意看到其他分頁的資料。

實作網站隔離,還可以減少WebAssembly、JIT、WebGL被利用漏洞,能接觸的攻擊面。JavaScript能接觸到的資訊有限,就無法進一步擴大損害。

電腦版,Firefox跟Chrome都有良好的網站隔離。

Chromium在2018年就加入了網站隔離技術。Firefox落後了三年才慢慢跟上,也就是Project Fission

此外,2024年Firefox在Windows和Linux都阻絕了危險的syscall。強化瀏覽器的sandbox安全性。

可是在Android手機版則不是這樣。

Chromium很早就有了網站隔離功能,爲了不影響性能,在RAM > 2GB的裝置,所有網頁都會用系統的多個行程載入。

Firefox則是在2025年v147才加入網站隔離,並且並非全面啓用,只針對需要密碼的網站載入。

這就是爲何Firefox不是那麼安全的原因。

儘管目前只有Mozilla和Google發表的概念驗證程式,還沒有因爲缺乏網站隔離而大規模損失錢財的新聞,但開發者還是先把這個洞補起來了。

相關文章


感謝您的閱讀。我寫作是為了誠實表達想法,而不是追逐社群互動與流量。我很樂意傾聽你在仔細閱讀我文章之後的心得。若有內容勘誤 or 技術問題 or 回饋想法,歡迎透過本站「關於」頁面的Email與我聯絡。