背景介绍
购物热季来临了,今天我们谈一下物联网设备的安全问题。
各大供应商们陆续推出了许多令人兴奋的物联网设备,并承诺这些设备会让我们的生活变得更简单、更快乐、更舒适。作为一个安全人员,除了跃跃欲试各种新品之外,尤其关注这些设备的安全性能,毕竟谁也不想在购买了一台智能咖啡机的同时,也为黑客预留了一扇后门;谁也不希望在购买了一台安全监控摄像头的同时,地球人都可以看到你的家庭现场直播……
众所周知,目前物联网的安全状态并不理想。那么,在准备购买这些物联网产品的时候,有那些注意要点可以帮助人们辨识设备的安全性呢?
为了回答这个问题,我们做了一个小实验:随机选择了几个不同的物联网设备,并对它们进行了安全审查。我们不敢说进行了深入而全面的调查,那样说就太夸张了,但我们确实发现了一些相当令人担忧的安全问题和一些不那么严重但不必要的问题。因此在完成了实验后,将结果整理成这篇文章,是为了让人们可以了解,如何判断一个物联网设备的安全状态,作为一个不算全面的指南或线索。
实验中检测的设备包括:
- 一个智能充电器
- 一个智能玩具车
- 一个智能秤
- 一个智能吸尘器
- 一个智能熨斗
- 一个网络摄像机
- 一个智能家庭集线器
智能充电器
我们检查的第一个设备是智能充电器,它内置了Wi-Fi连接模块这一点让我们很感兴趣。你可能会问:谁会需要一个遥控的电池充电器?然而,它的确是存在的,不仅允许为设备的充电电池,而且允许用户管理自己充电的方式。
如下图所示的智能充电器,内置的Wi-Fi模块允许设备使用者远程连接并控制充电过程、改变充电设置并随时检测电池的电量。
一旦打开,设备默认地切换到“访问”模式;用户连接到设备并打开管理界面的Web页面。充电器和用来访问管理面板的设备之间的通信使用了过时的WEP算法,而非更安全的WPA2。尽管受密码保护的,但预定义的密码是“11111”,它在设备附带的官方文档中,也可以在网上搜索到相关资料。当然了,用户可以选择将此默认密码更改为更安全的密码,但由于某种原因,密码的长度只能设为五位数。根据这些信息,破解密码需要四分钟。除此之外,设备本身的Web界面完全没有密码保护,一旦介入家庭的Wi-Fi网络,就可以访问到它。
也许你还会问:谁会攻击一个智能充电器呢?可能你是对的,现实中很少有黑帽黑客想要这样做,尤其是想要完成这种攻击还要求攻击者在Wi-Fi信号的范围内,或者访问到目标的Wi-Fi路由器(顺便说一句,这是一个更大的问题)。除此之外,恶意的攻击者可能会尝试扰乱电池充电的能力,或随机切换参数,而这类攻击可能存在的风险时电池在充电时爆炸或充电设备失效。
总结:综上所示,这种物联网设备不大可能面临毁灭性的远程网络攻击,不过如果用户的电池在充电时突然起火,这可能是一个信号,表明在设备周围(可能是你的邻居)有一个黑客。此时,你有必要修改一下设备的密码;如果是遭遇了远程攻击,则可能意味着需要更新Wi-Fi路由器的固件或更改密码。
智能无线间谍车
虽然有些人使用物联网设备是为了完成某项功能,但也有一些人是为了寻找娱乐和趣味,试问一下,年轻的时候,是不是很多人都梦想着拥有一个属于自己的间谍工具呢?运营商推出的可以使用APP控制的智能无线间谍车似乎正是某些用户梦寐以求的智能玩具。
这个智能设备的轮子上安装了一个网络摄像头,可以通过Wi-Fi连接并通过应用程序进行管理。在玩具商店出售的这类智能间谍车,一般会提供iOS和Android平台的APP,且只能通过Wi-Fi进行连接。我们判断Wi-Fi连接可能存在弱点,实验的结果证明我们的猜测是对的。
图上这款智能玩具具有以下功能:
- 移动(有多种移动模式,可以控制速度和方向)
- 在移动过程中可以从导航摄像机上查看图像,以便于导航
- 从主相机查看图像,可以在不同的方向旋转(甚至有夜视模式)。
- 记录的照片和视频存储在手机的内存中
- 通过内置的扬声器远程播放音频
一旦连接到手机,它就会自动联入Wi-Fi,不需要输入任何密码,这意味着任何连接到它的人都可以向车辆发送远程命令(条件是知道要发送哪些命令)。该设备并没有提供可供设置密码的功能,如果你的笔记本电脑上有基本的网络嗅探软件,通过拦截车辆和控制设备之间的通信流量,就可以想看到车辆目前正在拍摄的信息。
也就是说,远程攻击是不太现实的,攻击者必须和智能玩具处于同一个Wi-Fi信号的范围内。但另一方面,没有什么防御措施可以阻止攻击者以被动模式侦听您的通信,并在设备使用时捕获到该设备通信的内容。所以,如果最近看到有人在你家附近拿着一个Wi-Fi天线(很多间谍工具甚至可以放在背包里,不易被察觉),他们很可能是对你的私生活感到好奇,并且正在想办法调查。
附带相机功能的智能机器人吸尘器
对于那些想要在智能机器人吸尘器中携带相机功能的人而言,或许他们是想观察以下吸尘器是如何吸附灰尘的?还是想探索以下床底世界?(开玩笑的^_^)。附带相机功能的智能机器人吸尘器是专门为清洁爱好者准备的:如果你发现可以手动的控制真空吸尘器,确切的检查它的工作内容和流程,那么相机功能还是很有需要的,但是请记住,这样做并不太安全。
图上的设备通过特定的APP来管理:允许用户控制吸尘器的运动,在清洗时拍摄视频和拍照,清洗完成后视频会消失,但照片则存储在应用程序中。
通过Wi-Fi有两种方法可以连接到该设备:
- 以吸尘器为切入点。如果你家里没有Wi-Fi网络,设备本身可以提供一个连接,用户只需通过移动应用程序连接到吸尘器,然后就可以离开了!
- 吸尘器还可以接入家庭Wi-Fi,接入之后,可以在更远的距离内操作通过手机该设备。
当用户通过移动端应用程序对智能吸尘器进行管理时,用户首先需要经过某种授权。有趣的是,用户只需要输入一个很弱的默认密码就行了。因此,攻击者只需要连接到吸尘器的接入点(自身或Wi-Fi),键入默认密码授权,将自己的手机与吸尘器进行匹配,之后就可以控制该设备了。此外,在连接到本地Wi-Fi网络后,智能吸尘器在本地网络中是可见,并通过telnet协议显示给任何与此网络有连接的人。虽然连接是受密码保护的,可以由设备的所有者更改(但你真的可以确定是谁做的改动?),而且对于密码没有任何防止暴力破解的措施。
此外,应用程序和设备之间的通信流量被加密过了,但密钥却被硬编码到应用程序中。继续深入检测这个设备,发现密钥相关的代码缺少加盐保护,这导致潜在的攻击者可以从谷歌商城下载该应用程序,找到密钥并在中间人攻击活动中使用它。
当然,与其他任何用于控制智能设备的Android应用程序一样,机器人吸尘器的应用程序也是设备遭遇恶意攻击的根源之一:攻击者设法获得超级用户权限,进而可以访问吸尘机的相机、控制并获取它存储的内容。在研究过程中,我们也注意到,设备本身运行在一个特别老旧的Linux操作系统上,这可能使它遭遇那些 已公布的但却未打补丁的漏洞的影响,这一点也尤其值得重视。
智能摄像机
网络摄像机是物联网黑客最喜欢的设备。大量的攻击事件表明,除了明显的未经授权的监视之外,这种设备还可以用于破坏性的DDoS攻击。甚至可以这么讲:如今几乎所有生产网络摄像机的厂商都是黑客的十字军。
2015年,我们曾试图评估过消费者物联网的安全状况,对婴儿的监视器进行了安全调研;今年,我们专注于研究了另外一种相当不同的相机:用于外部监视的相机,人们经常使用它监控家庭或办公环境的安全。
最初,图上所示的设备及其来自同一供应商的其他相关设备由于缺乏必要的安全措施,导致存在未授权访问的问题,经过媒体的大量报道,用户对这家供应商的产品的信任度急剧下降,但是,大约在2016年左右,针对网络摄像机的保护问题发生了戏剧性的变化。
此前,该厂商出售的所有网络摄像机都提供了统一的出厂默认帐户和默认密码“12345”。大多数用户倾向于继续使用默认密码。2016年,当该供应商由于安全问题备受行业瞩目时,情况发生了根本性的变化:用户拿到设备时,摄像机处于“未激活”模式,在激活之前是没有摄像功能的,而激活过程需要创建密码并做一些网络设置。此外,厂商还对密码的复杂度做了基本的要求(如密码长度,数字、字母和特殊字符的多样性组合等),并对用户设置的密码强度进行了验证。用户可以通过本地网络上的其他PC终端访问摄像机并进行设置。
用户使用默认密码更新摄像机的固件时,系统会提示用户修改密码,并且在设备每次进行连接时都对用户进行安全相关的告警提示,以确保用户使用了足够安全的密码。
此外,还增加了防止暴力破解密码的措施:
2016年,供应商在摄像机的固件添加了一个新的安全特性,与防止暴力破解相关:当尝试输入错误密码5~7次后,会自动拦截该IP地址的访问,锁定30分钟,之后自动删除。这一功能在默认情况下是启用的,不需要用户特别设置,这样做显著提高了设备的安全级别。
然而,并不是所有事情都是完美的。例如,网络摄像机在与云端进行的交换数据是通过HTTP执行的,摄像机的序列号是URL中的ID,这样做容易遭遇中间人攻击。
除了设备的标准Web接口之外,还有一个专门的摄像机配置工具,它可以在网络上搜索摄像机、显示摄像机上的数据,并执行基本设置(包括激活设备、密码更改和网络设置的密码重置)。当触发设备搜索时,PC会发送一个独立的以太网帧。
摄像机对此的响应是没有加密的,响应数据包中包含了固件信息、重置日期和网络设置等模型信息。由于这些数据是以非加密方式传输的,且对请求的授权没有身份认证,因此这一个以太网请求包可以检测网络上的所有摄像机,并获得这些设备的详细信息。这样做还存在一个缺陷:在响应时不考虑时间延迟,因此,在网络中很容易被利用发起DDoS攻击,只需将这种请求发送给所在以太网中的所有摄像机就行了。
除了上文所描述的特定协议,网络摄像机还支持标准的SSDP协议发送通知,这同样允许任何软件或硬件自动检测这些摄像机,获取摄像机的模型信息和序列号等数据。
远程密码重置过程中还存在另外一个攻击向量:任何进入摄像机网络的人都可以通过摄像机配置的专用工具选择某一设备,并发起请求启动重置程序。这样做的结果是会创建一个包含摄像机序列号的小文件,该文件被发送到技术支持服务,技术支持服务要么拒绝该请求,要么会发送一个特殊的代码可以用来输入新的密码。有趣的是,该服务甚至没有做任何检查用户是否是摄像机的拥有者的尝试。我们不妨假定室外监视摄像机位于无法触及的位置,并且几乎不可能被远程识别。在这种情况下,最有可能遭遇内部网络犯罪的攻击。
总之,值得庆幸的是,网络摄像机的安全性已经大有改观,尽管仍在存在一些需要改进和解决的问题。
智能秤
之前曾在网上看过一条新闻(如下图所示),说是有个黑客入侵了一个智能秤,威胁设备的主人,要求其支付赎金,否则就在网上工具其体重。感觉像是开玩笑吗?但事实上我们已经证明这种操作是可行的!
智能称可以通过蓝牙与智能手机上的APP进行交互,它同时也配备了Wi-Fi模块,能够为设备所有者提供许多额外的功能,比如通过一个账号密码连接到一个私有的网站可以对体重数据进行监控,还与其他医疗应用进行集成对用户的身体状况进行分析。有趣的是,启用Wi-Fi后,唯一的特性是可以接收天气预报了。
我们决定测试以下软件在更新或安装时,执行ARP欺骗和局域网中的中间人攻击的可能性。所用设备如下所示:
检测发现,手机通过HTTPS与主服务器进行交互,智能秤本身通过蓝牙连接到手机上,配对过程很简单:通过应用程序请求连接,然后打开“蓝牙”就能连接上了。由于这个阶段用时非常有限,因此很难有人能够在不受用户察觉的情况下对设备进行配对。
除此之外,该设备通过蓝牙传输各种用户数据,包括重量信息。设备通过应用程序接收更新。应用程序还会将设备当前版本的更新和许多其他参数发送到服务器,服务器将下载文件及其校验和的链接依次传递给应用程序。
但是,更新过程是通过HTTP完成的,数据没有加密,更新本身也没有加密。因此,如果您能够监听到设备连接的网络,则可以欺骗服务器响应对设备进行更新。
这样做可以使设备回滚到最初的版本,然后安装与服务器检索到的版本不匹配的修改版本。在这种情况下,还存在更危险的可能,例如在设备上安装任意软件。
好消息是这个设备没有摄像头,所以即使发现任何其他严重的漏洞,你也是安全的。除此之外,你可能还会问:谁会愿意花时间去攻击智能秤呢?事实上,多加留心总是好的,正如本段开头提到的那张勒索图片。另外还有一点就是,有时黑客或许使因为好玩而做一些搞怪或破坏性的事情。
智能熨斗
或许你可能觉得破解智能熨斗是一件有趣的事情,这种装置的存在确实也使我们感到非常好奇。但是如果你发现,通过它的一个严重的漏洞,可以燃烧一座房子,那么事情就变得比较严重,而不是简单的有趣了。
智能熨斗有蓝牙连接功能,可以通过手机APP实现许多远程管理任务。我们假设设备与服务器的通信是不安全的,允许有人控制该设备并访问它的敏感数据,因为制造商不太可能对传输通道的安全有足够的关注,而且人们普遍认为攻击智能熨斗没什么价值。
一旦智能熨斗连接到用户的手机上,用户就可以通过iOS和Android的版本的APP对设备进行管理了,例如:
- 查看熨斗的方向(平躺、站立还是悬挂在电缆上);
- 禁用熨斗(但可悲的是,该功能是不可用的)
- 激活“安全模式”(当熨斗的机械开关不起作用时,要重新启用熨斗的功能,你需要在安全模式下执行)。
在开/关安全方面,如果熨斗处于“平躺”状态超过五秒钟,或在“站立”位置停留八分钟,则熨斗自动关闭。
用户也可以通过互联网对智能熨斗进行控制,这样做的条件是在设备附近有一个网关,比如一个独立的智能手机或平板电脑以及一个特殊的应用程序。
考虑到这些情况,我们决定仔细研究以下设备的应用程序。一共有三种:一种是iOS版本的,另外两种是Android版本的。第一个Android应用程序供用户通过蓝牙对设备进行管理;另一个是网关程序,当用户不在家的时候,可以访问设备。iOS版本的应用程序是通过蓝牙进行管理的,需要近距离接触。关于这三种的安全性,有一点值得一提,那就是供应商的代码都没有进行模糊处理。
查看网络通信流量时,发现Android蓝牙应用程序使用HTTPS进行通信,这是一个明智的解决方案。然而相应的iOS蓝牙应用程序并没有这么做,Android网关应用程序也没有。
通过IOS蓝牙应用程序进行钓鱼攻击的例子
一旦启用,IOS蓝牙应用程序会为用户提供注册的机会,数据通过HTTP进行传输,没有任何加密,如上图所示,我们可以实现一个非常简单的钓鱼攻击。
如前所述,手机也可以与智能熨斗进行通信,这些通信的数据也是不加密的。深入研究了这些应用程序,查看设备之间的传输内容,我们发现可以通过创建特定的命令进而控制智能熨斗。
所以,如果你是一个黑客,你能用这些知识做什么?首先,如果您能够捕获用户的凭据,或者应用程序的授权,可以关闭熨斗或设置为“安全模式”。这里值得一提的一点是,这些应用程序适用于该运营商的智能设备,这种情况同样适用于其他运营商,这就大大增加了攻击面。
如果您未能截获身份验证数据,也不用担心没有攻击的机会。由于应用程序和设备之间的数据交换是没有加密的,攻击者能够截获从服务器发送到应用程序的令牌,然后创建自己的命令,并发送给智能熨斗。
因此,在本地网络中,攻击者可以执行:
- 身份盗窃(窃取个人电子邮件地址、用户名、密码)
- 勒索(利用用户的无知来启用“安全模式”,这样用户就不能正常地打开熨斗,攻击者进一步勒索赎金)。
当然,上述两种攻击方式极不可能在野外广泛地进行,但仍然是有可能存在的。试想一下,如果你的私人信息被泄露了,原因不是因为遇到了一个老练的黑客的攻击,而是因为你的智能熨斗的安全性差,这真是一件很尴尬的事情。
智能家庭集线器
目前大多数可用的物联网设备的最大的问题是,它们大多是把你的智能手机作为一个独立的设备使用,而不是集成到一个更大的智能生态系统中。这个问题在一定程度上被所谓的智能集线器解决了:所有节点在一个地方联合起来,多个独立的智能设备之间可以进行数据交换。
在此之前,已经有一些研究人员试图研发一个安全的智能集线器,采取了一个奇特的智能集线器与触摸屏,有能力兼容不同的物联网协议,人们对此也有实际的需求。ZigBeeиZwave提供的家庭自动化产品就实现了这一点,通过一个触摸屏,简单的进行设置,如下图所示:
此外,这一智能集线器还可以充当无线Wi-Fi路由器。
考虑到这个设备具有诸多功能如路由器、范围扩展器、接入点或无线网桥,我们决定检查一个最常见和最危险的风险,即“未经授权路由器”的可能性。一旦可以未经授权就能够访问该设备,那么就可能导致完全控制用户的智能家居,包括所有连接的设备。
毫无疑问,研究结果表明这种可能性是确实存在的。
为了检验我们的假设,我们创建了一个本地网络,将PC机、设备和一个路由器连接到一起。能够查看到所有网络设备的IP地址,并且还成功地扫描了所有可用端口。初步研究表明,默认情况下,广域网上有两个开放端口。第一个端口是80(HTTP协议最常用的端口之一),它是一个计算机从Web服务器发送和接收基于Web客户端的通信和消息的端口,该端口用于发送和接收HTML页面或数据。一旦打开,就意味着任何用户都可以访问80端口,通过 HTTP协议访问用户的设备。
第二个端口是22,经常用于SSH连接服务器,便于远程控制设备。攻击者如果获得或成功的破解出root密码,就可以访问设备。这样做通常不是一件容易的事。然而,在研究过程中,我们探索了另一个有趣的关于智能集线器的风险,使得这一过程变得很容易。
在分析路由器时,我们发现它可能存在一个非常常见的威胁风险:弱密码生成。在路由器中我们发现一个名为“rname”的ELF(可执行和可链接格式)文件,它保护了一串名称,这些名称和密码可以通过屏幕进行查看,很明显的可以看出设备的密码是根据这些名称生成的,因此,暴力破解不需要太长时间。
在设备被硬复位后,密码相关的的源代码行保持不变,符号略有改变。但是,主要的密码基础保持不变,而且仍然有生成密码的机会。
此外,我们发现,用户经常会使用Root账号设备访问,这也为黑客攻击提供了方便。
如果设备开放了公共的IP地址和上述端口,用户就可以从因特网上访问路由器,或者在另一种情况下,如果提供商或ISP(因特网服务提供商)未能正确地配置本地网络相邻主机的可见性,这些设备将在同一ISP中对整个本地网络可用。
总而言之,对检测所得结果我们并不感到惊讶,就像市场上大多数其他智能集线器一样,这类设备都为入侵者提供了一个非常广阔的攻击面。不仅覆盖了设备本身,而且覆盖了它的网络。