物联网智能锁漏洞凸显更大问题

2020-08-10 08:18:50

机械锁可能是我们日常生活中最基本、最有形、最熟悉的安全层。人们锁门是希望这些锁可以把坏人挡在门外,但安全行业有一句常见的谚语,锁只会让诚实的人保持诚实。这或许比物联网“智能锁”时代更真实,在这个时代,开锁器和碰撞键往往可以被脚本和嗅探器取代。这正是我在去年年底评估的一款支持互联网的锁的情况。那时,匿名攻击者可以物理定位并远程控制连接到供应商的云基础设施的任何锁。

尽管本博客中概述的具体问题已经得到解决,但业界对隐私和安全的潜在担忧仍然存在。本文的目的是让人们认识到围绕互联网连接设备和推动物联网的集中式云计算的问题。

我将在这篇文章中谈论的设备是U-Tec UltraLoq,它连接到供应商的U-Cloud基础设施。备案,我在2019年11月初通知了U-Tec,问题在一周内得到解决。这种情况下的基本问题,即服务配置错误,将在较高级别进行解释,但本研究的更大焦点是围绕通过中央权威机构提供数据和控制所带来的风险。

U-Tec UltraLoq始于Indiegogo,现在通过亚马逊、家得宝和沃尔玛等主要零售商直接向消费者销售。这些锁拥有一些先进的功能,包括指纹识别器和防窥触摸屏,以及蓝牙和WiFi连接,用于基于应用的控制。当然,这些联网功能很方便,但它们可能会让一些用户对安全感到不安。或许是预期到了这些担忧,U-Tec的网站上有一篇文章向用户保证,“(云)服务器确实有很强的安全性”,用户的数据“已被MD5算法加密”。

我的U-Tec故事始于Shodan,特别是Shodan的MQTT数据集。

MQTT是一种轻量级发布-订阅协议,在该协议中,消息代理协调连接的节点之间的主题数据交换。为了说明如何使用该协议,请考虑一个HVAC系统,该系统包含多个温度传感器(恒温器)、可以电子驱动的风扇,以及根据室温自动打开/关闭风扇的监控应用程序。传感器和执行器是连接到MQTT代理的简单、低功耗的物联网组件。传感器发布数据,监控应用程序订阅该数据,并向执行器发布命令。

数据使用描述性和分层主题名称发布。因此,101房间的恒温器将使用“buildingX/Temperature/Floor1/room101”发布数据。监控应用程序将订阅“buildingX/Temperature/#”。#充当通配符,允许应用程序接收来自所有房间的温度输入。

如果部署MQTT时没有正确的身份验证和授权方案,则会出现使用MQTT的风险。如果没有这一点,任何可以连接到代理的人都可能泄露敏感数据,并可能影响动态系统。获得MQTT代理访问权限的未经授权用户可以很容易地猜测主题名称,并使用#订阅所有类型的主题,以获取通过该代理的数据。

Shodan的人们一直在使用这些通配符查询来收集有关暴露在公共互联网上的MQTT经纪人的数据。虽然Shodan不存储收到的单个消息,但它确实提供了在超过83,000个经纪人中搜索发现的主题名称的能力。我测试了各种MQTT搜索词,看看它们的命中率有多高。有一台服务器尤其引起了我的注意,因为它有一页又一页的MQTT主题名称,在搜索中反复出现,包括对“lock”和“gmail.com”等免费电子邮件提供商的引用。

这是一家亚马逊托管的经纪人,拥有一系列主题名称,包括个人电子邮件地址和其他看似与连接锁相关的数据。我自己用Linux命令行工具查询服务器(例如蚊子SUB),我马上就被显然来自世界各地的PII淹没了。这些数据包括与锁相关的电子邮件和IP地址,以及锁何时打开和关闭的时间戳记录等。

下一步是通过购买UltraLoq进行测试来更好地了解问题的范围。

该锁由电池供电,与连接到WiFi的桥接设备保持蓝牙配对。拿着锁,我把它与WiFi网桥配对,继续通过MQTT监控消息,同时控制WiFi上的锁。

在几个锁定/解锁周期之后,我确认了解锁过程中的重复消息流。然后,我准备了一个Python脚本来测试重放这些消息,并且我确认它可以打开锁。

我发现攻击者可以轻松地批量窃取“解锁令牌”,或者从只知道MAC地址的特定设备窃取“解锁令牌”。

MQTT数据将电子邮件地址、本地MAC地址和适用于地理位置的公共IP地址关联起来。这足以准确识别一个人的身份。该设备还会向无线电范围内的任何人广播MAC地址。

