Ineficiência do HTTPS/SSL em conteúdo estático e público
Publicado por Denny Roger em 14 Out 2008 | sob: Artigos
Em agosto deste ano o russo Stanislaw Yurievich Pusep entrou em contato comigo para apresentar e discutir uma vulnerabilidade no HTTPS. Ele mora no Brasil desde 1994 e mesmo tendo abandonado a formação academica na área de ciência da computação, Stanislaw é um autoditada que ainda continua pesquisando sobre o assunto.
Sempre comento em minhas palestras que a característica mais forte para trabalhar na área de segurança é ser um autoditada. Isso ocorre porque não existe curso no mundo que consegue acompanhar a evolução da tecnologia. Os crackers já provaram que os mecanismos de segurança (firewall, antivírus, IDS/IPS, etc) também não conseguem acompanhar a evolução dos ataques na internet.
Recebi hoje o artigo escrito por Stanislaw sobre a vulnerabilidade no HTTPS e quero compartilhar a informação com os milhares de leitores deste blog e amigos da área de segurança da informação.
Quero aproveitar esta oportunidade para agradecer aos e-mails que tenho recebido de profissionais da área de segurança da informação dos EUA e Europa elogiando o conteúdo do blog, principalmente dos textos relacionados a segurança na aplicação. É interessante saber que os gringos utilizam o Google Translate para traduzir os textos do português para o inglês.
Abraços, Denny Roger (denny@epsec.com.br)
Por Stanislaw Pusep
Ineficiência do HTTPS/SSL em conteúdo estático e público
Vulnerabilidade:
A criptografia SSL, assim como muitos outros métodos, oculta somente a informação transmitida em si, preservando o tamanho dos pacotes de dados. Em vários casos, assim como em uma sessão comprimida e encriptada de VoIP, ou em um texto distorcido, contido numa imagem, é possível induzir o conteúdo criptografado utilizando métodos estatísticos.
No caso de uma comunicação via HTTPS, a quantidade de bytes transferidos entre o cliente e o servidor pode identificar o conteúdo estático requisitado, tal como imagens ou downloads. Portanto, tendo o livre acesso a este conteúdo no servidor, é possível indexá-lo pelo tamanho, para posteriormente identificar a atividade numa sessão encriptada de outro cliente.
Por exemplo, num aplicativo webmail ou num fórum, podem-se mapear todas as imagens. Ao interceptar comunicação codificada com este aplicativo, identificando as imagens, é possível ter uma idéia do que está acontecendo “do outro lado”: por exemplo, que tipo de anexo que o usuário costuma baixar do servidor (identificando através do ícone), ou até mesmo a identidade do usuário em questão (identificando através do avatar).
Implementação:
O famoso buscador de torrents, The Pirate Bay, recentemente disponibilizou a opção de utilizar HTTPS na navegação pelo seu site. Porém, a própria natureza dos arquivos .torrent facilita a sua identificação pelo tamanho: o seu conteúdo consiste de hashes dos blocos dos dados compartilhados pela rede P2P, existindo uma correlação do tamanho do .torrent com o tamanho do(s) arquivo(s) compartilhado(s). Por outro lado, nomes extensos dados aos torrents também auxiliam na sua indexação.
Para os fins de testar a identificação do conteúdo pelo seu tamanho, os torrents mais populares e os mais recentes foram indexados pelo tamanho do arquivo hospedado em si, assim como pelo tamanho do seu nome (no caso, URI). Obteve-se a seguinte distribuição do tamanho do arquivo, numa população de aproximadamente 165 mil torrents:
Os torrents mais comuns, os de aproximadamente 14 KB, representam as imagens de CDs (.iso) de aproximadamente 700 MB.
Também foi desenvolvido um script em Perl capaz de identificar (através do Wireshark) o tamanho do request/response de uma sessão capturada de HTTPS (desde que empregue o cipher TLS):
Para mais informações, acesse http://sysd.org/stas/node/220.
Stanislaw Pusep
creaktive@gmail.com
http://neuromanticos.sysd.org/
| Enviar por e-mail | Hits para esta publicação: 805