频道栏目
首页 > 安全 > 网络安全 > 正文

现代无线鼠标及键盘的安全性分析报告

2017-06-16 09:33:40      个评论      
收藏   我要投稿

现代无线鼠标及键盘的安全性分析报告

一、前言

桌面无线设备通常由无线鼠标、无线键盘以及USB收发器所组成,在过去的几年中,桌面无线设备已经越来越受广大人民群众的喜爱。与有线设备相比,这类无线设备更容易引起不怀好意的人们的兴趣,原因在于攻击者可以通过无线信号,从安全的距离远程攻击这类设备。

攻击者可以通过攻击桌面无线设备,夺取计算机系统的控制权,也能收集诸如密码之类的敏感信息,因此过去人们经常分析这类设备的安全漏洞,也有成功突破这类设备的真实案例。利用无线键盘漏洞的一个非常著名的案例,就是Dreamlab Technologies研发的开源无线键盘嗅探工具:KeyKeriki。KeyKeriki的首个版本于2009年推出,针对的是使用27MHz ISM频段的微软无线键盘。第二个版本于2010年推出,支持使用2.4GHz ISM频段的无线键盘[1]。在2015年,Samy Kamkar发布了一款基于Arduino的无线键盘嗅探器,针对的是存在已知安全漏洞的微软键盘,这个嗅探器拓展了KeyKeriki v2.0项目[2]以及Travis Goodspeed关于Nordic Semiconductor生产的nRF24系列产品的研究成果[3]。在2016年春季,MouseJack代表Bastille Networks Internet Security公布了多个桌面无线设备厂商生产的USB收发器中存在的一系列安全漏洞,这些漏洞导致设备容易受到按键注入攻击影响[4]。

SySS GmbH自2015年起启动了一个项目,开始研究使用AES加密算法的现代桌面无线设备的安全性,当时关于无线鼠标和键盘中的安全问题还没有公开可用的研究数据。到2016年5月为止,在我们的安全公告项目中已经发现并报告了许多厂商生产的现代桌面无线设备中存在的多个安全漏洞,这些厂商包括Microsoft、Cherry、Logitech、Fujitsu以及Perixx。

攻击者可以根据各自的目的,在不同攻击场景中利用已有的安全漏洞实施攻击。从一方面来讲,有些安全漏洞需要攻击者物理接触键盘或USB设备,比如,攻击者需要接触这些设备来提取后续攻击或者修改设备固件所需的加密密钥。从另一方面来讲,有些安全漏洞可以通过无线通信技术来远程利用,比如,设备使用了不完善的AES数据加密通信方案导致其容易受到重放攻击或者按键注入攻击影响。

我们的研究结果表明,不同厂商生产的现代桌面无线设备的安全等级并不相同,有些设备的安全程度比其他设备更高。此外,现实中并不存在没有任何安全问题的桌面无线设备。

我们会在本文中介绍这一方面的研究成果,也会介绍如何利用不同的安全漏洞,来攻击不同厂商生产的桌面无线设备。

二、测试对象及使用的测试技术

在整个研究项目中,我们分析了不同厂商的5个桌面无线设备,包括键盘、鼠标以及USB收发器。这3类设备都包含无线收发单元以进行无线通信。图1展示了我们的测试设备之一:Microsoft Wireless Desktop 2000。

被测试的5个桌面无线设备分别为:

1、Microsoft Wireless Desktop 2000

2、Cherry AES B.UNLIMITED

3、Fujitsu Wireless Keyboard Set LX901

4、Logitech MK520

5、Perixx PERIDUO-710W

其中有4个设备使用了Nordic Semiconductor生产的低功耗2.4GHz nRF24收发器,1个设备使用了Cypress 生产的低功耗2.4GHz收发器以及低电压版的微控制器(CY7C60123-PVXC)。被测试的无线键盘以及USB设备所用的收发器或SoC(system on chip,片上系统)信息如表2所示。由于被测试的设备大多都使用了nRF24收发器,因此我们的研究重点也集中在这一点上。

\

为了分析设备所使用的无线通信,也为了向无线设备组件发送无线信号,我们使用了软件定义的无线电(如HackRF One[5]和USRP B200[6])以及基于nRF24的USB无线电设备(Crazyradio PA[7])。

\

