在正式开谈USB安全之前,还是照例来分享一个很有意思的案例:2014年年末,来自Reddit的报道,某大公司高管电脑感染了恶意程序。公司的安全研究人员就调查恶意程序来源,但检查了所有传统可能的感染途经都一无所获。于是他们开始考虑其他突破口,从这位高管的饮食起居入手,翻来覆去地查,最后发现问题居然出在高管的电子烟身上。
“这是一款中国造的电子烟,充电装置部分包含了硬件编码的恶意程序。”而这款电子烟是通过USB口充电的,这名高管为了充电,顺手会将其插入到公司的电脑上,于是电脑就感染了恶意程序。
在这一例中,如果恶意程序做得更加隐秘,那么整个攻击过程甚至可以达到神不知鬼不觉。这其中的传播核心,就是我们要谈的“USB安全”。
USB安全?这是什么意思?
我们擅自提“USB安全”这个词汇,其实是不准确的。因为USB本质上只是一种通用串行总线——总线有很多啊,SATA总线、PCIe总线等等,这有什么样的安全话题可谈呢?可能USB充其量可作为恶意程序传播的途经。我们说“USB安全”,和说“网线安全”是不是感觉差不多荒谬?
不过大概是因为USB作为替代古代各种接口的明星级统一标准,而且USB又不像Thunderbolt之类的接口一样需要高昂的授权费用,当代世界的海量设备采用USB接口也是种必然。有趣的是,我们经常将采用USB接口的设备称作USB设备(却没有人将PC内置的硬盘称作SATA设备或者PCIe设备),这也是我们这里谈USB安全的基础。
由于USB当代的使用如此广泛,所以USB设备也就成为了恶意程序传播的重要载体。但如果只说USB设备作为恶意程序的传播途径,那么任何接口实际上也都存在这种传播的可行性。比如说U盘能够传播病毒,Thunderbolt移动硬盘也行,连光盘都可以。
总的说来,我们要谈所谓的USB安全,并不是USB在数据传输过程中存在安全问题,或者某类USB接口规格(如Type-C)某个针脚存在设计缺陷,而是USB接口或总线作为恶意程序的一个重要途经,存在安全问题,以及USB协议、驱动存在的安全问题。
因此针对USB安全,有3点可谈。
其一,USB是个具有相当普遍性的标准,鼠标、键盘、电子烟、外置声卡都用USB接口,且即插即用。所以在物理接口中,它对恶意程序的传播大概是除了网络适配器接口之外,效率最高的。
其二,USB协议可被攻击者利用,这也将是本文要谈到的重点。
其三,最高级的USB 0day漏洞攻击。
autorun.inf时代!U盘病毒?
在网络还不像现在这么盛行的年代,可移动存储设备是传播病毒的重要方式。就是将恶意程序放在U盘,或者移动硬盘,甚至软盘中——在不同的PC交换数据的过程中,就可以达到传播病毒的作用。再高明的恶意程序也需要人类去打开才能运行,巧在像Windows这类 *** 作系统,为了加强使用体验,系统中有个针对移动存储介质的AutoPlay/AutoRun自动播放功能。
原本自动播放的功能是,针对CD/DVD多媒体光盘可实现插入即播放,而针对Windows安装介质,插入就能立即d出安装程序。绝大部分同学应该都知道移动存储介质的根目录下的autorun.inf文件就负责自动播放功能,打开形如以下样式:
相较光盘,U盘的可读写方便性明显更胜一筹,如果这里的setup.exe是个病毒,那么设备插入U盘,系统就会自动运行该病毒。所以病毒通过autorun.inf文件实现U盘插入即启动恶意程序的功能,实在是太方便了。同事间交换数据,大家的电脑都插一遍带毒U盘,自然就都感染上了。已经被感染的设备,再感染插入设备的新U盘,以此达到扩散的目的。
这是U盘传播恶意程序的常规手法,也因此有些人将autorun.inf称作“U盘病毒”,虽然这东西其实是很无辜的。实际上,要杜绝这种方式的病毒传播也并不困难,一方面是在系统中禁用移动存储介质的自动播放或自动启动功能,另一方面也可以禁止程序在U盘中创建autorun.inf文件,达到U盘不会传播病毒的目的。
可以说,autorun.inf是过去在民间最广为流传的U盘病毒传播方式。很多U盘病毒查杀工具都主要针对autorun.inf进行围剿。尤其从Windows XP SP2开始,系统针对“USB大容量存储设备”和ZIP驱动器,自动播放功能是默认开启的。微软眼见形势不妙,从Windows Vista和Windows Server 2008开始,针对插入U盘的的系统默认行为,已改为询问用户是否执行自动运行指令。现如今autorun.inf的时代几乎已经过去。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)