基于U口设备的攻击向量总结

发布于 2017-07-17 18:52:36

本文,我将主要通过分类方式来探讨针对U S B的攻击向量问题。最上层涉及到更多关于人类应用、业务的基本交互场景。传输层包括设备的固件、协议栈等。物理层则主要描述U S B总线上的通信问题。

U S B介质也为内部攻击者泄露机密信息提供了便利途径。2010年,二等兵Chelsea Manning违反《反间谍法》被捕,原因是泄露了美国军方的私人视频。曼宁使用了便携式存储设备,因为出口管制很松,为了突破军队网络的空挡,向外界泄露信息。Edward Snowden(斯诺登)使用类似的技术从位于夏威夷的军事基地窃取了美国国家安全局的绝密数据。当然国内的黄*事件也是很典型的案例(下图)。U S B设备的普遍性和可移植性既是挑战也是机遇。一方面,它们的易用性极大地帮助了消费者和公司完成日常任务。另一方面,U S B设备本身实际上是超越技术范畴的行政安全道德领域,可能会对组织造成巨大的影响。


二、应用层

应用层攻击涉及主机用户空间进程及其与设备功能的交互。这一层的攻击通常分为两类:代码注入攻击和数据过滤攻击。

1. 代码注入

U S B存储已被多个恶意软件利用。据本人知道的案例,Duqu病毒使用应用层rootkit来隐藏U S B存储设备上的恶意文件。Conficker、Flame病毒则使用了0day攻击和恶意autorun。当U盘连接到主机时,inf文件自动执行恶意软件。尽管自动运行功能在成为Windows平台的主要威胁之一后受到了限制,但由于操作系统的漏洞(Bad-U S B等),类似的功能仍然可用。

2. 数据过滤

由于U S B设备通常不会对主机上正在通信的应用程序进行身份验证,因此应用程序可能会对U S B设备写入或者读取数据。例如,网络摄像头本地的数据的存储,U S B设备本地日志的保存、U S B应用层存在的各种安全漏洞都可能会成为关键的因素。

三、传输层

1. 协议伪造

U S B设备利用主机对任何连接设备的完全信任,它们往往为终端操作系统提供附加的驱动层接口。像U S B橡皮鸭或U S Bdriveby(http://samy.pl/us bdriveby/)这样的设备连接到主机系统时,它驱动层协议栈所有的回调接口(包括用户不知道的)都会被枚举。这种功能可以通过将恶意代码嵌入到其他正常的设备(例如,蓝牙耳机中的网络适配器)来隐藏。

TURNIPSCHOOL项目(http://www.nsaplayset.org/turnipschool)是一个改进的U S B电缆,该设备具有4层PCB板、内置芯片的接口扩展 U S B HUB、来自德州仪器的内置射频收发器单片机和一个3D打印的塑料模具。设备连接到主机后,主机上运行的软件可以通过RF接口提取数据或接收命令。使得U S B传输层变成可二次编程,可以用于U S B设备的安全过滤产品的开发。

识别和减轻这些恶意的接口在传统上是困难的。因为对手可以简单地重新编程任何U S B基本数据(VID、PID)来规避操作系统中的设备白名单或黑名单规则。此外,由于恶意人员可以合理地使用了音频耳机等组合设备,攻击面广、隐藏率高,降低了攻击的成本。

2. 协议漏洞

主机的U S B协议栈只要符合U S B标准就可以了,第三方完全可以自由扩展,所以肯定会有大量的传输协议层漏洞。使用FaceDancer进行Fuzzing技术(笔者未来会写个Facedancer使用教程),我们会发现了许多内核层的任意代码执行漏洞,在2017年,谷歌研究员也在不同的Linux内核U S B驱动中发现了超过40个漏洞。在某些情况下,这些漏洞可能在主机的设备枚举期间被利用。也可能作为一个中间人设备进行数据的嗅探。


四、物理层

物理层攻击包括对U S B总线通信中的机密性和完整性的攻击。

1. 物理窃听

无论数据是否敏感,传输的过程中总是需要暴露在管道一段时间。排除透明加密的情况,大部分流量一定会满足U S B底层传输标准,我们使用硬件键盘记录器,来进行一次大流量审计,提取U S B存储、甚至U S B键盘的重要信息。键盘记录器都是小型设备,放置在主机端口和外设间抓包。在u s b3.0之前,恶意外设可以窃听所有连接设备的下行流量。

(A transparent defense againstUS B eavesdropping attacks)M.Neugschwandtner

我们甚至可以通过U S B电流嗅探,示波器信道采集等方式进行攻击,从信道数据可以获得当前主机的重要特征信息,恶意智能手机可以使用该信息来组成攻击目标的提权shellcode。(Android安全研究综述)蒋绍林

U S B嗅探的另一种方法是使用U S B协议分析仪提取总线状态的时序特征,并使用机器学习分类来推断主机的操作系统,获取具体信息。Betas提出了一种基于时间间隔的指纹打印方案,该方案可以从商用智能电话启动。他们表明,特定的操作系统版本和型号可以以高达90%的准确度通过设备之间发送数据包的间隔来检测。尽管基于时序的指纹显着提高了规避漏洞的门槛,但是经验丰富的木马设计者可以修改其时序特征来逃避检测。

2. 侧信道攻击(电磁、电源攻击)

近年来,研究人员研究攻击者如何使用植入射频发射器的从普通的终端中窃取数据。这种方法需要一个硬改的U S B插头或设备,还要有一个专用嵌入式的射频发射机。U S Bee是一款作为射频发射器发射电磁辐射的设备,对敏感数据进行编码/抓取等操作。当然如果无法接触到目标机器的时候,黑客可以用一根普通的电线触摸目标机器暴露的金属部分,得到的信号可以用来提取重要的密钥信息。Oswald等人展示了如何基于功耗和电磁辐射从Yubikey 2中提取AES 128位密钥。(Side-channel attacks on the yubikey2one-time password generator) Oswald





3 条评论