我们最开始使用的是Crazyradio PA以及Bastille发布的nRF研究固件[8],在2016年2月MouseJack发布之后,我们开发了对应的Python工具,因为这个工具集的优先级高于当时我们所使用的工具,感谢Marc Newlin的研究成果。

桌面无线设备的常用功能如图2所示,其中键盘及鼠标都会向插入计算机的USB收发器发送无线信号(带有按键信息或者鼠标动作的数据包)。如图所示,这种无线通信是双向的,因为USB收发器会对它所收到的数据包进行确认及反馈。

\

三、测试方法

对于被测试的桌面无线设备,我们使用以下三个步骤对其进行分析:

1、硬件分析

2、固件分析

3、无线信号分析

在硬件分析方面,我们打开了键盘、鼠标以及USB收发器的外壳,对设备的PCB板(printed circuit board,打印电路板)进行观察,标记出对设备功能起到关键作用的芯片,如无线传输器、接收器或者收发器。之后,我们详细了相关芯片的文档,查找可以测试的触点,比如串行外设接口(serial peripheral interface,SPI)。

如图3和图4所示,nRF24LE1收发器存在一个SPI接口。

\
\

对于基于nRF24的设备,如果所使用的芯片配置允许的话,设备可以使用SPI接口来读取和写入内部闪存。

微软的某个无线键盘的PCB板背面如图5所示,其中4个SPI焊点都打上了准确的标记(FMISO、FMOSI、FCSN以及FSCK),这可以给我们节省许多时间(已禁用回读保护机制)。

\

在识别出被测试键盘及USB设备的SPI接口后,我们将某些线路焊接到已识别的触点或SoC引脚上,尝试导出设备固件以便进一步分析。为了完成这一任务,我们使用了Bus Pirate[9]以及nrfprog软件[10]。对Cherry无线键盘SPI接口的读写方式如图6所示。

\

对被测试的某些USB设备而言(如Cherry的某个USB设备),SPI接口在使用上有些难度,因为这类设备的PCB板上缺少SPI测试触点,并且所使用的nRF24LU1+的尺寸也比较小,如图7所示。感谢我们的同事Alexander Straßheim伸出援手,我们终于可以通过USB设备的SPI接口测试对设备闪存的读写访问。

\

在成功读取被测试的某些设备的固件后,我们可以使用逆向工程方法对导出的设备固件进行分析,这类逆向方法包括使用IDA Pro进行静态代码分析[11]。nRF24 SoC拥有一个8051兼容的微控制器,可以在Nordic Semiconductor生产的nRF24LE产品说明书[12]中找到详细的说明。我们也仔细研读了Nordic Semiconductor在nRF24 SDK[13]中提供的示例代码,这些示例代码非常有用,可以理解基于nRF24的设备是如何被88必发娱乐官网的,以及开发者可以使用哪些库。

在IDA Pro中,对Cherry的加密函数hal_aes_crypt的反汇编代码如图8所示。

\

为了进一步了解nRF24 SoC,我们不仅阅读了SDK中公开的代码,同样也编写并分析了自己的示例代码,如实现memcpy功能的固件代码(如清单3.1所示)。

1 /* Really simple memory copy firmware */

2

3 #include

4 #include

5

6 #define LENGTH 512

7

8 // data buffer

9 static uint8_t xdata buffer[LENGTH];

10

11 // Main routine

12 void main()

13 {

14 uint16_t src_addr = 0xFA00; // start of extended endurance data in NV memory

15 uint16_t dest_addr = 0xFC00; // start of normal endurance data in NV memory

16 uint16_t len = LENGTH;

17

18 // erase normal endurance memory pages (34 and 35)

19 hal_flash_page_erase (34);

20 hal_flash_page_erase (35);

21

22 // read extended endurance data memory from 0xFA00 to buffer

23 hal_flash_bytes_read(src_addr , buffer , len);

24

25 // write buffer to to SPI -addressable NVM (normal endurance memory)

26 hal_flash_bytes_write(dest_addr , buffer , len);

27

28 // wait forever

29 while(1) {}

30 }

最后,我们也对无线设备的不同组件所使用的2.4GHz无线通信做了分析。首先,我们使用软件定义的无线电,结合开源的软件无线电(GNU Radio)[14]以及修改版的NRF24-BTLE-Decoder软件[15]来完成这一任务。之后,我们又使用了基于nRF24的Crazyradio PA USB设备,配合Bastille的nRF研究固件以及我们自研的Python脚本和工具来测试特定的目标设备。

