机械锁也许是我们日常生活中最根本、最具象、最熟悉的安全屏障。人们锁上门,期望这些锁能把坏人关在门外,但安全行业有一句老话:“防君子不防小人”。在物联网“智能锁”时代,事情变得更加糟糕,因为开锁工具不再是钩针,而是脚本和嗅探器。
近日,渗透测试专家Craig Young披露了某品牌智能门锁漏洞背后隐藏着的安全威胁:攻击者可以物理定位并远程控制连接到智能门锁供应商云基础结构的任何锁。安全牛编辑整理如下:
虽然本文中介绍的漏洞已经被修复,但是本次渗透测试暴露了整个智能门锁行业,乃至物联网领域普遍存在的隐私和安全风险。本文的目的是让人们了解并重视物联网设备以及驱动物联网的集中式云计算的安全问题和威胁。
Craig Young选择了市场上一款热门的智能门锁——U-Tec生产的UltraLoq智能门锁,该锁连接到供应商的云基础架构。已经发现的安全漏洞,例如服务配置错误已经于2019年11月初通知了U-Tec,本次研究的焦点是集中化的云基础设施提供数据和控制所带来的风险,很多物联网应用场景,例如智慧城市和无人驾驶汽车等都可能存在类似的风险。
U-Tec UltraLoq一开始是众筹平台Indiegogo上的一款热门产品,现已通过亚马逊、家得宝和沃尔玛等主要零售商直接销售给消费者。这些锁拥有一些高级功能,包括指纹读取器、反窥视触摸屏,以及通过蓝牙和WiFi的APP端控制。这些联网功能带来极大便利的同时,也让一些用户对安全性感到不安。为了打消用户的疑虑,U-Tec的网站有一篇文章向用户保证:“云服务器具有很强的安全性,用户的数据已被MD5算法加密”。
对U–Tec智能门锁的渗透测试从Shodan开始,具体来说是Shodan的MQTT数据集。
首先,我们简要介绍一下MQTT的背景信息。
MQTT是一种轻量级的发布-订阅协议,其中的消息代理负责协调连接节点之间的局部数据交换。MQTT的应用场景很多,例如空调系统。请设想一个包含多个温度传感器(恒温器),可以通过数字方式控制风扇的HVAC系统,以及根据室温自动打开/关闭风扇的监控应用程序。这些传感器和执行器是连接到MQTT代理的低功耗IoT组件,传感器发布数据,监控应用订阅此数据,并发送命令给执行器。
传感器的数据使用描述性和分层主题名称发布,例如101室的恒温器将使用"x号楼/温度/楼层1/房间101"的格式发布数据。监控应用将订阅 “建筑 X/温度/#”。#充当通配符,允许应用接收来自所有房间的温度输入。
在没有适当的身份验证和授权方案的情况下部署MQTT时,会出现MQTT被滥用的风险,任何连接到代理的人都可以获取敏感数据,甚至能够控制动力学系统。获得MQTT代理访问权限的未授权用户可以轻松地猜测主题名称并使用#订阅各种主题以获取传输代理的数据。
通过公共MQTT数据泄露的个人信息
Shodan的老玩家们一直在使用这些通配符查询收集暴露在公共互联网上的MQTT代理的数据。尽管Shodan不存储扫描的个人消息,但却能检索83,000多个代理中的主题名称。Craig Young测试了各种MQTT搜索词,看看多少能够命中。有一个服务器引起了Craig Young的注意,因为它有包含MQTT主题名称的大量页面,反复出现在搜索中,关联信息包括“门锁”和免费电子邮件提供商,如“gmail.com”。
图1:亚马逊托管的代理与主题名称列表
图2:确认服务器提供实时客户数据(已脱敏)
经过几个锁定/解锁周期后,我确认了解锁过程中重复的消息流。然后,我准备了一个Python脚本来重放这些消息,并确认这种方法能够打锁。
Craig Young发现:攻击者只需知道设备MAC地址就可以很容易地窃取“解锁令牌”,批量或定点解锁智能门锁。
MQTT数据关联的电子邮件地址、本地MAC地址和公共IP地址等数据可用于地理位置定位,足以精确识别个人。该设备还向无线电范围内的任何人广播MAC地址。
这意味着:匿名攻击者还可以收集任何活跃U-Tec客户的详细身份信息,包括其电子邮件地址、IP地址和无线MAC地址。
·这足以识别用户个人身份及其家庭地址
·如果此人曾经使用U-Tec应用程序远程解锁其门,攻击者还将获取其令牌,可在任意时间解开门锁。
同样,攻击者可以实施破坏性攻击,通过发送欺骗信息来阻止智能锁的主人解锁。
11月10日,Craig Young通知U-Tec他们的云服务给用户带来巨大安全风险,U-Tec在10小时内就做出回复,指出:
U-Tec智能门锁的设备端需要令牌授权,未经授权的用户将无法开门。
显然,U-Tec依然没有意识到真正的威胁,Craig Young于是向U-Tec提供了Shodan的截图,包括已泄露的,包含活跃客户电子邮件地址的MQTT主题名称列表。这一次,U-Tec在一天内做出回应确认该威胁,并表示已经采取补救措施:
1.已关闭端口1883,端口8883是经过身份验证的端口。
2.已关闭未经身份验证的用户访问。
3.已经在订阅和传递功能中添加了一些规则,现在未经过身份验证的用户无法订阅数据。
4.对于电子邮件问题,他们将在下一个应用程序升级时修复。
遗憾的是,以上这些措施实际上并没有解决问题。这里的主要问题是,U-Tec专注于用户身份验证,但未能实现用户级访问控制。我演示了任何免费/匿名帐户都可以连接任何智能门锁用户的设备并与之交互。这一切仅需嗅探应用程序的MQTT流量,以获取设备特定的用户名和作为密码的MD5摘要。
图3:使用 HTTP Canary嗅探帐户密码。