Google Home 智能扬声器中的一个错误允许安装一个后门帐户,该帐户可用于远程控制它并通过访问麦克风馈送将其变成窥探设备。
研究员 Matt Kunze 发现了这个问题,并因去年负责任地向 Google 报告该问题而获得了 107,500 美元。本周早些时候,研究人员发布了有关该发现和攻击场景的技术细节,以展示如何利用该漏洞。
妥协过程
在试验自己的 Google Home 迷你扬声器时,研究人员发现使用 Google Home 应用程序添加的新帐户可以通过云 API 向其远程发送命令。
通过 Nmap 扫描,研究人员找到了 Google Home 本地 HTTP API 的端口,于是他设置了一个代理来捕获加密的 HTTPS 流量,希望抢夺用户授权令牌。

研究人员发现,向目标设备添加新用户是一个两步过程,需要设备名称、证书和来自其本地 API 的“云 ID”。有了这些信息,他们就可以向谷歌服务器发送链接请求。
为了将流氓用户添加到目标 Google Home 设备,分析师在 Python 脚本中实现了链接过程,该脚本自动泄露了本地设备数据并再现了链接请求。

该攻击在研究人员的博客中总结如下:
- 攻击者希望在 Google Home 的无线邻近范围内监视受害者(但没有受害者的 Wi-Fi 密码)。
- 攻击者通过侦听带有与 Google Inc. 关联的前缀(例如 E4:F0:42)的 MAC 地址来发现受害者的 Google Home。
- 攻击者发送 deauth 数据包以断开设备与其网络的连接并使其进入设置模式。
- 攻击者连接到设备的设置网络并请求其设备信息(名称、证书、云 ID)。
- 攻击者连接到互联网并使用获取的设备信息将他们的帐户链接到受害者的设备。
- 攻击者现在可以通过互联网上的 Google Home 监视受害者(不再需要靠近设备)。
研究人员 针对上述操作在 GitHub 上发布了三个 PoC 。但是,这些应该无法运行运行最新固件版本的 Google Home 设备。
PoCs 更进一步,不仅仅是植入流氓用户并启用对麦克风的监视,在受害者的网络上发出任意 HTTP 请求,以及在设备上读取/写入任意文件。
可能的影响
将流氓帐户链接到目标设备可以通过 Google Home 扬声器执行操作,例如控制智能开关、进行在线购买、远程解锁门和车辆,或秘密地暴力破解用户的智能锁 PIN。
更令人担忧的是,研究人员找到了一种滥用“呼叫 [电话号码]”命令的方法,将其添加到恶意例程中,该例程会在指定时间激活麦克风,呼叫攻击者的号码并发送实时麦克风馈送。

在通话期间,设备的 LED 会变成蓝色,这是正在进行某些活动的唯一指示。如果受害者注意到它,他们可能会认为该设备正在更新其固件。标准话筒激活指示灯是一个闪烁的 LED,在通话期间不会出现。
最后,还可以在受感染的智能扬声器上播放媒体、重命名、强制重启、强制忘记存储的 Wi-Fi 网络、强制新的蓝牙或 Wi-Fi 配对等等。
谷歌修复
Kunze 于 2021 年 1 月发现了这些问题,并于 2021 年 3 月发送了更多详细信息和 PoC。谷歌于 2021 年 4 月修复了所有问题。
该补丁包括一个新的基于邀请的系统来处理帐户链接,它阻止任何未添加到主页的尝试。
取消验证 Google Home 仍然是可能的,但这不能用于链接新帐户,因此泄露基本设备数据的本地 API 也无法访问。
对于“call [phone number]”命令,谷歌增加了保护,防止其通过例程远程发起。
值得注意的是,Google Home 于 2016 年发布,2018 年添加了计划例程,2020 年引入了 Local Home SDK,因此攻击者在 2021 年 4 月之前发现问题将有足够的时间利用。