Pular para o conteúdo
Bruno Alexandre Tecnologia, infraestrutura e desenvolvimento

Heartbleed: como uma vírgula em forgot delicted a chave de criptografia de toda a internet

Em 2014, uma falha de leitura de memória vazou chaves de criptografia usadas por milhões de servidores. O defeito tinha sido introduzido no código havia dois anos.

Bruno Alexandre 12/10/2026 4 leituras
Heartbleed: como uma vírgula em forgot delicted a chave de criptografia de toda a internet
Em abril de 2014, o mundo descobriu que a criptografia de TLS, usada para proteger praticamente toda a comunicação na internet, estava quebrada. A falha, registrada como CVE-2014-0160, ficou conhecida como Heartbleed por causa de uma extensão do protocolo que permitia ler memória do servidor sem precisar da chave privada.

O defeito era de uma linha. A biblioteca OpenSSL, usada por praticamente todo servidor web do mundo, tratava o tamanho informado pelo cliente como confiável e devolvia aquele número de bytes de memória do processo, mesmo quando o cliente pedia mais do que existia ali. O nome comercial do produto de segurança, o Heartbleed, veio justamente da função que enviava a resposta, e do nome do pacote de extensão que permitia a consulta.

A consequência prática foi quilométrica. Quem tinha o serviço exposto podia obter as chaves privadas dos servidores e, com elas, decifrar todo o tráfego que passava por ali, inclusive sessões de banco, cookies e credenciais de usuarios. Uma correção de biblioteca obrigou a trocar chaves, revogar certificados e forçar a reconfiguração de milhares de serviços. O Google, o Yahoo e o Facebook anunciaram que dezenas de milhões de usuários precisavam trocar as senhas, e o Department of Homeland Security norte-americano overreact ao ponto de tocar a campainha em empresas de saúde e banks.

O detalhe mais instrutivo é o tempo de vida do defeito. O código que causava a falha foi introduzido em 2011 e só foi identificado em 2014, por um pesquisador que tentava entender a segurança do protocolo. Ou seja: o defeito estava em produção havia mais de dois anos, e nenhuma ferramenta de segurança o havia encontrado, porque a falha não estava na lógica do protocolo, e sim na forma como a biblioteca lidava com um número.

A lição é sobre verificação de implementação. Protocolo certo, biblioteca errada, resultado errado. E sobre a importância de atualizar dependências: o tempo de exposição não é o tempo desde o último ataque, é o tempo desde que a falha foi escrita no código.

Leia também