在我们正常的思维逻辑中,我们插入到计算机的USB设备是完全可以信任的。但现实情况却是:被黑客重新编程后的USB设备将变成可攻击的武器。安全研究人员Karsten Nohl和Jakob Lell在黑帽大会上展示了他们所谓的“BadUSB”。他们在不到两个月的时间内,他们逆向工程和修补了USB固件,而一旦进行重新编程,USB可以转化为恶意工具来破坏网络。
这种攻击可能带来很严重的影响。例如,设备可以模拟键盘,并代表登录用户发送命令来窃取文件或安装恶意软件。它还可以在操作系统启动之前启动小病毒,或者欺骗网卡和更改计算机的DNS设置来重定向流量。
Nohl和Lell展示了多种攻击,其中一个攻击是一部谷歌Android手机插入到计算机,可以被用来拦截计算机的web流量。
并没有太多防御方法来阻止这种攻击,恶意软件扫描程序不能访问这些设备上运行的固件,而我们还没有可以阻止某些设备类别的USB防火墙。此外,根据行为检测来检测BadUSB很困难,因为当行为变化时,看起来像是用户插入了新设备。
在攻击后进行清理很困难,因为重新安装操作系统不能解决这个问题。连接到这个操作系统的USB可能已经被感染,网络摄像头或者其他USB组件同样如此。BadUSB设备还可以通过模拟键盘和阻止USB中的隐藏文件来取代计算机的BIOS。
寻找解决方法很困难,对USB设备进行白名单化并不是最好的办法,因为并不是所有USB设备都有唯一的序列号,并且操作系统还没有针对USB的有效的白名单机制。恶意软件扫描也没什么用,因为恶意固件可以欺骗合法的固件,并且固件只能在这个固件的帮助下才能被读回。
“使用USB闪存驱动器的攻击并不是什么新鲜事,Stuxnet就是USB传送的病毒—它被用来攻击伊朗核电站,BadUSB的不同之处在于复杂程度,”Imation Mobile Security公司工程和产品副总裁表示,“它修改设备硬件中的控制器固件,而不是存储在设备上的数据。受感染的设备然后可以传递这种感染,无论USB上是否存储了数据。”
他补充说,防止BadUSB感染设备要求控制器固件被锁定,并且不能由未经授权的代理而改变。
“为了阻止BadUSB,USB存储设备需要阻止黑客读取或者改变固件,并确保该固件进行数字签名,这样如果它被修改,该安全设备不会与修改的固件操作,”他解释说,“FIPS 140-2 Level 3证书能够验证这些基准机制的有效性。安全的USB驱动器一直是保护企业数据的重要工具。现在这些机制也同样可以用于保护USB设备的完整性。”