生活中,USB接口可以说无处不在,路由器、打印机、投影机、PC电脑、台式机等等,且使用频率极高。当然,作为硬件设备的输入输出接口,其安全性也至关重要。近日,研究人员在Windows、Linux、macOS等系统使用的USB驱动中,发现了26个新漏洞。
 
其实,已有很大一部分的用户接受了“USB设备不安全”这一事实。我们在之前的文章中,也曾多次介绍过与USB有关的安全事件,例如让数十亿USB设备“不眠”的BadUSB漏洞,从键盘、打印机再到U盘,无一幸免。只是此次,漏洞数量众多,且危及多个主要操作系统。
 
待进一步了解后得知,该科研团队是由普渡大学的Hui Peng、瑞士联邦理工学院洛桑分校的Mathias Payer所带领,26个新漏洞都是通过他们创建的新工具USBFuzz发现的。这类工具被团队成员称之为“模糊器”(fuzzer)。
 
据悉,模糊器是多款应用程序的集合,能够帮助安全研究人员将大量无效、意外或者随机数据输入其他应用程序。之后,安全研究人员分析被测试软件的行为方式,以发现新的bug,其中一些可能被恶意利用
 
为了测试USB驱动,Peng和Payer共同开发了USBFuzz,这是一种专门用于测试现代操作系统的USB驱动堆栈的新型模糊器。据研究人员介绍,其核心部分,USBFuzz使用软件仿真的USB设备来向驱动程序提供随机的设备数据(当他们执行IO操作时)。
 
此外,研究团队还表示:“由于仿真的USB设备是在设备层面工作的,因此将其移植到其他平台上是很直接的。”这使得研究团队不仅可以在Linux上测试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。
 
测试后,研究团队表示在USBFuzz的帮助下,团队一共发现了26个新bug。包括在FreeBSD中发现的一个,在MacOS中发现了三个(两个导致计划外重启,一个导致系统冻结),在Windows 8和Windows 10中发现了四个(导致死亡蓝屏)。
 
相较之下,最严重的是针对Linux系统的,共有18个。其中16个是针对Linux各个子系统(USB core, USB sound和net-work)的高危内存漏洞,此外还有1个是针对Linux的USB。
 
对此,Peng和Payer表示,他们向Linux内核团队报告了这些bug,并提出了补丁建议,以减轻 "内核开发人员在修复报告的漏洞时的负担"。与此同时,研究团队也表示,在这18个Linux漏洞中,有11个自去年首次报告以来,他们收到了补丁。在这11个bug中,有10个还收到了CVE,这是一个被分配给重大安全漏洞的唯一代码。