Zigbee因其低功耗和灵活的网络结构已成为物联网生态系统中不可或缺的无线通信协议,并被许多大公司采用。目前已有数千种经过认证的Zigbee产品,从传感器到连接照明产品,再到智能能源设备。
本研究发现了针对Zigbee的新攻击方式。这类伪造攻击可以在目标网络之外发起,而无需任何加密密钥。为了进行有效的分析,设计了语义感知模糊测试,以探索可能的恶意数据包。总共确定了五种可能导致系统故障的攻击,包括通讯终中断、断开连接、密钥泄露、不正确的完整性检查和数据包截断。
物联网(IoT)技术扩展了网络连接性,发展了一系列的新领域,包括智能家居、远程医疗保健、自动驾驶汽车、智能制造和农业。最近的一份报告估计,到2025年,部署的物联网设备数量将达到270亿,全球市场价值将达到3万亿美元。物联网的蓬勃发展提高了对新无线通信技术的需求。特别是Zigbee,由于其低功耗和安全特性,已发展成为物联网通信的关键标准,并被许多领先公司采用。
现有的Zigbee相关安全研究侧重于利用密钥泄露或旧一代设计的攻击(例如重放或DoS攻击),这些攻击在最新的Zigbee协议中无法利用。Zigbee网络是一个封闭的网络。除了在调试步骤期间(通常需要人工交互)之外,Zigbee网络将不允许节点加入。
概述:Zigbee网络中的节点是指物理通信设备。每个节点都有一个由制造商设置的64位全球唯一的MAC地址(也称为扩展地址)。此外,当节点加入Zigbee网络时,会为其分配一个16位网络地址(也称为逻辑地址或短地址)。网络地址的引入是为了遵守相对较小的节点存储和Zigbee数据包长度限制,并且旨在是唯一的并用于网络内的通信。Zigbee节点可分为三种类型,包括控制器、路由器和终端设备。
控制器:控制器(也称为协调器)管理Zigbee网络并向所有打算加入网络的其余节点提供许可。每个集中式Zigbee网络都有一个控制器,该控制器具有16位个域网标识符(PAN ID)和64位扩展PAN ID(EPID)。这两个标识符都可以唯一地定义网络。控制器维护路由表,其中包含每个节点的MAC地址及其相应的网络地址。控制器是唯一更新网络信息的节点。路由器充当控制器和终端设备之间的中间节点。路由器维护路由表,并可能包括终端设备的功能。尽管攻击也适用于路由器,但在本文中没有使用路由器。终端设备可以与其父节点(控制器或路由器)通信,但不能中继数据。终端设备支持与物理世界交互和收集数据的功能。
Zigbee协议栈:Zigbee堆栈架构由五层组成,如下图所示。从下到上依次为物理层、媒体访问控制(MAC)层、网络(NWK)层、应用支持子层(APS)和Zigbee集群库(ZCL)。APS和ZCL属于应用层的组件。物理层设置Zigbee网络的物理通道(每个5MHz),是802.15.4中ISM频段标识的16个通道之一。MAC层和网络层负责数据传输和路由。Zigbee节点地址(MAC和网络地址)和网络标识符(PAN ID和EPID)包含在MAC层和网络层中,并以明文格式表示。APS为应用层的其他组件提供控制服务。ZCL定义了由连接标准联盟开发的集群功能,其中每个集群包含一组具有属性的命令。这些集群依次指定不同的应用配置文件,例如Light Link 1.1、Home Automation 1.3和Health Care 1.0。Zigbee网络可以选择应用加密机制来保护应用层信息。
安全密钥:Zigbee协议支持安全通信的对称加密,使用的加密算法是高级加密标准(AES)。Zigbee网络的安全密钥包括网络密钥和链路密钥。128位的网络密钥在调试过程中进行分发,用于加密网络层的有效负载(即应用层信息)。还有128位的工厂预设链接密钥,用于加密初始网络密钥传输,或者可选地加密APS的有效负载(即ZCL信息)。Zigbee协议栈中的加密部分如前图所示。尽管IEEE 802.15.4 MAC层具有加密选项,但由于加密操作的高功耗和密钥分发的挑战,MAC层加密在实践中并不常用。
数据加密和认证:Zigbee使用AES加密和CCM*操作模式来提供数据传输的真实性和机密性。相应层的AUX头包含安全级别、帧计数器和源地址(例如网络层的源MAC地址)字段,它们构成了AES加密中使用的随机数,以防止重放攻击。计算消息完整性代码(MIC)并将其附加在加密有效负载之后以实现完整性保护(默认安全级别下为32位)。直接暴力破解32位MIC在时间消耗上是不可行的。以每秒200个数据包的传输速率计算,预计需要超过248天才能暴力破解32位MIC。
有两个原因使得Zigbee网络和通信难以受到攻击:
1)Zigbee网络具有封闭性质,配备了专用的调试流程来将新设备添加到网络中。调试过程通常需要用户的操作以使控制器能够接受加入请求(例如,按下控制器上的按钮)。控制器和新设备将在调试阶段交换EPID、PAN ID、MAC地址并建立加密密钥。除调试外,Zigbee网络处于关闭状态,控制器不会处理加入请求。来自未经授权设备的数据包将被拒绝。
2)Zigbee协议使用AES算法加密和CCM*模式认证来保护应用层(即网络层的有效负载)。如果没有正确的安全密钥(在调试期间交换),攻击者无法渗透Zigbee系统。因此,现有的攻击场景侧重于利用调试阶段或暴露安全密钥的侧信道。
然而,针对Zigbee的新型攻击可以绕过这两个限制。上图显示了威胁模型和示例攻击场景。简化的Zigbee网络有两个节点:一个Zigbee控制器和一个设备进行通信和数据传输。每个节点都有一个64位的MAC地址和一个16位的网络地址(在调试过程中分配)。Zigbee网络由控制器指定的16位PAN ID和64位EPID来标识。上图中的攻击设备不在目标Zigbee网络中(即未授权),并且不知道网络密钥。唯一的要求是攻击者通过无线电链路嗅探数据包中公开可用的Zigbee网络信息,包括设备的MAC地址和网络地址,以及网络PAN ID和EPID。这些信息在MAC层和网络层的标头中未加密。
攻击设备将伪造目标Zigbee网络中已有的节点。由于控制器在Zigbee网络中具有最多的功能,因此本研究重点关注伪造控制器的攻击。以下攻击步骤可以在Zigbee网络关闭的正常操作期间(而不是在调试阶段)的任意时间发起。
步骤1:作为在IEEE 802.15.4的MAC层上进行通信的先决条件,攻击设备需要覆盖其制造商生产的物理地址并伪造Zigbee网络中的控制器。攻击者可以通过嗅探Zigbee数据包轻松获取控制器的MAC地址,因为MAC地址以纯文本形式包含在MAC层和网络层的标头中。在前图的示例中,攻击设备将MAC地址设置为00:0D:6F:00:0F:3F:AF:BC,与控制器的地址相同。
步骤2:攻击设备将进一步模仿网络标识符,控制器的网络地址(0000)和网络PAN ID(ABC4)可以通过窃听常规Zigbee数据包来提取。为了获取网络EPID,攻击者可以广播信标请求。然后控制器将在信标响应中回传EPID(5B:2C:2C:FA:57:75:5D:12),同时宣布网络关闭,不接受加入请求。
接下来,攻击者选择一个(或多个)目标设备作为攻击目标。同样,目标设备的MAC和网络地址(示例中的00:22:A3:00:00:1F:05:5D和57C3)可以通过数据包嗅探轻松获取。通过设置匹配的网络信息,攻击设备可以冒充控制器向目标设备发送数据包。
步骤3:攻击设备构造数据包并将其注入Zigbee网络,其目标是使目标设备处理伪造的数据包并最终陷入功能障碍状态。尽管常规Zigbee通信在网络层有效负载上使用加密,但使用特定控制字段和命令制作的数据包可能会引发漏洞。
攻击最低条件:攻击者不在目标Zigbee网络内,不需要知道加密密钥,也不依赖于调试阶段。所有需要的信息都可以通过无线流量嗅探(例如获取MAC地址和PAN ID)或主动探测(例如获取EPID)轻松获取。该威胁模