Primeiro , antes de surtar, certifique-se de entender se essa vulnerabilidade realmente se aplica a você. Se você possui um servidor, mas nunca teve nenhum aplicativo usando TLS, isso não é uma tarefa de alta prioridade para você corrigir. Se, por outro lado, você já teve aplicativos habilitados para TLS, então está pronto para um deleite. Leia:
O que exatamente é o CVE-2014-0160, também conhecido como "Heartbleed"?
É uma grande bagunça, é isso que é. Em resumo, uma vulnerabilidade explorável remotamente foi descoberta nas versões 1.0.1 a 1.0.1f do OpenSSL, através das quais um invasor pode ler certas partes da memória do sistema. Essas partes são aquelas que mantêm dados confidenciais, como chaves privadas, chaves pré-compartilhadas, senhas e dados corporativos de alto valor, entre outras coisas.
O bug foi descoberto independentemente por Neel Mehta, do Google Security (21 de março de 2014) e pela empresa finlandesa de testes de segurança de TI Codenomicon (2 de abril de 2014).
Qual é a causa?
Bem, código incorreto no OpenSSL. Aqui é a confirmação de que introduziu a vulnerabilidade, e aqui é a confirmação de que fixa a vulnerabilidade. O bug apareceu em dezembro de 2011 e foi corrigido hoje, 7 de abril de 2014.
O bug também pode ser visto como um sintoma de um problema maior. Os dois problemas relacionados são: (1) que processo existe para garantir que o código incorreto não seja introduzido em uma base de código e (2) por que os protocolos e extensões são tão complexos e difíceis de testar. O item (1) é uma questão de governança e processo no OpenSSL e em muitos outros projetos. Muitos desenvolvedores simplesmente resistem a práticas como revisão de código, análise e varredura. O item (2) está sendo discutido no GT TLS da IETF. Consulte Heartbleed / complexidade do protocolo .
O código incorreto foi inserido com códigos maliciosos?
Não vou especular se isso foi realmente um erro ou se algum código foi inserido em nome de um ator ruim. No entanto, a pessoa que desenvolveu o código para o OpenSSL afirma que foi inadvertido. Veja O homem que introduziu séria falha de segurança "Heartbleed" nega que a tenha inserido deliberadamente .
Quais sistemas operacionais e versões do OpenSSL são vulneráveis?
Como mencionado acima, qualquer sistema operacional que esteja usando ou aplicativo vinculado ao OpenSSL 1.0.1 a 1.0.1f.
Quais são os sintomas, existem métodos para detectar uma exploração bem-sucedida?
Esta é a parte assustadora. Até onde sabemos, não há maneira conhecida de detectar se essa vulnerabilidade foi ou não explorada. Teoricamente, é possível que em breve sejam liberadas assinaturas de IDS que possam detectar essa exploração, mas, até o momento da redação deste documento, elas não estavam disponíveis.
Há evidências de que o Heartbleed estava sendo explorado ativamente em estado selvagem desde novembro de 2013. Veja o artigo de natureza selvagem do EFF : as agências de inteligência usavam o Heartbleed em novembro de 2013? E a Bloomberg relata que a NSA havia armado a exploração logo após a introdução da vulnerabilidade. Veja a NSA disse explorar o bug do Heartbleed por inteligência por anos . No entanto, a Comunidade de Inteligência dos EUA nega as alegações da Bloomberg. Veja IC NA GRAVAÇÃO .
Como posso verificar se meu sistema está afetado?
Se você estiver mantendo o OpenSSL no seu sistema, poderá simplesmente emitir openssl version
:
$ openssl version
OpenSSL 1.0.1g 7 Apr 2014
Se a distribuição é manter OpenSSL, então você provavelmente não pode determinar a versão do OpenSSL, devido à volta remendar usando openssl
comando ou as informações do pacote (por exemplo, apt-get
, dpkg
, yum
ou rpm
). O processo de correção posterior usado pela maioria das distribuições (todas?) Usa apenas o número da versão base (por exemplo, "1.0.1e"); e não inclui uma versão de segurança efetiva (por exemplo, "1.0.1g").
Há uma pergunta em aberto no Superusuário para determinar a versão de segurança efetiva para o OpenSSL e outros pacotes quando os pacotes são devolvidos. Infelizmente, não há respostas úteis (além de consultar o site da distribuição). Consulte Determinar a versão de segurança efetiva quando confrontado com o Backpatching ?
Como regra geral: se você já instalou uma das versões afetadas e já executou programas ou serviços vinculados ao suporte do OpenSSL para TLS, estará vulnerável.
Onde posso encontrar um programa para testar a vulnerabilidade?
Poucas horas após o anúncio da Heartbleed, várias pessoas na Internet publicaram aplicativos da Web acessíveis ao público que supostamente poderiam ser usados para verificar um servidor quanto à presença dessa vulnerabilidade. Até o momento em que escrevi este artigo, não revisei nenhum, portanto não divulgarei mais suas aplicações. Eles podem ser encontrados com relativa facilidade com a ajuda do seu mecanismo de pesquisa preferido.
Como essa vulnerabilidade é mitigada?
Atualize para uma versão não vulnerável e redefina ou proteja os dados vulneráveis. Conforme observado no site Heartbleed , as etapas de resposta apropriadas são amplamente:
- Patch sistemas vulneráveis.
- Regenere novas chaves privadas.
- Envie um novo CSR para sua CA.
- Obtenha e instale um novo certificado assinado.
- Invalidar chaves de sessão e cookies
- Redefinir senhas e segredos compartilhados
- Revogar certificados antigos.
Para uma análise e resposta mais detalhadas, consulte O que um operador de site deve fazer sobre a exploração do Heartbleed OpenSSL? no Security Stack Exchange.
Deveria me preocupar que minhas chaves ou outros dados privados tenham sido comprometidos? Com que outros efeitos colaterais devo me preocupar?
Absolutamente. Os administradores de sistemas precisam assumir que seus servidores que usavam versões vulneráveis do OpenSSL estão realmente comprometidos e respondem de acordo.
Logo após a divulgação da vulnerabilidade, o Cloudfare ofereceu um desafio para verificar se a chave privada de um servidor poderia ser recuperada na prática. O desafio foi vencido de forma independente por Fedor Indutny e Ilkka Mattila. Veja O Desafio Heartbleed .
Onde posso encontrar mais informações?
Despejo de link, para quem procura mais detalhes:
Uma linha do tempo bastante detalhada dos eventos de divulgação pode ser encontrada na linha do tempo da divulgação da Heartbleed: quem sabia o quê e quando .
Se você é um programador e está interessado em vários truques de programação, como detectar um ataque do Heartbleed através do msg_cb
retorno de chamada do OpenSSL , consulte o Aviso de Segurança 2014047 do OpenSSL .