https://www.informationsecurity.com.tw/Seminar/2024_TNSP/
https://www.informationsecurity.com.tw/Seminar/2024_TNSP/

新聞

強化 Chrome 瀏覽器安全!Google推出V8沙盒保護受攻擊面

2024 / 04 / 09
編輯部
強化 Chrome 瀏覽器安全!Google推出V8沙盒保護受攻擊面
Google 最近宣布在 Chrome 瀏覽器中支援 V8 沙盒機制( V8 Sandbox), 以避免 V8中的記憶體損毀影響到整個系統進程。
 
Google 將 V8 沙盒描述為一種輕量級、內部程序沙盒,可用於隔離 JavaScript 和 WebAssembly 引擎中的程式碼執行,從而降低常見 V8 漏洞的風險。它的核心思路是將 V8 引擎的程式碼執行範圍限制在程序虛擬地址空間的一個子集中,並與程序的其他部分隔離,以此限制 V8 漏洞的影響範圍。
 
過去兩年,影響 V8的漏洞一直是 Google 修復的重點, Google 在 2021 年至 2023 年間發現高達 16 個零日漏洞。研究人員指出,這些漏洞往往源於 V8 引擎內部的「微妙邏輯問題」,而非典型的記憶體安全漏洞,因此難以用現有的記憶體安全技術來防範。
 
舉例來說,攻擊者可能透過硬體通道讀取沙盒外的內存。因此,沙盒目的在於保護程序的其餘部分不受此類攻擊者的影響。任何對沙盒地址空間外的內存的損毀都被視為沙盒違規。
 
Google解釋,可被利用來破壞內存的「微妙邏輯問題」與典型的內存安全漏洞(如使用後釋放、越界訪問等)不同。
 
透過切換到像 Rust 這樣的內存安全語言,或使用像內存標記這樣的硬體內存安全方法來解決 V8 漏洞挑戰。
 
V8 沙盒被設計用於隔離 V8 的堆內存(heap memory),以避免任何內存損毀都無法逃逸到程序的其他部分。即使出現記憶體損毀也無法擴散到沙盒外部。
Google將所有可以訪問沙盒外內存的數據類型替換為「沙盒兼容」的替代品,防止攻擊者訪問其他內存。技術人員可以透過將 "v8_enable_sandbox" 設置為 true 來啟用沙盒。
 
此外,V8 沙盒還需要 64 位系統以預留足夠的虛擬地址空間,目前為 1 TB。初步的性能測試顯示,這一安全機制在典型工作負荷下僅會帶來約 1% 的消耗,Google 將從 Chrome 123 版本開始默認啟用,涵蓋 Android、ChromeOS、Linux、macOS 和 Windows系統。
 
有鑑於目前大多數的內存安全技術無法適用於優化 JavaScript 引擎,目前V8 沙盒雖然無法阻止 V8 本身的內存損毀,但它們確實可以保護 V8 沙盒受攻擊面。因此,沙盒是實現內存安全的必要一步。
 
為了強化安卓韌體安全,Google強調Kernel Address Sanitizer (KASan) 檢測本機程式碼中的記憶體錯誤的重要性。使用KASan在測試和/或模糊測試期間,幫助捕捉內存損毀漏洞和穩定性問題。

本文轉載自thehackernews。