谷歌Project Zero團隊曝光Chrome OS存在的一個高危USB漏洞

語言: CN / TW / HK

谷歌 Project Zero 團隊擅長髮現不同產品中的安全漏洞(涵蓋 Windows 操作系統、iPhone 智能機、高通 Adreno GPU、GitHub 代碼託管平台),然後及時向供應商進行彙報、並賦予其標準的 90 天補丁修復寬限期。 不過近日,Project Zero 研究人員也披露了自家 Chrome OS 系統中存在的一個高危 USB 漏洞。

Jann Horn 在 報吿 中寫道,問題源於 Chrome OS 在設備鎖定時的 USB 設備應對策略。

儘管該系統會通過 USBGuard 為 USB 設備配置黑 / 白名單(允許 / 阻止列表),但錯誤的配置框架可能導致未經身份驗證的 USB 設備訪問計算機的內核與存儲。

具體説來是,USBGuard 阻止列表不會在鎖屏上使用特定的類接口描述符,對 USB 設備進行身份驗證。

但若攻擊者修改了內核,將相關設備偽裝成大容量存儲設備,便可在通過身份驗證後突破限制。

原因是內核覺得 USB 類有些無關緊要,並允許從看似經過身份驗證的設備進行修改。

除了不屬於這些 USB 接口類的設備驅動程序中存在較大的攻擊面,系統內核通常也不關心設備自詡屬於哪種 USB 類型。

作為一個被廣泛使用的標準化協議,驅動程序既能夠以低優先級指定其希望使用的適當 USB 接口類(綁定到符合標準的設備),也能夠以高優先級來參考製造商 / 產品 ID 來綁定(而不關心其 USB 接口類別)。

如果利用具有適當硬件的 Linux 機器 —— 本例中選擇了 NET2380 開發板,但你也可使用解鎖的 Pixel 智能機 / 樹莓派 Zero W 等類似設備 —— 來模擬 USB 大容量存儲設備。

接着使用( 這個 )並在攻擊者內核中修補一行,便可隨它自詡為何(而不被視作存儲設備)。

Project Zero 將該問題標記為高嚴重性漏洞,並於 2 月 24 日私信給了 Chrome OS 團隊。

尷尬的是,後來 Chrome OS 團隊又將該問題視作低嚴重性漏洞,並於 3 月 1 日辯稱會通過基於驅動程序的適當匹配來解決該問題(而不是類接口描述符)。

儘管 Chrome OS 團隊於 5 月 11 日通報了進度更新,但由於其未能在規定的 90 天內修復該漏洞,Project Zero 安全研究人員最終決定於 5 月 24 日將其公開曝光。

目前尚不清楚正式的 Chrome OS 補丁將於何時推出,慶幸的是,作為一個本地漏洞,攻擊者需要手動連接 USB 來篡改設備及其內核,而無法被遠程利用。

換言之,只有你將 Chrome OS PC 放在無人看管的地方,那即使它被鎖定,才可能淪為其它攻擊的一個跳板。