智能家居设备已经越来越丰富,但是对隐私的侵犯也愈发肆无忌惮,甚至不允许收集数据就不让你用!美国工程师Harishankar有一台iLife A11智能扫地机器人,配备全志A33 SoC芯片,以及GD32F103微控制器,用于管理激光雷达、陀螺仪、编码器等众多传感器,还有TinaLinux系统。

在监控网络流量后,Harishankar发现它一直在向厂商发送日志和遥测数据,而且从未经过他的同意。
于是,他屏蔽了遥测服务器的IP地址,只保留固件和OTA升级服务器的连接。
结果没多久,扫地机器人罢工了。
Harishankar多次将其送往售后服务中心,工作人员每次都坚称设备没有任何问题,但是每次回到家中,都只能正常工作几天就再次罢工。
最后,售后中心干脆拒绝提供服务,称已经过了保修期。

Harishankar一气之下决定自己研究,拆开设备,自行制作了PCB连接器,编写了Python脚本,通过电脑进行控制、逐一测试。
她还用树莓派做了一个操纵杆,手动操控扫地机器人,从而证明硬件本身并无问题。
接下来是对软件和系统的研究,真相也随之浮出水面:这款设备不仅存在严重的安全隐患,还像“黑洞”一样盗取他的个人数据。
首先,设备的Android Debug Bridge可以让用户获得设备的完全root权限,但这项功能没有设置任何加密保护。
厂商为了规避这一漏洞,采用了一种临时的安全方案,删除一个关键文件,导致设备开机后不久就会断开连接,但是Harishankar轻松绕过了这一限制。
随后,他还发现设备会通过Google Cartographer技术,实时构建家中的3D地图,本来没啥,但这些数据都会发到厂商服务器。

最可怕的是,Harishankar在日志中发现了一条带有时间戳的指令,恰好与罢工的时间完全吻合,显然就是那条“死亡指令”!
Harishankar反向破解了这条指令,重启设备后,成功恢复了正常运行,而且完全本地离线运行,摆脱了厂商的控制。
可惜,不是每个人都有这种工程能力。
至于为何扫地机器人在售后服务中心一切正常,回家没多久就再次无法工作,其实也很简单:
售后人员会重置固件,顺带无意中清除了死亡指令,但是设备再次联网后,检测到遥测服务器被屏蔽,厂商拿不到数据,就会远程使之“变砖”。
