Heartbleed
| Heartbleed | |
|---|---|
| Identificador CVE | CVE-2014-0160 |
| Pontuação CVSS | Base: 7.5 HIGH, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| Lançamento | 1 de fevereiro de 2012 |
| Data da descoberta | 1 de abril de 2014 |
| Data da correção | 7 de abril de 2014 |
| Descobridor | Neel Mehta (Google Security)[3] Riku, Antti, and Matti (Codenomicon)[3][4] |
| Software afetado | OpenSSL (1.0.1) |
| Website | heartbleed |
Heartbleed é um bug na biblioteca de software de criptografia open-source OpenSSL, que permite a um atacante ler a memória de um servidor ou de um cliente, permitindo a este recuperar chaves SSL privadas do servidor. [5][6][7] Os logs que foram examinados até agora, levam a crer que alguns hackers podem ter explorado a falha de segurança pelo menos cinco meses antes da falha ser descoberta por equipes de segurança. [8][9][10]
Comportamento
[editar | editar código]
A extensão Heartbeat da RFC 6520 testa links de comunicação seguros TLS/DTLS, permitindo que um computador numa extremidade da conexão envie uma mensagem de solicitação de pulsação (ou Heartbeat Request), composta por uma carga útil, geralmente uma string de texto, juntamente com o comprimento da carga útil como um inteiro de 16 bits . O computador receptor deve então re-enviar a mesma carga útil de volta ao remetente.
As versões afetadas do OpenSSL alocam um buffer de memória para a mensagem a ser retornada com base no campo de comprimento da mensagem solicitada, sem terem em consideração o tamanho real do conteúdo da mensagem. Devido a esta falha na verificação adequada dos limites, a mensagem retornada consiste no conteúdo, possivelmente seguido por qualquer outro elemento presente no buffer de memória alocado.
O Heartbleed é, portanto, explorado através do envio de uma solicitação de pulsação malformada, com uma pequena carga útil e um campo de comprimento grande, para a parte vulnerável (geralmente um servidor) para obter uma resposta da vítima, permitindo aos atacantes lerem até 64 kibibytes da memória da vítima que provavelmente foram usados anteriormente pelo OpenSSL. [11] Enquanto uma solicitação de heartbeat pode pedir a uma parte para "enviar de volta a palavra de quatro letras 'gato'", resultando numa resposta "gato", uma solicitação de Heartbleed (uma solicitação de heartbeat maliciosa) a pedir para "enviar de volta a palavra de 500 letras 'gato'" faria com que a vítima retornasse "gato" seguido por quaisquer 496 caracteres subsequentes que a vítima tivesse na memória ativa. Os atacantes, dessa forma, poderiam ler dados sensíveis, comprometendo a confidencialidade das comunicações da vítima. Embora um atacante tenha algum controlo sobre o tamanho do bloco de memória revelado, não tem controlo sobre sua localização e, portanto, não pode escolher que conteúdo será revelado.
Instalações OpenSSL afetadas
[editar | editar código]As versões afetadas do OpenSSL são as versões entre OpenSSL 1.0.1 e 1.0.1f (inclusive). Versões subsequentes (1.0.1g [12] e posteriores) e versões anteriores (branch 1.0.0 e anteriores) não são vulneráveis. [13] As instalações das versões afetadas são vulneráveis, a menos que o OpenSSL tenha sido compilado com a bandeira -DOPENSSL_NO_HEARTBEATS . [14] [15]
Programa e função vulneráveis
[editar | editar código]Os ficheiros-fonte do programa vulneráveis são t1_lib.c e d1_both.c e as funções vulneráveis são tls1_process_heartbeat() e dtls1_process_heartbeat() . [16] [17]
Patch
[editar | editar código]O problema pode ser resolvido ignorando as mensagens de solicitação de pulsação (ou Heartbeat Request) que pedem mais dados do que o necessário para sua carga útil, conforme exigido pela RFC.
A versão 1.0.1g do OpenSSL adiciona algumas verificações de limites para evitar a leitura excessiva do buffer. O teste listado abaixo foi introduzido para determinar se uma solicitação de heartbeat seria um ataque Heartbleed, descartando silenciosamente solicitações maliciosas.
if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0; /* descartar silenciosamente, de acordo com RFC 6520 sec. 4 */
Referências
- ↑ McKenzie, Patrick (9 abril 2014). «What Heartbleed Can Teach The OSS Community About Marketing». Kalzumeus. Consultado em 8 fevereiro 2018. Cópia arquivada em 20 dezembro 2017
- ↑ Biggs, John (9 abril 2014). «Heartbleed, The First Security Bug With A Cool Logo». TechCrunch (em inglês). Consultado em 8 fevereiro 2018. Cópia arquivada em 11 fevereiro 2018
- 1 2 «Heartbleed Bug». 11 outubro 2023. Consultado em 9 abril 2014. Cópia arquivada em 7 abril 2014
- ↑ Pitkänen, Perttu (9 de abril de 2014). «Näin suomalaistutkijat löysivät vakavan vuodon internetin sydämestä» [This is how Finnish researchers discovered a serious leak in the heart of the internet]. Ilta-Sanomat (em finlandês). Consultado em 11 de outubro de 2023
- ↑ Chen, Brian X. (9 de abril de 2014). «Q. and A. on Heartbleed: A Flaw Missed by the Masses». New York Times. Consultado em 11 de abril de 2014
- ↑ Wood, Molly (10 de abril de 2014). «Flaw Calls for Altering Passwords, Experts Say». New York Times. Consultado em 11 de abril de 2014
- ↑ Manjoo, Farhad (10 de abril de 2014). «Users' Stark Reminder: As Web Grows, It Grows Less Secure». New York Times. Consultado em 11 de abril de 2014
- ↑ Gallagher, Sean (9 de abril de 2014). «Heartbleed vulnerability may have been exploited months before patch». Ars Technica. Consultado em 11 de abril de 2014
- ↑ "No, we weren't scanning for hearbleed before April 7"
- ↑ "Were Intelligence Agencies Using Heartbleed in November 2013?", 10 de abril de 2014, Peter Eckersley, EFF.org
- ↑ Hunt, Troy (9 abril 2014). «Everything you need to know about the Heartbleed SSL bug». Troyhunt. Consultado em 11 abril 2014. Cópia arquivada em 11 abril 2014
- ↑ Hunt, Troy (9 abril 2014). «Everything you need to know about the Heartbleed SSL bug». Troyhunt. Consultado em 11 abril 2014. Cópia arquivada em 11 abril 2014
- ↑ Kranthi (12 abril 2014). «Cyberoam Users Need not Bleed over Heartbleed». Spiceworks Community. Consultado em 3 outubro 2025. Cópia arquivada em 15 abril 2014
- ↑ «OpenSSL Security Advisory [07 Apr 2014]: TLS heartbeat read overrun (CVE-2014-0160)». The OpenSSL Project. 7 abril 2014. Consultado em 9 abril 2014. Arquivado do original em 8 abril 2014
- ↑ «Heartbleed Bug: Comodo Urges OpenSSL Users to Apply Patch». Comodo. 9 de abril de 2014. Consultado em 9 abril 2014. Arquivado do original em 5 julho 2014
- ↑ Hunt, Troy (9 abril 2014). «Everything you need to know about the Heartbleed SSL bug». Troyhunt. Consultado em 11 abril 2014. Cópia arquivada em 11 abril 2014
- ↑ Hunt, Troy (9 abril 2014). «Everything you need to know about the Heartbleed SSL bug». Troyhunt. Consultado em 11 abril 2014. Cópia arquivada em 11 abril 2014