Spook.js,一種利用 Chrome 中 Spectre 漏洞的新技術

一群研究人員 來自美國、澳大利亞和以色列的大學報告說, 描述了一種新的攻擊技術 允許利用漏洞 Chromium 驅動的瀏覽器上的 Spectre 類。

代號為攻擊 Spook.js,允許在執行 JavaScript 代碼時繞過站點隔離機制 讀取當前進程的整個地址空間的內容,即訪問在其他選項卡中執行但在同一進程中處理的頁面的數據。

由於 Chrome 在不同的進程中啟動不同的站點,因此實際攻擊僅限於允許不同用戶託管其頁面的服務。 Spook.js 攻擊方法使攻擊者可以在頁面中嵌入他的 JavaScript 代碼成為可能, 確定是否存在同一站點的用戶打開的其他頁面 並提取機密信息 其中,例如,憑據或銀行詳細信息被 Web 表單中的自動完成系統替換。

該方法的另一個應用是對瀏覽器插件的攻擊, 當安裝了攻擊者控制的插件時,它允許從其他插件中提取數據。

Spook.js 適用於任何基於 Chromium 引擎的瀏覽器, 包括 Google Chrome、Microsoft Edge 和 Brave。 研究人員還認為,該方法可以適用於 Firefox,但由於 Firefox 引擎與 Chrome 非常不同,因此創建此類漏洞的工作留待未來。

為了防止與通過瀏覽器推測執行指令相關的攻擊,Chrome 中實現了地址空間分段:沙箱隔離允許 JavaScript 僅使用 32 位指針,並在不重疊的 4GB 堆棧中共享控制器的內存。

為了組織對進程整個地址空間的訪問並避免 32 位限制,研究人員使用了類型混淆技術,該技術允許 JavaScript 引擎處理具有錯誤類型的對象,從而有可能形成 64 位基於兩個 32 位值的組合的代碼。

攻擊的本質是通過在 JavaScript 引擎中處理特製的惡意對象,創造條件,導致對訪問數組的指令進行推測性執行。 對象的選擇方式是將攻擊者控制的字段放置在使用 64 位指針的區域中。

由於惡意對象的類型與正在處理的數組類型不對應,因此在正常情況下,Chrome 中用於訪問數組的代碼的反優化機制會阻止此類操作。 為了解決這個問題,類型混淆攻擊代碼被放置在一個“if”條件塊中,它在正常條件下不會觸發,但如果處理器錯誤地預測了更多分支,它會以推測模式運行。

因此,處理器推測性地訪問生成的 64 位指針並在確定預測失敗後恢復狀態,但執行軌跡設置在共享緩存中,可以使用通過第三次確定緩存內容的方法進行恢復。方渠道,分析緩存和非緩存數據的訪問時間變化。

為了在 JavaScript 中可用計時器精度不足的情況下分析緩存的內容,使用谷歌提出的一種方法,該方法欺騙處理器中使用的 Tree-PLRU 緩存數據驅逐策略,並允許通過增加循環次數,顯著增加緩存中存在和不存在值的時間差。

研究人員發布了適用於 Chrome 89 e 的原型漏洞利用n 系統採用 Intel i7-6700K 和 i7-7600U。 該漏洞是使用谷歌之前發布的 JavaScript 代碼原型創建的,用於執行 Spectre 攻擊。

最後研究人員提到 設法為基於 Intel 和 Apple M1 處理器的系統準備工作漏洞,它們有機會以每秒 500 字節的速度和 96% 的準確度組織內存讀取。 該方法應該適用於 AMD 處理器,但無法準備功能齊全的漏洞利用程序。

來源: https://www.spookjs.com


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。