El bug en OpenSSL es una implementación de la extensión heartbeat de TLS/DTLS. Al ser explotada permite la fuga de contenidos en la memoria del servidor al cliente y del cliente al servidor.
Puedes comprobar si tu servidor esta afectado desde aquí: http://filippo.io/Heartbleed/
¿Cómo solucionarlo?
En Debian ya han actualizado el binario a uno sin el bug.
Lo primero que debemos hacer es mirar si nuestra versión es vulnerable y si tenemos candidato. En principio debería saliros esto al usar estos comandos:
apt-get update apt-cache policy openssl
Instalados: 1.0.1e-2+deb7u4
Candidato: 1.0.1e-2+deb7u5
Fijaros en que el paquete con el bug es 1.0.1e-2+deb7u4 por lo que debemos actualizar a 1.0.1e-2+deb7u5. Solo nos queda actualizar el paquete con:
apt-get upgrade
En otras distribuciones debemos compilar openssl con el parámetro:
-DOPENSSL_NO_HEARTBEATS
Generación de claves
Las claves SSL han podido ser comprometidas, y por lo tanto hace falta cambiarlas en los servidores web (Apache, Nginx, etc.) , XMPP (prosody), etc. Las generamos con el siguiente comando y hará falta apuntar hacía esos certificados con la aplicación correspondiente. Buscad la documentación de vuestro server para más detalles.
Por eso es necesario generarlas:
- SSH
- SSL
- Claves de usuario
SSH
ssh-keygen –t rsa
Y seguimos los pasos, generando las claves en /home/usuario/.ssh o dónde queramos.
SSL
openssl genrsa -out server.key 4096 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Claves de usuario
Si habéis accedido por SSH a vuestro server, usando la clave de usuario de ese usuario en el servidor, esta va cifrada con la clave pública del servidor. Esta contraseña, cifrada con la pública, es descifrada con la privada del servidor. Esta última es la que se puede haber comprometido, por lo tanto, también se puede haber comprometido la clave de vuestra/s usuaria/s. Por eso es importante cambiar la clave de los usuarios ya que se podría seguir accediendo por SSH con la password antigua. Para cambiar esto, lo mejor que podemos hacer es, primero cambiar la clave SSH y seguidamente cambiar las claves de usuario con el comando:
passwd
Introducimos la actual y dos veces la nueva.
Los bugs en openssh
Para los que tenéis openssh menor que la 6.6 podéis instalar tanto cliente como server compilandolo, desinstalando las otras versiones previamente y comprobando las dependencias. Las versiones previas tanto de cliente como server tienen bugs importantes.
wget "http://mirror.codigo23.net/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz" tar xvf openssh-6.6p1.tar.gz cd openssh-6.6p1 ./configure make -j2 make install
make -j2 puede cambiarse simplemente por make si no sabéis el número de núcleos que dispone vuestra cpu.
Información de los Bugs en openssh:
Para el server sshd:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-2532
Para el cliente:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-2653
En resumen. Cualquier programa que use (y son muchos) openssl estará afectado. Importante por tanto este bug y solucionarlo cuanto antes.
Una de las cosas buenas, entre muchas, que tiene el Software Libre, es que nos permite revisar el código a cualquiera de nosotros. Esto es lo que ha pasado, por ejemplo, en este caso. Además, cómo no hay interés en esconder las vulnerabilidad por cuestiones económicas, se solucionan más rápido que las de código cerrado, en el que ni siquiera podemos saber qué hace el programa.