Coletando grandes quantidades de dados com o WhatsApp


Criar um banco de dados de números de telefone, imagens de perfil e informações de status de quase todos os usuários do WhatsApp é muito fácil. O usuário nem precisa ser adicionado aos seus contatos. Isso deve levantar pelo menos algumas preocupações com a privacidade e, espero, muito mais. Deixe-me explicar como funciona.
Você é especialista em tecnologia? Você pode fazer o download aqui de uma extensão do Chrome para usar meu script por conta própria.
Há alguns anos, o WhatsApp tornou possível usar o WhatsApp no ​​seu navegador. Isso é bom para a experiência do usuário porque compor uma mensagem no seu teclado é muito mais fácil do que usar esses minúsculos botões da tela sensível ao toque. Também torna mais fácil copiar / colar e adicionar anexos. Tanto pelas boas notícias. A má notícia é que é tecnicamente possível usar a interface da Web do WhatsApp para criar um banco de dados enorme de todos os possíveis usuários do WhatsApp. Há apenas um pequeno grupo de usuários não afetados: os usuários que alteraram suas configurações de privacidade. Infelizmente, a maioria dos usuários não altera essas configurações de privacidade e o WhatsApp não o incentiva muito. Esses fatos abrem a possibilidade de coletar enormes quantidades de dados interessantes que vou mostrar agora.

Explicação para usuários normais

O WhatsApp da Web se conecta aos servidores WhatsApp usando seu telefone. Em poucas palavras, o navegador instrui o servidor a devolver todas as informações de um determinado número de telefone. Algumas das informações que estão sendo enviadas de volta incluem o seguinte:
  • A foto do perfil
  • O texto de status ou sobre o texto, os textos padrão é o famoso 'Hey there! Estou usando whatsapp'
  • O status on-line / off-line do usuário
Acontece que as informações acima podem ser solicitadas para cada número de telefone. Como foi dito, não é necessário que o número de telefone tenha sido adicionado à sua lista de contatos. E como não há essa restrição, é possível criar um banco de dados completo de números de telefone, fotos de perfil, textos e status online / offline. O banco de dados pode ser configurado de tal forma que os cronogramas completos dos números de telefone possam ser reconstruídos. Isso responde a perguntas como: quando era o usuário com o número de telefone xxx-xxxxxx online e offline?
Uma linha de tempo fictícia que pode ser reconstruída para quase todos os usuários do banco de dados mencionado
Quase todos os sites que estão sendo enviados para o seu navegador contêm software específico que determina como o site funcionará no seu navegador. Esse software é escrito em Javascript. O software determina o que acontece quando você clica em um botão ou move o mouse. Mas o software também pode se conectar a um servidor para solicitar certos tipos de informação. O software na Web WhatsApp também faz isso. Ele envia um número de telefone para o servidor WhatsApp e, em poucos milissegundos, recebe as informações sobre esse número de telefone. Uma das coisas legais desse software é que todos podem dar uma olhada no código-fonte. Isso não é tudo, você também pode usar o software sozinho usando certas partes dele sozinho. Eu usei essa possibilidade para desenvolver um script para solicitar informações de uma enorme variedade de números de telefone. Essa informação contém as imagens do perfil, sobre textos e status online / offline. Todos podem criar um script desse tipo.
Meu script em ação onde solicitei as informações para 400 números de telefone aleatórios

Preocupações com a privacidade

Então, o que alguém pode fazer com todas essas informações? Antes de mais nada, imagine que qualquer pessoa possa criar um banco de dados com as informações acima, que contenha todos os números de telefone de um determinado país, juntamente com as fotos do perfil, sobre os textos e os status on-line / off-line. Isso está ao alcance de um país como a Holanda. O banco de dados pode ser consultado de tal forma que ele me avisa quando um número de telefone está on-line e me diz qual imagem de perfil pertence ao número de telefone. Depois de alguns meses, ele pode me dizer com que frequência você mudou sua foto de perfil e em quais fotos. E quanto ao reconhecimento facial? Essas técnicas foram melhoradas nos últimos anos. Imagine isso, dou uma caminhada e tiro uma foto de algum estranho. Agora eu alimento o banco de dados que foto e em poucos minutos, ele me diz qual número de telefone pertence à imagem.

