他們在不需要JavaScript的情況下在網絡瀏覽器上開發了一系列CPU緩存恢復攻擊

來自多所大學的研究人員團隊 美國、以色列和澳大利亞 開發了三種針對 Web 瀏覽器的攻擊,允許提取有關處理器緩存內容的信息。 一個方法 在沒有 JavaScript 的瀏覽器中工作t 和另外兩個繞過了針對第三方渠道攻擊的現有保護方法,包括 Tor 瀏覽器和 DeterFox 中使用的方法。

分析緩存的內容 所有攻擊均採用“Prime+Probe”方式該 涉及用一組參考值填充緩存並通過測量訪問時間來確定變化 當他們充電時。 為了規避瀏覽器中存在的阻止精確時間測量的安全機制,在兩個版本中,使用受控攻擊的 DNS 或 WebSocket 服務器來跟踪接收請求的時間。 在一實施例中,使用固定的DNS響應時間作為時間參考。

由於使用了基於機器學習的分類系統,使用外部 DNS 服務器或 WebSocket 進行的測量足以在最佳場景(平均 98-80%)下以 90% 的準確度預測值。 這些攻擊方法已經在各種硬件平台(Intel、AMD Ryzen、Apple M1、Samsung Exynos)上進行了測試,並被證明是通用的。

DNS Racing 攻擊的第一個變體 使用 Prime+Probe 方法的經典實現 使用 JavaScript 數組。 差異歸結為使用基於 DNS 的外部計時器和錯誤處理程序,該錯誤處理程序在嘗試從不存在的域加載圖像時觸發。 外部計時器允許對瀏覽器進行 Prime+Probe 攻擊,從而限製或完全禁用對 JavaScript 計時器的訪問。

對於託管在同一以太網上的 DNS 服務器,計時器的精度估計約為 2 毫秒,足以進行旁路攻擊(作為比較:Tor 瀏覽器中的標準 JavaScript 計時器的精度為減少到 100 毫秒)。 對於攻擊,不需要控制 DNS 服務器,因為選擇操作的執行時間,以便 DNS 響應時間作為提前完成檢查的信號(取決於錯誤處理程序是更早還是更晚觸發)。 ,結論是與緩存的驗證操作完成)...

第二次“String and Sock”攻擊旨在繞過安全技術 這限制了低級 JavaScript 數組的使用。 String 和 Sock 使用非常大的字符串進行操作,而不是數組,選擇字符串的大小以便變量覆蓋整個 LLC 緩存(最後一級緩存)。

接下來,使用indexOf()函數在字符串中搜索原始字符串中最初不存在的小子字符串,即搜索操作導致對整個字符串進行迭代。 由於線的大小對應於 LLC 緩存的大小,因此掃描允許在不操作數組的情況下執行緩存檢查操作。 為了測量延遲,不是 DNS,而是向攻擊者控制的攻擊 WebSocket 服務器發出請求:在查找操作開始之前和結束之後,請求在鏈中發送,

第三版“CSS PP0”通過 HTML 和 CSS 進行攻擊,可能在禁用 JavaScript 的瀏覽器中運行。 該方法看起來像“String and Sock”,但未綁定到 JavaScript。 該攻擊生成一組按皮膚搜索的 CSS 選擇器。 填充緩存的偉大原始行 通過創建 div 標籤來設置 具有非常大的類名,並且其中內部是一組具有自己標識符的其他 div。

每一個 這些嵌套的 div 使用查找子字符串的選擇器進行樣式設置。 渲染頁面時,瀏覽器首先嘗試渲染內部 div,這會導致搜索大字符串。 使用明顯缺失的掩碼執行搜索,並導致整個鏈的迭代,之後觸發“否”條件並嘗試加載背景圖像。


發表您的評論

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

*

*

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