Heart bleed. Dissecando o



Documentos relacionados
Heart bleed. Dissecando o

Comunicado. Ataque LogJam - Nova vulnerabilidade no SSL/TLS.

Evidenciando e identificando servidores vulneráveis ao SSL/TLS

Segredos do Hacker Ético

Segurança da Informação. Prof. Gleison Batista de Sousa

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Desenvolvendo MetasploitScanHTTP.pl para falhas HTTPS vulneráveis ao Metasploit. Inj3cti0n P4ck3t

Como conectar-se à rede Sem Fio (Wireless) da UNISC. Pré-Requisitos:

Criando scanner para FreeSSHd vulnerável ao exploit do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t

SEG. EM SISTEMAS E REDES. 03. Vulnerabilidades em redes. Prof. Ulisses Cotta Cavalca <ulisses.cotta@gmail.com>

O projeto Metasploit é um framework que foi criado em 2003 por HD Moore e é uma plataforma que permite a verificação do estado da segurança dos

Políticas de Segurança de Sistemas

INFORMAÇÕES IMPORTANTES: LEIA COM ATENÇÃO

Como conectar-se à rede Sem Fio (Wireless) da UNISC. Pré-Requisitos:

Como conectar-se à rede Sem Fio (Wireless) da UNISC. Pré-Requisitos:

(In)Segurança Virtual. Técnicas de Ataque e Defesa

Criando scanner para Oracle vulneráveis a exploits do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t

DESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/ :00.

Projeto Integrador Segurança de Redes e Transmissão de Dados

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Capítulo 5 Métodos de Defesa

GUIA DE PROCEDIMENTOS PARA ACESSO VIA FTP

Ameaças, riscos e vulnerabilidades Cont. Objetivos

Política de Utilização da Rede Sem Fio (Wireless)

Tecnologias Web. Lista de Exercícios AV02 Turma Luiz Leão

Como conectar-se a rede Sem Fio (Wireless) da UNISC. Observação:

Boas Práticas de Desenvolvimento Seguro

Protocolos de Aplicação SSL, TLS, HTTPS, SHTTP

