OpenSSL es un conjunto de librerías utilizado por millones de servidores de toda la red para establecer conexiones seguras punto a punto. Desde hace ya varios meses (concretamente a partir del descubrimiento de Heartbleed) se están realizando pruebas exhaustivas para poder detectar y solucionar todos los fallos de seguridad posibles, evitar que las conexiones de los usuarios se vean de nuevo comprometidas y conseguir recuperar la confianza perdida en los últimos meses.
Hace algunas horas OpenSSL publicaba una serie de boletines de seguridad donde se informaba de la solución de una serie de fallos de seguridad que afectaban directamente a la seguridad de las conexiones seguras que se realizaran a través de este componente.
Para asegurarnos de que estamos protegidos ante estos nuevos fallos de seguridad que explicamos a continuación debemos actualizar nuestras librerías OpenSSL a las versiones más recientes:
- Los usuarios de la versión 1.0.2 deben actualizar a 1.0.2b
- Los usuarios de la versión 1.0.1 deben actualizar a to 1.0.1n
- Los usuarios de la versión 1.0.0 deben actualizar a to 1.0.0s
- Los usuarios de la versión 10.9.8 deben actualizar a to 0.9.8zg
Muchos de los fallos de seguridad ya se habían solucionado con anterioridad, sin embargo, se ha aprovechado la ocasión para parchear las versiones antiguas de la librería de manera que la mejora de seguridad no sólo afecte a los usuarios de las versiones más recientes sino que la mejora de seguridad pueda ser aprovechada por todos.
Fallos de seguridad y de estabilidad solucionados en OpenSSL
Los fallos que se han solucionado con los últimos boletines de seguridad son:
Logjam, un fallo en el protocolo TLS
El primero de los fallos de seguridad ha sido denominado como Logjam y catalogado con el identificador CVE-2015-4000. Este fallo se debe principalmente a un problema con el protocolo TLS donde piratas informáticos mediante ataques man-in-the-middle podían rebajar la seguridad de las claves Diffie-Hellman de 512 bits y comprometer así las comunicaciones.
Por suerte la vulnerabilidad no se ha estado explotando durante demasiado tiempo y la versión más reciente de OpenSSL ya ha aplicado un parche de seguridad bloqueando todas las negociaciones entre Diffie-Hellman inferiores a 768 bits. En un futuro cercano el límite se va a ampliar hasta 1024 bits para garantizar una mayor seguridad.
Un fallo en las estructuras de ECParameters causa loops infinitos
Se podía crear una estructura ECParameters maliciosa que causara que OpenSSL entrara en un loop infinito dando lugar así a ataques de denegación de servicio contra cualquier sistema que gestione claves públicas.
Este fallo afecta tanto a clientes TLS como a servidores que tienen la autenticación de clientes habilitada.
Lectura fuera de los límites del componente X509_cmp_time
Un atacante puede generar certificados erróneos y mal formados causando un fallo de segmentación y dando lugar a un ataque DoS sobre las aplicaciones que verifican los certificados.
Al cerrarse estas aplicaciones se modifican las reglas y se pueden llegar a leer varios bytes de zonas restringidas de la memoria Ram.
Cierre inesperado de PKCS7 si no se detecta Enveloped Content
Un fallo en PKCS7 hace que si no se detecta contenido «Enveloped Content » correcto se pueda dar lugar a un ataque de denegación de servicio que deje el sistema totalmente bloqueado. Un atacante puede generar paquetes ASN.1-encoded malicioso que omite contenido y hace referencia a punteros nulos de manera que al descifrarlos no se obtengan los valores esperados dando lugar a este falo.
Este fallo no afecta ni a clientes ni a servidores OpenSSL sino que sólo afecta a las aplicaciones encargadas de descifrar los paquetes PKCS7.
Fallo en CMS al verificar una función de Hash desconocido
Este fallo ocurre al verificar un mensaje con datos firmados si al comprobarlo alguna de las funciones tiene un Hash desconocido. Esto puede dar lugar a ataques de denegación de servicio contra cualquier sistema simplemente utilizando el módulo de CMS.
Fallo al liberar la memoria de DTLS
Si un cliente de DTLS recibe datos entre la función ChangeCipherSpec y los mensajes de cierre de sesión es posible que se dé un estado de fallo de liberación, dando lugar a problemas de corrupción de memoria y causando el bloqueo de la herramienta.
Problema al controlar los eventos NewSessionTicket
Este es el único fallo que no ha sido catalogado como crítico ni moderado.
En este fallo si se intenta procesar un evento NewSessionTicket mientras se reutiliza un «ticket de sesión» anterior se puede llegar a desencadenar una fuga de datos de ambas sesiones.
¿Crees que tras los problema de seguridad detectados en los últimos meses se están tomando en serio la mejora de rendimiento y seguridad de OpenSSL?
Fuente: Web principal de OpenSSL
Quizá te interese:
- OpenSSL recibe una importante actualización de seguridad
- Preparada una auditoría de OpenSSL
- BoringSSL, la nueva versión de OpenSSL desarrollada por Google