Ir al contenido
Nuevo informe: Consiga su copia del Informe sobre el estado de Internet 2024. | Descargar hoy
Blogs

¡Vulnerabilidad crítica en OpenSSL!

Enlaces rápidos

**Actualizaciones**

2022-11-01


Ya están disponibles los detalles de dos vulnerabilidades de alta gravedad parcheadas en la versión 3.0.7 de OpenSSL(CVE-2022-3786, CVE-2022-3602). Ambas son desbordamientos de búfer en el proceso de verificación de certificados X.509, "concretamente en la comprobación de restricciones de nombres " .

La primera, CVE-2022-3786, permite a un atacante "crear una dirección de correo electrónico maliciosa en un certificado para desbordar un número arbitrario de bytes que contengan el carácter `.`". El segundo, CVE-2022-3602, es similar, pero en este caso, una amenaza podría "crear un correo electrónico malicioso para desbordar cuatro bytes controlados por el atacante en la pila". Esto podría provocar una denegación de servicio o la ejecución remota de código.

Aunque tanto los servidores como los clientes OpenSSL son vulnerables a este ataque, es más probable que un atacante explote a un cliente que un cliente explote a un servidor. Pero en servidores configurados con autenticación bidireccional en los que ambos lados de la conexión intercambian y verifican certificados, es posible que un cliente pueda explotar un servidor enviando un certificado malicioso o malformado.

Y aunque este tipo de configuración es poco frecuente, no es imposible. Pero incluso con un ataque exitoso, muchas otras variables, como los sistemas antidesbordamiento de búfer como los canarios de pila y ASLR (Address Space Layout Randomization), entran en escena para frustrar la explotación.

Debido a esta complejidad y a las salvaguardas del sistema, los desarrolladores de OpenSSL redujeron la criticidad de la CVE de CRÍTICA a ALTA.

Si está utilizando las versiones 3.0.0-3.0.6 de OpenSSL, le recomendamos que actualice a la versión más reciente de OpenSSL (actualmente 3.0.7) para protegerse de posibles ataques.


Introducción

OpenSSL es una biblioteca de software que permite a las aplicaciones comunicarse de forma segura con otras aplicaciones en red utilizando una amplia variedad de funciones criptográficas. Esta biblioteca está muy extendida en Internet y es una parte fundamental de la infraestructura de muchas organizaciones. Teniendo esto en cuenta, el equipo de OpenSSL advirtió el pasado martes a todos los usuarios de que se había identificado una vulnerabilidad crítica en la base de código de OpenSSL. Esto es bastante importante, ya que la última vez que tuvimos un fallo de esta criticidad fue allá por 2014 con la ahora infame vulnerabilidad Heartbleed(CVE-2014-0160), que todavía nos persigue hoy en día.

Aunque no tenemos detalles específicos sobre esta vulnerabilidad, múltiples fuentes han afirmado que la vulnerabilidad sólo afecta a la versión 3.0.0 y superiores de OpenSSL (el software que utiliza OpenSSL 1.0.2 o 1.1.1 no está afectado). La 3.x es una versión relativamente nueva de OpenSSL, que se lanzó en septiembre de 2021. Dado que esta versión lleva poco tiempo en el mercado, la adopción generalizada parece haber sido mínima. Pero, una vez que esta vulnerabilidad ha sido revelada públicamente y las nuevas versiones salen a la luz, los administradores que ejecutan la versión 3.0.0 o superior deben actualizar inmediatamente a la versión corregida de 3.0.7.

Identificación de versiones vulnerables de OpenSSL

Determinar si un host es vulnerable a este fallo aún no está claro, ya que no disponemos de todos los detalles. Sin embargo, podemos fijarnos en los servicios de Internet que anuncian qué versión específica de OpenSSL están ejecutando para hacernos una idea general de lo que será vulnerable. Actualmente no conocemos ninguna técnica aparte de comprobar las cabeceras HTTP para determinar la versión exacta de OpenSSL que se está utilizando, pero seguimos investigando alternativas. Esto significa que, aunque podemos ver muchos servidores potencialmente vulnerables, no tenemos conocimiento de todos ellos, y las estadísticas de este post son los límites inferiores de lo que existe.

Por suerte, algunos servidores de Internet, como Apache, ofrecen información que nos permite saber qué versiones específicas de OpenSSL se están utilizando. Por ejemplo, en la siguiente salida, vemos que Apache ha añadido todos sus módulos cargados en la salida de la cabecera "Servidor". Uno de ellos es la versión de OpenSSL con la que se compiló el módulo mod_ssl:

