Quem é esse tal de Heartbleed, que afinal de contas tem assustado os usuários de Internet nos últimos dias, como o maior bug de segurança dos últimos anos? De fato, não tenho ouvido falar do potencial catastrófico de um bug com tamanha intensidade desde os tempos do bug do milênio. Para quem não se lembra, o bug do milênio assombrou os sistemas dos bancos, hospitais, bolsas de valores, distribuidoras de energia, serviços de telecomunicações, enfim todos aqueles serviços essenciais, cuja plataforma era controlada por softwares antigos, que não estavam preparados para a virada do ano 2000.

A nova onda catastrófica parece ser ainda mais avassaladora, pois toca diretamente em cada um de nós, que ao usar serviços na Internet nos últimos anos se sentia extremamente seguro ao utilizar um site que possuísse aquele “cadeadinho” na categorização do nível de segurança da conexão ao site. O cadeadinho é uma representação de uma conexão criptografada, que teoricamente impediria que terceiros sem ser uma das pontas da comunicação tivessem acesso aos dados trafegados naquela conexão.

A criptografia utilizada em muitos desses casos é o OpenSSL, que para estabelecer a conexão segura de dois servidores realiza o chamado “heartbeat”, uma técnica utilizada pelos dois computadores que conversam entre si para garantirem que o outro ainda está vivo. Assim, os computadores trocam dados de forma constante para garantir que a conexão esteja válida e, se algo der errado durante a comunicação, o outro computador interrompe as transferências de dados. Na teoria, o OpenSSL funciona bem, mas uma falha de programação nessa funcionalidade deixou grandes sites vulneráveis a roubo de dados por anos, desde 2011.

O erro de código no heartbeat permite que alguns bytes de um dos computadores possam ser transferidos para o outro, sem controle da informação transferida, como um pequeno vazamento, o que inspirou denominar o bug de Heartbleed. Na teoria o usuário envia o seu heartbeat para o servidor (um banco, por exemplo), e o servidor o entrega de volta, sendo que se algo der errado durante a transação o outro computador vai saber, pois os computadores perdem a sincronia. Esse processo simples é repetido milhões de vezes por dia em todo o mundo, o problema é que o pequeno vazamento de dados decorrente da falha do código acontecendo milhões de vezes, pode acabar por deixar vazar algum dado sensível como senhas de bancos ou outros serviços. Nessa hora, não é difícil para os hackers ficarem coletando essas gotinhas de dados vazados até encontrarem algo interessante, como garimpeiros buscando o ouro na bateia.

Erros de software não são uma novidade, inclusive com repercussões amplas como a do bug do milênio, até porque, apesar de todos os esforços da indústria de software em criar produtos mais seguros e livres de defeito, esse objetivo não foi plenamente alcançado. O software continua sujeito a apresentar erros, pois a execução correta dos programas depende de vários fatores, como a configuração do computador, as informações utilizadas para “alimentar” o produto, o próprio hardware utilizado pelo software, entre outros.

São muitas as circunstâncias aleatórias que cercam a possibilidade de o software apresentar defeitos. Devido à complexidade inerente do software e do seu processo de desenvolvimento, com exceção dos softwares de missão crítica, é praticamente inviável a criação de um software totalmente livre de erros. Por isso, a própria lei de software impõe a obrigatoriedade do fornecedor em prestar serviços técnicos durante o prazo de validade do software. É comum que as empresas disponibilizem com certa frequência pacotes de atualização, que além de aperfeiçoar o produto, servem para corrigir erros identificados após o lançamento do produto no mercado.

Chegamos então à questão de quem é o fornecedor do OpenSSL, que eventualmente poderia ser responsabilizado devido à falta de informações adequadas ou por ter sido negligente ou imprudente no processo de desenvolvimento do software. Pois é, quem “gerencia” o tal cadeadinho é uma fundação denominada OpenSSL Software Foundation e o cadeadinho é “fabricado”como código aberto em um esforço colaborativo, em um formato que basicamente significa que você está livre para pegar o código e usá-lo para fins comerciais e não comerciais. Na prática, esse elo importante da cadeia de fornecimento de bens ou produtos pela Internet está sendo fechado por um cadeado fraco, pois não existe por trás do OpenSSL uma empresa robusta, com capacidade técnica e financeira para suportar os efeitos desse erro de programação.

O Brasil protagonizou nos últimos anos um intenso movimento de defesa dos códigos abertos como uma alternativa às grandes corporações mundiais e ao domínio norte-americano no setor de software. Conceitualmente a ideia do código aberto é interessante e está embasada em uma ideologia colaborativa, mas na prática a situação não é tão simples, pois os sistemas acabam ficando sem uma estrutura sólida que possa manter a atualização tecnológica e manutenção dos seus sistemas contra os ataques dos hackers. Tanto é assim, que o movimento em favor do código aberto perdeu força mais recentemente, em parte devido à falta do responsável pela evolução do ciclo de vida do produto.

Há quem diga que essa é a importância dos códigos abertos que permitem a identificação dos erros de maneira ampla. Mas a sensação que fica nesse momento, em que a catástrofe do Heartbleed é divulgada, é de um abismo no final do túnel, pois quem vai ser responsabilizado caso nossas senhas tenham vazado por esse bug? A correção do erro parece ser simples e o vazamento aparentemente vai ser estancado, então nos resta agora trocar nossas senhas periodicamente para afastar a exposição de informações sensíveis, aliás como as boas práticas de segurança da informação já recomendavam.