照顾好您的加密狗:罗技键盘接收器安全研究

照顾好您的加密狗:罗技键盘接收器安全研究

从历史上看,大多数员工都使用罗技的无线键盘和鼠标。 再次输入密码,我们这些浣熊安全团队的专家问自己:绕过无线键盘的安全机制有多难? 该研究揭示了允许访问输入数据的架构缺陷和软件错误。 切口下方就是我们得到的。

为什么选择罗技?

我们认为,罗技输入设备是质量最高、最方便的输入设备之一。 我们拥有的大多数设备都基于罗技解决方案 统一 是一款通用适配器接收器,最多可让您连接 6 个设备。 所有与 Logitech Unifying 技术兼容的设备均标有 Logitech Unifying 技术徽标。 便于使用 应用 允许您管理无线键盘与计算机的连接。 涵盖了将键盘连接到罗技接收器加密狗的过程以及技术本身,例如, 这里.

照顾好您的加密狗:罗技键盘接收器安全研究

支持 Logitech Unifying 的适配器接收器

键盘可能成为攻击者的信息来源。 罗技考虑到可能存在的威胁,采取了安全措施——在无线键盘的无线电通道中使用了 AES128 加密算法。 在这种情况下,攻击者可能首先想到的是在绑定过程期间通过无线电信道传输关键信息时拦截关键信息。 毕竟,如果你有钥匙,你就可以拦截键盘的无线电信号并解密它们。 然而,用户很少(甚至从不)需要统一键盘,而使用扫描无线电的黑客将不得不等待很长时间。 此外,拦截过程本身并不是一切都那么简单。 在 2019 年 XNUMX 月的最新研究中,安全专家马库斯·孟斯在线发表 сообщение 关于在 Logitech USB 加密狗旧固件中发现漏洞的信息。 它允许对设备进行物理访问的攻击者获取无线电通道加密密钥并注入击键 (CVE-2019-13054)。

我们将讨论基于 Nordic Semiconductor NRF24 SoC 的罗技加密狗的安全研究。 也许让我们从广播频道本身开始。

数据如何在无线电信道中“飞行”

为了对无线电信号进行时频分析,我们在频谱分析仪模式下使用了基于 Blade-RF 设备的 SDR 接收器(您也可以阅读此内容 这里).

照顾好您的加密狗:罗技键盘接收器安全研究

SDR Blade-RF设备

我们还考虑了记录中频无线电信号正交的可能性,然后可以使用数字信号处理技术对其进行分析。

俄罗斯联邦国家无线电频率委员会 允许 对于短距离设备使用,频率范围为 2400–2483,5 MHz。 这是一个非常“拥挤”的范围,您在其中找不到任何东西:Wi-Fi、蓝牙、各种遥控器、安全系统、无线探测器、带键盘的鼠标和其他无线数字设备。

照顾好您的加密狗:罗技键盘接收器安全研究

2,4 GHz 频段的频谱

范围内的干扰环境相当复杂。 尽管如此,罗技还是能够通过在 NRF24 收发器中使用增强型 ShockBurst 协议并结合频率自适应算法来提供可靠且稳定的接收。

频带中的信道被放置在整数 MHz 位置,如 规格 NRF24 Nordic Semiconductor - 频率网格中共有 84 个通道。 罗技同时使用的频道数量当然更少。 我们确定至少使用了四个。 由于所使用的信号频谱分析仪的带宽有限,无法确定所使用的频率位置的确切列表,但这不是必要的。 从键盘到接收器加密狗的信息使用两位频率调制 GFSK 以突发模式(发射器短时间启动)以 1 Mbaud 的符号率传输:

照顾好您的加密狗:罗技键盘接收器安全研究

键盘无线电信号的时间表示

接收方采用相关原理接收,因此发送的数据包包含前导码和地址部分。 不使用抗噪声编码;数据体采用AES128算法加密。

