https://www.informationsecurity.com.tw/seminar/2024_Business/
https://www.informationsecurity.com.tw/seminar/2024_Business/

新聞

0.0.0.0 零日漏洞使 Chrome、Firefox、Mozilla、 Safari瀏覽器面臨遠端程式碼執行風險

2024 / 08 / 09
編輯部
0.0.0.0 零日漏洞使 Chrome、Firefox、Mozilla、 Safari瀏覽器面臨遠端程式碼執行風險
攻擊者可利用一個「0.0.0.0」 IP 位址的漏洞,在各種網頁瀏覽器(Chrome、Safari、Firefox 等)上遠端執行程式碼,使用者因此面臨資料竊取、惡意軟體和其他惡意活動的風險。
 
開源安全公司 Oligo Security 的研究人員發現了一種繞過瀏覽器安全性並從網路外部與組織本地網路上執行的服務互動的方法,他們稱之為「0.0.0.0 Day」,因為它利用了這個網路位址。
 
研究員表示,該漏洞存在的原因是「不同瀏覽器間安全機制的不一致實作,以及瀏覽器產業缺乏標準化」。攻擊者可利用此漏洞從瀏覽器利用本機應用程式介面(API),從而執行一系列惡意活動。」
 
因此,看似無害的 IP 位址 0.0.0.0 可能成為攻擊者利用本地服務的強大工具,包括用於開發、作業系統,甚至內部網路的服務。

漏洞分析

該漏洞存在於瀏覽器設計上允許服務使用 JavaScript 向幾乎任何 HTTP 伺服器發送請求的能力;瀏覽器的主要工作是專注於提供正確的回應,無論是提供對請求的有效回應還是錯誤。
 
雖然瀏覽器通常應該透過其回應來防止錯誤或惡意請求通過,但自瀏覽器誕生以來,在處理跨瀏覽器請求方面一直缺乏流暢的安全性。
 
研究員解釋,長期以來,一直不清楚瀏覽器在從較不私密的環境向本地或內部網路發出請求時應該如何表現。
 
大多數瀏覽器都依賴 CORS(跨來源資源共享Cross-Origin Resource Sharing),定義了在一個網域中載入的客戶端網頁應用程式與不同網域中的資源互動方式的標準 。但研究人員指出,瀏覽器表現取決於回應內容,所以請求仍然會被發送。
 
顯然CORS是不夠的。歷史證明,單一的 HTTP 請求就可以攻擊家用路由器。 如果這就是所需的全部,那麼每個使用者都需要能夠完全防止這種請求發生。

繞過 PNA

超越了 CORS,Chrome 引入的私人網路存取(PNA),理論上應該能保護網站免受 0.0.0.0 day 漏洞的影響。PNA 提議區分公共、私人和本地網路,確保「在較不安全環境下載入的頁面將無法與更安全的環境通信」。
 
然而,研究人員發現,發送到 0.0.0.0 的網站請求,按理說應該在 PNA 下被阻擋,實際上卻被本地伺服器接收和處理。這意味著公共網站可以存取您主機上的任何開放端口,而無法看到回應。
 
為了證明他們的觀點,攻擊者研究了他們的研究人員最近發現的針對 AI 工作負載的攻擊活動 ShadowRay,如何能使用 0.0.0.0 作為攻擊媒介從瀏覽器執行其攻擊。
 
ShadowRay 在私人伺服器無意中暴露於網際網路時實現了任意程式碼執行,並且近一年來一直未被發現。為了驗證他們的概念,研究人員在 localhost 上運行了一個本地 Ray 叢集,然後啟動了一個監聽新連接以開啟反向 shell 的 socket。
 
然後,受害者點擊電子郵件中的連結,這會運行漏洞利用程式。該漏洞利用程式在訪問者的機器上為攻擊者開啟一個反向 shell。
 
研究人員在 Chromium、Safari 和 Firefox 中驗證了這個概念,以從瀏覽器執行 ShadowRay,並指出這可能實現的大量遠端程式碼執行攻擊之一。研究人員還透過 Selenium Grid 公共伺服器和 PyTorch TorchServe 分別利用先前識別的攻擊活動 SeleniumGreed 和 ShellTorch 證明了這種攻擊。
 
研究人員還展示了如何透過使用 0.0.0.0 結合 "no-cors" 模式,攻擊者可以使用公共域來攻擊在 localhost 上運行的服務,甚至獲得任意程式碼執行權限,所有這些都只需使用一個 HTTP 請求。

如何緩解攻擊

Oligo 向相關瀏覽器擁有者(包括 Google、Apple 和 Mozilla)披露這些發現,根據 Oligo 的說法,這些公司已經透過在其瀏覽器中進行修復來阻擋 0.0.0.0 作為目標 IP。
 
同時,網路管理員可以使用其他技術緩解措施來阻止使用此攻擊媒介的攻擊。這些措施包括實施 PNA 標頭,驗證網路請求的 HOST 標頭以防止針對 localhost 或 127.0.0.1 的 DNS 重新綁定攻擊,以及一般不要僅因為它們是「本地」就信任 localhost 網路。研究人員建議:「即使在 localhost 上運行時,也要添加最小的授權層。」同時,即使是本地端,網路管理員應盡可能使用 HTTPS 而非 HTTP,並在應用程式中實施 CSRF 令牌。

本文轉載自DarkReading。