这意味着匿名攻击者还可以收集任何活跃的U-Tec客户的识别详细信息,包括他们的电子邮件地址、IP地址和无线MAC地址。

如果攻击者使用U-Tec应用程序打开门锁,攻击者现在还将获得一个令牌,可以在他们选择的时间打开门锁。

同样,攻击者可以通过发送欺骗消息来阻止合法锁所有者进行连接,从而采取破坏性的方法。

11月10日,我与U-Tec发生了一起事件,向他们指出了暴露的服务,并解释说这对最终用户造成了很大的危险。他们在10小时内作出回应,并告诉我以下情况:

我们在设备上有令牌授权,未经授权的用户将无法打开门,请不要担心。

此时,我澄清了我已经演示了执行此攻击的能力,并进一步向他们提供了来自Shodan的屏幕截图,其中包括以MQTT主题名称形式泄露的活动客户电子邮件地址。U-Tec的反应再次相对较快(在一天内),并有以下说法:

我和我们的工程师确认过了,他们会回应我的。1.我们关闭了端口1883,端口8883是经过身份验证的端口。2.我们已经关闭了非认证用户访问。3.我们在订阅和投递功能上增加了一些规则,现在未经认证的用户不能订阅。4.对于邮件问题,他们会在下一次应用升级时修复。

这是一个明显的进步,但并没有真正解决问题。这里的关键问题是,他们专注于用户身份验证,但未能实现用户级别的访问控制。我演示了任何免费/匿名帐户都可以连接任何其他用户的设备并与之交互。所有需要做的就是嗅探应用程序生成的MQTT流量,以恢复特定于设备的用户名和充当密码的MD5摘要。

U-Tec的工程师们沉默了几天,但后来又回来宣布已经实施了用户隔离。我确认我不能再跨账户发布信息,并迅速断开锁并将其打包放在地下室。大约在这个时候,我还了解到,在我听说U-Tec之前的几个月,Pen Test Partners已经报告了每个级别的严重故障。

智能锁并不是唯一的问题。为什么对MQTT和物联网风险的认识很重要。

在与U-Tec合作后的这段时间里,我继续研究暴露的MQTT系统,发现了无数工业物联网网络暴露,包括车辆跟踪、出租车调度、彩票亭、建筑管理系统等。这些系统中的许多都是由向客户提供服务的设备制造商运营的。在一个案例中,是一家欧洲设备供应商运营着一个监测中心,监测他们出售给压缩天然气(CNG)加气站的产品。在另一起事件中,一家教育服务提供商的网络泄露了有关个别学生何时到达和离开小学的详细信息。

由于每天都有新的、未经审查的支持云的设备投放市场,消费者必须意识到其中的风险。我们要求高速公路上的车辆符合安全标准,并进行排放测试,以确保环境安全,但信息高速公路上的互联网设备没有这样的类比。人们有一些期望,认为汽车制造商已经采取了合理的预防措施,以确保车辆不会对我们的高速公路或我们的环境构成不必要的风险。但对于在互联网上运行的设备以及对设备所有者和整个互联网构成的风险来说,情况就不同了。

即使是像锁和熔炉这样的安全关键系统,也几乎没有什么要求来确保产品的安全,安全监督甚至更少。正如我们在Mirai和其他物联网僵尸网络中看到的那样,互联网上的设备甚至不需要是安全关键的,当它们发生故障时就会造成严重破坏。Mirai和其他人已经积累了大量被破坏的设备,然后他们可以用这些设备来扰乱社会和敲诈企业。这些僵尸网络已经证明自己能够产生令人难以置信的流量负载,但与成功的供应商妥协相比,这可能是杯水车薪。

一般说来,这个问题的解决方案是重新调整与生产安全系统相关的激励措施。如果组织认为安全不能为他们的底线做出贡献,他们就永远不会关注安全。这可能是因为消费者知情程度更高,也可能是因为政府直接采取行动,实施安全要求并征收罚款,以应对安全疏忽。像马吉的网络独立测试实验室(CITL)这样的努力正朝着第一个目标努力,而一些政府(包括加利福尼亚州)已经努力禁止不安全的做法,如默认密码。尽管这些发展是朝着正确方向迈出的一步,但对于这是否足以纠正这一点,仍存在一个巨大的挥之不去的问题。

作为一名安全研究人员,我的目标是继续与供应商合作,在我发现问题时纠正它们,并继续让人们对令人担忧的技术趋势有更广泛的认识。