Ars Technica 於 2022 年 1 月報導,Google 正在著手處理一類已行之有年的攻擊手法:把瀏覽器當成跳板,入侵訪客網路中的路由器及其他裝置。瀏覽器預設幾乎可以連上區域網路內的任何資源,這便催生了跨站請求偽造攻擊。2014 年的一起事件中,駭客竄改了超過 30 萬台路由器的 DNS 設定;2016 年,DNSChanger 惡意軟體則以相同途徑攻擊 Netgear、D-Link、Comtrend 與 Pirelli 的路由器。

解決方案是一項名為私有網路存取(private network access)的規範。當公開網站想存取私有網路中的端點時,Chrome 會送出帶有全新標頭 Access-Control-Request-Private-Network: true 的預檢請求;唯有裝置以 Access-Control-Allow-Private-Network: true 回應,請求才會放行。這套機制建立在 CORS 協定之上。

推行是分階段進行的。從 Chrome 98 起,瀏覽器會送出預檢請求,但失敗時只會在 DevTools 的問題面板記錄一則警告,請求仍會照常發生。大約到了 Chrome 101,若試驗顯示沒有重大破壞,許可就會改為強制。Google 工程師寫道,屆時任何失敗的預檢都會導致抓取失敗,而記錄下來的警告則讓網站擁有者能事先測試自家網站。

重用 CORS:讓公開網站送出預檢請求,並由內部裝置明確授予許可後,請求才能放行。

瀏覽器必須能連上許多服務,因此預設就能觸及區域網路內的任何東西,攻擊者便加以利用。

路由器與印表機往往防護嚴密,攻擊者於是改從瀏覽器下手。

重用 CORS 意味著沿用熟悉的機制,規範變動也小。

僅記錄的警告讓 Google 能在強制執行前,先看出哪些地方會出問題。

分階段補上一個長期存在的漏洞,先只記錄,讓你能在規則改為強制之前,先看出哪些地方會出問題。

當時的計畫是在 Chrome 98 發出警告,並於 Chrome 101 前後強制要求許可,前提是結果未顯示網際網路有重大部分會因此故障。Ars 並未報導後續發生了什麼事。

追溯依據

參考來源

  1. New Chrome security measure aims to curtail an entire class of Web attack Ars Technica · arstechnica.com ·