Resposta WhatsApp

Sou fã de divulgação responsável. Então, quando descobri essa possibilidade de coletar enormes quantidades de dados no WhatsApp, entrei em contato com eles. Ou entrei em contato com o Facebook porque eles possuem o WhatsApp. Resumidamente, eles estão cientes da possibilidade dessa quantidade de coleta de dados, mas não a consideram um problema ou uma preocupação de privacidade. Tome um momento para pensar sobre isso antes que você possa concordar ...
Resposta do Facebook depois que eu divulguei a possibilidade de coleta de dados para eles

Explicação técnica

A seguir, uma explicação técnica que pode ser um pouco difícil de seguir para usuários não técnicos.
Web WhatsApp faz uso de uma API não documentada. Essa é uma API que você pode usar, mas terá que descobrir por si mesmo como usá-la. A API javascript se comunica com os servidores WhatsApp usando um WebSocket.
Parte da API Javascript da Web WhatsApp
Existem três chamadas de API que uso no meu script. O primeiro é a loja . ProfilePicThumb . find () e é usado para coletar fotos de perfil. Você pode usá-lo da seguinte maneira:
Exemplo de solicitação de uma foto de perfil para um número de telefone. Tenha em mente que você só pode solicitar os URLs na mesma guia de onde o WhatsApp da Web está sendo executado. Você terá que adicionar um elemento ao DOM.
A segunda chamada da API é  Store . Wap . statusFind () e é usado para solicitar o texto sobre um número de telefone. Um exemplo:
Solicitando o texto sobre um número de telefone
A última chamada da API é  Loja . Presença . find () e é usado para solicitar o status online / offline. Use-o da seguinte maneira:
Solicitando o status on-line / off-line de um número de telefone
Colocando todas essas chamadas de API em um loop, você pode solicitar essas informações para cada número de telefone que você puder imaginar.
No início deste artigo, você vê uma interface do usuário que eu criei. Ele usa as chamadas de API acima. Você pode encontrar esse script aqui . Elimine o script no console do desenvolvedor em sua instância do WhatsApp da Web e a interface do usuário será exibida. Por favor, use-o com sabedoria!

Atualização 15-05-2017 04:20

Algumas pessoas fizeram algumas observações sobre essa descoberta. Eu gostaria de responder a essas observações da seguinte forma:
Observação 1: 'Não vejo como isso é notícia, posso simplesmente adicionar qualquer número e ter a mesma informação'
Sim, você pode fazer isso e você teria as mesmas informações. Mas a diferença é que eu uso uma maneira automatizada para coletar essas informações. Você é capaz de selecionar 100 números, adicioná-los aos seus contatos e ter essa informação em uma boa mesa usando seu telefone? É a escala da coleção e não se trata de revelar informações secretas. Não é um problema relacionado à segurança.
Observação 2: 'Esta informação não é secreta nem privada. Como esta notícia? 
Haha, sim eu entendo isso. Mas pense nisso: eu posso criar um enorme banco de dados contendo imagens de perfil conectadas a um número de telefone. Dessa forma, posso usar o reconhecimento facial para descobrir qual é o número de telefone de alguém tirando uma foto deles. Novamente, como com a observação 1: é tudo sobre a escala potencial de fazer isso, o que o torna um problema.
Observação 3: 'Eu já descobri isso anos atrás, como é essa notícia?' 
Eu não sei? Provavelmente não conseguiu a atenção que merecia na época. Agora, chama a atenção, fique feliz com isso, porque muitas pessoas mudaram suas configurações de privacidade no WhatsApp por causa desse blog / script.🙂

Atualização 16-05-2017 14:00

Andreas Buchenscheit apontou para mim os perigos de saber a linha do tempo de presença dos usuários do WhatsApp. Dê uma olhada no seu papel aqui.

Atualização 16-05-2017 21:45

Eu criei uma extensão do Chrome muito simples que traz a interface do usuário.