G.O.S.S.I.P 阅读推荐 2022-09-01 Zigbee’s Network Rejoin

admin 2023年2月21日16:03:43评论11 views字数 4901阅读16分20秒阅读模式

九月的第一天是香港中文大学ANSRLab投稿的关于Zigbee协议研究的最新工作Zigbee’s Network Rejoin Procedure for IoT Systems: Vulnerabilities and Implications,该项工作已被RAID 2022录用。


G.O.S.S.I.P 阅读推荐 2022-09-01 Zigbee’s Network Rejoin

Motivation

如今IoT设备(如门锁,智能灯,传感器)已被广泛部署在智能家居场景。这些设备通常需要加入一个无线网络来为用户提供各种各样的服务,所以通信协议对于维持网络中设备的正常工作,有着至关重要的作用。Zigbee协议是目前已知的协议中低功耗,短距离设备通信的主流协议,换言之其任何的设计缺陷都会造成严重的安全漏洞,使得攻击者可以攻击协议设备。

在本文中,作者对Zigbee协议进行了调研,发现其定义了许多网络准入方法来帮助Zigbee设备加入,重联以及退出网络。其中发现了一个有趣的名为“trust center rejoin”的方法:该方法允许设备在无需验证(即发送未加密的请求数据包)的情况下重连网络。其设计初衷是在一些特殊情况下(例如设备断电期间,网络秘钥得以更新,导致设备无法恢复电力后无法重联网络)提高设备可用性,减少用户操作。然而,这样的insecure-by-design的准入方法常常会受到攻击者的青睐。遗憾的是,作者发现现有的工作并没有对这个方法给予太多的关注以及严格的安全保障分析。由此,本论文的目的是给出第一个关于trust center rejoin procedure的系统性安全分析,发现其潜在的设计漏洞和可能的滥用途径,以及最终提出修复方案。


Methodology

针对通信协议的安全分析是一项困难的任务。首先,协议往往指定多种device attributes(如设备类型)以及多样的message type。其结果是当网络中存在多个设备时,设备间的交互极大的提升了网络状态空间的size;其次,通信协议往往没有清晰地定义安全属性(如integrity,confidentiality),这也使得安全分析失去了目标。

为解决以上的挑战,作者在论文中采用了model checking的方法。该技术高效探索状态空间,并且使用严格的规范(如LTL formula)来协助安全属性的声明。以model checking为核心,作者设计了一个自动化验证工具Verejoin,用于验证trust center rejoin procedure的安全保障。其架构图如下所示:


G.O.S.S.I.P 阅读推荐 2022-09-01 Zigbee’s Network Rejoin


Verejoin由以下两个模块构成:

Model generator

该模块将整个procedure抽象成一个有限状态机(FSM)。状态机由网络中的设备构成,每个设备拥有其对应的一系列属性。所有设备的属性共同构成了这个状态机的状态。状态与状态间的转移是通过定义好的Zigbee operation(即支持传送的信息类型),以及攻击者的攻击手段造成的。在本文中,作者考虑的是经典的Dolev-Yao攻击者模型,即攻击者可以进行以下操作:

  1. 窃听Zigbee流量;

  2. 注入或者阻断Zigbee数据包;

  3. 发送虚假数据包来伪装成合法设备。


Model checker

该模块负责安全属性的定义,以及执行model checking工作。在本文中,作者考虑了三类安全属性,同时使用LTL formula对其进行规范描述。

  1. Integrity property. 攻击者不能通过任何途径修改设备属性。

  2. Confidentiality property. 攻击者无法获取当前网络安全信息,如网络密钥。

  3. Availability property. 攻击者不能通过任何途径影响正常设备工作。

在状态机和安全属性定义生成后,该模块利用一个流行的model checking工具Spin,来进行安全检查工作。Spin最终输出一系列的counterexample path:每一条path都代表了一个违反安全属性的执行序列。最后该模块将执行序列翻译成human-readable reports(即每一步所传送的message type或攻击者的攻击决策),使得安全研究人员可以根据这report来定位潜在的设计漏洞。


Rejoin Vulnerabilities

通过对Verejoin输出结果的分析,作者发现了trust center rejoin procedure存在的三类security vulnerabilities,并设计了四个proof-of-concept attack。

  1. Exploitable Capacity. Trust center rejoin procedure允许设备临时加入网络,然而对设备临时加入网络的时间并未加以限制。该漏洞使得攻击者可以创建大量的虚假设备来消耗网络资源,以及长期占用网络的capacity。最终用户无法将新设备添加入网络 (Capacity Exploitation Attack)。

  2. Inconsistent recognition of device properties. Zigbee的网络管理设备(如hub)对目前网络中的rejoin request未进行严格检查。该漏洞使得攻击者可以创建虚假设备来伪装成合法设备发起请求,最终篡改管理设备中存储的关于合法设备的信息。具体来说,攻击者伪装成合法设备,并发送rejoin request。在这个请求的payload中,攻击者上传虚假的设备属性信息。由于网络管理设备缺乏对虚假设备信息的检查,攻击者可以轻松修改管理设备中存储的关于受害设备的属性信息。其影响是当受害设备试图与管理设备通信时,由于其设备属性信息与存于管理设备中的信息并不一致,其将会被剔出网络而造成离线 (Offline Attack)。

  3. Support of Well-Known Link Keys.  最终,作者证实了一个之前报道过的关于trust center rejoin的漏洞,即使用了安全性低的加密方法来进行网络秘钥传输。这使得攻击者可以伪装成一个合法设备尝试重联网络,诱导管理设备传送网络密钥。由于该秘钥使用了众所周知的link key进行加密,攻击者最终成功获取网络秘钥,并攻克整个Zigbee网络 (Key Leakage Attack)。作者同时探索了另一种攻击手段,即攻击者可以伪装成一个合法的网络管理设备,来处理其他设备的重连请求。最终攻击者诱导合法设备加入他所掌握的网络,并使用攻击者指定的网络秘钥来替换自己原有的合法秘钥 (Hijacking Attack)。


