ZDNet和WIRED在大会开始前就对其作了详尽的报道,由于该漏洞受众为目前PC广泛使用的USB协议,因此随后在大洋彼岸的中国大陆IT界迅速掀起波澜,众多媒体竞相报道和转载,大谈其危害性和隐蔽性,备受争议的大陆安全厂商奇虎360虽然通过其微博平台第一时间进行了报道,但由于缺乏有效对策甚至直接遭到其董事长周鸿祎的直接批评:

这个“BadUSB”漏洞究竟是何方神圣,能够聚焦在镁光灯下吸引众多眼球?几乎成为每一台PC机标配的USB接口为何会暴露出如此巨大的漏洞呢?该漏洞又会对我们的使用造成哪些威胁?下面我们以常用的USB存储盘(以下简称”U盘“),简单介绍一下该漏洞的攻击原理和方法:
一、攻击原理
(一)隐蔽性。

我们打开U盘内部结构,可以看到它由芯片控制器和闪存两大部分组成,前者是U盘的大脑,负责控制与PC主机的识别和通讯,后者用以数据的存储。(详见上图)值得注意的是后者将储存区域划分一部分出来存放U盘的固件,它的作用就好比PC机主板上的BIOS(基本输入输出系统),控制U盘的引导和软硬件交互,可以比作是U盘的操作系统。
出于安全考虑,普通用户是无法通过常规手段读写存放U盘固件的存储区域。