Novo site de cálculo e divulgação do CUB/m² ( Avaliação geral

O atacante pode roubar a sessão de um usuário legítimo do sistema, que esteja previamente autenticado e realizar operações que o mesmo poderia.

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Comunicação via interface SNMP

Redes de Computadores

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

DoS: Negação de Serviço e formas de defesa

SaaS and Web Services 8.3.0

Processo de Envio de

Segurança exposta em Rede de Computadores. Security displayed in Computer network

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.

Como conectar-se a rede Sem Fio (Wireless) da UNISC. Pré-Requisitos

Fonte: - Illustration by Gaich Muramatsu

Metasploit Sabe o que é?

Prof. Ravel Silva ( SIMULADO 02 ESCRIVÃO PF

Atualização deixa Java mais seguro, mas ainda é melhor desativar

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

FACULDADES INTEGRADAS PROMOVE DE BRASÍLIA PROJETO DE INICIAÇÃO CIENTÍFICA

Coordenação de Segurança 1 de 37

Nível de segurança de uma VPN

Auditoria e Segurança de Sistemas Segurança de Redes de Computadores Adriano J. Holanda

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Segurança de Redes & Internet

Aplicativos Android têm sérias vulnerabilidades SSL, dizem pesquisadores

Agregadores de Conteúdo

Temas para a Primeira Avalição

Introdução à Criptografia

Nota Fiscal Paulista. Manual para Envio de Arquivo de Cupons Fiscais via Webservice GOVERNO DO ESTADO DE SÃO PAULO

10 dicas para proteger o seu modem/router de ataques online

Comunicação entre Processos

ACOMPANHAMENTO DE EMPREENDIMENTOS GERADORES DE ENERGIA AEGE

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

GERENCIADOR DE CORREIO ELETRÔNICO (V. 2 26/04/2010)

Esta nota apresenta como definir o SSL VPN no roteador Vigor.

Guia rápido de uso de Web Services do NFS-e Easy

DoS: Negação de Serviço e formas de defesa

Objetivos deste capítulo

GTS-8. Implementação de uma solução baseada em Software Livre para o controle de tráfego P2P. Helder Jean Brito da Silva (helder@info.ufrn.

Tipos de pragas Virtuais; Como funciona os antivírus; Principais golpes virtuais; Profº Michel

0x02 Versões de FTPs vulneráveis aos exploits do Metasploit Framework

MANUAL DO PRESTADOR UPLOAD DE ARQUIVO TISS

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

GERADOR DE RELATÓRIOS

CNEC CAPIVARI Educação Infantil - Ensino Fundamental - Ensino Médio - Educação Profissional - Ensino Superior

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

SaaS and Web Services 8.3.0

Projeto Integrador - Projeto de Redes de Computadores

Programação WEB II. Sessions e Cookies. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Prefeitura do Campus USP de Pirassununga Seção Técnica de Informática

Grampos Digitais Você confia na Rede?

Sistema de Chamados Protega

Uso de Flows no Tratamento de Incidentes da Unicamp

Transcrição:

Dissecando o Heart bleed Ricardo Kléber Martins Galvão www.ricardokleber.com ricardokleber@ricardokleber.com GTS'23 15/05/2014

O Dia H 07 de Abril de 2014 Mas o problema foi descoberto mesmo nessa data?

O Dia H 21 de Marco de 2014 Google Security Descoberta: Neel Mehta Correção: Bodo Moeller e Adam Langley Somente em servidores Google 10 dias = segredo interno

O Dia H 31 de Marco de 2014 CloudFlare vazamento Google Cloudflare Criação do próprio patch Correção interna Segredo...

O Dia H 01 de Abril de 2014 Google avisa equipe OpenSSL Detalhamento do problema Sugestão de correção (fix)

O Dia H 01 a 07 de Abril de 2014 A (má) notícia se espalha... ainda nos bastidores... OpenSSL avisa à RedHat (S.O. com mais usuários afetados) Facebook é avisado (e corrige imediatamente) Akamai também... e outras grandes empresas. Yahoo, Amazon... e outras grandes empresas... não foram avisadas

O Dia H 02 de Abril de 2014 Codenomicon (re)descobre a falha Empresa Finlandesa Batizou o problema = Heartbleed Comprou o domínio :) Comunicou ao National Cyber Security Centre Finland (NCSC-FI) NCSC-FI comunicou ao CERT

O Dia H 07 de Abril de 2014 OpenSSL emite boletim público CloudFlare publica artigo em seu blog Neel Mehta escreve tweet sobre o problema Codenomicon divulga site com informações

Motivação para palestras de esclarecimento

Desmistificando... O que o Heartbleed NÃO é...

Não é um VÍRUS!!!

Não é um VÍRUS!!! Trocar a senha em sites é importante mas NÃO resolve o problema!!!

Não é um VÍRUS!!! 13 dias depois... tá melhorando!!??

Não é um VÍRUS!!! O último de uma série de vírus que roubam todas as suas informações pessoais (!!??)

Desmistificando... O Heartbleed NÃO é Vírus!!!! X

Não é uma falha do Protocolo SSL!!!

Não é uma falha do Protocolo SSL!!!

Desmistificando... O Heartbleed NÃO é uma falha no protocolo SSL X

Desmistificando... O Heartbleed... não não não não não não não não não é vírus é uma vulnerabilidade no protocolo SSL é um bug que afeta somente servidores web é um exploit para acesso remoto a servidores possibilita ataques man-in-the-middle é uma falha de autenticação é um backdoor da NSA é um keylogger é uma falha do tipo buffer overflow

Desmistificando... O Heartbleed... É uma vulnerabilidade...... em algumas versões do OpenSSL (uma das implementações do protocolo SSL)

Finalmente... Dissecando o Heartbleed

A solução que virou problema... RFC 6520 http://tools.ietf.org/html/rfc6520 Extensão para o TLS (Transport Layer Security) e o DTLS (Datagram TLS) Fevereiro de 2012 Robin Seggelmann (autoria) / Stephen N. Henson (revisão/validação) Heartbeat Request Heartbeat Response ( batida do coração ) Cliente Servidor: Se está vivo, me envie a string X Servidor Cliente: Estou vivo, sim! Aí vai a string X

A solução que virou problema... Como deveria funcionar...

A solução que virou problema... Estrutura da Mensagem HeartBeat: struct { HeartbeatMessageType type; uint16 payload_length; opaque payload[heartbeatmessage.payload_length]; opaque padding[padding_length]; } HeartbeatMessage; Estrutura SSL de transporte: struct ssl3_record_st { unsigned int length; [...] unsigned char *data; [...] } SSL3_RECORD; /* Bytes disponíveis */ /* Ponteiro para mensagem */ Construção da Resposta (HeartBeat Response): *bp++ = TLS1_HB_RESPONSE; s2n(payload, bp); memcpy(bp, pl, payload);

A solução que virou problema... O que deu errado??? Validação da variável de comprimento

A solução que virou problema... O que não deveria ser possível? Buffer Over-Read

E o Coração... Sangrou... CVE-2014-0160 Vulnerabilidade Crítica na blblioteca OpenSSL Extensão Hertbeat (RFC6520) Buffer Over-Read (CWE-126) Common Weakness Enumeration Dicionário de Tipos de fragilidades (weakness) de softwares http://cwe.mitre.org/data/definitions/126.html

Como verificar essa vulnerabilidade? Sites preparados exclusivamente para realizar testes...

Como verificar essa vulnerabilidade? Sites preparados exclusivamente para realizar testes...

Como verificar essa vulnerabilidade? Verificação via Nmap... (ssl-heartbleed.nse) http://nmap.org/svn/scripts/ssl-heartbleed.nse Sintaxe: # nmap -sv --script=ssl-heartbleed <alvo>

Como explorar essa vulnerabilidade? Exploits / scripts / ferramenta de testes/ataques que... Simulem um cliente (conexão SSL) Enviem requisições (Heartbeat Request's) contendo: Pequenas strings (1 byte, por exemplo) Informação de tamanho = 64Kb Exemplos de scripts em Python: https://github.com/lekensteyn/pacemaker https://gist.github.com/takeshixx/10107280 https://gist.github.com/dyatlov/10192468 Script para exploração via OpenVas (scanner de vulnerabilidade): https://gist.github.com/realrancor/10140249

Como explorar essa vulnerabilidade? Exemplo de exploração via Metasploit... (openssl_heratbleed.rb) https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/ssl/openssl_heartbleed.rb

Corrigindo... (fazendo a validação da entrada) Antes: /* Leitura do tipo e tamanho da carga (payload) */ hbtype = *p++; n2s(p, payload); pl = p; Depois (fix aplicado): hbtype = *p++; n2s(p, payload); if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0; /* Se tamanho diferente retorne zero */ pl = p; Construção da Resposta (HeartBeat Response): *bp++ = TLS1_HB_RESPONSE; s2n(payload, bp); memcpy(bp, pl, payload);

Versões do OpenSSL Afetadas https://www.openssl.org/source/ Todas as versões 1.0.1 (e 1.0.2-beta) até a descoberta 1.0.1a 1.0.1b 1.0.1c 1.0.1d 1.0.1e 1.0.1f (19/04/2012) (26/04/2012) (10/05/2012) (05/02/2013) (11/02/2013) (06/01/2014) Versões corrigidas a partir de: 1.0.1g e 1.0.0.2-beta2 Alternativa: Recompilar o código-fonte com o parâmetro -DOPENSSL_NO_HEARTBEATS

Serviços/Aplicativos Afetados Todos que usam/usavam OpenSSL (versões afetadas) Sites com HTTPS (evidentemente) e mais... FTPS POP3S SSH / SCP IMAPS TELNETS OpenVPN SMTPS SIPS / SRTP

Últimas notícias O que mais surgiu depois do alerta? Chromebleed / Foxbleed Extensões Chrome / Firefox (verificam se o site visitado é vulnerável) Regras Snort para detecção de sondagens http://blog.fox-it.com/2014/04/08/openssl-heartbleed-bug-live-blog/ Honeypots Hearthbleed Falso-positivos propositais a consultas

Como andam as coisas (mais de um mês depois)? Pesquisa feita por Robert Graham (somente em sites HTTPS) Total pesquisado = 22 milhões de sites (que usam SSL) 318.239 permanecem vulneráveis Alguns simplesmente desabilitaram o heartbeat

Dissecando o Heartbleed Slides desta palestra e notícias sobre Segurança da Informação www.ricardokleber.com/palestras ricardokleber@ricardokleber.com @ ricardokleber 15 de Maio de 2014