一般来说,罗技无线键盘的无线电接口的特点是完全异步,具有统计复用和频率自适应。 这意味着键盘发送器会切换通道来发送每个新数据包。 接收方事先并不知道传输时间或频道,但只知道它们的列表。 得益于协调的频率旁路和监听算法以及增强型 ShockBurst 确认机制,接收器和发射器在通道中相遇。 我们还没有调查频道列表是否是静态的。 很可能,它的变化是由于频率自适应算法造成的。 在该范围的频率资源的使用中可以看到类似于跳频方法(工作频率的伪随机调谐)的东西。

因此,在时频不确定的情况下,为了保证所有键盘信号的接收,攻击者需要不断监控整个84个位置的频率网格,这需要大量的时间。 USB密钥提取漏洞(CVE-2019-13054)的原因就清楚了 在来源中 定位为注入击键的能力,而不是让攻击者访问从键盘输入的数据。 显然,无线键盘的无线电接口相当复杂,并在 2,4 GHz 频段的困难干扰条件下为罗技设备之间提供可靠的无线电通信。

从内部看问题

在我们的研究中,我们选择了现有的罗技 K330 键盘和罗技 Unifying 适配器。

照顾好您的加密狗:罗技键盘接收器安全研究

罗技K330

让我们看看键盘内部。 板上一个值得研究的有趣元素是 Nordic Semiconductor 的 SoC NRF24 芯片。

照顾好您的加密狗:罗技键盘接收器安全研究

罗技 K24 无线键盘板上的 SoC NRF330

固件位于内部存储器中,读取和调试机制被禁用。 不幸的是,该固件尚未开源发布。 因此,我们决定从另一个角度来解决这个问题——研究罗技适配器接收器的内部内容。

加密狗接收器的“内部世界”非常有趣。 该加密狗易于拆卸,搭载熟悉的 NRF24 版本,带有内置 USB 控制器,并且可以从 USB 端或直接从编程器重新编程。

照顾好您的加密狗:罗技键盘接收器安全研究

罗技适配器不带外壳

由于存在使用更新固件的标准机制 固件更新工具应用程序 (您可以从中提取更新的固件),无需在加密狗内查找固件。

做了什么:从固件更新工具应用程序的主体中提取固件 RQR_012_005_00028.bin。 为了检查其完整性,加密狗控制器用电缆连接 至 ChipProg-48 编程器:

照顾好您的加密狗:罗技键盘接收器安全研究

用于将 Logitech 适配器连接到 ChipProg 48 编程器的电缆

为了控制固件的完整性,它已成功放置在控制器的内存中并正常工作,键盘和鼠标通过 Logitech Unifying 将适配器连接到适配器。 可以使用标准更新机制上传修改后的固件,因为固件没有加密保护机制。 出于研究目的,我们使用了与程序员的物理连接,因为这种方式调试速度要快得多。

固件研究和对用户输入的攻击

NRF24芯片基于传统哈佛架构的Intel 8051计算核心设计。 对于内核来说,收发器充当外围设备,并作为一组寄存器放置在地址空间中。 芯片的文档和源代码示例可以在互联网上找到,因此反汇编固件并不困难。 在逆向工程过程中,我们本地化了从无线电通道接收击键数据并将其转换为 HID 格式以通过 USB 接口传输到主机的功能。 注入代码被放置在空闲内存地址中,其中包括用于拦截控制、保存和恢复原始执行上下文的工具以及功能代码。

加密狗从无线通道接收到的按下或释放按键的数据包被解密,转换为标准 HID 报告,并像普通键盘一样发送到 USB 接口。 作为研究的一部分,HID 报告中我们最感兴趣的部分是 HID 报告中包含修饰符标志字节和带有击键代码的 6 字节数组的部分(作为参考,有关 HID 的信息 这里).

HID 报告结构:

// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
    uint8_t Modifiers;
    uint8_t Reserved;
    uint8_t KeyCode[6];
}HidKbdReport_t;

在将 HID 结构传输到主机之前,注入的代码会进行控制,复制内存中的 8 字节本机 HID 数据,并将其以明文形式发送到无线电侧通道。 在代码中它看起来像这样:

