Como um pesquisador de segurança transformou um Google Home Mini em uma escuta telefônica

Se você possui um dispositivo Google Home, mas está preocupado com os microfones sempre ligados, suas preocupações são justificadas.

Ter um dispositivo sempre ouvindo em sua casa é uma ocorrência bastante comum hoje em dia, principalmente com a proliferação da linha de dispositivos Echo da Amazon e da série Google Home. Embora sejam peças de tecnologia incrivelmente úteis, elas apresentam preocupações com a privacidade. Eles têm microfones sempre ativos e conexão à internet, o que para algumas pessoas é uma invasão de privacidade demais para que fiquem em casa. O pesquisador de segurança Matt Kunze provou que esses temores podem muito bem ser justificados, já que ele conseguiu transformar seu Google Home Mini no que pode ser essencialmente descrito como uma escuta telefônica.

Embora esta vulnerabilidade tenha sido descoberta e testada em um Google Home Mini, Kunze diz que presume que o ataque funcionou de forma semelhante em outros modelos de alto-falantes inteligentes do Google.

Engenharia reversa do Google Home Mini

Uma solicitação POST para um endpoint /deviceuserlinksbatch, conforme identificado por meio de mitmproxy.

Uma solicitação POST para um endpoint /deviceuserlinksbatch, conforme identificado por meio de mitmproxy.

Vincular uma conta a um dispositivo Google Home oferece muito controle sobre ela, com as “Rotinas” do dispositivo podendo executar comandos remotamente. As rotinas são úteis para predefinir funcionalidades com base em condições específicas, mas podem ser abusadas se for possível acessar o dispositivo remotamente e controlá-lo. Um exemplo de rotina seria dizer “Ok Google, bom dia”, e ela acende as luzes e informa a previsão do tempo para o dia.

Kunze decidiu descobrir se era possível para um invasor vincular sua própria conta do Google ao Google Home de alguém. Isso essencialmente permitiria que ele aproveitasse o controle fornecido ao vincular uma conta a um dispositivo e fosse usado para executar comandos remotamente na rede de alguém.

Fazendo uso de ferramentas como proxy man-in-the-middle (mitmproxy) e Frida, ele conseguiu observar o tráfego entre o aplicativo Google Home em um smartphone e o dispositivo Google Home. A partir daí, ele descobriu que era possível vincular uma conta do Google ao dispositivo obtendo suas informações por meio de uma API local e, em seguida, enviando uma solicitação aos servidores do Google com informações para vinculá-la. Kunze escreveu um script Python que usa credenciais do Google e um endereço IP e depois vincula a conta do Google ao dispositivo no endereço IP fornecido.

Depois de ter controle sobre determinado dispositivo, ele poderia criar qualquer rotina e ativá-la em um dispositivo vinculado. Você pode invocar o Assistente para ligar para um número de telefone, o que ele pôde fazer a qualquer momento. Para tornar o ataque o mais furtivo possível, Kunze também ativou o “modo noturno”, que diminui o volume máximo e o brilho do LED. O volume da música não é afetado, o que torna menos provável que o usuário perceba.

Porém, a situação fica pior, pois você nem precisa estar na mesma rede Wi-Fi para que esse ataque funcione: basta estar próximo do dispositivo. Se você enviar pacotes de desautenticação para um dispositivo Google Home, ele pensará que a rede caiu e cria uma rede Wi-Fi para que você possa se conectar a ela novamente e reconfigurá-la para um novo Wi-Fi rede. Os quadros de desautenticação (que são um tipo de quadro de gerenciamento) podem ser enviados detectando o endereço IP e são difíceis de proteger, pois as redes WPA2 não criptografam os quadros de gerenciamento.

No entanto, da mesma forma que você pode abusar da API local do dispositivo Google Home e vinculá-lo a um Google conta estando na mesma rede Wi-Fi, você pode fazer o mesmo depois de se conectar a ela quando estiver configurada modo.

Ouvindo remotamente o microfone do Google Home

Kunze escreveu e testou uma prova de conceito detalhada de como um Google Home Mini poderia ser usado para espionar alguém.

  1. Crie uma conta do Google "invasora".
  2. Fique próximo do Google Home sem fio.
  3. Comece a enviar pacotes de desautenticação para o Google Home.
  4. Conecte-se à rede de configuração do Google Home.
  5. Execute o script Python para vincular o dispositivo à conta do Google do invasor.
  6. Pare de enviar pacotes de desautenticação e espere o dispositivo se conectar à Internet.
  7. Agora você pode executar comandos no dispositivo Google Home, inclusive fazer com que ele ligue para seu número de telefone.

Um invasor também pode fazer com que o dispositivo envie solicitações HTTP arbitrárias na rede do proprietário. Isso aumenta a superfície de ataque, pois um invasor pode tentar fazer interface com outros dispositivos na rede, incluindo o roteador.

O Google corrigiu o problema

Pelo lado positivo, depois que Kunze relatou isso em 8 de janeiro de 2021, o Google finalmente corrigiu o problema. Você não pode mais vincular uma conta a um dispositivo Google Home sem um convite da conta já vinculada a ele e não pode mais ligar remotamente para um número de telefone por meio de uma rotina. Da mesma forma, em dispositivos com display, a rede que o dispositivo cria para configuração é protegida por WPA2 e requer uma senha para ingressar.

Embora esta vulnerabilidade só esteja sendo divulgada agora, não é impossível que outra pessoa a tenha descoberto e abusado dela. Se você está preocupado com dispositivos que estão sempre ouvindo, então esta é certamente uma justificativa para isso. Ainda que esse problema específico for corrigido, isso não quer dizer que não haverá mais vulnerabilidades no futuro.


Fonte: Matt Kunze