Um bug no alto-falante inteligente do Google Home permitiu a instalação de uma conta backdoor que poderia ser usada para controlá-lo remotamente e transformá-lo em um dispositivo de espionagem acessando o feed do microfone.
Um pesquisador descobriu o problema e recebeu US$ 107.500 por denunciá-lo de forma responsável ao Google no ano passado. No início desta semana, o pesquisador publicou detalhes técnicos sobre a descoberta e um cenário de ataque para mostrar como a falha poderia ser aproveitada.
Varredura descobriu o problema
Ao experimentar seu próprio mini alto-falante do Google Home, o pesquisador descobriu que novas contas adicionadas usando o aplicativo Google Home poderiam enviar comandos remotamente por meio da API da nuvem.
Usando uma varredura do Nmap, o pesquisador encontrou a porta para a API HTTP local do Google Home, então ele configurou um proxy para capturar o tráfego HTTPS criptografado, na esperança de obter o token de autorização do usuário.
O pesquisador descobriu que adicionar um novo usuário ao dispositivo de destino é um processo de duas etapas que requer o nome do dispositivo, certificado e “ID da nuvem” de sua API local. Com essas informações, eles poderiam enviar uma solicitação de link ao servidor do Google.
Para adicionar um usuário não autorizado a um dispositivo Google Home de destino, o analista implementou o processo de vinculação em um script Python que automatizou a extração dos dados do dispositivo local e reproduziu a solicitação de vinculação.
O ataque é resumido no blog do pesquisador da seguinte forma:
- O invasor deseja espionar a vítima na proximidade sem fio do Google Home (mas NÃO tem a senha do Wi-Fi da vítima).
- O invasor descobre o Google Home da vítima ouvindo endereços MAC com prefixos associados ao Google Inc. (por exemplo, E4:F0:42).
- O invasor envia pacotes deauth para desconectar o dispositivo de sua rede e fazê-lo entrar no modo de configuração.
- O invasor se conecta à rede de configuração do dispositivo e solicita as informações do dispositivo (nome, certificado, ID da nuvem).
- O invasor se conecta à Internet e usa as informações do dispositivo obtidas para vincular sua conta ao dispositivo da vítima.
- O invasor agora pode espionar a vítima por meio de seu Google Home pela Internet (não é mais necessário estar perto do dispositivo).
A pesquisadora publicou no GitHub três PoCs para as ações acima. No entanto, eles não devem funcionar em dispositivos Google Home que executam a versão de firmware mais recente.
Os PoCs vão além de apenas plantar um usuário desonesto e permitem espionar o microfone, fazer solicitações HTTP arbitrárias na rede da vítima e ler/gravar arquivos arbitrários no dispositivo.
Possíveis implicações
Ter uma conta não autorizada vinculada ao dispositivo de destino possibilita a execução de ações por meio do alto-falante do Google Home, como controlar interruptores inteligentes, fazer compras online, destravar remotamente portas e veículos ou forçar furtivamente o PIN do usuário para fechaduras inteligentes.
Mais preocupante, o pesquisador encontrou uma maneira de abusar do comando “ligar para [número do telefone]”, adicionando-o a uma rotina maliciosa que ativaria o microfone em um horário especificado, ligando para o número do invasor e enviando uma transmissão ao vivo do microfone.
Durante a chamada, o LED do dispositivo ficaria azul, que é a única indicação de que alguma atividade está ocorrendo. Se a vítima perceber, ela pode presumir que o dispositivo está atualizando seu firmware. O indicador padrão de ativação do microfone é um LED pulsante, o que não acontece durante as chamadas.
Por fim, também é possível reproduzir mídia no alto-falante inteligente comprometido, renomeá-lo, forçar uma reinicialização, forçá-lo a esquecer as redes Wi-Fi armazenadas, forçar novos emparelhamentos Bluetooth ou Wi-Fi e muito mais.
Correções do Google
O analista descobriu os problemas em janeiro de 2021 e enviou detalhes adicionais e PoCs em março de 2021. O Google corrigiu todos os problemas em abril de 2021.
O patch inclui um novo sistema baseado em convite para lidar com links de contas, que bloqueia todas as tentativas não adicionadas na página inicial.
A desautenticação do Google Home ainda é possível, mas isso não pode ser usado para vincular uma nova conta, portanto, a API local que vazou os dados básicos do dispositivo também está inacessível.
Quanto ao comando “ligar para [número do telefone]”, o Google adicionou uma proteção para impedir sua inicialização remota por meio de rotinas.
Vale a pena notar que o Google Home foi lançado em 2016, as rotinas agendadas foram adicionadas em 2018 e o Local Home SDK foi introduzido em 2020, portanto, um invasor que encontrasse o problema antes de abril de 2021 teria muito tempo para tirar vantagem.