Zigbee Testing Tool

为了验证以上发现的设计漏洞,作者进一步设计了Zigbee测试工具:ZigHomer,来对在售Zigbee设备进行安全测试。工具的架构如下图。


G.O.S.S.I.P 阅读推荐 2022-09-01 Zigbee’s Network Rejoin



ZigHomer由四个模块构成:

  1. Functionality provider:通过与最底层的收发器进行命令传输,该模块提供最基本的包嗅探和包传输功能。

  2. API provider:该模块负责将嗅探到的数据包进行解析,以获取消息类型,以及发送者信息(如地址)。同时,该模块提供一系列API用于注入各种类型的Zigbee包裹。

  3. Reconnaissance module:该模块利用被动嗅探和主动注入,收集当前网络中所有Zigbee设备的地址信息。同时,通过对这些设备发送的数据包类型进行分析,该模块可以自动解析并获取每个设备的角色(如网络管理设备)。所有收集到的设备信息最终存于设备仓库中,方便以后用户执行测试任务,选取测试对象。

  4. Testing module:该模块允许用户自定义测试任务,针对当前网络中的设备进行测试。针发现的三类漏洞,作者设计了4类测试任务,每一类对应了一个proof-of-concept attack,便于后续对在售设备的测试分析。


Evaluations

作者利用ZigHomer对在售的Zigbee设备进行了详尽的测试。使用的10件测试设备来自四家主流IoT设备厂商:SmartThings, Philips Hue, IKEA和小米。其测试结果如下。


G.O.S.S.I.P 阅读推荐 2022-09-01 Zigbee’s Network Rejoin


作者发现目前市面上的大部分Zigbee设备,都会受到所发现的漏洞影响。对于少数未能攻击成功的设备(如SmartThings Multipurpose Sensor),作者发现其Zigbee协议栈并未按照Zigbee协议的规范来设计,由此规避了攻击。理论上,只要一个设备严格遵守Zigbee协议,那作者所设计的攻击就能成功在该设备上发起。

针对Capacity Exploitation Attack和Offline Attack两类Denial-of-Service attack,作者对其持久性进行了分析。结果显示当攻击成功发起后,用户会在很长一段时间内(至少40分钟)无法添加新设备,或者无法使用已经加入网络的设备。对于某些厂商的设备(如Philips),这种影响甚至是永久性的:即使用户对设备进行初始化操作,设备也无法复原。


G.O.S.S.I.P 阅读推荐 2022-09-01 Zigbee’s Network Rejoin

针对Key Leakage Attack和Hijacking Attack,作者同样进行了测试,并录制了demo视频。视频中展示了攻击者可以轻易利用漏洞来控制Zigbee网络中的任意设备(例如执行开灯操作)。

demo:https://sites.google.com/view/rejoin-vulnerability/attack-materials?authuser=0


Amendment

作者在第一时间将发现的问题报告给Zigbee Alliance和受影响的设备厂商,随后得到了他们的认可。作者同时协助Zigbee Alliance对以上报告的问题进行了修复,并提出了三条解决方案:

  1. 改进aging-out process。该方案要求任何离线设备在利用trust center rejoin procedure临时加入网络后,规定时间内必须发送一个加密的数据包,证明自己已拥有网络秘钥。否则规定时间过后,该设备将会被踢出网络,释放所占用的capacity资源。

  2. 加强设备属性的检查。该方案要求任何的trust center rejoin请求不可修改网络管理设备中存储的任何信息。任何涉及到修改网络管理设备中的存储信息的操作都必须要经过验证(即数据包加密)方可进行。

  3. 移除对well-known link key的支持。Zigbee网络的安全密钥泄露正是因为协议支持使用众所周知的link key加密。因此,作者协助Zigbee联盟,将协议中的well-known link key支持移除。

作者同时对Verejoin中的model进行了修改,将以上的解决方案整合到model中,验证结果显示之前report的counterexample path全部消除,并证明了以上解决方案的有效性。



论文下载:https://www.jcwang.me/raid22-camera-ready.pdf





投稿作者介绍:

王锦程  香港中文大学

本科毕业于华中科技大学,目前在香港中文大学攻读CSE PhD,师从Prof. John C.S. Lui。研究方向聚焦于IoT security,涉及底层通信协议安全,以及上层数据隐私保护和设备异常状态检测。欢迎同方向的人多多交流,共同探讨。

个人主页:https://www.jcwang.me/




一个小广告~

如果对 CUHK ANSRLab 感兴趣,John 也在招收相关方向的博士生和博士后,详细信息可以参考以下链接:

ANSR Lab主页:

http://ansrlab.cse.cuhk.edu.hk/

Important information for potential post-doc:

https://www.cse.cuhk.edu.hk/~cslui/potential_postdoc.html

Important information for potential Ph.D students:

https://www.cse.cuhk.edu.hk/~cslui/potential_students.html


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-09-01 Zigbee’s Network Rejoin

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月21日16:03:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-09-01 Zigbee’s Network Rejoinhttp://cn-sec.com/archives/1270301.html

发表评论

匿名网友 填写信息