为了分析基于nRF的键盘和USB设备所发送的增强型ShockBurst数据报文,我们使用了修改版的NRF24-BTLE-Decoder,对应的GRC(GNU Radio Companion,又称GR小伙伴)流程图如图9所示。

\

带有AES加密载荷的Cherry无线键盘所产生的增强型ShockBurst数据报文如下所示:

1 $ cat /tmp/fifo | ./nrf24-decoder -d 1

2 nrf24-decoder, decode NRF24L01+ v0.1

3

4 (...)

5 Address: 0x6BB7E29E31 length:16, pid:0, no_ack:0, CRC:0x2D58 data:0294EF5368E70FB11AB685B818819388

6 Address: 0x6BB7E29E31 length:16, pid:0, no_ack:0, CRC:0x2D58 data:0294EF5368E70FB11AB685B818819388

7 Address: 0x6BB7E29E31 length:16, pid:0, no_ack:0, CRC:0x2D58 data:0294EF5368E70FB11AB685B818819388

8 (...)

9 Address: 0x6BB7E29E31 length:16, pid:0, no_ack:0, CRC:0x2D58 data:0294EF5368E70FB11AB685B818819388

10 Address: 0x6BB7E29E31 length:16, pid:0, no_ack:0, CRC:0x2D58 data:0294EF5368E70FB11AB685B818819388

11 Address: 0x6BB7E29E31 length:16, pid:0, no_ack:0, CRC:0x2D58 data:0294EF5368E70FB11AB685B818819388

12 (...)

使用Crazyradio PA对nRF24无线通信进行分析应该是一种最简单同时也是最可靠的方法。

四、攻击面以及攻击场景

针对被测试的桌面无线设备,我们设计了两种攻击场景,一种场景是攻击者对无线设备拥有不受限制的物理访问权限,另一种场景是攻击者只能通过无线信号对无线设备进行攻击。

在第一种场景中,可用的攻击面主要为SoC上引脚的排列组合。在第二种场景中,攻击面仅包含无线通信。

在这两种攻击场景中,特定的安全威胁可能存在不同的攻击形式。在研究项目中,我们感兴趣的几个攻击点如下所示:

1、可以物理接触桌面无线设备时:

(1)提取固件

(2)篡改固件

(3)提取加密密钥

(4)篡改加密密钥

2、通过无线信号攻击桌面无线设备时:

(1)攻击未经加密和授权的无线通信

(2)重放攻击

(3)按键注入攻击

(4)解密经过加密的通信数据

五、安全漏洞

在整个研究项目中,我们可以在使用AES加密机制的无线设备中找到以下5类安全漏洞:

1、缺乏对代码(固件)以及数据(加密密钥)的保护。

2、没有对通信数据进行加密和认证。

3、没有对重放攻击的进行防护。

4、对重放攻击防护不到位。

5、其他加密问题。

我们会在下文详细阐述我们发现的所有漏洞,同时也会在安全公告中提及受影响的相关设备 [16-29]。

5.1 缺乏对代码和数据的保护

在我们的研究中,被测试的5个设备中有3个设备的固件和AES加密密钥可以被我们读取,这3个设备分别为AES B.UNLIMITED、Microsoft Wireless Desktop 2000以及Perixx PERIDUA-710W。

对于这3个基于nRF24的设备而言,我们有可能能够使用nrfprog软件,通过SPI接口访问设备的闪存(如图6和图7所示)。

Cherry的USB设备所导出的内存镜像中包含AES密钥,如下所示:

1 (...)

2 00007430: 0000 0000 0000 0000 0000 3cdd 9cc7 db74

3 00007440: 675a c0b2 9796 a55b 913c 0000 0000 0000

4 00007450: 0000 0000 0000 0000 0000 0000 0000 0000

5 (...)

与之匹配的Cherry键盘所导出的内存镜像中也包含相同的AES密钥,如下所示:

1 00000000: aa32 1d98 5ef9 3cdd 9cc7 db74 675a c0b2

2 00000010: 9796 a55b 913c ffff ffff ffff ffff ffff

3 00000020: ffff ffff ffff ffff ffff ffff ffff ffff

4 (...)

