miércoles, 21 de mayo de 2008

Error openSSL / Debian


Se ha hablado mucho estos días del Bug encontrado en el código del proyecto openSSL para Debian [link], hemos visto como se ha incrementado bastante el flujo de información al respecto, las listas de correo se inundan con nuevos detalles del problema y las listas de aplicaciones que también son vulnerables crecen todos los días. Todo debido a que estas aplicaciones hacen uso de las librerías openSSL para la generación de llaves asimétricas, necesarias para la autenticacion a través de algoritmos de llave publica.

Aun después de toda la información al respecto, y el gran debate que se a generado alrededor de este error, muchos de los usuarios con sistemas afectados todavía no reconocen el problema a una escala mas amplia que la simple actualización de sus sistemas para corregir el error. Esa interpretación equivocada de la causa real y la solución adecuada para este error seguramente ocasionara mas de un dolor de cabeza en el futuro, y es que no hay nada mas peligroso que una percepción equivocada de seguridad, que nos hará mas vulnerables que al principio.

Pero entonces cual es la solución definitiva o mejor cual es el verdadero problema con este Bug. Debemos primero detenernos en la información dada por el advisory oficial de Debian [link]:

Luciano Bello discovered that the random number generator in Debian's openssl package is predictable. This is caused by an incorrect Debian-specific change to the openssl package (CVE-2008-0166). As a result, cryptographic key material may be guessable.

Si leemos bien nos advierte de un problema con los números aleatorios para la generacion de las llaves publicas y privadas en openssl, y si lo sumamos con este otro apartado del mismo documento:

The first vulnerable version, 0.9.8c-1, was uploaded to the unstable distribution on 2006-09-17, and has since that date propagated to the testing and current stable (etch) distributions. The old stable distribution (sarge) is not affected.
Tenemos que desde 2006-09-17 se han venido generando el mismo pool de llaves Publicas/Privadas en Debian, y sus derivados. Las mismas llaves en un universo de llaves muy pequeños, lo cual hace posible y viable, con cualquier maquina PC de nuestros días, hacer un ataque de fuerza bruta para adivinar las llaves usadas para la autenticacion de las aplicaciones que usan openssl para la generacion de llaves asimétricas. Ya existe un exploit en la red que explota esta vulnerabilidad y que promete en 20 minutos o menos encontrar la llave usada por openssh para la autenticacion con llaves publicas.

Bueno, pero como me protejo? En este tipo de errores no basta con parchar o actualizar las aplicaciones vulnerables, es necesario solucionar el problema principal, y este es que las llaves generadas a partir de 2006 deben ser regeneradas, claro esta después de actualizar las aplicaciones vulnerables, openssl principalmente, pero antes de esto se deben revocar las claves vulnerables. Esta tarea puede parecer titanica --> Cuantas llaves vulnerables y en cuantos sitios han sido generadas desde 2006? una pregunta interesante, muy interesante.

Un listado de las aplicaciones que deben ser auditas para detectar si se están usando llaves vulnerables:

Asterisk
BIND9
boxbackup
Cfengine
courier imap/pop3
uw-imapd
cryptsetup
csync2
cyrus imapd
dovecot
dropbear
exim4
ftpd-ssl
Generic PEM Generation
gitosis
OpenSSH (Server)
OpenSSH (Client)
OpenSWAN
StrongSWAN
OpenVPN
postfix
puppet
ssl-cert
telnetd-ssl
tincTor Onion Router / Hidden Service Keys
encfs
xrdp
Kerberos (MIT and Heimdal)
pwsafe
slurm-llnl
SSL Certificate


Duma

1 comentario:

nonroot (c) 2008 dijo...

Fué luciano bello el que descubrió el bug?. vea pues, a ese man lo conocí enun congreso, por ahí tengo la firma digital de él, debian developer :p

Eso para cuando piense en ser un debianita, debian lover o como se le diga, hehehe.

Gracias por la info, seria bueno montar esto como un hacklab, para hacer demostracioncitas.
hehehe