//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState();                  // save transceiver state
RfInitForTransmition(TransmitRfAddress);        // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE();                 // Toggle radio CE signal to start transmission
RestoreRfState();               // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<

侧通道按照我们根据操作速度和数据包结构的某些特征设置的频率进行组织。

芯片内收发器的操作 NRF24 基于状态图,其中有机集成了增强型 ShockBurst 协议。 我们发现,在将 HID 数据传输到主机 USB 接口之前,收发器处于 IDLE 状态。 这使得可以安全地将其重新配置为在侧通道中运行。 注入的代码拦截控制,完整保留原始收发器配置,并将其切换到侧通道上的新传输模式。 在此模式下,增强型 ShockBurst 确认机制被禁用;HID 数据以清晰的形式通过空中传输。 侧通道的数据包结构如下图所示,信号图是解调后数据时钟同步恢复前的信号图。 选择地址值是为了便于视觉识别包。

照顾好您的加密狗:罗技键盘接收器安全研究

边信道中的解调突发突发信号

数据包传输到侧通道后,注入的代码将恢复收发器的状态。 现在它又可以在原始固件的环境中正常工作了。

在频域和时频域中,侧信道如下所示:

照顾好您的加密狗:罗技键盘接收器安全研究

侧通道的频谱和时频表示

为了测试修改后的固件的 NRF24 芯片的运行情况,我们组装了一个支架,其中包括修改后的固件的罗技适配器、无线键盘和基于带有 NRF24 芯片的中国模块组装的接收器。

照顾好您的加密狗:罗技键盘接收器安全研究

罗技无线键盘无线电信号拦截电路

照顾好您的加密狗:罗技键盘接收器安全研究

基于NRF24的模块

在实验台上,键盘正常工作的情况下,连接罗技加密狗后,我们观察到侧无线通道中清晰的按键数据传输,主无线接口中的加密数据传输正常。 因此,我们能够直接拦截用户键盘输入:

照顾好您的加密狗:罗技键盘接收器安全研究

拦截键盘输入的结果

注入的代码会导致加密狗固件的运行出现轻微延迟。 然而,它们太小,用户无法注意到。

正如您可以想象的那样,任何与 Unifying 技术兼容的 Logitech 键盘都可以用于此攻击媒介。 由于攻击针对的是大多数 Logitech 键盘附带的 Unifying 接收器,因此它与特定的键盘型号无关。

结论

研究结果表明攻击者可能会使用所考虑的场景:如果黑客用罗技无线键盘的适配器接收器替换受害者,那么他将能够找出受害者帐户的密码以及随后发生的所有情况。结果。 不要忘记,注入击键也是可能的,这意味着在受害者的计算机上执行任意代码并不困难。

如果攻击者突然可以通过 USB 远程修改任何 Logitech 加密狗的固件怎么办? 然后,您可以通过紧密间隔的加密狗创建中继器网络并增加泄漏距离。 尽管“财力雄厚”的攻击者甚至能够从邻近的建筑物“监听”键盘输入和按键,但具有高选择性系统的现代无线电接收设备、具有短频率调谐时间的灵敏无线电接收器和高度定向天线将允许他们甚至可以从邻近的建筑物“监听”键盘输入并按下按键。

照顾好您的加密狗:罗技键盘接收器安全研究

专业无线电设备

由于罗技键盘的无线数据传输通道受到相当好的保护,所发现的攻击向量需要对接收器进行物理访问,这极大地限制了攻击者。 在这种情况下,唯一的保护选项是对接收器固件使用加密保护机制,例如,检查接收器侧加载的固件的签名。 但不幸的是,NRF24 不支持这一点,并且无法在当前的设备架构内实现保护。 因此请保管好您的加密狗,因为所描述的攻击选项需要对它们进行物理访问。

照顾好您的加密狗:罗技键盘接收器安全研究

Raccoon Security 是由来自 Vulcan 研发中心的实用信息安全、密码学、电路设计、逆向工程和底层软件创建领域的专家组成的特殊团队。

来源: habr.com

添加评论