一个人意外控制了7000台机器人吸尘器:物联网安全的老问题,新玩意儿
文章摘要
Sammy Azdoufal 只是想用PS5手柄控制自己买的DJI Romo扫地机器人——这是一台2000美元的设备,走轮子,带摄像头和麦克风,大理石地面上的那种高端产品。
为了实现这个功能,他对DJI Romo的移动端App做了简单的逆向分析,找到了设备通信用的MQTT服务器地址和认证凭证。连上去之后,他发现自己不只是连上了自己的设备——他可以访问全球24个国家、超过7000台DJI Romo的实时视频流、麦克风音频、室内地图和GPS坐标。
这个漏洞的根源是MQTT协议的通配符订阅(wildcard subscription)配置失误——后端没有做Topic级别的访问隔离,任何用户都可以用#通配符订阅所有设备的Topic。Azdoufal 联系了The Verge,经过媒体协助披露,DJI 在2026年2月8-10日修复了漏洞。
Hacker News 上的201条评论不主要是在讨论DJI的具体失误,而是在讨论一个更大的问题:为什么我们还在把带摄像头和麦克风的设备连接到云服务器,然后信任那些云服务器?
背景与问题
物联网安全:一个被反复发现的老问题
这不是第一次,也不会是最后一次。
2021年,一个安全研究员发现Philips Hue的智能灯泡可以作为企业网络的入侵跳板。2020年,Verkada企业摄像头系统被黑,超过15万台摄像头(包括科罗拉多州监狱和特斯拉工厂)的实时视频流被访问。2017年,Mirai僵尸网络利用默认密码攻击了数十万台IoT设备,发动了当时历史上最大规模的DDoS攻击。
每一次事件的剧情都高度相似:开发者图省事,用了不该用的默认配置;用户不知道自己买的设备其实是一个开着门的监控摄像头;安全研究员发现漏洞,厂商修复,然后下一个类似产品再重蹈覆辙。
DJI Romo事件的特殊之处在于:它是在那个研究者试图做一件非常合理的事情的过程中偶然发现的——他只是想让自己的设备更好用。这不是渗透测试,不是漏洞赏金计划,是一个工程师用自己的设备折腾时的意外收获。
DJI Romo是什么设备
DJI Romo(也称EDU、教育版)是DJI在2024年发布的一款家用机器人,定价约2000美元,走轮子而非传统的扫地结构,内置高质量摄像头和麦克风,可以进行人脸追踪、语音交互和自主移动。DJI将其定位为"家庭AI陪伴机器人",配合官方App可以让孩子进行编程学习。
这个定位本身就值得关注:一个带摄像头和麦克风、在家里四处移动、连接云服务器的设备,被设计为以"信任感"为核心卖点的儿童教育产品。
核心内容解析
3.1 漏洞的技术根本:MQTT通配符订阅
**MQTT(Message Queuing Telemetry Transport)**是物联网设备中间件通信的标准协议,设计用于低带宽、不稳定网络环境下的发布-订阅(Pub/Sub)消息传递。设备向特定"Topic"发布消息,订阅了该Topic的客户端接收消息。
MQTT协议本身支持通配符:
+:单层通配符(如devices/+/status匹配所有设备的status Topic)#:多层通配符(如devices/#匹配所有设备下的所有Topic)
这两个通配符的存在是MQTT的设计特性,用于合理场景(比如后端监控需要订阅所有设备的状态日志)。但这意味着MQTT服务器必须做严格的访问控制,确保普通用户只能发布和订阅自己设备的Topic,不能使用通配符访问其他人的设备。
DJI Romo的后端没有做这个隔离。Azdoufal用普通的用户认证凭证,订阅#通配符,就能收到所有设备的消息流。
这不是一个复杂的漏洞,不需要0day利用,不需要复杂的权限提升。只是一行少写的访问控制规则。
Mysa智能恒温器的同类漏洞
HN评论里有用户指出,同样的MQTT通配符漏洞在加拿大智能恒温器品牌Mysa上也曾出现,模式完全一致。这说明这个错误不是DJI独有的,而是使用MQTT但不了解或不重视Topic隔离的开发团队会反复踩的坑。
3.2 实际危害面:7000台设备能做什么
一旦能订阅所有设备的Topic,攻击者实际上可以:
实时视频监控:Romo的摄像头画面通过MQTT传输时,所有订阅者都能收到。攻击者可以获取任何一台Romo所在房间的实时视频流,包括家庭成员的日常活动、室内装潢布局(入室盗窃的情报)、地理位置。
麦克风音频:Romo内置麦克风用于语音交互。同样的订阅机制允许实时获取设备周围的音频,实质上是一个可在任意时间激活的远程窃听器。
室内地图:扫地机器人在工作过程中会建立家庭平面图(SLAM,即时定位与地图构建)。这份地图精确标示了房间布局、家具位置、出入口,是高价值的情报。
GPS坐标:Romo的GPS模块提供精确位置,意味着可以关联到具体的家庭地址。
这些数据的组合——视频、音频、平面图、精确位置——几乎是一个家庭侦察系统的完整数据集。
3.3 DJI的安全背景
这件事发生在DJI身上,不是中性的背景信息。
DJI是全球最大的消费级无人机制造商,在多个国家面临安全审查。美国联邦通信委员会(FCC)已将DJI列入"国家安全风险"清单,多个美国联邦机构禁止使用DJI产品。此前已有安全研究员发现DJI无人机将飞行数据上传到中国服务器的行为。
在这个背景下,DJI进入家庭机器人市场(带摄像头、麦克风、室内地图的移动设备),且出现了如此基础的云端访问控制失误,在HN评论里引发了相当强烈的反应。部分评论者认为这是无意的代码质量问题,另一部分人认为这印证了他们对中国IoT设备云端数据安全的担忧。
无论哪个解释更接近事实,结果对用户来说没有区别:数据暴露了。
3.4 HN的防御策略讨论
IoT VLAN隔离
评论区被提到最多的防御手段是IoT VLAN隔离:在家庭路由器上创建一个独立的网络分区(VLAN),所有IoT设备只能连接到这个分区,与家庭电脑、NAS等敏感设备的网络完全隔离。即便IoT设备被攻破,攻击者也无法lateral move到家庭主网络扫描其他设备。
这是企业网络安全的基础做法,在家用路由器上(尤其是支持OpenWRT、UniFi或PFSense的设备)可以实现。但大多数普通家庭用户不知道这件事,也不会配置。
Z-Wave/Zigbee代替Wi-Fi IoT
另一类建议是选择使用本地通信协议(Z-Wave、Zigbee、Thread)的设备,这些协议不需要连接厂商云服务器就能在家庭网络里工作,通过本地Hub(如Home Assistant Yellow、SmartThings Hub)管理,数据不出家门。
问题是:支持纯本地协议的设备种类有限,且价格通常高于依赖云端的产品。消费市场的定价逻辑是:云订阅可以把硬件价格压低,因为在用户整个生命周期里通过数据变现来弥补。
Valetudo:扫地机器人的固件替换
Valetudo 是一个开源项目,为部分品牌扫地机器人(Roborock、Dreame、Viomi等)提供替换固件,完全移除厂商云端依赖,将设备控制权交给本地Home Assistant。刷了Valetudo的扫地机器人不连任何外部服务器,地图和控制指令全部在家庭网络内部流转。
这是最彻底的解决方案,但需要用户具备一定的技术能力,且支持的设备型号有限(DJI Romo不在支持列表上)。
"智慧恒温器是入室盗窃的侦察工具"
HN有一条令人印象深刻的评论:智能恒温器知道你什么时候在家、什么时候离开、你的日常作息规律。如果恒温器数据被攻击者获取(无论通过漏洞还是数据出售),它实际上是一份精确的"建议盗窃时间表"。
这不是科幻场景——这是数据被滥用的一种现实可能路径,而且几乎没有设备厂商在隐私政策里明确声明这类推断不会发生。
3.5 "带麦克风的扫地机器人"引发的独立讨论
DJI宣称Romo的麦克风用于语音控制("Hey Romo"类似的唤醒功能)。HN评论对此的反应相当一致:不接受这个解释。
核心论点是:智能音箱(Amazon Echo、Google Home)本身已经是一个有争议的隐私妥协。扫地机器人的语音控制功能在实际使用中频率极低——家庭用户不会经常对扫地机器人说话,更常见的是通过手机App控制。用"语音控制"来为麦克风的存在背书,被很多人视为一种不诚实的设计说辞。
更根本的问题是:即便厂商没有恶意使用麦克风数据,一旦有像这次这样的安全漏洞,麦克风的存在就变成了攻击面。不存在这个硬件,这个攻击面就不存在。
深度分析与思考
4.1 这个漏洞的"不值一提性"
在技术上,这个漏洞极其平凡——一行MQTT访问控制配置。没有复杂的漏洞链,没有国家级攻击者,没有zero-day。
但这恰恰是最值得讨论的地方:如此基础的配置错误,出现在一家市值数十亿的公司、一款2000美元的旗舰产品上。
这说明安全测试系统性地失败了:没有开发者考虑过"如果所有设备都在同一个MQTT Topic空间里会怎样";没有代码审查者知道MQTT通配符是什么;没有渗透测试人员试过用通配符订阅。
这不是能力问题,而是优先级问题——安全在产品发布上线的压力面前被排后了。
4.2 消费者如何理性评估IoT设备
在你决定把下一个"智能"设备带回家之前,以下问题值得认真思考:
这个设备的功能需要持续云连接吗? 扫地机器人需要在你不在家的时候上传实时视频流吗?大多数时候答案是否定的,但云连接被默认打开。
如果厂商服务器被关闭,设备还能用吗? Tuya、Smartthings等云平台都有过服务中断或关闭产品线的历史。纯云依赖的设备,厂商跑路就变砖。
这个设备有独立固件选项吗? 扫地机器人领域(主要是小米/Roborock/Dreame生态)有Valetudo这样的社区方案。智能灯泡领域有ESPHome。选择有本地控制方案的品牌是可以做到的。
它有麦克风或摄像头吗?必要吗? 这两个传感器极大地提升了数据泄露时的危害。如果功能不依赖它们,宁可选没有这两个硬件的版本。
4.3 让我担忧的不是这次,而是下一次
DJI Romo 是一台家用机器人。未来几年,家用人形机器人(Tesla Optimus、Figure、Boston Dynamics)会进入消费市场。那些设备带的不是一个固定位置的摄像头,而是可以走到任何角落的移动摄制组,加上能操控物体的机械臂。
如果一台人形机器人的云端访问控制出现同级别的配置错误,暴露的数据和可能的实际后果,将是DJI Romo漏洞的指数级放大。
人形机器人的安全架构需要在第一台设备出货之前就按照高标准设计,而不是等到第一个"意外连上了7000台"的故事出现之后再去修补。
技术栈/工具清单
相关协议与技术
- MQTT(消息队列遥测传输):IoT设备标准通信协议
- MQTT通配符订阅(
#,+):导致本次漏洞的特性 - SLAM(即时定位与地图构建):扫地机器人建立室内地图的技术
- VLAN(虚拟局域网):网络隔离的核心技术
防御工具与方案
- Valetudo:开源扫地机器人替换固件,移除云端依赖
- Home Assistant(HA):本地家庭自动化平台
- OpenWRT / pfSense / UniFi:支持VLAN配置的路由器固件/方案
- Z-Wave / Zigbee / Thread:本地通信协议,不依赖云端
涉事设备
- DJI Romo(DJI教育机器人):$2000,带摄像头、麦克风、GPS
- Mysa 智能恒温器:出现过同类MQTT通配符漏洞的加拿大品牌
相关资源与延伸阅读
- 原始报道:Man accidentally gains control of 7,000 robot vacuums(Popular Science) - 事件的完整原始报道
- The Verge 报道(负责协调披露) - Azdoufal 最初联系的媒体
- HN 讨论:Man accidentally gains control of 7k robot vacuums - 201 条评论
- Valetudo 开源项目(GitHub) - 扫地机器人本地固件替换方案
- MQTT 安全最佳实践(Eclipse基金会) - MQTT协议规范中的安全注意事项
- Mirai僵尸网络分析(Cloudflare) - IoT大规模僵尸网络的经典案例
- Verkada 摄像头黑客事件(Bloomberg报道) - 15万台安防摄像头被访问的2021年事件
- Home Assistant 及本地优先原则 - HA关于本地控制哲学的官方表述
- ESPHome(开源固件框架) - 为ESP32/ESP8266设备提供本地控制的开源方案
- OWASP IoT攻击面(安全参考) - IoT安全攻击面的系统性分类
- China's IoT Security Risks: A Policy Perspective - 美国政策层面对中国IoT设备安全的综合评估