Null prefix attack – Mais dicas para frustar o uso de SSL
Após alguns dias em Vegas para Defcon 17 aqui estamos para comentar sobre a conferência nos assuntos relacionados a web. Nesse primeiro post comentarei a que considero a melhor palestra e como citaram ele literalmente “quebrou a segurança da internet” . A palestra foi “More Tricks for defeating SSL” https://www.defcon.org/html/defcon-17/dc-17-speakers.html#Marlinspike .
Para quem não conhece o Moxie, na Blackhat Europa ele lançou uma ferramenta chamada SSLStrip no qual ele explorava a caracteristica básica de requisições http para https que geralmente era oriundas de um redirect. Basicamente o sslstrip juntamente com um arpspoof (ataque de Man In The Middle – MITM) redirecionava todo tráfego da porta 80 para analise da mesma e quando detectava o redirect para o https, ela simplesmente intermediava o processo retornando para o cliente um favicon de cadeado, deixando a conexão entre o cliente e sslstrip em modo texto puro e a conexão https era estabelecida entre sslstrip e servidor dominio.
Você podera ter mais informações no post que colocamos em http://community.nstalker.com/new-techniques-for-defeating-ssl-in-practice-sslstrip
Na palestra More Tricks defeating SSL ele demonstra ataques de MITM contra SSL/TLS emulando certificados (certificate signing request – CSR) devido a falhas no modo de funcionamento da NSS, Crypto API da Microsoft e no GnuTLS. Isso engloba como possiveis alvos para MITM ferramentas como firefox, Internet Explorer, Chrome, Outlook, Evolution e qualquer ferramenta que faça uso nas libs/api citadas anteriormente.
O ataque chamado por ele de Null prefix Atacck se deve a falha de interpretação do prefixo nulo “\0” .
Como funciona:
O cliente procura no subject (CN – common name ) do certificado o dominio ou seja, quando se tem o dominio www.paypal.com no certificado ele seria algo www.paypal.com\0 , onde o cliente aceitaria como o certificado valido.
O problema é que os clientes não verificam se a certificadora é da mesma origem do dominio ou seja, com um prefixo nulo consigo emular qualquer dominio abaixo do meu próprio. Vamos pensar no nstalker.net . Se criarmos um certificado para www.paypal.com.nstalker.net o browser detectara que é um subdominio da nstalker.net e não aceitara isso como certificado valido da N-Stalker . Porém se criarmos um certificado abaixo do nstalker.net para www.paypal.com\0.nstalker.net o \0 enganara o cliente em si e causara a possibilidade de MITM emulando certificados (CSR). Para facilitar mais ainda, se seu alvo utilizar aplicações NSS como firefox por exemplo , você poderá simplesmente criar uma wildcard e fazer MITM para QUALQUER domínio que queira simplementes criando um certificado para *\0.nstalker.net
Para facilitar ainda mais ele fez o release do SSLsniff v0.6 onde você de forma automática pode fazer o processo citado acima, juntamente com um arpspoofing .
A gama de ataques são imensas, como ele mesmo citou updates automáticos do firefox por exemplo são um grande problema pois a confiança está no certificado, ou seja, você emulando que é o domínio dos updates você simplesmente fará o browser atualizar o que quiser e para piorar os updates vem habilitados para rodarem automaticamente.
Realmente podemos dizer que SSL é algo crítico para se acessar em locais em que você não tenha pleno conhecimento da segurança (mais ainda do que no passado visto esse problema) . Estamos realizando testes e logo teremos mais detalhes práticos .
Links sobre o asunto
Video apresentação Blackhat – http://www.thoughtcrime.org/software/sslsniff/video/null-prefix-attack.mov
Paper Null Prefix Attacks – http://www.thoughtcrime.org/papers/null-prefix-attacks.pdf
Como gerar CSR – http://www.verisign.com/support/ssl-certificates-support/page_dev019431.html
SSLsniff v0.6 – http://www.thoughtcrime.org/software/sslsniff/
N-Stalker Research Team