$ curl -vvv https://127.0.0.1/ 
* Probando 127.0.0.1:443...
* Conectado a 127.0.0.1 (127.0.0.1) puerto 443 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1
> User-Agent: curl/7.81.0
> Aceptar: */*
>
< HTTP/1.1 200 OK
< Fecha: Mon, 31 Oct 2022 21:27:29 GMT
< Servidor: Apache/2.4.53 (Win64) OpenSSL/1.1.1n PHP/8.0.18
< Content-Length: 1436
< Content-Type: text/html;charset=UTF-8

El número de hosts que ejecutan la versión 3.0 de OpenSSL ha ido creciendo lentamente en los últimos meses. En el gráfico de líneas de abajo, vemos que a partir de agosto, sólo alrededor de 3.000 hosts estaban ejecutando esta nueva versión, pero el 30 de octubre de 2022, ese número se duplicó con creces a más de 7.000 hosts.

A 30 de octubre de 2022, 1.793.111 hosts únicos tienen uno o más servicios que transmiten que utilizan OpenSSL. De ellos, solo 7.062 (0,4%) ejecutan una versión superior o igual a la 3.0.0. La versión de OpenSSL más desplegada dentro del rango vulnerable es la 3.0.1, con 3.567 hosts IP únicos, y la versión 3.0.5, con 2.759 hosts.

Una cosa que debemos tener en cuenta antes de ir mucho más lejos es que algunos servidores en Internet anuncian versiones de OpenSSL que no existen en el mundo real.

 

Dos hosts afirman que la versión de OpenSSL que utilizan es 3.2.0-dev, una versión que no existe.
Y tres hosts muestran un banner afirmando que se está ejecutando la versión 3.1.0-dev de OpenSSL, que tampoco existe.

Esto se hace a menudo para ocultar la versión real del software en ejecución por razones de privacidad y seguridad. Pero junto con estos números de versión inválidos, un host nos llamó la atención, ejecutando la versión 3.0.5 durante varias semanas, y de repente empezó a anunciar la versión 3.0.7-dev el 18 de octubre. Lo interesante de la 3.0.7 es que este número de versión es la primera que incluirá el parche para esta próxima vulnerabilidad.

No sabemos si este host está diciendo la verdad sobre su versión de OpenSSL, pero la cronología general parece coincidir con el momento en que esta vulnerabilidad puede haber sido parcheada y desplegada en un servidor público. ¿Podría tratarse de un servidor de desarrollo de OpenSSL? ¿Podría pertenecer a una organización que tuvo acceso a la versión corregida de OpenSSL antes que el público en general? ¿O se trata simplemente de un servidor que finge ser algo que no es?

A continuación se muestra una tabla que incluye todas las versiones de OpenSSL que hemos podido identificar que son mayores o iguales a la versión 3.0.0 y los veinte países con más versiones instaladas.

Desglose de versiones Top 20 Países con Openssl >=3.0.0
Versión de OpenSSL Recuento de anfitriones
3.0.1 3,567
3.0.5 2,759
3.0.2 413
3.0.3 167
3.0.0 73
3.0.6 24
3.0.4 24
3.0.0-alpha9-dev 13
3.0.0-dev 11
3.1.0-dev 3
3.2.0-dev 2
3.0.0-alpha7-dev 2
3.0.0-alpha3-dev 2
3.0.0-alfa6 1
3.0.0-alpha17-dev 1
3.0.7-dev 1
País Recuento de anfitriones
Estados Unidos 2,321
Alemania 693
Japón 552
China 424
Chequia 353
Reino Unido 287
Francia 204
Rusia 188
Canadá 177
Países Bajos 167
Italia 114
Polonia 111
Australia 105
Singapur 104
India 80
Finlandia 79
Hong Kong 78
Brasil 62
Taiwán 57

La identificación de hosts OpenSSL 3.x mediante Censys puede realizarse utilizando el identificador CPE: "services.software.uniform_resource_identifier='cpe:2.3:a:*:openssl:3.*'". Censys Los clientes de ASM pueden utilizar el término de búsqueda de inventario "host.services.software.uniform_resource_identifier="cpe:2.3:a:*:openssl:3.*"".

Además, hemos creado un panel interactivo para informar sobre los servidores identificados como ejecutando una versión de OpenSSL mayor o igual a 3.0.0. A medida que dispongamos de más información sobre la vulnerabilidad en cuestión, actualizaremos este post junto con las nuevas funciones que sea necesario añadir al panel.

Soluciones de gestión de la superficie de ataque
Más información