科学家们已经发现了26个USB漏洞:18个在Linux中,4个在Windows漏洞中。由普渡大学的HuiPeng和洛桑瑞士联邦理工学院的MathiasPayer领导的研究团队使用他们创建的新工具USBFuzz发现了所有漏洞。图片来自WiKiMedia此类工具被团队成员称为“fuzzers”。模糊器是一组应用程序,可帮助安全研究人员将大量无效、意外或随机数据输入其他应用程序。然后,安全研究人员分析被测试软件的行为方式以发现新的错误,其中一些可能被恶意利用。为了测试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(评估时的最新版本)。FreeBSD12(最新版本)MacOS10.15Catalina(最新版本)Windows(安装了最新安全更新的8和10版本)经过测试,研究团队表示,在USBFuzz的帮助下,他们共发现了26个新漏洞。研究人员在FreeBSD中发现了一个错误,在MacOS中发现了三个(两个导致计划外重启,一个导致系统冻结),在Windows8和Windows10中发现了四个(导致蓝屏死机)。最严重的是针对Linux的,总共有18个。其中16个是针对Linux各个子系统(USBcore、USBsound、network-work)的高危内存漏洞。此外,还有一个用于Linux的USBhost主驱动程序和一个用于USB摄像头驱动程序。Peng和Payer表示,他们向Linux内核团队报告了这些错误,并提出了补丁以减轻“内核开发人员在修复报告的漏洞时的负担”。研究小组表示,在18个Linux漏洞中,有11个自去年首次报告以来已经收到补丁。在这11个漏洞中,有10个还收到了CVE,这是分配给主要安全漏洞的唯一代码。
