BadUSB 恶意软件的研究分析
近期出现的一种名为 BadUSB的新型恶意软件正让在电脑上插入USB设备变成最危险的事之一。但是在国际上始终没有找到到底是何种软件暗藏在BadUSB后面在进行攻击,它又是如何进行工作的?
每个闪存USB的组成至少包括一个控制器芯片和一个记忆模块。控制器主要负责通过USB接口将记忆模块与电脑对接。
从原则上来说,闪存USB可被视为一个微型计算机,插入电脑时启动从闪存记忆中非可视部分的操作系统(内含固件),之后USB便可工作。
处于经济因素考虑,USB中固件的设计可以用来升级。有两种办法可以升级内置固件:较为稳妥的可以通过安全启动,另一种简单方式可以依赖于非法指令的混淆。第二种方法更适用于所有普通的USB,但是却容易遭受BadUSB的共计。
BadUSB攻击的第一步是操控内置固件。对此,其需要对内置固件进行逆向工程,并开发出信的可操作的自定义控制器。黑客还需要规避混淆的固件更新过程,加载到 U 盘的新固件。
这一点对何可通过特定控制器而非笼统的应用在任何USB设备上市非常重要。任何恶意的醒悟在面对不同嵌入式控制前面前都是徒劳的。据有关报道,大多数被共计的USB闪存的芯片控制器都是产自Phsion。而袭击USB的方式是通过撒网的方式,广泛进行逆向工程和袭击Phison的内置固件控制器。这立即引起了厂商忽视黑客而一味降低成本扩大利润空间造成损失的问题。
BadUSB攻击的第二步是把篡改过内置固件的USB与电脑连接,模拟本身为HID设备,比如键盘。电脑一旦检测到新设备就会自动将其初始化——此操作并不会引起普通用户的怀疑,任由其继续肆虐。在发送一个命令字符串(<WIN>+r <ENTER> cmd <ENTER>)之后,这个“键盘”就会从互联网中下载恶意软件并在后台中不知不觉地运行。虽然任何已安装的病毒扫描程序会对恶意软件的下载行为进行扫描,这也就演变成了对检测和阻止大多数攻击模式的时间问题。
BadUSB可轻而易举的获得仅对计算机具有管理权限的登录用户的权限。从原则上来说,这种攻击同样会在OS X和Linux系统上执行。
这种攻击的早在2005年的黑帽技术,名为“Plug and Root - the USB Key to the Kingdom”名义下的一种手段。直到今天,始终没有任何证据来证明这类攻击其危害。在过去的九年当中,这一问题已经覆盖到全世界的范围内。但是,在不久的将来,可通过不断发展的技术手段来遏制,其在操作系统和进程中的肆虐,比如安全引导措施。
威步信息系统硬件设备的影响力
新闻报道中体积的BadUSB袭击对WibuKey 或 CodeMeter没有实际意义,即使其源代码都是公开的。
WibuKey
WibuKey使用智能卡控制器和签名固件。只有被威步系统签名认证过的固件才可被允许下载到控制器中,而BadUSB的攻击是无法起效的。
CmStick, CmStick/C, CmStick/I, CmStick/IV
CmStick使用的智能卡控制器不带闪存模块和签名固件。只有被威步系统签名认证过的固件才可被允许下载到控制器中,而BadUSB的攻击是无法起效的。
CmCard/SD, CmCard/CF, CmCard/µSD, CmCard/CFast
这些设备因都不采用USB接口形式,因此都无法被认定为HID,BadUSB的攻击是无法起效的。
CmStick/M (pre-2014)
CmStick/M虽然带有闪存模块,但仍不会收到影响。其内部使用的自定义控制器至今从未受到过类似攻击的干扰,威步有信心在未来也无需对此类攻击做任何无效付出。
CmStick/M (2014)
从2014年起,威步将CmStick/M的安全级别提升至史无前例的高度。所有使用的芯片固件都是经过加密和签名的。Root键存储在只读存储器(ROM)中。Root键在生产过程中可以被写入一次,之后不会再任何情况下改变。因此Root键会成为一个完整的安全引导过程。此外,加密芯片之间的通信,即使在未来,也是无法再硬件上实现的。因此,CmStick/M对于固件的共计,无论是BadUSB还是类似的,乃至未来都不会对威步硬件设备产生任何影响。
在CodeMeter的高强度保护的面前,BadUSB的攻击在其面前只能班门弄斧。CodeMeter具有单独芯片,独立的内存和高强度加密安全的固件。