(美剧“奔腾时代”视频截图)
而Karsten Nohl 和 Jakob Lell 则通过某种方式(将USB闪存中的固件进行了可逆并重新编程,相当于改写了U盘的操作系统,如读者对该过程感觉抽象或艰涩难懂,可以看看最近美国 AMC 电视台热播的IT剧《奔腾时代》(Halt and Catch Fire)第一集中两位主角对IBM主机的 BIOS 系统进行逆向破解的情节。(也有网友批评该过程并不严谨可行)
由于目前PC电脑上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都是无法应对固件改写造成的安全隐患。
资深的网友一定会记得当年由台湾大学生陈盈豪开发的 CIH 病毒,就是专门针对PC主机的BIOS系统进行攻击而对整个IT行业造成了巨大的经济损失。
(二)传播性。
(三)危害性。
为何要大费周章的来改写U盘固件呢,接下来就要谈一下USB协议中存在的安全漏洞。由于目前USB设备的广泛使用,横跨存储设备、网卡,音频和视频设备,摄像头等周边设备,因此要求系统提供最大的兼容性甚至免驱支持,因此导致在当初设计USB标准时没有强制要求每一个USB设备必须具备一个唯一可确认的身份号码,一个USB设备允许兼具和内置多个输入输出硬件设备的特征描述。

(USB漏洞原理)
以USB摄像头为例,当它插入电脑后,它的控制芯片向主机发出申请,告诉操作系统自己是一个视频设备,然后操作系统就会进行识别和设置,并从本地驱动库里寻找到该设备的驱动并加载完成,WinXP系统以上的免驱支持就是这个过程。
如果该USB摄像头还有通话功能,它还必须向系统再次提出申请,要求得到音频设备的驱动支持,也就是说协议中允许 USB 设备可以以多个身份出现并可以在使用过程中随便变换。
由于需要切换不同角色的需求,USB设备无法像网络设备一样占有一个唯一可识别的 MAC 地址供系统甄别和验证,所以操作系统只知道有USB设备接入,但却无法知道有几个设备接入了系统。
所以Karsten Nohl 和 Jakob Lell就是利用了这个漏洞发起的攻击,他们在8月14日举行的 BlackHat安全大会 上,就成功的将一个改写过固件的U盘伪装成一个USB键盘,并通过虚拟键盘输入预先编写的指令和代码对电脑实施下一步的攻击和控制,安装木马后门获取客户信息。

(伪装成网卡的攻击原理)
不仅仅是键盘,它还可以虚拟成一个USB网卡,通过对DNS服务器的寻址记录进行篡改对宿主PC的网络访问进行恶意跳转,即所谓的DNS劫持攻击,例如,某用户意图访问工商银行网站,但虚拟成USB网卡的U盘却将其解析到另一个钓鱼网站,导致用户登陆网银时输入的用户名和账户密码泄露。
同时,它还可以隐藏在U盘启动盘中,可以在系统启动过程中载入隐藏在U盘中的含有恶意代码的系统,并且不仅仅局限于使用U盘作为载体,还可以通过Android手机通过USB连接电脑上事实上述类似效果的攻击。
以上内容的具体细节可以访问Karsten Nohl 和 Jakob Lell 在BlackHat安全大会上的演讲,Youtube视频地址:BadUSB – On Accessories that Turn Evil 。
正因为由于其具备前所未有的隐蔽性、传播性和危害性,因此受到IT安全领域的广泛关注和报道,USB漏洞问题引起了各界的广泛关注。
二、具体分析
但是普通网友随便通过搜索引擎就可以发现在四五年前就有诸如“苹果IOS暴USB漏洞,可通过充电器植入病毒”,“小心!普通USB竟可以成为黑客攻击利器”之类的诸多关于USB漏洞的文章。
其实,如果是对嵌入设备稍有了解或时常关注计算机安全的朋友就会发现,这次引起广泛关注的USB漏洞其实在几年前就暴露出来了。
2010年左右,这种通过U盘伪装成为USB键盘输入恶意代码的攻击方式就已经相当成熟,并将这种攻击方式称为“Teensy HID攻击”,随便就可以通过搜索引擎找到实现这种攻击方式的详细过程和步骤。

甚至在热播美剧《纸牌屋》(House of cards)第二季中,黑客 Gavin Orsay 交给先驱报主编 Lucas Goodwin 一个含有复杂代码的U盘,利用采访之便将其插在美国电信服务器上,最后成功的获得服务器控制权,得以监控三千两百万名美国电信用户的通话记录和坐标定位,虽然剧情纯属虚构,但利用USB漏洞进行攻击的概念已并不陌生。

(USB Rubber Ducky 的配件一览)
一个国外黑客网站已经将其制作成了一个名为“USB Rubber Ducky”(大黄鸭U盘)的商业产品进行销售,全世界任何一个人只要花费不到30美元就可以获得上述工具,并通过网站上的诸多教程案例轻易的获得攻击代码,使得一名并不具备高深计算机知识的普通网民就可以利用USB漏洞达到目的。因此Lwn.net的站长Jake Edge在文章《BadUSB: Clever but not novel》一文中这样说道:
The only thing “new” about the BadUSB hack, is it shows how to turn a “normal” device into a USB Rubber Ducky, which will save you a few dollars (and shows just how insecure a number of USB devices are.) Not that the attack vector is somehow new and novel or unknown at all.
意思是:所谓BadUSB漏洞唯一的新意在于:它显示了如何将一个普通的USB设备转变为USB Rubber Ducky,这能让你省下购买它的几十美元,这个漏洞并没有什么像宣传的那样可怕。
综上,USB漏洞作为一个很早就发现的漏洞一直就存在,只不过原有的HID攻击或USB Rubber Ducky 都必须向 USB 设备中植入一个攻击芯片,需要硬件改造,而BadUSB对其进行改良,直接对普通USB设备固件进行逆向重写来达到相同的上述目的。
同时还可以虚拟成网卡进行 DNS劫持攻击,以及隐藏在启动盘中发起攻击等等,并具备传染其它设备的可行性,制造成本和门槛更加低廉和降低,攻击手段更加丰富。
正因如此,BadUSB才能将一个老生常谈的漏洞再次提交到BlackHat大会进行展示。
三、预防手段
再者,BadUSB的危害性其实也没有媒体宣传的如此严重。
- 首先,各大USB设备厂家在设计产品时为了控制成本,固件系统的大小以及芯片的主频都限制的极为有效,这将大大限制漏洞攻击的手段。
- 其次,各大厂商编写的固件系统都各不一样,甚至防止恶意改写进行了加密措施,因此是不可能存在通过U盘感染主机后将其他接驳的各品牌摄像头,USB网卡或鼠标都感染的可能性,这也是为什么该漏洞存在四五年之久的情况下,各大USB厂商并没有采取进一步措施对固件读写进行严格限制的原因之一。
- 最后,当U盘等设备通过漏洞侵入系统并运行所携带的恶意代码时,仍然需要向安全级别较高的Mac和Linxu系统申请权限,导致其破坏性大为降低。
事实上,在BlackHat上众多观众都很好奇并不断追问 Karsten Nohl 和 Jakob Lell逆向编写USB固件的方法,但两人都三缄其口没有透露。
著名台湾安全厂商趋势科技资深技术顾问简胜财表示:病毒感染与USB装置的ROM(固件)大小与使用权限有关,当ROM太小或者设置了只读权限,都会导致病毒感染失败,因此,通常由硬件传播的病毒流动性都不高。
所以,各位读者无需对这个已存在许久的漏洞过分的谨慎和悲观,不要随意使用来路不明的USB设备接驳在重要的主机上,养成一个良好的使用电脑的习惯比什么都重要。(全文完)
备注