De Hispasec – Una al Día: DROWN, un nuevo ataque que intenta ahogar la criptografía

Saludos nuevamente.

Ahora viendo las RSS de Hispasec – Una al Día y de We Leave Security, vi tres noticias, una de ellas tiene que ver con una herramienta que sirve para realizar análisis forense de redes para identificar anomalías, las otras tienen que ver con el tema seguridad (muy serias las dos). Comenzaré con las referentes a la seguridad:

DROWN, un nuevo ataque que intenta ahogar la criptografía

miércoles, 2 de marzo de 2016

Ayer, junto con la publicación de una nueva versión de OpenSSL, saltó a la luz una nueva vulnerabilidad de esas que van a dar que hablar durante mucho tiempo. Se suma a las ya vistas en el 2014 e igualmente importantes en OpenSSL como Heartbleed y POODLEEsta nueva vulnerabilidad podría permitir a un atacante descifrar comunicaciones seguras con relativa sencillez.

DROWN

Sin ninguna duda esta vulnerabilidad es de gran importancia, según las estimaciones un 33% de los sitios son vulnerables a este ataque. Y como no podía ser de otra forma, la vulnerabilidad viene con nombre, logo y hasta página web; ha quedado bautizada como DROWN (Decrypting RSA with Obsolete and Weakened eNcryption).

La vulnerabilidad es grave en cierto contexto, podría permitir descifrar sesiones TLS si el servidor soporta SSL versión 2 o suites de cifrado marcadas como EXPORT. El problema, con identificador CVE-2016-0800, es una nueva forma de ataque de protocolo cruzado, similar o inspirado en el Padding Oracle Attack de años atrás, debido al uso que hace de un protocolo obsoleto, como SSL versión 2, mientras que la víctima sigue usando TLS, un protocolo actualmente seguro, sin percatarse del ataque.

La misma página web del problema dispone de un test que permite comprobar, con la simple introducción de un dominio (o dirección IP), ver todos los dominios y certificados vulnerables. Huelga decir que no se trata de un test «en directo» sino de una consulta a una base de datos que han hecho pública. No obstante se ha hecho pública de una herramienta que permite comprobarlo en local.

DROWN_esquema

Los servidores y clientes actuales emplean TLS como protocolo de cifrado. Sin embargo, debido a errores o descuidos de configuración, muchos servidores todavía siguen soportando SSLv2. Este soporte, incluso en algunos casos se apoya debido a que algunos clientes sin actualizar todavía utilizan SSLv2. Por lo tanto, a pesar de que SSLv2 se sabe que es inseguro hasta el tuétano, soportar SSLv2 no se consideraba, en ciertos ambientes, un problema de seguridad grave por el reducido parque de clientes anticuados que lo usan.

DROWN muestra que simplemente el soporte de SSLv2 representa un riego para los servidores y clientes; ya que puede permitir descifrar las conexiones TLS entre servidor y cliente mediante el envío de sondas a un servidor que soporte SSLv2 y utilice la misma clave privada. El ataque en sí, a grandes rasgos, se basa en la posibilidad de obtención de la clave privada de la sesión segura gracias a SSL versión 2. Es decir, mientras que el cliente se conecta al servidor por TLS, el atacante hace hombre en el medio entre los dos e inyecta peticiones SSL. Debido a las vulnerabilidades de SSL es capaz de obtener la clave privada de esa sesión (ojo, no la clave privada del servidor como hemos escuchado por ahí) y posteriormente utilizarla para descifrar el tráfico capturado.

Como proteger un servidor ante DROWN

Para OpenSSL la forma más sencilla y recomendable es que se actualice a la versión OpenSSL 1.0.2g o OpenSSL 1.0.1s.

Para Microsoft IIS (Windows Server) las versiones de IIS 7.0 y superiors deben tener SSLv2 desactivado por defecto. Los usuarios que hayan activado SSLv2 de forma manual deberán tomar los pasos para desactivarlo de nuevo. De todas formas se recomienda comprobar si su clave privada está expuesta en otro lugar. Las versiones de IIS inferiores a 7.0 ya no están soportadas por Microsoft y deberían actualizarse a las versiones soportadas.

