Generador de Números Pseudo-Aleatorios Predecible en Debian

Generador de N´umeros Pseudo-Aleatorios Predecible en Debian El Qu´e y El C´omo Luciano Bello1,2 Maximiliano Bertacchini2 luciano at debian.org mb

3 downloads 115 Views 8MB Size

Story Transcript

Generador de N´umeros Pseudo-Aleatorios Predecible en Debian El Qu´e y El C´omo

Luciano Bello1,2

Maximiliano Bertacchini2

luciano at debian.org

mbertacchini at citefa.gov.ar

1 Debian

Project

2 Si6 Labs - CITEFA ´ (Instituto de Investigaciones Cient´ıficas y Tecnicas para la Defensa, Argentina)

EKOPARTY 2008 Buenos Aires, Argentina 2 y 3 de Octubre de 2008

´ Introduccion

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON

5

R EPERCUSIONES

6

C ONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

2 / 37

´ Introduccion

´ A DSA-1571 I NTRODUCCI ON H T T P :// W W W . D E B I A N . O R G / S E C U R I T Y /2008/ D S A -1571

El generador de numeros pseudoaleatorios (PRNG) del paquete ´ ˜ OpenSSL de Debian ha sido predecible por 2 anos Causado por un parche espec´ıfico de Debian ´ En consecuencia, se puede deducir material clave criptografico Afecta a otros paquetes enlazados con libssl Afecta a otros sistemas operativos basados en Debian ´ Otros sistemas se ven afectados si contienen claves debiles importadas (incluso las publicas) ´ ´ vulnerable es 0.9.8c-1 (publicada el La primera version ´ estable actual (Etch) 17/09/2006). Inclu´ıda en la version El advisory y el parche fueron publicados el 13/05/2008 ¡No afecta a las claves generadas por GnuPG o GNUTLS! (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

3 / 37

´ Introduccion

E N OTRAS PALABRAS En consecuencia, el espacio de claves de un criptosistema depende de: PID MAX (t´ıpicamente 215 ) La arquitectura / endianness del equipo Estado del generador (bytes pedidos anteriormente, etc.) ´ ´ (predecible por ataque de fuerza Todo el material criptografico es debil bruta en un espacio de 215 ): ´ de cliente / servidor Autenticacion Firmas DSA Key agreement ´ Claves de sesion Datos publicos aleatorios (Salt, IV) ´ ´ Passwords/passphrases automaticas (OTP, generadas por pwsafe, etc) (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

4 / 37

´ Introduccion

PAQUETES A FECTADOS

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

5 / 37

´ Las Cronicas de Debian OpenSSL

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON

5

R EPERCUSIONES

6

C ONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

6 / 37

´ Las Cronicas de Debian OpenSSL

U N M AL C OMIENZO “U NA SERIE DE HECHOS DESAFORTUNADOS ”

Richard Kettlewell registra el bug “Valgrind-Clean the RNG” el 19/04/2006 15:18:15 UTC (http://bugs.debian.org/363516) Kurt (Debian OpenSSL maintainer) identifico´ dos l´ıneas ´ “problematicas” (http://bugs.debian.org/363516#10) “What it’s doing is adding uninitialised numbers to the pool to create random numbers. I’ve been thinking about commenting those out.” C R Y P T O/R A N D/M D R A N D.C

274: MD_Update(&m,buf,j); 467: #ifndef PURIFY MD_Update(&m,buf,j); /* purify complains */ #endif (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

7 / 37

´ Las Cronicas de Debian OpenSSL

L AS “S OLUCIONES ” P ROPUESTAS 1

Marcar como “wontfix”

2

Usar el mecanismo de Valgrind para que lo ignore

Produce gran cantidad de advertencias en Valgrind ´ espec´ıfica para Valgrind Es una solucion ˜ Cambia el binario en forma extrana 3

No agregar el buffer al pool La entrop´ıa extra es despreciable Preguntemos en openssl-dev (http://www.mail-archive.com/[email protected]/msg21156.html)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

8 / 37

´ Las Cronicas de Debian OpenSSL

E L M ALENTENDIDO (http://www.mail-archive.com/[email protected]/msg21156.html)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

9 / 37

´ Las Cronicas de Debian OpenSSL

E L M ALENTENDIDO (http://www.mail-archive.com/[email protected]/msg21157.html)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

10 / 37

´ Las Cronicas de Debian OpenSSL

E L FAMOSO PARCHE

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

11 / 37

´ Analisis de OpenSSL

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON

5

R EPERCUSIONES

6

C ONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

12 / 37

´ Analisis de OpenSSL

E L PRNG DE O PEN SSL

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

13 / 37

´ Analisis de OpenSSL

E L PRNG DE O PEN SSL

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

13 / 37

´ Analisis de OpenSSL

E L PRNG DE O PEN SSL

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

13 / 37

´ Analisis de OpenSSL

E JEMPLO E XAMPLE

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

14 / 37

´ Explotacion

´ Autenticacion

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON ´ Autenticacion Man in the middle DH DSA Summary

5

R EPERCUSIONES

6

C ONCLUSIONES (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

15 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

16 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

16 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

16 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

16 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

16 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

16 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

16 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

16 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON ATAQUE POR FUERZA BRUTA

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

17 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON ATAQUE POR FUERZA BRUTA

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

17 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON ATAQUE POR FUERZA BRUTA

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

17 / 37

´ Explotacion

´ Autenticacion

´ POR DESAF´I O AUTENTICACI ON ATAQUE POR FUERZA BRUTA

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

17 / 37

´ Explotacion

Man in the middle

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON ´ Autenticacion Man in the middle DH DSA Summary

5

R EPERCUSIONES

6

C ONCLUSIONES (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

18 / 37

´ Explotacion

Man in the middle

´ POR CERTIFICADOS AUTENTICACI ON ATAQUE A LOS CERTIFICADOS (M IT M)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

19 / 37

´ Explotacion

Man in the middle

´ POR CERTIFICADOS AUTENTICACI ON ATAQUE A LOS CERTIFICADOS (M IT M)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

19 / 37

´ Explotacion

Man in the middle

´ POR CERTIFICADOS AUTENTICACI ON ATAQUE A LOS CERTIFICADOS (M IT M)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

19 / 37

´ Explotacion

Man in the middle

´ POR CERTIFICADOS AUTENTICACI ON ATAQUE A LOS CERTIFICADOS (M IT M)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

19 / 37

´ Explotacion

Man in the middle

´ POR CERTIFICADOS AUTENTICACI ON ATAQUE A LOS CERTIFICADOS (M IT M)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

19 / 37

´ Explotacion

Man in the middle

´ POR CERTIFICADOS AUTENTICACI ON ATAQUE A LOS CERTIFICADOS (M IT M)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

19 / 37

´ Explotacion

Man in the middle

´ POR CERTIFICADOS AUTENTICACI ON ATAQUE A LOS CERTIFICADOS (M IT M)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

19 / 37

´ Explotacion

Man in the middle

´ POR CERTIFICADOS AUTENTICACI ON ATAQUE A LOS CERTIFICADOS (M IT M)

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

19 / 37

´ Explotacion

DH

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON ´ Autenticacion Man in the middle DH DSA Summary

5

R EPERCUSIONES

6

C ONCLUSIONES (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

20 / 37

´ Explotacion

DH

ACUERDO DE L LAVE D IFFIE -H ELLMAN

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

21 / 37

´ Explotacion

DH

ACUERDO DE L LAVE D IFFIE -H ELLMAN

p, g, X s

Xc

Xs

Xc

g mod p = Ys

g mod p = Yc

Xs

Xc

K = Yc mod p

(Debian, Si6-CITEFA)

Ys mod p = K

Debian OpenSSL

ekoparty 2008

21 / 37

´ Explotacion

DH

ACUERDO DE L LAVE D IFFIE -H ELLMAN ATAQUE POR FUERZA BRUTA

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

22 / 37

´ Explotacion

DH

DEMO: W IRESHARK SSL D ISSECTOR Gracias Paolo Abeni

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

23 / 37

´ Explotacion

DSA

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON ´ Autenticacion Man in the middle DH DSA Summary

5

R EPERCUSIONES

6

C ONCLUSIONES (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

24 / 37

´ Explotacion

DSA

F IRMADO DSA Los datos publicos son: p, q, g, y = g x mod p ´ Los datos privados son: x Para firmar un mensaje m: 1 2

Alicia genera un numero al azar, k, menor a q. ´ Alicia calcula: r = (g k mod p) mod q s = (k −1 (H(m) + xr )) mod q

3

´ Los parametros r y s son la firma de Alicia para el mensaje m

Oscar puede obtener x si tiene un espacio explorable de todos los k posibles: 1

Genera ri para cada ki hasta que ri = r

2

Con el ki encontrado calcula: (ski − H(m)r −1 ) mod q = x

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

25 / 37

´ Explotacion

Summary

M ANUAL PARA LA CONQUISTA DEL U NIVERSO 1 2 3 4

´ Elegir una aplicacion Seleccionar o averiguar el algoritmo que utiliza Generar el espacio de (215 − 1) × 3 claves A bruteforcear!: ´ Autenticarte a un servidor utilizando llaves asimetricas (requiere que el servidor tenga algun ´ usuario que se autentique v´ıa ´ passwordless y que alguna de esas llaves sea debil) Realizar un ataque MitM utilizando un certificado de servidor ´ y un escenario donde sea clonado (requiere un certificado debil posible un MitM) Descifrar sesiones donde alguna de las partes sea un Debian vulnerable ´ Atacar criptograf´ıa simetrica conexiones/storage/etc donde la clave este´ generada al azar (requiere un sistema vulnerable en el ´ de dicha clave) momento de generacion Obtener la clave privada de un firmante DSA (requiere un mensaje firmado en un sistema vulnerable)

5

Muejeje!!! (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

26 / 37

´ Explotacion

Summary

T RABAJOS RELACIONADOS H. D. Moore toys (http://metasploit.com/users/hdm/tools/debian-openssl/)

Wireshark parche para atacar PFS en SSL/TLS (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2725)

SSH Snort plugin de Ben Feinstein (http://www.secureworks.com/research/tools)

¨ Rigo SSH tools de Yoann Guillot and Raphael (http://www.cr0.org/progs/sshfun/)

Firefox SSL Blacklist Add-on de Marton Anka (http://codefromthe70s.org/sslblacklist.asp)

OpenID/Debian PRNG/DNS Cache poisoning advisory, 08-AUG-2008 (CVE-2008-3280) (http://www.securityfocus.com/archive/1/495258)

´ Debian wiki. Que´ hacer y como afecta a cada paquete (http://wiki.debian.org/SSLkeys) (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

27 / 37

´ Explotacion

Summary

C ONTRAMEDIDAS Actualizar libssl, openssl y openssh (¿Todav´ıa no lo hiciste?) ´ Buscar y regenerar todas las llaves debiles. Eliminiar todas las llaves blacklisteadas. Las blacklists pueden obtenerse en los paquetes openvpn-blacklist, openssh-blacklist and openssl-blacklist. Conciderar comprometidas todas las llaves DSA que hayan sido utilizadas en sistemas vulnerables Utilizar Firefox SSL-Blacklist add-on ´ PermitBlacklistedKeys=no en el OpenSSH Utilizar la opcion de Debian No hay nada que puedas hacer por el pasado, la leche ya esta´ derramada

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

28 / 37

Repercusiones

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON

5

R EPERCUSIONES

6

C ONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

29 / 37

Repercusiones

C ERTIFICADOS A FECTADOS ´ del advisory). Gracias a Juergen Schmidt, Editor-in-Chief Heise Security [www.heisec.de] 30 de Mayo (2 semanas despues

´ Extrapolando, ≈ 24.000 certificados debiles firmados por una CA ´ confiable, sobre 809.000 sitios con certificados SSL validos (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

30 / 37

Repercusiones

OTRAS RAREZAS SOBRE CERTIFICADOS SSL ´ alrededor del 20 % de los certificados debiles ´ Solo especifican una URI OCSP ≈ 90 % de los usuarios utilizan browsers que no chequean CRLs por defecto Hay unos 10 certificados EV vulnerables en la muestra tomada. ´ Extrapolando, cerca de 120 certificados EV son debiles en el mundo? (segun ´ Netcraft, 0.5 % de los certificados son EV) La herramienta http://www.heise-online.co.uk/ ´ networks/tools/chksslkey encontro´ certificados debiles en 4577 hosts unicos (la mayor´ıa self-signed) a mediados de Julio ´ Para mitigar el impacto se puede utilizar Firefox SSL Blacklist Add-on junto a “that 30-meg sister extension” www.codefromthe70s.org/files/sslblacklist-3.0.22.xpi www.codefromthe70s.org/files/sslblacklist-localdb-1.0.3.xpi Gracias a Juergen Schmidt, Editor-in-Chief heise Security (www.heisec.de) por la ´ cifras y analisis ´ investigacion, (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

31 / 37

Repercusiones

R EPERCURSIONES EN D EBIAN ´ de otros desarrolladores de Debian o la del Este es mi (Luciano Bello) punto de vista. No necesariamente representa la opinion Proyecto Debian. Mucho de este trabajo esta´ en progreso.

Debian, sus usuarios y otras distribuciones se benefician much´ısimo de los custom patches Algunas veces upstream y Debian difieren en sus objetivos y sus ´ estandares de calidad ´ con Algunas veces es dif´ıcil tener una buena comunicacion upstream ´ del problema no resulta taaaan obvia (estuvo 2 anos ˜ La deteccion sin ser descubierto) ´ Es humanamente imposible auditar todo el codigo ´ aquellos que no hacen nada no cometen errores. El punto es tratar de “Solo evitar errores, no de encontrar la forma de culpar a alguien.” Alguien en la lista de correo debian-devel (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

32 / 37

Repercusiones

R EPERCUSIONES EN D EBIAN Estamos trabajando en mejorar la visibilidad, mostrar parches, haciedo que la Ley de Linus ocurra: Publicar todas las fuentes en VCSs publicos ´ Nuevo formato v3 de paquete de paquete ´ Encabezados estandares en los parches para administrarlos ´ automaticamente? patches.debian.org? Seguir las divergencias como bugs en el BTS? ´ de todo, es un problema tecnico, ´ Despues de pol´ıticas o social?

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

33 / 37

Conclusiones

1

´ I NTRODUCCI ON

2

´ L AS C R ONICAS DE D EBIAN O PEN SSL

3

´ A N ALISIS DE O PEN SSL

4

´ E XPLOTACI ON

5

R EPERCUSIONES

6

C ONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

34 / 37

Conclusiones

C ONCLUSIONES ( AKA . LECCIONES APRENDIDAS ) Mirar dos veces, parchear una. Parches simples pueden tener consecuencias profundas ´ No escribir codigo fancy, especialmente cuando lo que aporta es m´ınimo ´ El codigo seguro tiene que estar bien organizado ´ ¡Comenta tu codigo como si otros (incluso tu) ´ fueran a leerlo! ´ es mejor que “solo ´ lo suficiente” Pregunta con detalles. “Mas” Si muchas personas preguntan siempre lo mismo, tal vez se trate ´ de algo que requiera atencion Involucrate en los parches de tu down/upstream: puede que ´ obtengas mejoras ´ “Dejar tu codigo en un FTP server” no es lo mismo que “compartir ´ tu codigo” ¿Es el contraejemplo a la Ley de Linus? (o no... tal vez es que sencillamente *no* hay suficiente cantidad de ojos mirando) (Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

35 / 37

Conclusiones

AGRADECIMIENTOS Paolo Abeni por su ayuda en ´ a Wireshark la modificacion ¨ Bodo Moller por su ayuda para entender mejor el PRNG de OpenSSL ´ en las etapas iniciales ´ y Florian Weimer por su atencion trabajo durante el anuncio del advisory Kragen Javier Sitaker por la ayuda ´ ´ en el analisis del codigo y las correcciones de nuestro pobre ´ ingles Juergen Schmidt, Editor-in-Chief heise Security (www.heisec.de) por las estad´ısticas

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

36 / 37

Conclusiones

¿P REGUNTAS ?

¡Gracias! Luciano Bello

Maximiliano Bertacchini

P OWERED BY LATEX+ BEAMER

(Debian, Si6-CITEFA)

Debian OpenSSL

ekoparty 2008

37 / 37

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.