簡介

同源策略(Same-Origin Policy, SOP)是網頁瀏覽器中一項關鍵的安全概念,限制了從某個來源載入的文件或腳本(Script)如何與來自另一來源的資源互動。然而,網頁技術的進步,特別是 HTTP/2 server push 和 Signed HTTP Exchange(SXG),引入了複雜性,可能會削弱 SOP 的作用。本報告分析了這些技術引入的漏洞,並介紹了利用這些弱點的 CrossPUSH 和 CrossSXG 攻擊向量。

揭秘跨來源攻擊:HTTP/2 Push 與 SXG 的資安威脅 | 資訊安全新聞

背景

HTTP/2 Server Push

HTTP/2 server push 允許伺服器主動向客戶端發送資源,而無需客戶端明確請求。此功能旨在通過減少延遲來提升網頁效能。然而,這帶來了一個挑戰:伺服器可以使用 :authority 偽標頭指定推送資源的認證機構。瀏覽器會接受這些推送資源,只要指定的認證機構(Authority)與伺服器 TLS 憑證的 Subject Alternative Name(SAN)欄位中列出的任何網域相符,無論主要文件的實際來源為何。

Signed HTTP Exchange (SXG)

SXG 是一種網頁封裝格式,允許傳遞簽署的 HTTP Response。它使內容能夠由第三方分發,同時保持原始內容的完整性和真實性。瀏覽器會驗證簽章,若驗證通過,則將內容視為來自原始來源,即使它來自不同的來源。如果攻擊者能夠取得某網域的有效憑證,這個機制可能會被利用。

Threat Model

主要假設是攻擊者可以取得包含多個網域的 TLS 憑證,其 SAN 欄位中包括一些攻擊者無法控制的網域。由於共享主機或設定錯誤等實際情況,這種情境是可行的。有了這樣的憑證,攻擊者可以利用 HTTP/2 server push 和 SXG 傳遞惡意內容,使瀏覽器誤認為這些內容來自可信任的來源。

攻擊向量

CrossPUSH

在 CrossPUSH 攻擊中,攻擊者利用 HTTP/2 server push 向客戶端發送惡意資源。通過指定與共享憑證中網域相符的 :authority 標頭,瀏覽器會接受該資源,視其為來自該網域。此方法可用於執行跨站腳本攻擊(XSS) 、操縱 cookie 或發起未經授權的下載。

CrossSXG

CrossSXG 攻擊涉及使用共享憑證為惡意內容創建簽署的 HTTP exchange。當瀏覽器接收到此 SXG 時,會驗證簽章,若成功,則將內容視為來自指定網域。此方法可以繞過 SOP 限制,並以可信任網域的名義傳遞惡意內容。

現實世界的影響

研究人員展示了這些攻擊的實際性,發現了 Chrome 和 Edge 等流行瀏覽器的漏洞。他們還指出,包括微軟在內的主要網站容易受到此類攻擊。無關網域間共享憑證的普遍性加劇了風險,使許多網站成為潛在目標。

緩解措施

為應對這些威脅,建議採取以下措施:

  1. 嚴格的憑證管理 :避免在無關網域間共享 TLS 憑證。
  2. 瀏覽器政策更新 :瀏覽器應對資源來源執行更嚴格的驗證,特別是在處理伺服器推送內容和 SXG 時。
  3. 增強監控 :實施監控系統,檢測資源傳遞中的異常模式,可能表明存在攻擊嘗試。
  4. 教育與意識提升 :應教育網站管理員了解共享憑證的風險以及正確設定的重要性。

結論

HTTP/2 server push 和 SXG 等進階網頁功能的整合,雖然有利於效能和內容分發,但引入了新的攻擊面,可能危害 SOP 等基本安全策略。網頁開發者、管理員和瀏覽器供應商必須認識到這些漏洞,並實施適當的防護措施,以保護用戶免受跨來源攻擊(Xross-origin attacks)的威脅。

Copyright © 2025 版權所有 翊天科技有限公司