DEFCON 20: "An analysis of the NFC attack surface"

Na DEFCON 20, o Charlie Miller deu um repeteco dessa palestra que, segundo os rumores, tinha causado furor na Black Hat porque mostrava vulnerabilidades na pilha NFC ("Near-Field Communication", um protocolo de comunicação semelhante ao RFID, entre o celular e tags passivas ou entre dois celulares) que alguns modelos de telefones celulares Android mais recentes têm e que permite obter um root shell remoto simplesmente aproximando um celular de outro celular ou de uma tag passiva.

Ele começou discorrendo sobre a complexidade da arquitetura da pilha NFC e a trabalheira técnica que ele teve para fazer fuzzing nela – inclusive tendo tido que que comprar um concentrador USB especial que permitia ativar e desativar o suprimento de energia via software, para poder fazer um "hard reset" no transceiver NFC via USB que estava usando. Cada tentativa levava 5 segundos e ele levou umas 30.000 tentativas para achar uma vulnerabilidade tipo "double free" no código dos drivers NFC do kernel do Linux (código nativo, não Java). Isso lhe permitiu injetar código para criar um shell reverso via TCP e obter controle total, com permissões administrativas, no telefone.

Ele mostrou ainda outra vulnerabilidade em outro modelo de telefone que permitia disparar uma URL no navegador. Combinando isso com outra vulnerabilidade no navegador (que ele não especificou qual era), também obteve um shell remoto.

Trocando em miúdos: se seu celular é vulnerável, ele pode ser invadido simplesmente se o atacante encostar o celular dele no seu. Ou se ele encostar no seu celular um tag RFID (que pode ser visualmente indistinguível de um cartão de crédito ou folha de papel) devidamente preparado.

Para o ataque funcionar, o dispositivo do atacante tem de chegar bem perto mesmo do celular vulnerável – quase encostando mesmo, coisa de cinco centímetros ou menos. Daí o título principal da palestra: "Don´t stand so close to me" ("não fique tão perto de mim"). O Charlie aproveitou essa deixa para divertir a plateia com vídeos engraçados dos amigos deles achando estranho por que ele se aproximava desconfortavelmente perto do bolso da calça onde eles guardavam seus celulares.

Se por um lado a necessidade de proximidade física pode lhe fazer achar que esse ataque seja meio óbvio ou pouco prático, basta lembrar que os batedores de carteira estão aí para provar o contrário.

As vulnerabilidades estão presentes no Android 2.3 "Gingerbread" – que, à época em que esse texto foi escrito, era de longe a versão mais comum em celulares. O Android 4.0 "Ice Cream Sandwich" já tem várias dessas vulnerabilidades corrigidas.

Além disso, o 4.0.4 vem com ASLR (já não era sem tempo!) dificultando sobremaneira a exploração confiável de vários tipos de bugs tipo esses que causaram essas vulnerabilidades.

Partes anteriores

Próximas partes

Comentários
Aceita-se formatação à la TWiki. HTML e scripts são filtrados. Máximo 15KiB.

 
Enviando... por favor aguarde...
Comentário enviado com suceso -- obrigado.
Ele aparecerá quando os moderadores o aprovarem.
Houve uma falha no envio do formulário!
Deixei uma nota para os admins verificarem o problema.
Perdoe-nos o transtorno. Por favor tente novamente mais tarde.