Ate quando ele ira sangrar

Até quando corações irão sangrar?

Refazendo a pergunta, até quando teremos novidades sobre as falhas do OpenSSL e o Heartbleed? Hoje, talvez, seja a pergunta de um milhão de obamas.

Você, querido (e raro) leitor deve ter visto em milhares de sites o transtorno que o HeartBleed está causando. Pelo impacto causado é provável que seja a maior falha de segurança na era da Internet 2.0.

Resumindo o que pude compilar:

Robin Seggelmann enviou um patch para o OpenSSL implementando a extensão Heartbeat para TLS (RFC 6520)8. Infelizmente com ela foi também entrou a falha que permite capturar as chaves privadas, essa falha foi chamada pelo Codenomicon como HeartBleed.

O xkcd fez um quadrinho interessante sobre a falha.

O bom texto para entender um pouco mais o bug, é ir ao IDGNow.

O patch foi enviado pelo Robin Seggelmann em Dezembro de 2011 e entrou na versão 1.0.1 (Abril de 2012), afetando as versões posteriores até a 1.0.1f. Algumas formas de contornar são atualizar para versão 1.0.1g ou compilar novamente o Openssl usando a flag -DOPENSSL_NO_HEARTBEATS. Se você estiver usando servidor web (Apache, Nginx, etc) e usar SSL para HTTPS, considere gerar novamente os certificados, nos meus testes usando certificado com certificado antigo e o OpenSSL atualizado continuo apresentando problema com Heartbleed.

O impacto é tão significativo que praticamente todos os grandes serviços na internet bloquearam as senhas antigas forçando os usuários gerarem novamente. Na semana passada tinha até uma lista no Github com os sites mais famosos que ainda não tinha atualizado o OpenSSL e os certificados.

Além dos servidores web, outros softwares foram afetados?

Provavelmente sim, ao menos na teoria, todos os softwares que usam TLS estão potencialmente estão vulneráveis. O OpenSSH não foi afetado em princípio (até que alguém provar que sim…), outros serviços que usam somente SSLv3 também não. Entretanto, comenta-se que o Android na versão 4.1.1 tem o Hearbleed e todos os dispositivos que usam o BlackBerry Messenger também foram comprometidos. Não posso deixar de mencionar que também foi anunciado que alguns equipamentos da Cisco e Juniper entraram na lista também. A Oracle listou quais versões de seus produtos foram afetados pelo bug.

Em meio a tempestade a Akamai enviou um patch inicial para o OpenSSL com a intenção de melhorar a segurança no armazenamento das chaves privadas do SSL, entretanto Willem Pinckaers questionou a efetividade do patch. Provável que tenha novas revisões evolutivas do patch até que seja incorporado em defitinitivo no OpenSSL.

Considerando que o Heartbleed está nos servidores web desde 2012, o quanto as senhas e dados de milhões de usuários foram vazados. É impossível contabilizar porque são dois anos em que a falha esteve disponível sem nenhum alarde.

As recomendações no geral são: atualizar o OpenSSL, gerar novamente as chaves privadas e trocar as senhas. Recomendo que daqui um tempo, troque novamente as senhas porque o Hearbleed porque ainda tem muita coisa pela frente. Pelo que a Bloomblerg noticiou, a NSA sabia da existência do bug há dois anos. Quem mais sabia? Provavelmente muitos outros, infezlimente.

O Pessoal do Elastica criou um vídeo explicando como é o HeartBleed.

Isso me lembrou uma outra falha que causou um grande alvoroço e que acidentalmente foi introduzida também no OpenSSL (0.9.8c-1) mas especificamente no Debian e derivados. A falha foi descoberta em Maio de 2008 pelo Luciano Bello e ela comprometeu as chaves SSH, OpenVPN e DNSSEC.

O curioso que até os produtos e os serviços da Microsoft e outras empresas com a cultura de software proprietários não foram afetados e tem muitos “especialistas” alegando que os produtos/sistemas deles são mais seguros. Esse argumento é levemente falso porque o Heartbleed somente teve essa repercussão grande porque o OpenSSL tem uma licença considerada Código Aberto (“Software Livre”). Se o OpenSSL tivesse uma licença como a maioria dos produtos da Microsoft, provavelmente não saberíamos que ele existia.

Algumas pessoas são bem críticas ao OpenSSL, principalmente pela código enorme (200 mil linhas) e de qualidade duvidosa. Ao menos é o que diz o Poul-Henning Kamp, desenvolvedor e Varnish. Recomendo ler o artigo (inglês) na [ACM].

Alternativas?

GnuTLS e PolarSSL são algumas. Se alguém já usou algum em seus projetos, conte a experiência para nós. :)

O pessoal do OpenBSD fez um fork (LibreSSL) e estão fazendo uma pequena faxina no código para que falhas como o Heartbleed tenha pouca probabilidade de acontecer.

O artigo na Wikipedia do Heartbleed é a melhor compilação sobre o bug. Vale a leitura.

comments powered by Disqus