谷歌Project Zero團隊曝光Chrome OS存在的一個高危USB漏洞
谷歌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 放在無人看管的地方,那即使它被鎖定,才可能淪為其它攻擊的一個跳板。