Grave falha de segurança no Openssl

Este artigo é uma tradução/adaptação de: Vulnerability Note VU#720951

Visão geral

OpenSSL 1.0.1 contém uma vulnerabilidade que pode revelar informações privadas para um atacante.

Descrição

OpenSSL, versões de 1.0.1 até 1.0.1f, contém uma falha em sua implementação da funcionalidade heartbeat TLS/DTLS (RFC6520). Esta falha permite que um atacante obtenha pedaços de 64k da memória privada de uma aplicação que utilize a biblioteca libssl do OpenSSL vulnerável. Observe que o atacante pode utilizar a vulnerabilidade repetidamente para obter tantos pedaços de 64k quanto forem necessários para obter informações sensíveis como:

– Chaves privadas;
– Nomes de usuário e senhas usadas por serviços vulneráveis;
– Dados sensíveis utilizados por serviços vulneráveis;
– Endereços de memória e de conteúdo que podem ser aproveitados para contornar mitigações de exploits.

Para mais detalhes, consulte o site Heartbleed. Códigos de exploit para esta vulnerabilidade estão disponíveis publicamente. Qualquer serviço que suporte STARTLS (imap, smtp, http, pop) pode ser afetado.

 Impacto

Atacando um serviço que utilize uma versão vulnerável do OpenSSL, um atacante remoto não autenticado pode obter informações sensíveis, como chaves privadas. Aproveitando dessas informações, o atacante pode descriptografar, falsificar ou executar um ataque “man-in-the-middle” em uma rede onde o tráfego é protegido por OpenSSL.

Solução

Atualize

Este problema foi tratado no OpenSSL 1.0.1g. Verifique junto aos fabricantes a disponibilidade de atualizações. Vale lembrar que qualquer sistema exposto esta vulnerabilidade deve regerar qualquer informação sensível (chaves secretas, senhas, etc).

Uma tabela com os principais fabricantes e o status de tratamento desta vulnerabilidade pode ser verificada em:
http://www.kb.cert.org/vuls/byvendor?searchview&Query=FIELD+Reference=720951&SearchOrder=4

Desabilite o suporte ao OpenSSL Heartbeat

Este problema pode ser tratado recompilando o OpenSSL com a flag -DOPENSSL_NO_HEARTBEATS.
Aplicativos que utilizam o OpenSSL, como o Apache ou Nginx deverão ser reiniciados para que as mudanças sejam efetivadas.

Utilize Perfect Forward Secrecy (PFS)

PFS pode ajudar a minimizar os danos em caso de vazamento de uma chave secreta fazendo que seja mais difícil descriptografar tráfego de rede já capturado.

Referências

http://heartbleed.com/
http://seclists.org/oss-sec/2014/q2/22
http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=96db902
https://tools.ietf.org/html/rfc6520
http://www.openssl.org/news/openssl-1.0.1-notes.html
https://access.redhat.com/security/cve/CVE-2014-0160
http://www.ubuntu.com/usn/usn-2165-1/
http://www.freshports.org/security/openssl/
https://blog.torproject.org/blog/openssl-bug-cve-2014-0160