Heartbleed para não técnicos

De Area31 Hackerspace
Responsáveis: 
* José Damico
* Filipe Balestra

Autores

O Heartbleed explicado para bons leitores não técnicos. (21 de Abril de 2014)

  • José Ricardo de Oliveira Damico: [1]
  • Filipe Balestra: [2]


Introdução

Este artigo tem por objetivo explicar o que é o Heartbleed e responder as perguntas mais comuns que decorrem de tal explicação. Este texto foi escrito para leitores não técnicos, mas deve ser útil também a técnicos que desejam obter rapidamente informações concisas sobre o assunto em questão. Uma premissa para a confecção desse documento é evitar o uso de jargões técnicos. Outra premissa é não assumir que o leitor entende de criptografia e protocolos de comunicação entre computadores. Contudo, mesmo com tais premissas, torna-se extremamente difícil evitar a citação de certas palavras e conceitos. Nestes casos, a premissa final é detalhar com exemplos e metáforas aquilo que exigiu o uso de conhecimento mais avançado.

O que é o Heartbleed?

Um erro de programação (uma falha de segurança), encontrado em um programa de criptografia (Versões do OpenSSL afetadas pelo Heartbleed: 1.0.1 até 1.0.1f e 1.0.2-beta) utilizado em aproximadamente 2/3[3] de todos os servidores de internet do mundo. Este erro permite a um atacante roubar dados confidenciais transacionados em tais servidores. O Heartbleed foi registrado internacionalmente como uma falha de segurança grave, no dia 7 de Abril de 2014[4]. Os servidores afetados pelo Heartbleed são em sua absoluta maioria derivados do sistema operacional UNIX, como o Linux, MacOS, FreeBSD.

O que o Heartbleed não é?

  • O Heartbleed não é um vírus de computador;
  • O Heartbleed não é um malware;
  • O Heartbleed não é uma falha de segurança comumente presente em computadores pessoais, telefones móveis ou tablets.

Qual a relevância do Heartbleed?

O Heartbleed é de extrema relevância pois ele está localizado em um programa que é um padrão de mercado na criptografia e proteção de dados, utilizado em massa em servidores que hospedam sites de internet, mas também encontrado em servidores de e-mail e acesso remoto à redes privadas. Basicamente, toda vez que uma página de internet é acessada através de um endereço https há uma enorme chance de que está página esteja em um servidor com essa falha ativa (se a correção do problema não tiver sido executada). Não confunda com endereços com http, o problema ocorre em sua grande parte em servidores que utilizam o programa OpenSSL para fornecer páginas seguras através de https (note a última letra ‘s’ de seguro). O https é largamente utilizado em sites que precisam oferecer transações seguras, como sites de bancos, webmail, e e-commerce.

O Heartbleed, por estar localizado no programa fundamental que serve para embaralhar os dados transferidos entre um usuário e o site, em decorrência disso o Heartbleed permite a exposição de tais dados para um atacante. Esses dados podem ser tudo que um usuário digitou em um site com endereço https, como dados de login, senha, números de token, e demais informações confidenciais.

A possível exposição de dados confidenciais de usuário, já seria alarmante por si só, contudo os danos potenciais do Heartbleed vão além. Entre os dados que podem ser expostos, está um conjunto de dados do servidor, que o identifica entre os demais. Trata-se de um conjunto confidencial de dados (conhecido como certificado digital) que tem o objetivo de garantir que tal site é realmente o site da instituição que ele diz ser. Por exemplo, esse dado confidencial serve como prova de que ao acessar o site de um banco ou loja on-line, o usuário não está acessando um site falso. Esse conjunto confidencial de dados é de propriedade única e exclusiva da instituição que o requereu. Esse conjunto confidencial de dados não pode ser emitido pela própria instituição que o detém, ao contrário, uma outra instituição analisa o requerimento de tal conjunto confidencial de dados e se tudo estiver correto, esta outra instituição tem a autoridade internacional de fornecer este conjunto confidencial de dados que atesta a autenticidade do endereço de internet para a instituição requerente.

