张润业
近年来,随着计算机技术的发展,恶意攻击的形式已不仅仅停留在恶意程序上,恶意硬件逐渐登上攻防舞台。恶意硬件的出现使人们改变了对计算机网络攻击行为的认识,打开了信息安全领域新的篇章。恶意硬件是一系列具有攻击计算机与网络设备能力的硬件。通常通过外部连接计算机,随后自动运行攻击脚本,并上传恶意程序;或使物理隔离的计算机能够进行无线通讯,从而进行进一步的攻击行为。
USB(UniversalSerialBus,通用串行总线)接口是当今计算机与各种设备中使用最广泛、最通用的通讯接口。利用USB这种广泛使用的通用接口研制的恶意硬件更是受到了黑客们的青眯,成为恶意硬件中比较流行的几种技术之一。利用这种被称为恶意USB设备的新型恶意设备可以有效地向大多数计算机与移动设备进行攻击。与曾经的“autorun.inf”病毒通过感染USB存储设备进行传播不同,恶意USB硬件设备是将恶意程序直接通过固件或者硬件电路的形式植入到USB设备中,当设备与目标连接后,在特定条件下触发激活恶意代码,执行恶意程序。恶意USB设备相比恶意软件具有更大的威胁,由于恶意USB设备是将恶意程序隐藏在芯片内部,只要不激活就很难被发现,因此它可以在目标设备中长期潜伏,常规检测方式难以发现并进行处理,即使被发现也难以通过软件清除,给计算机安全带来了新的挑战。
2009年,研究人员Chen等人在Defcon安全会议上,展示了利用苹果键盘的固件攻击MACOSX的方法。2014年曝光的“棱镜门”事件披露了美国国家安全局研发的一种间谍工具—“Cottonmouth(水蝮蛇)”。这是一种使用USB接口的微型间谍设备,连接到目标计算机后在黑客的控制下植入恶意程序,通过无线芯片向外发送数据。这样即使计算机与网络物理隔离(即“气隙系统”),也可以通過这种恶意硬件获得数据。更著名的一例是KarstenNohl等于2014年8月在美国黑帽子大会上所展示的“BadUSB”攻击,利用USB支持多种接口的特点,通过固件升级、逆向工程等手段在固件中增加新接口并植入恶意代码,在提供正常功能的同时,成功获取操作系统的控制权限、关闭杀毒软件、下载恶意软件等,隐蔽性极高。另外,也有人利用搭载ATmega32u4微处理器的Teensy2.0开发板,通过模拟键盘的操作在目标计算机上执行恶意代码。
一、攻击原理
USB只是一个总线型数据通路,在这条总线上传输的数据通过定义不同的接口指定了数据的传输类型,接口之中又定义了端点,用于交换数据。操作系统根据不同的接口,将数据交给不同的应用程序。数据根据指定的端点进行交换、传输。其中0端点是保留的控制端点,所有接口不可以使用。每次通信过程由主机发起,通过握手和设备建立通信。接口、端点、USB设备的识别码等信息通过描述符形式告诉主机,这个过程称为“枚举”。成功枚举后USB设备就可以和主机正常交换数据了。HID接口是USB设备中运用最广泛的一种,很多人机交互设备都使用这种接口,如日常使用的键盘、鼠标等。
USB设备便捷的背后,也隐藏着安全隐患。首先是键盘和鼠标在操作系统的设置有问题。在计算机中,操作系统中HID设备最初设计的目的是人机交互的接口,键盘、鼠标就是人类的代表,它的每个操作、每组数据都是在用户的允许和操作下发出的,收到数据后,操作系统直接调用驱动程序响应操作。这个过程中缺少校验环节,无条件信任本身就违反了安全设计准则。不作校验就使用的这些数据,给操作系统带来了很大的安全隐患,相关的安全策略更是直接放行这部分的操作,缺少相关的限制。恶意USB设备通过获取HID接口,模拟计算机管理员的操作,绕过安全策略,获取操作系统权限。由于这种HID设备直接代表用户,所以有很高的操作权限。
虽然Windows7系统引入了权限控制的机制,但是来自键盘、鼠标的操作依然代表着用户的最高权限。因为是高权限,所以USB协议并未对这部分设备作有效的管控,任何一个USB设备都可以通过枚举成为HID设备,如果一个USB设备能以HID键盘设备的描述出现在电脑中,就意味着它将获得很大的权限自由。比如模拟用户的操作、运行应用程序,这样一个普通的USB端口就可以完成很多用户操作。目前已知的几种恶意USB设备都是通过这种HID接口提升权限,运行恶意程序的。
二、防护策略
1.传统BadUSB设备防护
第一种类型的攻击为BadUSB。2015年2月,俄罗斯黑客DarkPurple设计了一种恶意USB设备,将其插入计算机时可以破坏掉计算机敏感元件。其原理类似于计算机生产时进行ESD测试所使用的仪器,但电流是常规ESD测试仪的数百倍之高。该设备主要电路由一个直流升压器、数个电容和一个场效应管构成,当被插入目标设备时,升压器将电容充电至-110V,然后由场效应管作为开关导通电容与USB的数据线路。负高电压会迅速烧毁目标设备的相关电路,导致设备无法工作,以达到攻击目的。该设备于当年10月发布第二个版本。新版本将电压升高至-220V,能够破坏更多设备。
BadUSB这种通过USB固件植入恶意程序的攻击方法很难防范。恶意代码在底层硬件中,操作系统不能直接删除,也不能简单地使用白名单方式禁用部分USB设备,因为USB设备没有唯一的识别序列号,它可以通过修改相应的ID欺骗主机。分析整个攻击过程,恶意USB设备利用HID键盘提升权限是整个过程的关键,而这个过程主要还是利用了系统对设备的盲目信任。因此,当操作系统在给HID设授权时,如果加以验证,区别人机操作,就可以阻止这种问题的发生。
2.无线BadUSB设备防护
第二种类型的攻击为无线BadUSB攻击。一个是HID接口使用键盘协议,在日常情况下伪装成键盘,连接在电脑上,执行普通的键盘功能,当收到无线控制指令时在不需要任何软件漏洞的情况下提升权限执行用户操作;另一个是使用HID数据接收协议用来收发数据。在无人操作的情况下运行HID数据传输软件,通过USB接口向单片机传输数据。设备嵌入在键盘中通过无线控制,正常工作时在设备管理器中只有“人体学输入设备”显示,具有更好的隐蔽性,可以长期在目标设备上连接而不易被发现,同时也可以监控键盘的数据,记录用户的按键内容。通过这种方式可以实现对网络隔离环境下的涉密计算机的攻击,不依赖传统的网络途径,有更灵活的选择,而且过程非常隐蔽。这个问题可以使用已经成熟的人机身份校验技术,如验证码、验证语音等方式,在设备插入时进行验证。在使用过程中也需要不断地分析对比操作内容,识别异常行为,对可疑的机器行为通过验证码反复确认,确保安全,以保证从源头阻断攻击过程。
3.USB Killer设备防护
第三种类型的攻击为USBKiller攻击。USBKiller设备的攻击原理实为静电放电(ESD),只是其电流大于常规静电。因此,若在USB接口与设备主板间加入可靠的ESD防护组件,即可保护关键元件不受攻击。目前已知的技术中,AZ1045、AZ1065系列ESD保护组件能够有效地保护目标设备。其中AZ1045-04SU系列针对USB2.0使用,AZ1065-06F系列可针对USB3.0或2.0使用。
三、总结
虽然恶意USB技术威胁大,攻击方式隐蔽,但是目前攻击手段有限。基于此,应加强USB设备管控技术,提高对于此类问题的安全意识。对于接入涉密计算机的USB设备,要确保其安全性,最好能从电路层面进行检查,对于不能保证安全性的USB外设要谨慎使用。要定期检查涉密计算机设备管理器,对于可疑设备要积极排查以防留有安全隐患。