谷歌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 放在無人看管的地方,那即使它被鎖定,才可能淪為其它攻擊的一個跳板。