Portanto, se esse dado confidencial for roubado, criminosos podem fazer outros sites falsos, mas atestá-los como pertencentes a instituições idôneas. Assim, o usuário poderá tanto fornecer dados seus, inadvertidamente, ou baixar dados destes falsos endereços, dados que podem ser programas maliciosos disfarçados de programas verdadeiros.

Já seria demais se os estragos do Heartbleed parassem por aqui, mas não param. Quando um atacante se beneficia da falha de segurança que representa o Heartbleed, a atuação deste atacante não deixa rastros. De modo que, não há como saber se um servidor com tal falha já teve dados roubados e quais dados foram copiados. Esta carência de rastreamento encadeia dois problemas: Primeiro, os responsáveis por servidores com o Heartbleed ativo, não tem como oferecer garantia alguma a seus usuários de que eles não foram vítimas de roubo de informação. Segundo, os responsáveis por servidores com o Heartbleed ativo, tem a obrigação de revogar àquele conjunto confidencial de dados que atesta a identidade de seus sites, essa revogação deve ser feita diretamente com as instituições que uma vez alegaram a identidade verdadeira dos servidores falhos. Só depois da revogação que um novo requerimento de autenticidade pode ser feito. Atualmente, dado a extensão e profundidade do impacto do Heartbleed, está acontecendo uma corrida de revogação e novas requisições, que afetam diretamente a confiabilidade do oferecimento de serviços e produtos via internet. Estima-se que aproximadamente 500.000 sites atestados como confiáveis foram afetados pelo Heartbleed[5].

Porquê o nome Heartbleed?

O nome Heartbleed foi dado a tal falha em razão dela acontecer em uma funcionalidade conhecida por Heartbeat, cuja o objetivo é checar se um determinado servidor está ativo. Essa funcionalidade mantém uma conversação simples com os servidores envolvidos em uma determinada transação, essa conversação ocorre como se fossem perguntas. Por exemplo, é feita uma pergunta ao servidor:

– Ei, você está ativo?

E o servidor deveria responder:

– Sim, estou ativo, obrigado!

Porém, com a falha ativa, a resposta do servidor é enviada com fragmentos de dados confidenciais pertencentes a terceiros, mas ainda presentes na memória do servidor consultado.

Há quanto tempo o Heartbleed está ativo na “natureza”?

Há mais de 2 anos.

Como alguém pode se aproveitar do Heartbleed?

Para se aproveitar do Heartbleed, uma pessoa deve ter um determinado nível de conhecimento técnico, ou se servir de quem o tenha.

Para um entendimento objetivo de como alguém se beneficia do Heartbleed, é preciso entender que um site transaciona informações para diversas pessoas ao mesmo tempo. Essas informações são transacionadas por requisições, que são comumente disparadas a todo o momento quando alguém clica um botão em um site, aperta a tecla enter para entrar em um endereço ou simplesmente navega com o mouse. Assim, a interface do navegador, somada ao teclado, mouse ou tela do tablet e telefone móvel formam o ferramental básico para se fazer requisições em sites e transacionar informações. Mas, quem se aproveita do Heartbleed faz uso de outro ferramental, programas que também fazem requisições, mas estas, maliciosas. Tais requisições maliciosas solicitam um tipo de dado ao servidor através do site, mas quando essa solicitação atinge a falha de segurança (que é o Heartbleed), a resposta do servidor são dados de transações que estão sendo feitas por outros usuários. Quando essas informações chegam à pessoa que está se aproveitando do Heartbleed, esta tenta peneirar o que recebeu em busca de algo valioso. O processo de peneirar depende da influência direta de uma pessoa, mas o processo de fazer requisições malignas é normalmente robotizado, o que significa que em pouco tempo inúmeros dados de outros usuários podem ser coletados.

