Asegúr@IT IV - Debian OpenSSL bug

2.302 visualizaciones

Publicado el

Charla impartida por Luciano Bello el día 27 de Octubre de 2008 en Getafe (Madrid) en la conferencia Asegúr@IT IV sobre el fallo del módulo OpenSSL en la distribución Debian.

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.302
En SlideShare
0
De insertados
0
Número de insertados
999
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Asegúr@IT IV - Debian OpenSSL bug

  1. 1. Generador de N´ meros Pseudo-Aleatorios u Predecible en Debian el qu´ , el c´ mo y las consecuencias e o 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) ı Asegur@IT IV ˜ Madrid, Espana 27 de Octubre de 2008
  2. 2. ´ Introduccion ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 2 / 37
  3. 3. ´ Introduccion ´ INTRODUCCI ON A DSA-1571 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) ´ ´ La primera version vulnerable es 0.9.8c-1 (publicada el ´ 17/09/2006). Inclu´da en la version estable actual (Etch) ı 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 Asegur@IT IV 3 / 37
  4. 4. ´ Introduccion EN 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.) ´ ´ Todo el material criptografico es debil (predecible por ataque de fuerza 15 ): bruta en un espacio de 2 ´ Autenticacion de cliente / servidor 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 Asegur@IT IV 4 / 37
  5. 5. ´ Introduccion PAQUETES AFECTADOS (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 5 / 37
  6. 6. ´ Las Cronicas de Debian OpenSSL ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 6 / 37
  7. 7. ´ Las Cronicas de Debian OpenSSL UN MAL COMIENZO “UNA 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 Asegur@IT IV 7 / 37
  8. 8. ´ Las Cronicas de Debian OpenSSL LAS “SOLUCIONES” PROPUESTAS Marcar como “wontfix” 1 Produce gran cantidad de advertencias en Valgrind Usar el mecanismo de Valgrind para que lo ignore 2 ´ Es una solucion espec´fica para Valgrind ı ˜ Cambia el binario en forma extrana No agregar el buffer al pool 3 La entrop´a extra es despreciable ı Preguntemos en openssl-dev (http://www.mail-archive.com/openssl-dev@openssl.org/msg21156.html) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 8 / 37
  9. 9. ´ Las Cronicas de Debian OpenSSL EL MALENTENDIDO (http://www.mail-archive.com/openssl-dev@openssl.org/msg21156.html) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 9 / 37
  10. 10. ´ Las Cronicas de Debian OpenSSL EL MALENTENDIDO (http://www.mail-archive.com/openssl-dev@openssl.org/msg21157.html) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 10 / 37
  11. 11. ´ Las Cronicas de Debian OpenSSL EL FAMOSO PARCHE (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 11 / 37
  12. 12. ´ Analisis de OpenSSL ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 12 / 37
  13. 13. ´ Analisis de OpenSSL EL PRNG DE OPENSSL (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 13 / 37
  14. 14. ´ Analisis de OpenSSL EL PRNG DE OPENSSL (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 13 / 37
  15. 15. ´ Analisis de OpenSSL EL PRNG DE OPENSSL (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 13 / 37
  16. 16. ´ Analisis de OpenSSL EJEMPLO EXAMPLE (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 14 / 37
  17. 17. ´ ´ Explotacion Autenticacion ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 ´ Autenticacion Man in the middle DH DSA Summary REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 15 / 37
  18. 18. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 16 / 37
  19. 19. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 16 / 37
  20. 20. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 16 / 37
  21. 21. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 16 / 37
  22. 22. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 16 / 37
  23. 23. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 16 / 37
  24. 24. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 16 / 37
  25. 25. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 16 / 37
  26. 26. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I ATAQUE POR FUERZA BRUTA (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 17 / 37
  27. 27. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I ATAQUE POR FUERZA BRUTA (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 17 / 37
  28. 28. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I ATAQUE POR FUERZA BRUTA (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 17 / 37
  29. 29. ´ ´ Explotacion Autenticacion AUTENTICACI ON POR DESAF´O ´ I ATAQUE POR FUERZA BRUTA (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 17 / 37
  30. 30. ´ Explotacion Man in the middle ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 ´ Autenticacion Man in the middle DH DSA Summary REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 18 / 37
  31. 31. ´ Explotacion Man in the middle ´ AUTENTICACI ON POR CERTIFICADOS ATAQUE A LOS CERTIFICADOS (MITM) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 19 / 37
  32. 32. ´ Explotacion Man in the middle ´ AUTENTICACI ON POR CERTIFICADOS ATAQUE A LOS CERTIFICADOS (MITM) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 19 / 37
  33. 33. ´ Explotacion Man in the middle ´ AUTENTICACI ON POR CERTIFICADOS ATAQUE A LOS CERTIFICADOS (MITM) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 19 / 37
  34. 34. ´ Explotacion Man in the middle ´ AUTENTICACI ON POR CERTIFICADOS ATAQUE A LOS CERTIFICADOS (MITM) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 19 / 37
  35. 35. ´ Explotacion Man in the middle ´ AUTENTICACI ON POR CERTIFICADOS ATAQUE A LOS CERTIFICADOS (MITM) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 19 / 37
  36. 36. ´ Explotacion Man in the middle ´ AUTENTICACI ON POR CERTIFICADOS ATAQUE A LOS CERTIFICADOS (MITM) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 19 / 37
  37. 37. ´ Explotacion Man in the middle ´ AUTENTICACI ON POR CERTIFICADOS ATAQUE A LOS CERTIFICADOS (MITM) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 19 / 37
  38. 38. ´ Explotacion Man in the middle ´ AUTENTICACI ON POR CERTIFICADOS ATAQUE A LOS CERTIFICADOS (MITM) (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 19 / 37
  39. 39. ´ Explotacion DH ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 ´ Autenticacion Man in the middle DH DSA Summary REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 20 / 37
  40. 40. ´ Explotacion DH ACUERDO DE LLAVE DIFFIE-HELLMAN (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 21 / 37
  41. 41. ´ Explotacion DH ACUERDO DE LLAVE DIFFIE-HELLMAN
  42. 42. (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 21 / 37
  43. 43. ´ Explotacion DH ACUERDO DE LLAVE DIFFIE-HELLMAN ATAQUE POR FUERZA BRUTA (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 22 / 37
  44. 44. ´ Explotacion DH DEMO: WIRESHARK SSL DISSECTOR Gracias Paolo Abeni (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 23 / 37
  45. 45. ´ Explotacion DSA ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 ´ Autenticacion Man in the middle DH DSA Summary REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 24 / 37
  46. 46. ´ Explotacion DSA FIRMADO DSA Los datos publicos son: p, q, g, y = g x mod p ´ Los datos privados son: x Para firmar un mensaje m: Alicia genera un numero al azar, k, menor a q. ´ 1 Alicia calcula: 2 r = (g k mod p) mod q s = (k −1 (H(m) + xr )) mod q ´ Los parametros r y s son la firma de Alicia para el mensaje m 3 Oscar puede obtener x si tiene un espacio explorable de todos los k posibles: Genera ri para cada ki hasta que ri = r 1 Con el ki encontrado calcula: (ski − H(m)r −1 ) mod q = x 2 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 25 / 37
  47. 47. ´ Explotacion Summary MANUAL PARA LA CONQUISTA DEL UNIVERSO ´ Elegir una aplicacion 1 Seleccionar o averiguar el algoritmo que utiliza 2 Generar el espacio de (215 − 1) × 3 claves 3 A bruteforcear!: 4 ´ 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 ´ clonado (requiere un certificado debil y un escenario donde sea 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 ´ momento de generacion de dicha clave) Obtener la clave privada de un firmante DSA (requiere un mensaje firmado en un sistema vulnerable) Muejeje!!! 5 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 26 / 37
  48. 48. ´ Explotacion Summary TRABAJOS 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) ¨ SSH tools de Yoann Guillot and Raphael Rigo (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 Asegur@IT IV 27 / 37
  49. 49. ´ Explotacion Summary CONTRAMEDIDAS 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 ´ Utilizar la opcion PermitBlacklistedKeys=no en el OpenSSH de Debian No hay nada que puedas hacer por el pasado, la leche ya ´ esta derramada (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 28 / 37
  50. 50. Repercusiones ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 29 / 37
  51. 51. Repercusiones CERTIFICADOS AFECTADOS ´ 30 de Mayo (2 semanas despues del advisory). Gracias a Juergen Schmidt, Editor-in-Chief Heise Security [www.heisec.de] ´ Extrapolando, ≈ 24.000 certificados debiles firmados por una CA ´ confiable, sobre 809.000 sitios con certificados SSL validos (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 30 / 37
  52. 52. Repercusiones OTRAS RAREZAS SOBRE CERTIFICADOS SSL ´ ´ Solo alrededor del 20 % de los certificados debiles 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 ´ ´ investigacion, cifras y analisis (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 31 / 37
  53. 53. Repercusiones REPERCURSIONES EN DEBIAN ´ Este es mi (Luciano Bello) punto de vista. No necesariamente representa la opinion de otros desarrolladores de Debian o la del ´ 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 ´ Algunas veces es dif´cil tener una buena comunicacion con ı upstream ´ ˜ La deteccion del problema no resulta taaaan obvia (estuvo 2 anos sin ser descubierto) ´ Es humanamente imposible auditar todo el codigo ´ “Solo aquellos que no hacen nada no cometen errores. El punto es tratar de evitar errores, no de encontrar la forma de culpar a alguien.” Alguien en la lista de correo debian-devel (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 32 / 37
  54. 54. Repercusiones REPERCUSIONES EN DEBIAN 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? ´ ´ Despues de todo, es un problema tecnico, de pol´ticas o social? ı (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 33 / 37
  55. 55. Conclusiones ´ INTRODUCCI ON 1 ´ LAS CR ONICAS DE DEBIAN OPENSSL 2 ´ AN ALISIS DE OPENSSL 3 ´ EXPLOTACI ON 4 REPERCUSIONES 5 CONCLUSIONES 6 (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 34 / 37
  56. 56. Conclusiones CONCLUSIONES (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! ´ ´ ´ Pregunta con detalles. “Mas” es mejor que “solo lo suficiente” 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 Asegur@IT IV 35 / 37
  57. 57. Conclusiones AGRADECIMIENTOS Paolo Abeni paolo.abeni at email.it por su ayuda en ´ la modificacion a Wireshark ¨ Bodo Moller bodo at openssl.org por su ayuda para entender mejor el PRNG de OpenSSL ´ Ignacio “Nacho” Marambio Catan ignacio.marambio at gmail.com en las etapas iniciales ´ Florian Weimer fw at deneb.enyo.de por su atencion y trabajo durante el anuncio del advisory Kragen Javier Sitaker kragen at pobox.com 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 Asegur@IT IV 36 / 37
  58. 58. Conclusiones ¿PREGUNTAS? ¡Gracias! Luciano Bello Maximiliano Bertacchini luciano at debian.org mbertacchini at citefa.gov.ar POWERED BY L TEX+ BEAMER A (Debian, Si6-CITEFA) Debian OpenSSL Asegur@IT IV 37 / 37

×