独眼情报声明:如以下内容有误或侵犯到你公司、机构、单位或个人权益,请联系我们说明理由,我们会配合,无条件删除处理。
Nozomi Networks Labs 在 ESP-NOW 的参考实现中发现了两个漏洞,ESP-NOW 是 Espressif 的无线协议,允许在现有无线硬件之上对智能设备进行直接、快速和低功耗的控制。
值得注意的是,发现的漏洞之一可能允许攻击者绕过 ESP-NOW 实施的防重放措施,并随意重新传输先前捕获的在两个易受攻击的 ESP-NOW 节点之间交换的数据包。该漏洞甚至会影响受加密层保护的数据包,并且不需要任何加密密钥的知识。现实世界攻击场景的示例包括任意停用警报系统或未经授权打开自动入口大门。
在我们的调查结果披露后,xx立即在其官方 GitHub 存储库中修复了这些问题,对此我们表示感谢。 我们敦促资产所有者尽早更新使用易受攻击组件的设备的固件。对于我们的客户,Nozomi 的 Guardian Air 无线传感器已经更新,可以防止这些缺陷被利用。
我们首先对 Espressif 和 ESP-NOW 协议进行高级介绍。然后,我们描述这些漏洞可能引发的潜在现实世界攻击场景,以及缺陷本身和受影响设备的详细概述。最后,我们提供了可用于解决这些漏洞的官方补救措施。
研究范围
xx是著名的物联网解决方案提供商,在半导体行业占据主导地位。2023 年,该公司报告芯片销量接近 2 亿颗,自 2014 年推出突破性的 ESP8266 型号以来,片上系统 (SoC) 出货量已超过 10 亿颗。这些数字不仅凸显了xx在半导体市场的重大影响力,而且还强调了其在塑造物联网和智能设备领域的主导作用。
在其创新中,xx开发了 ESP-NOW,这是一种专为直接设备到设备无线通信而设计的专有协议。该协议在数据链路层运行并利用 Wi-Fi 操作帧(图 1),作为 ESP-IDF SDK 中的部分开源扩展模块提供。ESP-NOW 与各种具有 Wi-Fi 连接功能的 Espressif SoC 兼容,可实现设备之间的无缝、高效通信。它经过专门设计,可提供快速响应,从而最大限度地减少拥塞网络环境中常见的延迟和数据包丢失。这使得 ESP-NOW 成为旨在增强 IoT 应用程序连接性的开发人员的流行解决方案。
这些漏洞的影响是什么?
影响最大的漏洞是 CVE-2024-42483,该漏洞允许对易受攻击的 ESP-NOW 节点执行重放攻击。这甚至可能发生在受加密安全层保护且没有加密密钥的通信上。
根据目标系统的不同,此漏洞可能会产生深远的后果。例如,ESP-NOW 用于建筑警报等安全系统,允许它们与运动传感器进行通信。在这种情况下,攻击者可以利用此漏洞重放之前截获的合法“OFF”命令,从而随意禁用运动传感器。
ESP-NOW 的另一个常见应用是实现远程开门装置,例如用于自动门或车库门的遥控开门装置。在这种情况下,攻击者可以拦截“OPEN”命令并在稍后重放该命令以打开门并获得对建筑物的未经授权的访问。
我们要强调的是,要实现这些攻击,唯一的前提条件是能够嗅探目标通信并进行重放。使用高增益 Wi-Fi 定向天线可以轻松实现此功能,使威胁行为者能够在距离发射节点数十米的地方实施攻击。
CVE-2024-42484 带来的另一个影响是可能在任意节点上引发拒绝服务 (DoS) 情况。然而,对参考实现进行的测试尽管成功地利用了漏洞本身,但未能成功地重新创建触发此效果所需的条件。
因此,该漏洞不太可能对使用参考代码的设备构成重大威胁。仅在极少数情况下才会存在风险,例如当制造商或资产所有者对参考代码进行修改时(例如,添加新功能或更改设备在特定情况下的行为)。
漏洞列表及受影响版本 下表列出了发现的两个漏洞,按 CVSS v3.1 基本分数排序。
CVE ID | CWE | CVSS v3.1 基本分数 | CVSS v3.1 向量 |
---|---|---|---|
CVE-2024-42483 | 使用可信数据接受无关的不可信数据 (CWE-349) | 5.3 | CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L/E:H/RL:W/RC:C |
CVE-2024-42484 | 越界读取 (CWE-125) | 4.3 | CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
影响ESP-NOW GitHub 存储库,直至提交 0c8bd74456e797520351d72ed85b44a8ddf0ed63(包含)。
CVE-2024-42484 影响它直至提交 e8748dd33eced44e5f0dd6ad7ba11a39e4ab71d9(包含)。
漏洞聚焦
在我们发现的两个漏洞中,CVE-2024-42483 是最危险的,因为它最终可能允许威胁参与者执行重放攻击。
为了防止重放攻击,所有 ESP-NOW 数据包都包含一个独特的“魔法”值,该值由每次传输时随机生成的 16 位组成。然后,ESP-NOW 节点使用本地魔法缓存,称为“g_msg_magic_cache”,它存储由每条收到的消息的类型和魔法值组成的对。
这种机制背后的原理很简单。收到每条传入消息后,ESP-NOW 节点会检查缓存的内容。如果消息的类型和幻值已经存在,则该消息被识别为重复消息并被丢弃。如果不是,则接受该消息,并且处理流程照常进行。
尽管这种方法在理论上看起来很稳健,但由于以下两个缺点,在实践中被证明是不够的:
每个节点维护的用于存储这些魔法值的本地缓存的容量是有限的。默认情况下,如图 2 所示,每个节点的缓存仅包含 32 个槽。这些槽以循环方式管理,这意味着一旦缓存已满,每个新消息都会用其类型和魔法值覆盖最旧的条目;本地缓存不区分消息类型;它充当所有类型消息的单一共享资源,无论它们是广播还是单播,也无论它们是加密还是以明文传输。
因此,攻击者可以用大量明文、广播和未经身份验证的 ESP-NOW 消息淹没网络,这些消息会迅速填满并随后覆盖整个缓存。此策略使攻击者能够清除合法条目的缓存,从而有机会重新注入先前捕获的数据包,无论其加密状态如何。
这种攻击场景如图 3 所示。
补救措施
这些漏洞被报告后,xx立即修复了 ESP-NOW 参考实现中的缺陷。
如果资产所有者可以直接控制自己配备 ESP 的设备的固件,他们可以在更新ESP-NOW GitHub 存储库的本地副本以至少提交 4e30db50d541b2909d278ef0db05de1a3d7190ef(第一个包括针对这两个漏洞的补丁)。
或者,敦促资产所有者联系其设备制造商,以获得修复上述漏洞的修补固件映像。
如果出于任何原因,资产所有者无法更新其设备,则可以实施以下缓解措施以降低成功利用的可能性:
-
监控接收易受攻击设备附近的无线通道(例如,通过 Guardian Air); -
将发射设备的无线信号功率降至最低,以减少对手拦截有效消息的机会; -
定期验证接收易受攻击的设备是否按预期正常运行。
原文始发于微信公众号(独眼情报):xx科技的无线通信协议 ESP-NOW存在允许攻击者重放通信漏洞,现已修复
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论