机械锁也许是我们日常生活中最根本、最具象、最熟悉的安全屏障。人们锁上门,期望这些锁能把坏人关在门外,但安全行业有一句老话:“防君子不防小人”。在物联网“智能锁”时代,事情变得更加糟糕,因为开锁工具不再是钩针,而是脚本和嗅探器。
近日,渗透测试专家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:亚马逊托管的代理与主题名称列表
这是一个亚马逊托管的代理与主题名称列表,包括个人电子邮件地址和其他数据,看上去似乎与智能门锁有关。Craig Young使用Linux命令行工具(例如mosquitto_sub)查询该服务器,结果立刻被来自世界各地的大量个人信息淹没了。这些数据包括与智能门锁关联的用户电子邮件和IP地址,以及智能门锁锁打开和关闭的时间戳记录等。
下一步是通过购买一个ULTRALOQ智能门锁进行测试,明确问题的范围。
与大多数智能门锁类似,ULTRALOQ智能门锁也是电池供电,与连接到WiFi的网桥设备保持蓝牙配对。拿到该锁后,我将它与WiFi桥配对,并监听其通过MQTT发送的消息。
图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在一天内做出回应确认该威胁,并表示已经采取补救措施:
- 已关闭端口1883,端口8883是经过身份验证的端口。
- 已关闭未经身份验证的用户访问。
- 已经在订阅和传递功能中添加了一些规则,现在未经过身份验证的用户无法订阅数据。
- 对于电子邮件问题,他们将在下一个应用程序升级时修复。
遗憾的是,以上这些措施实际上并没有解决问题。这里的主要问题是,U-Tec专注于用户身份验证,但未能实现用户级访问控制。我演示了任何免费/匿名帐户都可以连接任何智能门锁用户的设备并与之交互。这一切仅需嗅探应用程序的MQTT流量,以获取设备特定的用户名和作为密码的MD5摘要。
图3:使用 HTTP Canary嗅探帐户密码。
U-Tec的工程师沉默了几天,但随后宣布用户隔离已经实现。Craig Young发现,攻击者确实不能再在帐户之间发布消息了,本次渗透测试发现的问题似乎已经解决,但这也许仅仅是开始。仅仅数月前,Pen Test Partners曾报道在ULTRALOQ智能门锁中曾发现大量严重安全问题,涉案及API、BLE密钥、存储等多个层面的漏洞。
智能门锁只是冰山一角:MQTT和物联网安全风险
在与U-Tec 合作以来,Craig Young通过研究暴露的MQTT系统,发现了无数的工业物联网网络风险,包括车辆跟踪、出租车调度、彩票亭、建筑管理系统等。其中许多系统由向客户提供服务的设备制造商操作。在一个案例中,一家欧洲设备供应商,负责监控他们销售给压缩天然气 (CNG) 加油站的产品。在另一个案例中,一家教育服务提供商的网络泄露了有关个别学生何时到达和离开小学的详细信息。
每天,都有大量未经(网络)安全测试的接入云端的物联网设备上市,消费者必须意识到这个逐渐累积的风险。我们要求高速公路上的车辆遵守安全标准,并经过排放测试,以确保环境安全,但信息高速公路上的互联网设备却完全是法外之地。
即使是门锁这样的关键安全系统,对产品网络安全的规范和要求也很少,安全监督更少。正如我们在Mirai和其他IoT僵尸网络中所看到的那样,互联网上的非关键设备,例如智能灯泡、智能冰箱、智能音箱、摄像头等,在发生故障或被大规模劫持时也会造成严重破坏。Mirai和其他僵尸网络已经“招募”了大量“肉鸡”设备,然后他们可以使用这些设备扰乱社会和敲诈企业。这些僵尸网络已经证明自己能够产生令人难以置信的DDoS攻击流量,但与入侵并控制主流厂商的物联网云端相比,目前的威胁也仅仅是冰山一角。
【本文是51CTO专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】