Zigator:分析Zigbee智能家居的安全性

阅读量    67890 |

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

 

随着用于住宅的互联网连接设备的普及,重要的是要确保它们满足适当的安全目标,因为它们通过传感器和执行器与物理世界进行交互。 Zigbee是一种无线通信协议,通常在智能家居环境中使用,它基于IEEE 802.15.4标准。在这项工作中介绍了一种称为Zigator的安全分析工具,该工具可以深入研究Zigbee网络。特别是研究了在集中Zigbee网络中禁用MAC层安全性的设计选择的安全性后果,展示了可以从被动检查Zigbee流量中获得有价值的信息,包括识别某些加密的NWK命令,然后将其用于开发选择性的干扰和欺骗攻击。攻击者可能发起这些攻击,以迫使最终用户恢复出厂设置的目标设备并最终暴露网络密钥。通过使用包含商用Zigbee设备的开源工具建立测试平台来确定攻击的日期,最后公开发布开发的软件工具和捕获的Zigbee数据包。

 

0x02 Introduction

智能家居是物联网(IoT)的一种应用,其中日常设备以传感器,执行器或两者的形式连接到互联网。这种级别的连接性使居民能够监视其设备的状态,发出命令以更改其状态以及自动执行常见任务。几个通信协议可以在智能家居中同时运行以简化此操作,这主要是因为不同的设备具有不同的要求,通常由智能集线器桥接。一些设备需要高数据速率的连接才能令人满意地工作,而其他设备则对吞吐量要求有所放宽,因此重点转移到了低功耗和低制造成本上。但是,随着智能家居设备带来的好处,它们还引发了严重的安全问题,因为它们与物理世界进行了交互。因此,违反其通信协议的安全性可能会影响居民的物理安全性。

Zigbee是IoT设备(尤其是在智能家居环境中)使用最广泛的通信协议之一。 Zigbee协议定义了IEEE 802.15.4标准的上层,以向低功耗的低成本设备提供低数据速率的无线连接。 IEEE 802.15.4标准定义了协议栈的PHY和MAC层,家庭自动化是其主要应用之一。 Zigbee联盟的运作由Zigbee联盟定义,Zigbee联盟也是一组公司,该组织还对Zigbee产品进行了认证,这些产品受到众多智能家居生态系统的支持,包括三星SmartThings和亚马逊的Echo Plus。但是,Zigbee联盟并未将安全性决定强加给制造商。在智能家居中,Zigbee网络在很大程度上不受监控。因此,开发全面的安全分析工具对独立研究人员至关重要。

已经证明了针对Zigbee网络的几种攻击,包括设备劫持,Zigbee蠕虫,以及最近的远程代码执行。前面提到的演示大部分都限于分布式Zig Bee网络,因为它们利用了特定于分布式安全模型的漏洞,例如:

(a)使用不安全的工厂重置命令,

(b)泄漏的加密密钥的知识根据保密协议,

(c)使用基于邻近的通信。

这些在Zigbee集中式网络中固有地不存在,其中单个设备充当信任中心的角色,该信任中心管理加密密钥并授权请求加入网络的设备。尽管建议使用集中式Zigbee网络以提高安全性,但它们受到研究界的关注较少,特别是因为Zigbee 3.0设备已经商业化,可以解决一些先前的漏洞。更严峻的挑战是,缺乏用于Zigbee网络的健壮的安全分析工具,商用Zigbee设备使用闭源软件,并且某些规范文档尚未公开。

先前包含集中式Zigbee网络的研究在很大程度上证明了来自加密流量的信息泄漏,例如触发事件的识别,而没有探索攻击者如何使用此信息来破坏集中式Zigbee的操作。网络。尽管已经针对集中Zigbee网络演示了几种命令注入攻击,但是这些攻击需要了解网络密钥。但是,攻击者获取此加密密钥的现实方法尚未得到全面探索。

在这项工作中提出了一种称为Zigator的安全分析工具,开发该工具是为了研究Zigbee网络受到被动和主动攻击的风险,由于设计选择是不使用MAC层上的安全服务。实际上,Zigbee PRO 2015规范指出,NWK命令应禁用MAC层安全性,“因为源自NWK层的任何安全帧都应使用NWK层安全性”。表明攻击者可以从可操作的Zigbee网络推断出有价值的信息,包括每个Zigbee设备的逻辑设备类型。此外,尽管在NWK层上使用了加密,仍表明攻击者可以100%的准确性识别所有可能的NWK命令的一半。使用此信息来开发选择性的干扰和欺骗攻击,攻击者可以发起这些攻击,以便最终获得对网络密钥的访问权限。

