研究人員發明了一種可以探測USB接口漏洞的裝置,而這個裝置已經協助他們發現了Linux、macOS、Windows以及FreeBSD上總共26個這類的USB驅動漏洞。
這個新的裝置名為USBFuzz,是由美國普渡大學的彭慧(Hui Peng音譯)以及瑞士聯邦理工學院的Mathias Payer共同研發出來。在他們的論文“USBFuzz: A Framework for Fuzzing USB Drivers by Device Emulation”中對於這個裝置有詳細的説明。
“USBFuzz是一個用於對USB驅動程序進行模糊測試的便攜、靈活且模塊化的框架。USBFuzz的核心是使用以軟件模擬出來的USB設備向驅動程序提供隨機的設備數據(當它們執行IO操作時)。”
USBFuzz通過向特定的應用程序故意注入亂碼數據來進行模糊測試。如果軟件無法正確處理這些意外數據,那開發人員就可以識別到潛在的安全漏洞,並且在用户受到威脅之前加以解決。
USBFuzz的設計圖
研究人員以這個裝置測試了9個不同版本的Linux內核、FreeBSD12、macOS以及Windows 8及10系統。
結果他們在4個系統發現了共26個USB驅動的BUG,分別是FreeBSD上發現了1個、macOS上發現了3個、Windows 8及10上合共發現4個,而Linux上則是發現了驚人的18個。Linux上的18個BUG當中,有16個是Linux子系統的嚴重內存錯誤,1個是USB主機控制器的BUG,而剩下的那個則是USB攝像頭驅動的BUG。
研究團隊隨後把這些BUG報告給了Linux的內核團隊,並且提交了對於補丁的想法方便相關人員修復這些BUG。而在18個BUG當中,有11個在去年提交報告後已經被修復,而剩下的7個預計會在不久的將來被修復。
有關USBFuzz的詳細信息可以在這篇論文裏找到。