你以为USB真的安全?大错特错!
用到的存储数据的闪存部分,还有主控芯片,或者叫控制芯片。主控芯片一般会指定某些部分的单元用于存储固件驱动(似也有主控芯片本身就包含了固件闪存)。这里的固件就类似于操作系统,控制软硬件交互。Nohl和Lell花了好几个月的时间进行逆向工程,他们发现许多U盘都可以对固件部分进行重新编程(尤其是PHISON群联的主控芯片)。用户根本就看不到固件部分,要隐藏攻击代码自然就非常容易了。
这就是BadUSB得以成型的核心所在。另一方面当代操作系统为了给USB设备提供最大的兼容性,USB标准是允许一个USB设备具有多种输入输出设备的特征的。这样一来,通过重写U盘固件,就能让它伪装成USB键盘、网卡甚至显示器。通过这个假的键盘,输入U盘固件中的恶意指令和代码,还可以配合闪存中的恶意程序进行攻击。
说白了,BadUSB是令普通U盘都变身为橡皮鸭,甚至攻击性更强。这其中的加强体现在BadUSB的伪装和传播性方面。伪装!很容易理解,看起来只是个普通U盘,而且即便格式化U盘也无法清除恶意代码,因为恶意代码在固件中;传播!当年Nohl和Lell在研究报告中有特别提到,BadUSB理论上最大的威胁在于,通过一个BadUSB设备给计算机感染恶意程序之后,计算机也可以将BadUSB传播到其他插入计算机的U盘:某个U盘在插入这台计算机之后,计算机上的恶意程序就能够对U盘固件进行重新编写,U盘主人根本就不会察觉到。
这么一来,全世界的U盘都能通过这种方式被BadUSB感染,全世界没有任何一个U盘是可被信任的,因为根本就没有反病毒软件能够查到。由此甚至可以引发一个问题:USB设备是否已经到了根本就没有安全性可言的地步?
其实也不尽然,针对U盘固件,引入不可伪造加密签名机制就是种方案,杜绝恶意程序的重新编写。这就主要取决于闪存主控芯片制造商了。因为有人指责Nohl说,他先前在Black Hat上的演讲其实只针对台湾群联的闪存主控芯片——所以2014年年底,Nohl还抽样了8大主要芯片制造商的主控芯片:群联、Alcor、瑞萨、祥硕(华硕的子公司)、创惟、FTDI、微芯、Cypress。
结果发现情况异常复杂。的确有部分USB主控芯片对BadUSB免疫——即无法对固件做重新编程,免疫的芯片占到抽样总数的一半,但每个品牌的表现都是很不稳定的。比如说,采用群联主控芯片的U盘都存在被BadUSB感染的风险,而祥硕则完全对BadUSB免疫,创惟的USB 2.0芯片没问题,但更新的USB 3.0芯片就有问题。其他USB Hub、键盘、摄像头、鼠标等所用的控制芯片情况更是五花八门。而且实际上,即便是一个USB设备制造商的相同型号的产品,他们也会在不同批次中采用不一样的主控芯片,比如金士顿所用的USB控制芯片就有五六种之多。
难不成以后我们要用U盘之前,都得先把U盘拆开看看主控芯片的型号不成?
只要是USB接口就都不安全!
不知道很多小伙伴有没有留意过,斯诺登当年揭露NSA的文档中提到了一款窃听设备名为Cottonmouth(如下图所示)。这就是个USB设备,据说能够偷偷地往目标设备中安装恶意程序。虽然文档中并未详述其具体机制,但斯诺登说:"如果Nohl和Lell发现的这种东西早就为NSA所用了,我也不会感到奇怪。"或许很久之前,NSA就已经在这么干了,那么我们手里的U盘…。。。
但这还不是全部。既然USB标准是允许一个USB设备具有多种输入输出设备特征的,那么USB设备的伪装实际上也就不仅限于仅针对U盘的BadUSB了,各种USB设备都可能出现伪装的情况。从你的USB鼠标、键盘,到摄像头、电子烟、充电宝。
除了文章开头提到的电子烟,2014年年末央视曝光"改装充电宝盗取隐私":看起来只是个充电宝,但实际上却有存储数据的能力,特别针对当时加密机制还没有现在这么完善的iPhone进行数据窃取。这么想来,我们周围但凡用USB接口的东西似乎都有带毒带马的可能性,这世界真是太残酷了——说不定你已经被NSA锁定,你的鼠标就带APT木马…。。。
今年的Black Hat USA 2016大会上,分享丢U盘是否有效的Elie Bursztein不仅做了丢U盘的实验,而且还教育人们如何才能做个完整版的、伪装起来的U盘,那详细程度,从选购芯片到最终U盘外部材料成型一条龙,所用的都是成本很低的现成材料(点击这里)。
FreeBuf先前也发表过一篇题为《利用Arduino快速制作Tennsy BadUSB》的文章,用ArduinoLeonardo单片机(似成本稍高),配合Arduino IDE简单的代码编写,就做成了一个可伪装成普通U盘的USB攻击设备。以后要黑谁,送他个U盘或充电宝,比
USB 相关文章:
- 从1.8V到USB的多轨电压转换和管理(08-17)
- 具USB OTG和过压保护的紧凑型电源管理器(08-17)
- USB供电的单节镍氢电池开关模式充电器电路设计(02-12)
- 具有USB OTG和过压保护的紧凑型电源管理器的实现(10-17)
- 低导通损耗的USB电源开关的设计(12-01)
- 一种满足USB规范的电源开关设计方案(02-13)