此外建议针对Zigbee 3.0网络的调试过程增强安全性,以防止受到这种攻击。通过构建一个包含商用Zigbee设备的测试平台来验证攻击,如下图所示。公开发布Zigator,数据集以及对几种开放源代码工具的修改(http://mews.sv.cmu.edu/research/zigator/ )。请注意,这项工作主要集中在集中式Zigbee网络上,某些贡献也可以应用于分布式Zigbee网络。

 

0x02 Background

在本节中将简要概述Zigbee网络中的数据包格式,安全模型和逻辑设备类型。

数据包格式:Zigbee网络的运行是在多个文档上定义的,但并非所有文档都可以公开获得2。没有任何安全功能的Zigbee数据包的一般格式如上图所示。Zigbee数据包的实际格式差异很大,因为使用媒体访问控制(MAC)网络中的标头字段标识了多种数据包类型(NWK)和应用程序支持(APS)层。这些数据包类型包括MAC确认,MAC信标,MAC命令,NWK命令,APS确认和APS命令。此外,APS层的有效载荷可以是Zigbee设备配置文件(ZDP)命令或可能专有的Zigbee群集库(ZCL)命令。其他标识字段用于进一步区分这些命令并确定其有效载荷的格式。 Zigbee在其NWK和APS层上为数据包提供安全服务,方法是在相应层的标头之后包含一个辅助标头,并在其有效负载之后包含一个消息完整性代码。 Zigbee使用CCM *块密码模式的安全等级3,使用AES-128算法对有效载荷进行加密并认证相应层的报头和有效载荷。

CCM *模式通过添加仅加密的安全级别扩展了CCM模式。但是,Zigbee联盟建议不要使用此安全级别。因为它容易受到单数据包拒绝服务攻击。因此,在CCM模式下实现AES-128可以解密和验证典型的Zigbee流量。随机数包括源的64位IEEE地址,32位帧计数器和8位安全控制字段。在Zigbee网络中的所有设备之间共享的加密密钥称为网络密钥,而仅在成对的设备之间使用的加密密钥称为链接密钥。 Zigbee设备的IEEE地址称为其扩展地址,而其本地称为带符号的地址称为其短地址。最后,每个Zigbee网络都使用一个个人局域网标识符(PAN ID),该标识符在其覆盖区域内应该是唯一的。

安全模型:为了在安全性和可用性之间取得平衡,Zigbee支持两种安全性模型:分布式和集中式。分布式Zigbee网络旨在简化易用性,它由Zigbee路由器和Zigbee终端设备组成,每个Zigbee路由器都可以发布加密密钥。建议采用集中式Zigbee网络以提高安全性,并且是这项工作的主要重点,其中包括一个Zigbee协调器,通常充当信任中心的角色,以便管理加密密钥并授权请求加入网络的设备。根据安全模型的不同,不同类型的链接密钥可以保护网络密钥的传输。

逻辑设备类型: Zigbee协调器通常是由电源供电的设备,可以形成集中式网络,但不能加入其他网络。 Zigbee路由器通常是由电源供电的设备,可以形成分布式网络,但也可以加入其他网络。这两种逻辑设备类型都可以路由其他Zigbee设备的数据包。 Zigbee终端设备通常是电池供电的设备,无法形成集中式或分布式网络,但可以加入其他网络。 Zigbee终端设备通常在空闲时使接收器处于禁用状态,以节省能源,并依靠Zigbee协调器或Zigbee路由器来路由服务。充当Zigbee Coor dinator的典型硬件设备是智能集线器,它可以提供对Internet和其他本地网络的访问。可以用作Zigbee路由器的硬件设备包括电源插座和灯泡,而门锁和运动传感器可以用作Zigbee终端设备。

 

0x03 Threat Model and Assumptions

与标准安全性文献保持一致,为Zigbee网络设置了以下安全性目标:

•真实性:未经授权的设备应该不能模仿授权的设备。

•可信性:设备应能够检测和拒绝被篡改的数据包。

• 保密性:未经授权的设备不应访问敏感信息。

• 可用性:需要时,网络服务应可用于设备。

假设最终用户及其设备在不故意降低Zigbee网络的安全性的意义上受到信任,而设备的物理安全性不在本工作范围之内。攻击者是局外人,可能使用比网络设备更强大的硬件,例如高增益定向天线和便携式计算机。

假设攻击者没有任何网络密钥的先验知识,但是他们知道默认的信任中心链接密钥,因为它是公开可用的。此外,考虑了攻击者访问安装代码子集的可能性。此外,假设在Zigbee网络的初始形成过程中没有攻击者。在这种情况下,只要网络中存在单个传统Zigbee设备或知道Zigbee 3.0设备的安装代码,就不会有违反上述安全目标的情况。最后,在以下各节中的讨论假定最终用户的Zigbee网络正在使用集中式安全模型。请注意,没有考虑使接收器处于空闲状态的Zigbee终端设备,低功耗路由器,绿色电源设备或启用信标的网络。尽管根据Zigbee PRO 2015规范支持这些配置,但在撰写本文时,它们尚未在智能家居环境中广泛使用。

最终,攻击者的目标是从已经形成的Zigbee网络中获取网络密钥。当前,启用Zigbee的智能家居的安全性在很大程度上取决于其保密性。获得网络密钥访问权限的攻击者可以解密大多数加密的有效负载,并注入更改最终用户设备状态的命令,这违反了安全目标。

 

0x04 Testing Instrumentation

在测试平台中使用三种核心功能来分析可运行的Zigbee网络的安全性:(a)数据包嗅探,(b)数据包注入和(c)数据包阻塞。这些构成了开发更多复杂攻击的基础。例如,如上图所示,攻击者可以监视Zigbee流量,直到发送感兴趣的数据包以干扰其传输,然后再注入欺骗性的数据包。将在本节末尾演示这种攻击。

(1)数据包嗅探

需要的最基本的功能是捕获Zigbee数据包的能力。使用USRP N210捕获I / Q信号并在软件中执行解调。特别是,使用带有gr-ieee802-15-4模块的GNU Radio来接收IEEE 802.15.4数据包,然后使用gr-foo模块以PCAP格式存储它们。选择使用软件无线电而不是IEEE 802.15.4 USB适配器的主要原因是,它还能够分析数据包阻塞的有效性。

使用Wireshark检查了生成的PCAP文件,如果提供了相应的加密密钥,则可以解密加密的有效载荷。但是,没有广泛使用合适的配置文件。某些标头字段对于理解通信流至关重要,而着色规则则通过出现的模式简化了检查过程。为此,开发了针对Zigbee Traffic4量身定制的Wireshark配置配置文件。对于着色规则,决定将某些数据包类型分组。例如,对影响设备成员资格和加密密钥的命令进行了分组(例如,关联请求,重新加入请求和传输密钥命令),而数据请求具有唯一的颜色,它们提供了有价值的信息关于其发送器和接收器的逻辑设备类型。下图在Wireshark的数据包列表中展示了其中一些着色规则。

(2)数据包注入

接下来需要的功能是注入任意数据包。 Scapy中实现了Zigbee数据包中使用的几个标头字段,这能够轻松伪造任意数据包。下图描绘了简化的GNU Radio Companion流程图,该流程图允许使用一个天线接收和记录IEEE 802.15.4数据包,以及传输通过UDP连接与另一天线发送的伪造IEEE 802.15.4数据包。发布了用于进行本文实验的GNU Radio Companion流程图的集合。

但是,由于将数据包传输到主机然后再传输回收发器会引入延迟,因此该方法不适用于对时间要求严格的数据包的传输。结果修改了ATUSB的固件,以便从接收状态转换为发送状态并在要求的时间范围内发送伪造的数据包。例如,在2.4 GHz频带中使用IEEE 802.15.4-2011标准的O-QPSK PHY层的Zigbee设备将等待864微秒,以接收请求的MAC确认。

(3)封包干扰

需要的第三个功能是能够干扰合法数据包传输的能力。复制了Bloessl的选择性干扰器的实现,该干扰器有选择地阻塞所有发往特定设备的数据包。但是,此实现无法充分控制干扰条件以发起攻击。为此对ATUSB固件进行了如下修改:

•每当检测到RX_START中断时,通常在收到PHY标头后9微秒发出该中断,从帧缓冲区中检索接收到的数据包的长度。

•等待32微秒,即传输单个字节所需的时间,然后从帧缓冲区6中检索下一个字节。

•重复之前的过程,直到可以确定是否满足干扰条件为止。

•如果满足干扰条件,则使用FORCE_PLL_ON命令强制从BUSY_RX状态转换为PLL_ON状态,然后通过转换为BUSY_TX状态来传输任意数据包,其长度取决于接收数据包的长度以及已处理的字节数。

•之后转换回RX_ON状态,并等待下一个RX_START中断。

在上图中提供了对干扰器行为的直观描述。请注意,实现支持为选择性干扰器定义任意干扰条件,这能够发起概念验证攻击。

上图显示了捕获的I / Q信号的大小,以说明如何将选择性干扰与数据包注入结合起来以发起更复杂的攻击。仅对于请求MAC确认的指定网络的数据包,才满足此实验的干扰条件。为了在干扰合法数据包的传输后能够欺骗MAC确认,干扰器在收到它时会存储其MAC序列号。然后,发送干扰数据包,同时在完成合法数据包的传输之后立即发送欺骗的MAC确认。重要的是要注意,即使Zigbee设备使用安全的APS确认来保护用户命令,MAC和NWK命令仍然依赖未处理的已固化MAC确认。

 

0x05 Security Analysis with Zigator

在本节中概述Zigator,在Python中开发的用于分析Zigbee网络的安全性的软件工具。 Zigator的主要依赖项是Scapy库。具体来说,Zigator使用Scapy库的dot15d4和zigbee层来解析捕获的Zigbee数据包并伪造新的数据包进行注入。但是,在撰写本文时,最新版本的Scapy(v2.4.3)尚未实现一些标头字段和帧类型,这对于研究至关重要。因此,分叉了Scapy并为Zigator实现了这些增强功能。

PyCryptodome是Zigator大量使用的另一个库。解析加密数据包的未加密头字段后,Zigator构造数据包的现时和经过身份验证的部分,以便在CCM模式下使用AES-128对其进行解密和验证。还使用了PyCryptodome的AES-128实现来实现Matyas-Meyer-Oseas(MMO)哈希函数。由于Zigbee使用的消息摘要的长度与AES-128的块大小相同,将位串x的消息摘要Ht填充并分成t个128位块,其迭代计算为:

其中H0 = 0并且EK(·)表示由128位密钥K参数化的AES的加密函数。MMO哈希函数在Zigbee 3.0网络中用于从其安装代码中导出Zigbee 3.0设备的预配置信任中心链接密钥。此外,MMO哈希功能还用于定义Zigbee的键哈希消息身份验证代码(HMAC)得出某些受APS层保护的数据包的加密密钥,这也已在Zigator中实现。

Zigator将捕获的数据包的几乎所有可能的标头字段存储在SQLite数据库中,这种方法能够深入了解Zigbee流量的性质,因为它能够执行详细的SQL查询。 Zigator还提供了功能丰富的命令行界面,该界面使安全分析人员可以可视化其数据并发送伪造的数据包以通过UDP进行注入。另外,Zigator可以使用Scikit-learn库训练决策树分类器,以区分不同的数据包类型。随后介绍实验设置,并使用Zigator分析Zigbee网络的安全性。

 

0x06 Experimental Setup

捕获了从十个商用Zigbee设备生成的数据包,如上图所示。在一半的实验中,使用第三代SmartThings集线器(IM6001-V3P01)作为Zigbee协调器,而第二代SmartThings集线器(STH-ETH-200)用于另一半(分别见图j和i)。需要注意的是,只有前者可以使用其安装代码来调试Zigbee 3.0设备。后者使用默认的“信任中心”链接密钥来调试它们。使用的Zigbee 3.0设备是SmartThings插座(IM6001-OTP01),SmartThings运动传感器(IM6001-MTP01),SmartThings智能灯泡和Schlage Connect Smart Deadbolt(分别见图h,c,d和a)。其余设备是旧Zigbee设备,它们在调试过程中使用默认的Trust Center链接密钥。特别是,使用的传统Zigbee设备是Centralite 3系列智能插座,SmartThings运动传感器(F-IRM-US-2),SmartThings多功能传感器(F-MLT-US-2) ,以及Yale确保锁定触摸屏锁舌(分别见图g,b,e和f)。

为了研究NWK命令的代表性示例进行了八个实验,将其代号为H-T,其中H∈{sth2,sth3}和T∈{room,duos,house,trios}。使用H = sth2指代使用STH-ETH-200集线器的实验,而使用H = sth3指代使用IM6001-V3P01集线器的实验。使用T = room来指将设备放置在单个房间中的实验,而T = duos指的是Zigbee网络一次仅包含一个集线器和一个其他设备的实验。此外,T = house是指将设备放置在三个不同房间中的实验。最后,T = trios是指Zigbee网络一次仅由一个集线器,一个Zigbee路由器和一个其他设备组成的实验。例如,sth3室对应于使用IM6001-V3P01集线器并将所有设备都放置在单个室中的实验。

在每个实验开始之前,对设备进行了出厂重置。接下来使用SmartThings智能手机应用程序注册了中心,以初始化Zigbee网络。请注意,这两个集线器的默认配置是禁用Zigbee设备的自动固件更新,而只有STH-ETH-200集线器接受不安全的重新加入请求。USRP N210在所选通道上连续捕获IEEE 802.15.4数据包。为了收集各种各样的NWK命令,在每个实验中执行了多项操作,包括将设备添加到网络,触发传感器,向执行器发出命令,重新关联设备,关闭设备电源以及引起PAN ID冲突。将这些动作组合起来,形成了八个实验中通用的程序。程序的详细说明包含在数据集中。下表显示了在整个实验中捕获的不同数据包类型的数量,这些数据包总共持续了约34.644小时。

 

0x07 Result

在本节中演示集中式Zigbee网络中禁用的MAC层安全性的后果。首先表明可以从可操作的Zigbee网络中推断出有价值的信息,然后将其用于开发决策树以识别加密的NWK命令。最后发起选择性的干扰和欺骗攻击,迫使最终用户将其设备之一恢复出厂设置,并最终暴露出网络密钥。

(1)侦察攻击

攻击者可以通过记录MAC报头中不同的源地址和目标地址对来推断附近Zigbee网络的拓扑。例如,在sth2房屋实验期间,通过观察PAN ID为0xd9b1的MAC数据包的寻址字段来生成上图。识别Zigbee协调器是微不足道的,因为它始终使用0x0000作为其简短的广告位,仅拓扑结构不足以绝对确定地确定所有设备的逻辑设备类型。

主动识别逻辑设备类型:可以利用只有Zigbee路由器和Zigbee协调器响应信标请求这一事实来识别Zigbee路由器。通过注入信标请求,然后观察哪些设备响应了信标,攻击者可以识别出通信范围内的所有Zigbee路由器。回想一下Zigbee设备在MAC层上没有利用任何安全服务,这意味着攻击者可以欺骗上表中所示的任何MAC命令。要验证无响应的设备确实是Zigbee终端设备,攻击者可以欺骗孤立通知潜在的Zigbee终端设备,以便如果确实是Zigbee终端设备,则其父设备将以协调器重新排列响应。使用测试平台验证了这两种攻击,而没有观察到对网络正常运行的任何副作用。请注意,在实验过程中,即使仅旧版Zigbee终端设备发送了孤立通知,所有Zigbee路由器和Zigbee协调器都响应了协调器重新调整,无论假定的孤立设备是旧版设备还是Zigbee 3.0设备。

匹配短地址和扩展地址:虽然攻击者不必假冒其他设备来注入有效的信标请求,但攻击者需要该设备的扩展地址才能成功欺骗孤立通知。但是,攻击者可以通过被动检查Zigbee流量来获取此信息。 NWK标头的寻址字段与MAC报头的寻址字段(其中短地址,扩展地址或不使用地址用于数据包的源字段和目标字段)不同。总是包含两个短地址,并且它们还可能包含相应的扩展地址。实际上,每个NWK命令都必须包括其源的扩展地址。当目标地址的扩展地址已知且未广播NWK命令时,也将包括该地址。另外,每个利用NWK层安全服务的数据包都要求在辅助报头中包含发送方的扩展地址,它将与MAC标头中源的短地址匹配。由于在Zigbee网络上禁用了MAC层安全性,因此所有这些标头字段都是未加密传输的。因此,被动攻击者只需检查MAC数据包即可将扩展地址与短地址进行匹配,反之亦然。

被动识别逻辑设备类型:正如在本小节开头所描述的那样,无需注入任何数据包就可以识别Zigbee协调器。理想情况下,攻击者希望能够被动地识别Zigbee路由器和Zigbee终端设备。这将需要观察已知仅由Zig吧bee路由器或仅由Zigbee终端设备发送(或接收)的数据包。实际上,Zigbee终端设备将定期向其父设备发送数据请求,以便轮询未决的数据包。在检查数据请求时需要注意,因为Zigbee路由器在加入网络时也会使用它们;然而,在这种情况下,数据请求的源将使用其扩展地址。

关联成功后,数据请求的源将使用其短地址来轮询未决的数据包。只要数据请求的源地址是短地址,它就会在整个实验过程中由Zigbee终端设备进行传输。请注意,由于只有Zigbee路由器和Zigbee协调器是这些数据包的接收者,因此攻击者也可以使用数据请求来被动标识Zigbee路由器。但是,为了识别没有子代的Zigbee路由器,攻击者将不得不观察仅由Zigbee路由器传输的数据包。有一些MAC命令可用于此目的,但它们不会定期发送。因此,转向NWK命令(如下表所示)。实际上,Zigbee协调器和所有Zigbee路由器都在定期发送链路状态命令。即使NWK命令标识符字段是经过典型加密的,攻击者也可以通过检查其未加密的报头字段来区分链接状态命令和其他数据包。因此,被动攻击者有可能推断每个Zigbee设备的逻辑设备类型。

识别硬件设备:设备的扩展地址对应于唯一的64位IEEE地址,其中包含组织标识符。由于Zigbee联盟维护着经过认证的Zigbee产品的公开注册表,因此攻击者可能会尝试使用其组织名称作为该注册表上的搜索关键字来识别从其生成观察到流量的硬件设备。另外,智能集线器供应商通常会发布受支持设备的类似列表(例如,“与SmartThings一起使用”网页),如果可以识别出智能集线器的供应商,也可以使用这些列表。通过考虑攻击者针对该设备推断出的逻辑设备类型,可以进一步缩小可能的硬件设备列表。

例如,在实验中使用的Smart Things Outlet(IM6001-OTP01)的扩展地址为28:6d:97:00:01:09:4b:c8,其组织标识符为0x286d97,已为其分配SAMJIN Co.,Ltd. 。在撰写本文时,在Zigbee联盟的注册表中搜索该组织会返回五种经过认证的Zigbee产品。但是,这些产品中只有一种用作Zigbee路由器,确实与设备匹配。重要的是要注意,其他组织标识符并没有得出结论性的结果,因为它们对应于片上系统(SoC)制造商,这些制造商的产品可在多种Zigbee设备中找到。

识别旧的Zigbee设备:攻击者有兴趣将旧Zigbee设备与Zigbee 3.0设备区分开,尤其是在Zigbee 3.0网络中,因为前者使用默认的Trust Center链接密钥来加入网络,这使它们成为攻击的潜在目标,如在下面的解释中所述。假设攻击者能够识别硬件设备,则经过认证的Zigbee产品注册表将提供此信息。例如,当前由SAMJIN Co.,Ltd.认证的所有Zigbee产品都是Zig bee 3.0设备。此外,观察到在实验中,只有Zigbee 3.0设备发送了终端设备超时请求。当发送此NWK命令时,它的父级将发送一个终端设备超时响应。

但是,这对NWK命令是在Zigbee PRO 2015规范中引入的,因此一些旧式Zigbee设备不支持该命令。攻击者可以通过引起PAN ID冲突,使Zigbee终端设备重新加入其网络,以观察哪些发送了“终端设备超时请求”,以及哪些父母以“终端设备超时响应”进行了响应。正如在以下小节中所示,即使以加密的方式传输了它们的NWK命令标识符字段,攻击者也可以100%准确地识别这些NWK命令。

(2)NWK命令的标识

应该清楚的是,攻击者将从能够识别加密的NWK命令的过程中受益匪浅。尽管NWK帧类型字段始终是未加密的,但由于它是NWK标头的一部分,并且MAC层安全性已禁用,因此NWK命令标识符字段通常是加密的,因为它是NWK有效负载的一部分。因此,被动观察者可以区分NWK命令与其他数据包类型,但不能区分实际上是哪个NWK命令。

构造了下表,其中包含可用于加密NWK命令分类的四个功能的可能值集。有效负载长度和半径列的值基于Zigbee PRO 2015规范的要求。但是,该规范未明确说明所有NWK命令的NWK目标和源地址字段的可能类型。结果,这两列中的某些值是基于对规范的理解,进行的实验以及所做的假设。请注意,不同NWK命令之间的有效负载长度差异很大,而其中一半仅限于单跳传输。此外,请注意,某些NWK命令仅限于某些NWK目标和源类型。

由于MAC协议数据单元(MPDU)的长度包含在PHY标头中和影响其预期长度的所有标头字段均未加密传输(例如,是否存在NWK目标的扩展地址),攻击者可以在传输NWK命令时计算其有效载荷长度。半径字段(表示一个数据包可以执行多少跳)也未加密传输。请注意,即使多跳命令的Radius字段可以达到1的值,仍然可以通过比较MAC和NWK标头中的寻址字段来确定数据包是否已遍历网络,还是将它们与单跳命令区分开来。不。 NWK目标和源类型可以使用第7.1节中介绍的方法进行推断。仅使用这些功能,就可以构建一个决策树,以100%的精度识别12条可能的NWK命令中的6条。其余的NWK命令可能到达不纯的叶节点,该叶节点代表两种或三种可能的标识。

现在,描述获得100%准确度的派生决策规则。从上表中可以看出,只有“终端设备超时请求和响应”命令的有效载荷长度可以为2个字节。此外,“终端设备超时请求”命令的源始终是Zigbee终端设备,目的地是Zigbee协调器或Zigbee路由器,而“终端设备超时响应”命令的模式相反。因此,可以通过考虑NWK目标类型来将这两个NWK命令彼此区分开。在下图中提供的部分决策树中对此进行了描述。接下来,如上表所示,链路状态和路由请求命令是唯一广播到所有Zigbee路由器和Zigbee的NWK命令。协调器(由0xfffc广播地址表示)。可以根据它们是否是单跳NWK命令来区分它们。此外,请注意,“链接状态”命令仅由Zigbee路由器和Zigbee协调器发送,但是不必依靠这一事实就可以将它们标识为“链接状态”命令。

因此,被动攻击者可以通过检测链接状态命令来识别Zigbee路由器。还可以100%准确地识别“网络更新”和“重新加入响应”命令,将在以下小节中针对所发起的攻击进行讨论。

(3)密钥传输攻击

安全研究人员已经意识到,自Zigbee协议的早期版本以来,网络密钥到新设备的传输可能得不到充分的保护,从而导致“短暂的脆弱性”。关于传统的Zigbee网络,Zillner和Strobl建议攻击者诱使最终用户使用干扰技术将其Zigbee设备之一恢复出厂设置,从根本上延长了漏洞的发生时间。但是,Zigbee 3.0设备可以使用安装代码加入Zigbee 3.0网络,该安装代码用于派生特定于设备的预先配置的Trust Center链接密钥,并按顺序通过带外通信通道传输到Trust Center。加密将网络密钥传输到新设备的Zigbee数据包。现在研究了该策略在克服网络密钥泄漏漏洞方面的有效性。

评估Zigbee 3.0设备的调试:在设备上及其包装盒内找到购买的Zigbee 3.0设备的失速代码,同时为灯泡提供了其他贴纸。为了将Zigbee 3.0设备添加到Zigbee 3.0网络,使用智能手机扫描了它的QR码,如上图a所示。提供了在不扫描其QR码的情况下添加Zigbee 3.0设备的选项,选中该选项后将显示上图b中所示的消息。在那种情况下,Zigbee协调器使用默认的“信任中心”链接密钥来加密“传输密钥”命令。假设不安全的重新加入请求不被接受,攻击者获取网络密钥的主要策略是发起拒绝服务攻击,这将迫使最终用户将使用已知信任中心的设备恢复出厂设置。链接密钥以加入网络。

攻击者可以通过识别和定位旧Zigbee设备来完成此任务。或者,如果攻击者可以访问Zigbee 3.0设备,则可以将其瞄准Zigbee 3.0设备;如果攻击者可以看到其QR码,最终用户未安全处置设备的包装箱或设备,则Zigbee 3.0设备可能会泄漏。以前由其他用户拥有。Zigbee 3.0设备的QR码还包含其相应设备的扩展地址,如果攻击者能够访问安装代码,则他们可能更有可能通过仅针对相应的Zigbee 3.0设备来获取网络密钥,因为最终用户可能不会考虑其安装代码被泄漏并在出厂时进行重置的可能性。不加思索。

强制设备恢复出厂设置:理想情况下,攻击者希望将必须阻塞的数据包数量降到最少,以强制设备恢复出厂设置,意识到这可以通过引起PAN ID冲突来实现。注入使用与最终用户的Zigbee网络相同的PAN ID,但具有不同的扩展PAN ID(EPID)的伪造信标,足以启动PAN ID冲突解决过程。每个收到伪造信标的Zigbee路由器都会通知网络管理器,该管理器通常是Zigbee协调器,并使用“网络报告”命令。然后,网络管理器选择一个新的PAN ID,并使用“网络更新”命令将其广播到网络中的所有设备。

传输网络更新命令后不久,网络管理器和接收该命令的所有设备将切换到新的PAN ID。 Zigbee终端设备在PAN ID更改之前可能未收到“网络更新”命令,在这种情况下,它们将尝试重新加入网络。因此,如果攻击者有选择地阻塞了网络管理器发出的网络更新命令,则某些设备将不会自动切换到新的PAN ID。

攻击者可以识别网络更新命令,因为它们是唯一可以具有12个字节有效负载长度的NWK命令。也可以识别重新加入响应,因为它们是唯一的NWK命令,其有效载荷长度可以为3个字节,并且仅限于单跳传输。但是,在实验过程中,观察到即使阻塞了所有“重新加入响应”,某些设备仍能够使用新的PAN ID重新加入网络。为了使设备保持断开连接,必须有选择地阻塞更新的信标,以防止设备更新其PAN ID。还观察到,如果在PAN ID冲突后为其数据请求欺骗了MAC确认,则Zigbee终端设备未按预期启动重新加入过程。发起这些拒绝服务攻击会导致以下结果:

(a)最终用户将无法更改其受影响的执行器的状态,

(b)如果受影响的传感器检测到事件,它将无法通知最终用户用户;

(c)依赖于受影响设备的自动化规则将无法正常运行。

如果攻击者成功锁定了使用已知信任中心链接密钥的Zigbee设备,并且最终用户决定将其重置为出厂设置,则攻击者可以在调试过程中通过嗅探和解密Transport Key命令来访问网络密钥。然后,攻击者可以解密大多数加密的有效载荷,并注入命令来更改最终用户设备(包括使用安装代码的Zigbee 3.0设备)的状态。

意外行为:通过修改ATUSB的固件启动了上述解决方案。当Zigbee路由器无法接收网络更新命令时,观察到了一些意外行为。在确定无法再到达Zigbee协调器之后不久,Smart Things Outlet(IM6001-OTP01)很快启动了重新加入过程,但Centralite 3系列Smart Outlet在大约25分钟后启动了该过程。这种现象也可以在数据集中观察到。更有趣的是,SmartThings智能灯泡在监控它的38个小时内没有像智能插座那样启动重新加入过程。这似乎是固件问题,因为Centralite插座是旧的Zigbee设备,而SmartThings灯泡是Zigbee 3.0设备。注意到,这种行为使攻击者受益,因为它们将不得不阻塞少于预期数量的数据包。鉴于经过认证的Zigbee设备数量众多,因此未知有多少没有启动或严重延迟重新加入过程的设备,如果它们没有收到网络更新命令。

责任披露:向Zigbee联盟报告了本文的发现,其代表之一证实了其有效性。他们说,他们知道PAN ID冲突攻击,并且已经实施了规范更改,可以防止恶意PAN ID更改。关于对网络更新命令的选择性干扰,他们评论说,即使在非恶意情况下,PAN ID更改也可能会丢失,因此,未来的规范将需要更具攻击性的算法。他们还认为,很难从Zigbee 3.0设备泄漏网络密钥。但是,由于传统的Zigbee设备仍可在市场上购买,并且消费者可能还没有将其全部替换为Zigbee 3.0设备,因此认为密钥传输攻击仍然可以在野发起。

安全性增强:认为如果可在带外通信通道上重新配置信任中心链接密钥,则将显着改善通信过程的安全性。特别是,当设备尝试加入新网络并通过NFC进行传输时,此加密密钥可能会有所不同。鉴于诸如SmartThings之类的智能家居生态系统已经依靠智能手机应用程序让用户向其Zigbee网络添加设备,因此使用NFC不会对可用性产生任何重大影响。但是,由于需要额外的硬件,设备的制造成本可能会增加。最后,应该使最终用户意识到使用旧Zigbee设备会给他们的网络带来的安全风险。

 

0x08 Conclusion

在这项工作中介绍Zigator和一个测试平台设计,该设计可以对Zigbee网络进行深入的安全性分析。描述了针对集中式Zigbee网络的多次侦察攻击,并表明,尽管进行了NWK层加密,攻击者仍可以100%准确地识别某些NWK命令。使用此信息来开发选择性的干扰和欺骗攻击,这些攻击可通过将目标锁定为使用已知信任中心链接密钥的设备来导致网络密钥暴露。当公开发布软件工具和数据集时,提供了防止网络密钥泄漏的建议。本文工作揭示了在集中式Zigbee网络中禁用MAC层安全性的后果。正如所展示的,NWK层安全性不足以抵御多种被动和主动攻击。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多