Grave vulnerabilidad en OpenSSL. ¡Es hora de actualizar!

openssl

A principios de semana, Mark J. Cox (uno de los desarrolladores de OpenSSL) anunciaba un parche inminente que solucionaba una grave vulnerabilidad en el ampliamente usado protocolo de seguridad de código abierto OpenSSL. El día anunciado ha llegado y ya tenemos disponible el parche, dispuesto a ser desplegado con la mayor celeridad posible.

No es la primera vez que OpenSSL se enfrenta a una vulnerabilidad grave en su software, y aunque esta vez no es tan grave como sucedió con HeartBleed el año pasado, es importante que todos aquellos que lo estén implementando actualicen cuando antes.

Esto afecta principalmente a navegadores, servidores y aplicaciones que confíen las comunicaciones seguras a OpenSSL. Desde el punto de vista del usuario no hay mucho que hacer salvo esperar a que aparezcan los parches correspondientes en nuestros navegadores o aplicaciones y los actualicemos.

Analizando esta vulnerabilidad

Si leemos el informe que han publicado los desarrolladores en su web podemos ver dónde se encuentra el problema:

“Durante la verificación del certificado, OpenSSL (a partir de la versión 1.0.1n y 1.0.2b) intentará encontrar una cadena de certificado alternativo si el primer intento de encontrar una cadena falla. Un error de implementación en esta lógica puede significar que el atacante puede provocar que se evadan ciertas comprobaciones en certificados que no son de confianza, como la comprobación de la Autoridad Certificadora (CA por sus siglas en inglés), permitiendo usar un certificado leaf (el primero en la cadena y usado para la configuración) para que actúe como Autoridad Certificadora y “publique” un certificado válido.

Este problema puede afectar a cualquier aplicación que verifique certificados, incluyendo clientes SSL/TLS/DTLS y servidores SSL/TLS/DTLS que usen la autenticación desde el cliente.

El problema afecta a las versiones 1.02c, 1.0.2b, 1.0.1n y 1.0.1º de OpenSSL.

Los usuarios de OpenSSL 1.0.2b deberían actualizarse a la versión 1.0.2d, mientras que los usuarios de OpenSSL 1.0.1n/1.0.1º deberían actualizarse a la versión 1.0.1p.

Este fallo fue reportado a OpenSSl el 24 de junio de 2015 por Adam Langley y David Benjamin (Google/BoringSSL) mientras que el parche fue desarrollado por el proyecto BoringSSL.”

¿Qué problemas podrían derivarse de esta vulnerabilidad?

A pesar de que los desarrolladores afirman que no hay indicios que demuestren que se esté aprovechando activamente esta vulnerabilidad, nunca está de más darse prisa en solucionar este tipo de problemas. Como ya hemos dicho, son las empresas y todos aquellos que utilicen OpenSSL quienes deben aplicar el parche. El usuario solo ha de preocuparse de actualizar su navegador o aplicaciones cuando aparezcan versiones que ya no implementen la versión vulnerable.

El principal problema se deriva de la posibilidad de crear certificados válidos que marquen como seguras aquellas comunicaciones que no lo son, ya sea una web o en la conexión de una aplicación hacia su servidor. Si un atacante explotase esta vulnerabilidad podría crear webs o aplicaciones maliciosas que realizasen, por ejemplo, funciones de banca online.

El usuario seguiría viendo el candado en la barra de direcciones web y el navegador le diría que la conexión es segura, pero en realidad estaría enviando información confidencial por un canal que no es seguro. Esto posibilitaría a un atacante obtener esta información confidencial para usarla en su propio beneficio para cometer desde robos a cuentas bancarias a suplantación de identidad.

Conclusión

Es bueno saber que los desarrolladores de OpenSSL se toman en serio la seguridad de su proyecto y hayan solucionado relativamente rápido esta grave vulnerabilidad. En un mundo donde los ataques a sistemas y el robo de datos se producen constantemente, resulta crucial poder reaccionar rápidamente ante una situación que podría empeorar gravemente la seguridad de los datos de millones de usuarios.

Josep Albors

¿Puede un misil Patriot ser controlado por un ciberterrorista?