与被测试的Microsoft以及Perixx键盘相比,Cherry键盘并没有将加密密钥保存在普通的耐久性内存中,而是将其保存在扩展的耐久性内存中。对nRF24LE1而言,1.5Kb大小的非易失性内存(non-volatile memory,NVM)被分为2个256字节大小的扩展耐久性页面以及两个512字节大小的普通耐久性页面,如参考资料[12]所述。而EENVM(extended endurance non-volatile memory,扩展耐久性非易失性内存)无法通过SPI接口进行访问,如图10所示。

\

因此,为了访问Cherry键盘中包含加密密钥的EEM(extended endurance memory,扩展耐久内存),我们需要研发具备memcpy功能的固件,将EEM中特定的内存区域拷贝到SPI可以访问的普通数据内存中。示例固件代码如清单3.1所示。

由于无线设备对自身的代码(固件)及数据(加密密钥)保护不到位,可以物理接触设备的攻击者能够在几分钟之内,对存在漏洞的桌面无线设备进行攻击,提取设备所使用的AES密钥,并在后续攻击中,利用这个密钥以无线攻击模式远程攻击设备,或者篡改设备固件,比如,攻击者可以弱化设备所使用的加密程度。

对被测试的Cherry和Perixx键盘而言,攻击者有可能随意读取或访问设备内存。但这种攻击对Microsoft键盘来说并不适用,因为它使用了nRF24LE1的一次性可88必发娱乐官网版本。攻击者只能将该设备闪存中的比特位从1改为0,但并不能从0改为1。但不论如何,我们还是可以在某种程度上修改设备的代码以及数据信息。

对基于nRF24的设备而言,只需简单的方法就能实现对设备代码及数据的更好的保护,那就是使用已有的回读保护功能(Read DISable Main Block,RDISMB,禁止读取主存储区),如图11所示。

\

被测试的基于nRF24的4个设备中,只有Logitech键盘使用了这种功能,避免攻击者通过SPI接口对设备闪存进行读写。

5.2 鼠标欺骗攻击

在我们研究项目进行期间,我们发现被测试的所有无线鼠标的无线通信都没有经过加密及认证。因此,如果知道设备所使用的鼠标数据协议,攻击者就能模拟并欺骗鼠标的动作(比如鼠标移动或者鼠标点击动作)。这种攻击并不新颖,许多研究人员已经在最近几年中,在不同的场合下报告并分析了这类问题,但这种攻击能够奏效还是让我们非常兴奋。你没有看错,带有加密功能的现代桌面无线设备依然仅对键盘进行加密和认证处理,并没有对鼠标通信进行加密及认证处理,这的确存在安全风险。

攻击者可以通过伪造数据包,以未授权方式远程控制目标系统的鼠标指针。如果(采用启发式方法)对目标系统进行针对性的尝试,这种鼠标欺骗攻击有可能会导致目标系统的远程代码执行漏洞。

启发式攻击需要解决如下几个问题:

1、操作系统(屏幕布局及内容)

2、语言设定(屏幕布局及内容)

3、鼠标设定(鼠标指针加速)

4、操作系统中的虚拟键盘设定(窗口位置)

根据我们的经验,使用启发式方法时最好还是遵循系统的默认设置,Windows 7中默认的鼠标设置、虚拟键盘(on-screen keyboard,OSK)的默认窗口位置及尺寸设置如图12所示。

\

在这个研究项目中,我们研发了一款名为Radioactive Mouse的概念验证软件,来演示鼠标欺骗攻击场景。这款软件属于我们nRF24工具集的一部分[31]。

对鼠标指针实现像素级别的控制听起来比较简单,但目前在实际中还不能完美实现。在鼠标加速方面,我们还需要做更多的研究工作(如对系统实际使用的算法进行逆向分析),例如,我们需要理清不同的Windows系统所使用的鼠标加速策略(实现代码位于win32k.sys中),来完成预定的操作行为。

因此,我们的概念验证软件目前仍需要配合手动干预及减缓鼠标的运动轨迹,以完成较为稳定的攻击过程。

我们使用被测试的无线鼠标,配合Crazyradio PA无线USB设备以及Bastille的nrf固件,通过鼠标欺骗攻击成功实现了目标系统的代码执行攻击场景,如图13及图14所示。

\
\

攻击视频已上传到YouTube上,标题为“Radioactive Mouse States the Obvious”[30]。

上一篇:Industroyer去年袭击乌克兰电网?这可能是震网之后最危险的工控恶意程序
下一篇:如何HACK无线家用警报器
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 |

版权所有: 88bifa.com--致力于做实用的IT技术学习网站