简述
来自Bitdefender 的演讲者在 RSA 大会上分享了他们近四年来在 IoT 漏洞领域的研究成果。据介绍,在近四年间他们对20+ 品牌的产品设备进行了研究,发现众多重要及更高等级的漏洞,IoT 漏洞被大规模利用带来的风险是可预见的,因为有很多漏洞至今还未解决或未被修复。
Bitdefender 研究中涉及的部分品牌见下图,其中有些产品的研究报告已经发布,有的因为厂商还未修复或者其他原因,成果暂未发布。
Tips:Bitdefender是来自罗马尼亚的安全软件品牌。成立于2001年,BitDefender 提供防病毒,防间谍软件,防垃圾邮件,防火墙,网络内容过滤等多种安全管理工具。
接下来将会介绍一些具体的漏洞案例。
智能门锁中的WIFI密码泄露漏洞
智能门锁在很多日常场景中都能提供便利,比如从事短期租赁业务时,使用智能锁意味着房东可以在房客居住期间为他们提供临时访问权限,而无需进行繁琐的房门钥匙更换业务。
Bitdefender 发现的漏洞中有一个就是存在于August智能门锁中的WiFi 密码泄露漏洞(CVE-2019-17098)。主要成因是August Connect Wi-Fi Bridge 应用程序中使用了硬编码的加密密钥,能够获取该密钥的攻击者便可以解密包含 Wi-Fi身份验证凭据的数据包。
August智能锁只需在普通门锁的基础上将原来的锁钮替换掉即可改造完成,而无需完全换掉旧门锁。接下来首先来了解下该款智能锁的大致工作原理。
August智能锁由于缺少用于连接到互联网的必要硬件而不能直接连接到无线或有线网络。因此,当用户距离门锁在一定范围内时,是通过BLE(低功耗蓝牙)控制门锁的。同时为了满足用户通过互联网远程管理门锁的需求,August应用程序使用了一个 Connect Wi-Fi Bridge来与互联网建立连接。在远程控制的情况下,设备间传输命令的每一个请求都是用TLS加密的,不能被拦截或修改。而且只有所有者在其帐户中注册了某个锁,才能配置与无线网络的连接。
然而为了实现这些功能,August 门锁会需要连接到用户的 Wi-Fi网络。为了在没有可用键盘/输入设备的情况下实现连接,该设备进入设置模式,会作为接入点启用与智能手机的链接。随后,手机应用程序会将Wi-Fi登录凭据传递给智能锁。但这个通信过程是未加密的,因此可以被嗅探。为了缓解这种情况,该应用程序在将包含Wi-Fi登录凭据的数据包发送到门锁设备之前,会对其进行加密。
尽管使用ROT13进行了混淆,但使用的加密方案是AES/CBC,其加密密钥是被硬编码在智能手机应用程序中的。为了获得加密密钥,该应用会验证设备类型,并根据此类型提取一个常量字符串。
然后应用ROT13对密钥进行解混淆:
生成的密钥将用于加密发送到设备的凭证:
然而,由于无线网络是开放的,任何人都可以嗅探这种交互并获取加密的请求。然后,使用在智能手机应用程序中硬编码的相同密钥,攻击者就可以解密并获得WiFi凭证。
MQTT的不安全实现
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,由于规范很简单,非常适合需要低功耗和网络带宽有限的IoT场景。
实现MQTT协议需要客户端和服务器端通讯,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。pub将主题和信息发送给broker,sub从broker订阅主题得到信息。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
(1)Topic,指消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)。
(2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
比如设备订阅MQTT服务器上的 /root/$device_id/$topic (其中topic可能是打开、关闭、更改密码或任何其他类型的事件)。与 $device_id 链接的移动应用程序会接收其从MQTT服务器读取的事件类型。但是制造商经常犯的一个错误是允许读取整个 /root,从而会暴露所有用户的事件。
S3 存在的隐患
S3(Simple Storage Service 简单存储服务)理论上是一个全球存储区域网络 (SAN),它表现为一个超大的硬盘,用户可以在其中存储和检索数字资产。Amazon S3 提供了一个简单的 Web 服务接口,用于随时在 Web 上的任何位置存储和检索任何数量的数据。在大部分情况下,S3的安全性依赖于第三方不知道文件的路径。
比如 /root/$device_id/recordings/05.17.2021.14.20.mp4,生成的文件路径会被转发到需要读取它的客户端应用程序那里。
而常见的错误是允许递归读取/root (无需身份验证),近年来,大量的信息泄露就是因为这个原因而发生的。
新发现:幼儿监护器未经授权的 MQTT 信息泄露
幼儿监护器大大提高了父母生活的自由度和灵活性。通过这种装置,父母就可以在远程处理其他事务的同时兼顾幼儿的安全。但是提供便利的同时,因为其中存在的问题,也为家庭隐私增加了安全风险。
监护摄像机使用MQTT协议发布其状态并接收发送RTSPS流的URL。
MQTT 服务器是 eup2p01.govicture.com:1883。
下面将演示订阅 /device/init 主题后查看所有联机设备的ID。
上图中,mosquitto_sub -h eup2p01.govicture.com -p 1883 -d -t ‘/device/init’
mosquitto_sub 表示订阅者;
-h 指定要连接的域名;
-p 指定要连接的端口;
-d 开启debug选项;
-t 指订阅指定消息。
从输出结果中可以看到 uuid 和 uid。
uuid 参数是摄像机 id ,uid 是用户 id ( 相机关联的帐号 ) ,这些隐私信息在实际中可在未经授权验证的情况下被获取到,攻击者利用这些信息,很有可能造成更大影响。
视频泄露
正常情况下,摄像机会将拍摄到的影像上传到某个存储地址,然后再转发到移动应用程序上供用户查看。
然而,MQTT 支持 /device/<ID>/cmd,其中“ID”是之前未经授权获取得到的 uuid 参数,“cmd”可以写成“upload your feed to _THIS_server”。也就是说,在知道 uuid的情况下 ,就有可能通过 MQTT 消息让摄像机将视频上传到攻击者指定的服务器上。
以上是一个可实际操作的案例,而且类似这种攻击的影响范围要比想象中大得多。通过互联网扫描,全球有数以万计使用MQTT的物联网服务器暴露在公共互联网上,无需验证,也没有加密通信,潜在受害可能巨大。
小结
CVE 跟踪到的物联网漏洞还是数量有限,大量已经识别到的漏洞是没有 CVE 编号的。作为物联网设备厂商,强烈建议要为产品进行安全审计,并且要推动产品安全的问责制度,以确保被研究人员通报的漏洞能得到及时处理。作为个人用户和公司客户,要保证从可信度高的供应商处购买设备,并且注意安全配置以及及时更新固件。
参考链接
版权声明
本站“技术博客”所有内容的版权持有者为绿盟科技集团股份有限公司(“绿盟科技”)。作为分享技术资讯的平台,绿盟科技期待与广大用户互动交流,并欢迎在标明出处(绿盟科技-技术博客)及网址的情形下,全文转发。
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。