Avançar para o conteúdo

Entrevista Exclusiva: Hackeando o iPhone Através de SMS

    1652314862

    Introdução

    Recentemente, conversamos com o especialista em segurança Charlie Miller, da Independent Security Evaluators, sobre a vulnerabilidade do iPhone recentemente divulgada que permitiria que um hacker mal-intencionado assumisse o controle de um iPhone por meio de uma série de mensagens SMS cuidadosamente elaboradas.

    Alan: Obrigado por tirar um tempo para conversar, Charlie. Por que você não começa nos contando um pouco sobre a vulnerabilidade do SMS?

    Charlie: O bug do iPhone tem a ver com dizer ao telefone que há uma certa quantidade de dados e depois não enviá-los tanto quanto você disse que faria. A função que lê os dados começa a retornar -1 para indicar um erro, mas as outras partes do programa não verificam esse erro e realmente pensam que o -1 é um dado da mensagem. Isso mostra o quão complexo pode ser escrever código seguro, pois separadamente, cada parte do programa parece correta, mas a maneira como elas interagem é perigosa!

    De qualquer forma, dependendo do que você enviar, diferentes coisas ruins podem acontecer. Em um ponto, você pode fazê-lo sair porque está prestes a alocar -1 bytes (que é visto como 0xffffffff – um número muito grande). Esta é uma negação de serviço que desconectará o telefone da rede temporariamente.  

    Durante minha palestra no BlackHat, continuamos enviando essa mensagem de negação de serviço a cada 10 segundos para um voluntário da platéia para mantê-lo fora da rede. Como consequência lamentável, as mensagens estavam sendo sinalizadas na rede e seu telefone ainda estava sendo derrubado horas após a conversa. Desde então, ele voltou a funcionar.

    Alan: Nota para nossos leitores: sempre que Charlie disser que precisa de um voluntário, não faça contato visual. Então, como você enviou a mensagem? Você estava enviando através da interface SMS de outro iPhone ou fazendo algo como enviar um e-mail com a abordagem “ número de telefone@attwireless ”?

    Charlie: Para enviar o SMS pela rede da operadora, tínhamos um pequeno aplicativo no nosso iPhone de ataque que falava com o modem usando comandos GSM AT. Para testar e encontrar os bugs, usamos essa estrutura de injeção muito legal que meu co-apresentador Collin Mulliner escreveu, que permite testar implementações de mensagens SMS apenas enviando dados por TCP. Isso evita que você tenha que enviar dados pela rede da operadora e não custa nada, além de permitir que você teste muitas mensagens muito rapidamente.

    Alan: Então, como você vai de uma negação de serviço para uma exploração completa?

    Charlie: O pior caso tem a ver com a forma como o programa lida com mensagens concatenadas. Esta é uma maneira de enviar mais de 140 bytes por vez. Você pode enviar uma mensagem longa em uma série de mensagens e o telefone a reconstruirá em uma sequência longa. Ele acessa uma matriz com base em um valor dos dados. No caso em que ele acha que lê -1, ele realmente acessa a memória antes do array, não no array. Ao configurar as coisas corretamente e ser complicado, você pode realmente aproveitar isso para obter controle total do dispositivo.

    Todo o ataque leva pouco mais de 500 mensagens, embora a vítima não saiba que estão sendo enviadas porque não aparecem no telefone. A maioria dessas mensagens tem a ver com a configuração das coisas “corretamente”. Dezesseis deles realmente acessam a matriz fora dos limites.

    0 0 votes
    Rating post
    Subscribe
    Notify of
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x