Em uma analogia simples, o Heartbleed poderia ser também explicado da seguinte forma: Uma pessoa se aproxima de uma casa, aperta a campainha uma porção exata de vezes, depois bate na porta de uma determinada forma, num determinado intervalo de tempo, mas como resposta, em vez de alguém de dentro da casa atender à porta, um envelope com diversos fragmentos de cartas confidenciais de pessoas que estão dentro da casa é enviado por debaixo da porta, de dentro para fora. Então, a pessoa que tocou a campainha e bateu à porta, foge com o envelope e depois tenta descobrir senhas, nomes e dados valiosos na carta. Porém o envelope não é muito grande, o processo então deve ser repetido diversas vezes, se o atacante quer informações ou documentos mais completos e longos, como por exemplo a escritura da casa.

Apenas servidores que oferecem endereços com https são afetados?

Não. Virtualmente todo servidor que faz uso do OpenSSL em uma determinada versão, pode estar exposto à falha. Sabe-se que servidores que oferecem serviços de um determinado tipo de rede privada também estão expostos à ataques.

O que importa é como alguém pode se beneficiar do Heartbleed. Quando um servidor fornece um endereço https na internet e utiliza uma determinada versão do OpenSSL, basta possuir um computador e conexão a web para ser um atacante. Por outro lado, se um servidor oferece um serviço baseado em OpenSSL mas esse serviço não é aberto ao público, mesmo com a falha presente, a chance de ataque torna-se menor.

O que eu devo fazer?

Um usuário comum, que faz ampla utilização da internet para compras, pagamentos e troca de informações por sites, deve checar suas contas de acesso, alterar suas senhas e no caso de uso de formas de pagamento online, especialmente com cartões de crédito, deve checar possíveis cobranças indevidas.

Quem descobriu essa falha?

Pesquisadores da empresa americana Google e da empresa finlandesa Codenomicon.

Questionamentos trazidos à tona pelo Heartbleed

O Heartbleed chamou à atenção para ao menos três importantes questionamentos:

Primeiro: O Heartbleed poderia ser uma falha proposital com fins de espionagem?

Segundo: O Heartbleed está presente no programa OpenSSL, este programa é gratuito, feito por pessoas que contribuem abertamente para o seu desenvolvimento. Este tipo de iniciativa é comum e atualmente é a base dos programas fundamentais para o funcionamento da internet, este tipo de iniciativa e as pessoas que contribuem para ela, formam o que é conhecido como Open Source, Código Aberto ou Software Livre. Uma das premissas desse tipo de iniciativa é que um programa feito abertamente por todo e qualquer tipo de colaborador, pode ser auditado, revisto e testado por qualquer um em quaisquer situações sem o risco de infrações referentes à propriedade intelectual. Essa premissa intrinsecamente traz consigo um fator positivo para segurança, se comparado com programas proprietários. Todavia, esse fator de segurança tem sido posto em discussão dado a existência do Heartbleed por tanto tempo, sem a percepção da comunidade responsável pelo OpenSSL;

Terceiro: Sites e informações confidenciais disponibilizados em redes privadas de empresas sem a possibilidade de acesso direto por https pela internet, poderiam estar mais protegidos de tal falha, quando comparados ao mesmo tipo de sites e informações disponibilizados em cloud?

Conclusão

As instituições que tiveram seus servidores afetados pelo Heartbleed devem entendê-lo como um grave incidente de segurança e portanto precisam se apressar em corrigir o problema, revogar seus certificados digitais, solicitar novos e orientar seus usuários a trocar suas senhas, bem como explicar como uma pessoa possivelmente lesada por este incidente deve proceder. Todo o processo de correção deve ocorrer de forma transparente a todos os envolvidos direta ou indiretamente com a falha.

A extensão dos danos causados pelo Heartbleed e o tempo pelo qual tantos sistemas ficaram expostos a esta falha, demostraram a tamanha fragilidade dos métodos de certificação da identidade de sites de internet e colocaram em cheque os limites da responsabilidade das instituições detentoras de sites e portais, pelos dados de usuários que estão armazenados em seus servidores.

As discussões em torno dos questionamentos levantados pelo Heartbleed, serão fundamentais para um entendimento mais amplo e acessível aos usuários de internet, sobre a efetividade da proteção de dados na web.


Áudio gravado no evento netmundial

Resposta do Jacob Applebaum, sobre como o heartbleed afeta o tor e o que poderia ser feito.