如何成功劫持小米Mi扫地机器人

2018 年01 月4日

互联网和物联网频频爆出漏洞看似霉运连连,但其实也没有必要太绝望。安全研究人员Dennis Giese和Daniel Wegemer近日成功劫持了小米推出的Mi扫地机器人,但在他们的研究中显示,该设备相比其他大多数智能设备要安全得多。

在最近于德国莱比锡举行的”第34届混沌通信大会”上,这两位研究人员在发言中解释了该设备的软件工作原理,以及他们利用哪些漏洞最终突破了设备防御。

利用铝箔入侵Mi扫地机器人

Giese和Wegemer着手开始研究后,惊奇地发现小米扫地机器人比许多智能手机的硬件更加强大:它配备了三个ARM处理器,其中一个是四核处理器。听起来相当厉害吧?所以,一开始,Giese和Wegemer试着利用几个明显的攻击矢量来劫持系统。

首先,他们检查了扫地机器人是否能通过微型USB端口入侵。结果发现这条路走不通:小米利用某种认证来确保USB连接安全。随后,研究人员拆解了Mi扫地机器人,试图在主板上找到串口。但这一尝试同样失败了。

他们采用的第二种破解方法利用网络。研究人员试着扫描设备的网络端口,但所有端口全部关闭。监控网络流量也没有什么用;机器人的通讯会经过加密。至此,我已经非常感动:目前其它大多数物联网设备的生产商在安全性方面通常不这么做,所以导致设备频频被劫持。我们最近对不安全联网设备的研究正好说明了这一点。

我们还是回来说小米的Mi扫地机器人。接下来,研究人员又尝试攻击机器人的硬件。这次终于成功了 – 他们利用铝箔使连接处理器和主板的一些微小触点短路,导致处理器进入特殊模式,在此模式下允许通过USB连接直接读取甚至写入闪存。

通过这种方法,Giese和Wegemer设法取得Mi扫地机器人的固件,对其进行逆向工程,最终修改固件并将其上传到机器人,从而获得了对机器人的全面控制。

通过无线方式入侵Mi扫地机器人

但是把设备拆开和劫持硬件并不像非入侵性攻击那么酷。在对设备固件进行逆向工程后,研究人员找出了如何只利用Wi-Fi来入侵机器人 – 利用固件更新机制中的一些缺陷。

小米实施的固件更新程序相当不错:新软件通过加密连接传递,固件包也经过加密。但是,小米在加密更新包时利用了一个静态密码 -“rockrobo”(不要使用低强度密码)。这让研究人员有机会制作出一个经过适当加密的软件包,其中包含他们自己的控制固件。

随后,他们利用从小米智能手机应用获得的安全密钥向扫地机器人发送请求,要求下载并安装新的固件 – 但此固件并不是来自小米的云,而是来自研究人员自己的服务器。他们利用这种方法劫持了该设备,但这回采用的是无线方式。

利用Mi扫地机器人固件内部漏洞

Giese和Wegemer仔细研究固件后发现,小米的智能设备有一些很有意思的地方。首先,Mi扫地机器人固件基本上都是Ubuntu Linux,它经常定期快速打补丁。其次,小米对每部设备使用不同的超级用户密码;不存在可用来一次性大批量劫持机器人的主密码。再次,系统中运行有防火墙,能阻塞黑客可能会利用的所有端口。我们要再一次向小米致敬:根据物联网标准,小米智能设备的防御能力出乎意料的优秀。

不过,研究人员也在Mi扫地机器人中发现了一些不足之处。该设备会收集大量数据并上传到小米云 – 每天有数兆字节。除了设备操作遥测等一些合理的内容外,这些数据还包括设备连接到的Wi-Fi网络的名称和密码,以及利用内置激光雷达传感器绘制的房间地图。更令人不安的是,即使对设备进行出厂重置后,这些数据也会永远保留在系统中。所以,如果有人在eBay上买一台旧的小米扫地机器人,对设备执行root后,即可以轻松获得系统中的所有信息。

但本文最后要强调的是,Giese和Wegemer使用的技术都只能劫持自己的设备。第一种方法需要物理访问扫地机器人。至于第二个方法,他们必须获得安全密钥才能发起更新请求,而这些密钥是在每次设备与移动应用配对时生成。安全密钥独一无二,如果你无权访问与打算劫持的目标小米设备配对的智能手机,那么很难取得安全密钥。

总而言之,像Mirai这样的恶意软件不太可能得逞。恰恰相反:研究表明,小米相比其他大多数智能设备制造商,投入了更多的精力来确保安全性,这让我们的联网未来充满希望。几乎所有的东西都可能被黑客劫持,但是如果有些设备需要花大量精力才能破解,那么犯罪分子费事去破解的可能性会降低 – 他们一般喜欢轻轻松松赚取不义之财。