Falha 'Heartbleed' é uma catástrofe
Entre tantas vulnerabilidades que são corrigidas e noticiadas, e aparentemente o mundo sempre consegue seguir seu curso normal, perde-se a noção do que é realmente uma brecha grave. Parte disso é a dificuldade de se entender o problema. Mas quero deixar algo claro: a falha corrigida nesta segunda-feira (7), batizada de "Heartbleed", é coisa de cinema, um desastre de segurança na forma como chegou ao público e pela forma que comprometeu a segurança de, estima-se, 500 mil sites.
A situação é a seguinte: navegar em um site "seguro", com cadeado e HTTPS, se ele for afetado por essa falha, é na verdade menos seguro do que navegar em um site sem segurança alguma. Essa brecha, embora desconhecida do público, ficou aberta por dois anos, em um software que é de código aberto. Ou seja, em teoria, qualquer programador poderia ver esse código e identificar o problema. Mas durante dois anos, apesar de esse código ser usado por gigantes da internet e da tecnologia, ninguém fez isso. (E não há muito o que o usuário comum possa fazer, veja mais abaixo)
O problema existe em um código que os programadores chamam de "biblioteca". É um software que não se usa diretamente, mas que um programa que usamos "chama" para realizar funções que ele precisa. Ou seja, em vez de centenas de programas "reinventarem a roda", eles "chamam" essa biblioteca e usam um código já pronto para fazer aquilo que precisam.
Nesse caso, a biblioteca vulnerável, a OpenSSL, é a responsável por realizar funções criptográficas ligadas ao SSL e ao TLS. São os protocolos usados em sites com cadeado e também para a conexão segura a servidores de e-mail e outros serviços. Embora existam bibliotecas alternativas, a OpenSSL, criada em 1998, é ainda a mais popular, especialmente para o uso em servidores. Em computadores domésticos, outras bibliotecas são mais usadas (o Windows tem uma, por exemplo; o Mac OS X tem outra, que também teve uma falha absurda divulgada recentemente, e o Firefox faz uso de uma biblioteca própria).
Dados originais apontavam que dois em cada três sites da web estariam vulneráveis. Esse número foi baseado na soma dos sites que fazem uso dos softwares Apache e Nginx - dois servidores populares que usam o OpenSSL. Dados da Netcraft, no entanto, apontam apenas 17% dos sites estão vulneráveis. "Apenas", nesse caso, são cerca de 500 mil sites seguros, que incluem ou incluíam bancos e também serviços como Yahoo Mail, Flickr, 500px, Dropbox, Steam, Twitter e Tumblr. O Netcraft também não considera servidores de e-mail vulneráveis e outros serviços que também podem fazer uso do OpenSSL e estão potencialmente vulneráveis.
(Cabe exclusivamente aos sites que estavam vulneráveis o envio de um recado para seus usuários informando quais passos devem ser seguidos, como a alteração da senha e informações sobre medidas de proteção adicional (como envio de código para celular). Não é dever dos internautas usar ferramentas para tentar determinar, com alta chance de erros, se um site está vulnerável ou não. E também de nada adianta trocar suas senhas em um site antes que ele tenha eliminado o problema. O Tumblr, por exemplo, já se pronunciou. A Valve, dona do Steam, confirmou que resolveu o problema, mas não deu orientações aos usuários até o momento.)
A brecha permite que a memória do programa que está usando o OpenSSL seja lida em blocos de 64 KB (o que é bastante). Na prática, o hacker pode ver o que o servidor está processando. Isso inclui um formulário de login que outro internauta qualquer acabou de preencher, expondo a senha e o nome de usuário, ou mesmo uma mensagem de e-mail que alguém está visualizando, expondo o conteúdo da mesma. O hacker não tem controle sobre o que será revelado, mas ele pode explorar a falha repetidamente, obtendo 64 KB de dados por vez.
Imagine, no cinema, a cena: um personagem digita sua senha em um terminal de acesso. No outro lado do mundo, o hacker, sem poder interceptar os dados ou invadir o computador, consegue ler a memória do servidor que recebeu os dados de acesso. No meio de tanto "lixo" na memória, o hacker dá um zoom na senha e no nome de usuários, expostos em plena vista. É exatamente assim que o "heartbleed" funciona.
Para internautas, ter a senha e dados expostos já é o pior dos mundos. Para donos de servidores, algo ainda pior pode acontecer: o roubo da chave privada do certificado de segurança. A "chave privada" é o nome que especialistas em criptografia dão para uma sequencia de dados que é usada para codificar e decodificar o conteúdo de uma conexão segura. É como se fosse uma senha bastante longa, mas ela tem propriedades especiais que permitem que essa "senha" jamais precise ser compartilhada com a outra parte da conexão para que possa decodificar os dados - diferente de uma senha, que ambas as partes precisam conhecer.
Ou seja, essa chave jamais pode cair na mão de outra pessoa. E essa brecha pode permitir exatamente isso, sem deixar qualquer rastro, e minando completamente a segurança fornecida pelo "cadeado" e pelos sites seguros. E ela ficou aberta por dois anos. Qualquer agência de inteligência que conhecia esse problema, sem dúvida, fez uma "festa".
A vulnerabilidade foi corrigida na segunda-feira (7), mas apenas o time do OpenSSL disponibilizou uma correção. Distribuições de Linux não tinham conhecimento adequado da falha, o que significa que, mesmo horas após uma atualização estar disponível e códigos para explorá-la já estarem circulando na web, não havia uma versão atualizada para eliminar o problema em alguns servidores.
Agora, a situação é a seguinte: nenhum dono de site tem como saber se alguma chave privada foi roubada. Nenhum usuário tem como saber se uma senha foi comprometida. Se o mundo seguir seu curso normal, provavelmente muitas coisas inexplicáveis, como contas de e-mail roubadas e acessos indevidos, vão acontecer. Especialistas em segurança, como de costume, colocarão a culpa "nos usuários", com seus cliques indevidos e preenchimento de dados em páginas falsas, sugerindo a instalação de softwares que nada puderam fazer contra isso.
E como toda tragédia, ela foi anunciada. Em setembro de 2012, um perfil no Twitter apontava bizarrices do código do OpenSSL. Essas bizarrices nascem do legado presente no código, bem como dos limitados recursos com o qual o software é mantido. Poucas pessoas ou empresas realmente se importam com esses programas que constituem os bastidores da internet. E bastidor costuma ganhar o palco por um de dois motivos: erro ou comédia. É uma pena que esse caso não se trata da segunda opção.