科學家發現26個USB漏洞:Linux有18個Windows有4個
近日多名學術界人士表示,在Linux、macOS、Windows和FreeBSD等操作系統所使用的USB驅動堆棧中發現了26個新的漏洞。這支科研團隊由普渡大學的Hui Peng、瑞士聯邦理工學院洛桑分校的Mathias Payer帶領,所有漏洞都是通過他們創建的新工具USBFuzz發現的。
圖片來自於WiKiMedia
這類工具被團隊成員稱之為“模糊器”(fuzzer)。模糊器是多款應用程序的集合,能夠幫助安全研究人員將大量無效、意外或者隨機數據輸入其他應用程序。然後,安全研究人員分析被測試軟件的行為方式,以發現新的bug,其中一些可能被惡意利用。
為了測試USB驅動,Peng和Payer共同開發了USBFuzz,這是一種專門用於測試現代操作系統的USB驅動堆棧的新型模糊器。研究人員表示:“其核心部分,USBFuzz使用軟件仿真的USB設備來向驅動程序提供隨機的設備數據(當他們執行IO操作時)。”
團隊表示:“由於仿真的USB設備是在設備層面工作的,因此將其移植到其他平台上是很直接的。”這使得研究團隊不僅可以在Linux上測試USBFuzz,還可以在其他操作系統上進行測試。
研究人員表示,他們在以下平台上測試了USBFuzz。
● Linux內核的9個最新版本:v4.14.81、v4.15、v4.16、v4.17、v4.18.19、v4.19、v4.19、v4.19.1、v4.19.2和v4.20-rc2 (評估時的最新版本)。
● FreeBSD 12 (最新版本)
● MacOS 10.15 Catalina(最新版本)
● Windows(8和10版本,並安裝了最新的安全更新)
在測試之後,研究團隊表示,在USBFuzz的幫助下,他們一共發現了26個新的bug。
研究人員在FreeBSD中發現了一個bug,在MacOS中發現了三個(兩個導致計劃外重啟,一個導致系統凍結),在Windows 8和Windows 10中發現了四個(導致死亡藍屏)。
最嚴重的是針對Linux的,總共有18個。其中16個是針對Linux各個子系統(USB core, USB sound和net-work)的高危內存漏洞,此外還有1個是針對Linux的USB
host主控驅動,還有一個是USB攝像頭驅動。
Peng和Payer表示,他們向Linux內核團隊報告了這些bug,並提出了補丁建議,以減輕”內核開發人員在修復報告的漏洞時的負擔”。
研究團隊表示,在這18個Linux漏洞中,有11個自去年首次報告以來,他們收到了補丁。在這11個bug中,有10個還收到了CVE,這是一個被分配給重大安全漏洞的唯一代碼。
相關論文《USBFuzz: A Framework for Fuzzing USB Drivers by Device Emulation》,可以訪問這裡和這裡 .