Para Network Security Services (NSS), librería criptográfica incluida en múltiples productos de servidor, las versiones 3.13 (publicada en 2012) y superiores deben tener SSLv2 desactivado por defecto. Los usuarios que hayan activado SSLv2 de forma manual deberán tomar los pasos para desactivarlo de Nuevo. Usuarios de versiones anteriores deberían actualizarse a una versión más reciente. De igual forma se recomienda comprobar si su clave privada está expuesta en otro lugar.

Hay que señalar que DROWN puede empeorar debido a otras vulnerabilidades (con CVE-2016-0703 y CVE-2016-0704) en OpenSSL, que afectan a versiones de OpenSSL anteriores a marzo de 2015, momento en el cual el código fue rediseñado para hacer frente a la vulnerabilidad CVE-2015-0293. Estas vulnerabilidades afectan a OpenSSL versiones 1.0.2, 1.0.1l, 1.0.0q, 0.9.8ze y anteriores. Fueron corregidas en OpenSSL 1.0.2a, 1.0.1m, 1.0.0r y 0.9.8zf. Estos problemas podrían permitir ataques de DROWN mucho más eficientes, incluso eficaces contra conjuntos de cifrado que no sean de exportación, y sin necesidad de requerir un cálculo significativo.

Y con CVE-2015-3197 un problema que afecta a OpenSSL versiones anteriores a 1.0.2f y 1.0.1r, permite a un atacante emplear DROWN para conectar a un servidor con SSLv2 desactivado, si el soporte para SSLv2 todavía se encuentra habilitado.

Más información:

una-al-dia (02/03/2016) OpenSSL soluciona ocho vulnerabilidades

http://unaaldia.hispasec.com/2016/03/openssl-soluciona-ocho-vulnerabilidades.html

OpenSSL Security Advisory [1st March 2016]

https://www.openssl.org/news/secadv/20160301.txt

The DROWN Attack

https://drownattack.com/

Test DWOWN Attack

https://test.drownattack.com/

Full technical paper

DROWN: Breaking TLS using SSLv2 [PDF]

https://drownattack.com/drown-attack-paper.pdf

una-al-dia (20/03/2015) OpenSSL soluciona 13 vulnerabilidades

http://unaaldia.hispasec.com/2015/03/openssl-soluciona-13-vulnerabilidades.html

una-al-dia (08/04/2014) OpenSSL afectada por una vulnerabilidad apodada Heartbleed

http://unaaldia.hispasec.com/2014/04/openssl-afectada-por-una-vulnerabilidad.html

una-al-dia (15/10/2014) SSL tocado y hundido

http://unaaldia.hispasec.com/2014/10/ssl-tocado-y-hundido.html

 

Antonio Ropero

antonior@hispasec.com

Twitter: @aropero

Acerca de Hector Suarez Planas

Es Licenciado en Ciencia de la Computación (3 de julio de 2002). Ha sido Administrador de Red en varias organizaciones, Programador y Analista de Sistemas. Actualmente se desempeña como Administrador de Red del Telecentro Tele Turquino de Santiago de Cuba. Tiene experiencia con sistemas Windows y GNU/Linux, Infraestructura de Redes (Cisco, AlliedTelesis, Netgear y HP ProCurve, Vyatta/VyOS), Servidores tanto físicos como virtuales (plataformas VMWare, Proxmox VE y Xen), Sistemas de Seguridad Informática (Snort/Suricata IDS, appliances AlienVault OSSIM), programador (Delphi, C++ Builder, Perl [poco], Python [algo]), entre otras cosas. Actualmente estoy incursionando en todo lo que tiene relación con Cloud Computing (OpenStack) y Centros de Datos. :-)
Esta entrada fue publicada en Generales, OpenSSL, Seguridad. Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *