Sin dudas, 2014 está siendo un año muy movido en lo que respecta a vulnerabilidades. Muchas de ellas en los propios cimientos de los sistemas y los protocolos de comunicaciones de la Internet actual.

Si hace unos meses hablábamos de Heartbleed y no hace mucho de Shellshock, hoy toca hablar de Poodle. Esta grave vulnerabilidad afecta al protocolo de comunicación SSL 3.0 y ha sido publicada por investigadores de Google.

Como la mayor parte de la información publicada hasta el momento es muy técnica, hemos decidido publicar este artículo enfocándolo a todas aquellas personas que se han despertado oyendo hablar de Poodle, pero que no saben qué es ni cómo les afecta en su día a día. Empecemos por el principio:

¿Qué es SSL 3.0?

SSL 3.0 fue la última revisión del protocolo de comunicación seguro SSL (“Secure Sockets Layers” por sus siglas en inglés y “Capa de Conexión Segura” en español) antes de que evolucionara y pasara a denominarse TLS (y de paso, empezar de nuevo con la versión 1.0). Su función principal es permitir el envío de claves de cifrado entre aquellas aplicaciones que lo implementen, de manera que se establezca entre ellas una conexión segura que no pueda ser espiada.

Por ejemplo, si quieres conectarte a tu banco para realizar operaciones online, lo normal es que tu navegador solicite una conexión segura y la web de la entidad la proporcione. De esa forma, nadie debería poder acceder a tu usuario y contraseña mientras estés conectado, por ejemplo desde una red Wi-Fi compartida con otros usuarios.

Actualmente, la mayoría de aplicaciones (especialmente los navegadores web) están configuradas para utilizar SSL y TLS. No obstante, quien decide si una conexión es segura no es la web o el navegador, sino una entidad certificadora que se encarga de garantizar que esa conexión es segura mediante un certificado de seguridad.

Cuando hablamos de Heartbleed hace unos meses, nuestro compañero Fernando de la Cuadra publicó un artículo explicando de forma sencilla qué es y cómo funciona SSL, por lo que recomendamos su lectura para más información.

¿Cómo funciona Poodle?

La vulnerabilidad en SSL 3.0 descubierta por los investigadores de Google es diferente a Heartbleed, ya que no afecta a la parte servidor (que aloja, por ejemplo, páginas web), sino a la parte cliente (navegadores de Internet, clientes de correo, etc.), lo que la hace menos grave y fácil de solucionar.

Básicamente consiste en aprovecharse de una característica que hace que, cuando un intento de conexión segura falla, se proceda a intentar realizar de nuevo esa conexión pero con un protocolo de comunicación más antiguo. De esa forma, un atacante podría ocasionar intencionadamente errores de conexión en protocolos seguros como TLS 1.2, 1.1 y 1.0 y forzar así el uso de SSL 3.0 para aprovechar la nueva vulnerabilidad.

Podríamos decir que Poodle no está orientado a comprometer el sistema, sino a obtener la información que antes se enviaba cifrada y un atacante no podía descifrar.

¿Cómo se explota esta vulnerabilidad?

Como vemos, es un ataque en dos tiempos. Primero se fuerza el uso de un protocolo no seguro y luego se aprovecha una vulnerabilidad en él. No obstante, para poder realizar este ataque se han de cumplir una serie de condiciones, y es que el atacante ha de estar conectado a la misma red que la víctima, por ejemplo, en una red Wi-Fi pública, para poder realizar un ataque Man In The Middle e interceptar así las comunicaciones de la víctima.

Además, para realizar un ataque de este tipo se requiere que JavaScript se esté ejecutando en el navegador, algo bastante común pero que puede desactivarse fácilmente. Esto limita su alcance, ya que si bien la mayoría de navegadores utilizados en sistemas operativos para ordenadores de sobremesa o portátiles incorporan JavasScript, no es el caso en muchos dispositivos móviles y sus aplicaciones.

¿Qué puede hacer un atacante que explote esta vulnerabilidad?

Sobre el papel y aún a falta de conocer más detalles en el futuro, se puede utilizar Poodle para realizar una amplia variedad de ataques, pero quizá el más llamativo y que más puede afectar a los usuarios sea el secuestro de las cookies de sesión o, lo que es lo mismo, registrarse en la cuenta de cualquier servicio online (correo, redes sociales, banca) sin necesidad de obtener previamente usuario y contraseña.

De esta forma, se podrían realizar robos de identidad y publicar mensajes en redes sociales en nombre de la víctima, enviar correos sin su permiso o realizar transferencias bancarias, aun sin haber obtenido las credenciales de acceso. Este es el peligro más inmediato que se nos viene a la cabeza.

¿Existe alguna solución?

Una vez ya hemos visto en qué consiste Poodle y cómo puede ser utilizada por un atacante, es hora de hablar de las posibles soluciones. Para ello hay que tener en cuenta que Poodle solo afecta a versiones antiguas de SSL (y SSL 3.0 tiene ya 15 años) y por eso trata de forzar este tipo de conexiones, aunque las aplicaciones estén configuradas para que utilicen la más reciente: TLS 1.2.

Por eso, una de las mejores soluciones pasa por dejar de utilizar SSL 3.0 y todas sus versiones anteriores y usar solo TLS 1.0 y posteriores. De esta forma no se podría forzar que tanto el cliente como el servidor utilicen una versión insegura del protocolo.

Dejar de utilizar SSL 3.0 en los servidores es una tarea que llevará tiempo, debido a que aún quedan muchos usuarios que utilizan aplicaciones que no soportan versiones posteriores a 3.0. Pensemos en los millones de usuarios que aún siguen utilizando Internet Explorer 6.0, por ejemplo.

Sin embargo, es algo que se va a tener que hacer tarde o temprano, y algunas de las empresas más importantes encargadas de alojar un buen número de sitios web ya han anunciado que dejarán de soportar SSL 3.0 en breve. Además, Google aconseja habilitar el mecanismo TLS_FALLBACK_SCSV en servidores para evitar que un atacante produzca errores de conexión al usar el protocolo TLS y fuerce el uso de SSL 3.0.

No obstante, como usuario puedes evitar seguir usando SSL 3.0 en los navegadores de forma sencilla. Es muy probable que la mayoría de los más utilizados saquen una actualización en breve que obligue a utilizar cifrado TLS 1.0 o posterior, pero también podemos forzarlo de forma manual siguiendo estas instrucciones:

  • Mozilla Firefox

Si escribes about:config en la barra de direcciones, entrarás a un apartado de configuración donde puedes cambiar muchos parámetros. Es importante no tocar nada que no sepas qué es, y te dirijas únicamente a la siguiente línea:

security.tls.version.min

Una vez la hayas localizado, haz doble clic sobre ella y cambia el valor de 0 a 1, cerrando esa pestaña una vez hayas realizado el cambio:

firefox_valor

  • Google Chrome

Para forzar el uso exclusivo de TLS en Chrome, deberás primero cerrar el navegador, ir al ícono de acceso directo en el escritorio, y pulsar el botón derecho del mouse sobre él. Selecciona la opción “Propiedades” y en la pestaña “Acceso Directo” stúate sobre el campo “Destino”:

Chrome_propiedades

Es en ese campo donde deberás añadir, al final de la ruta donde se encuentra el ejecutable de Chrome, la siguiente cadena:

–ssl-version-min=tls1

chrome_destino

Tras realizar estos ajustes, no deberías observar ningún cambio mientras navegas, puesto que prácticamente todos los servidores están preparados para utilizar TLS 1.0 o posterior. Aunque si no te ves capacitado para realizar estos pasos, siempre puedes esperar a que los propios navegadores se actualicen y activen esta opción por ti.

Conclusión

Esta vulnerabilidad en SSL 3.0 debería servir como una llamada de atención para dejar de utilizar un protocolo obsoleto que se desarrolló hace 15 años y que no está pensado para hacer frente a los desafíos de seguridad de hoy en día. Es por eso que esperamos una rápida reacción por parte de los desarrolladores de aplicaciones que todavía hacen uso de SSL 3.0 y que implementen el uso exclusivo de TLS, algo que solucionaría este problema de forma efectiva y sencilla.

Este post nos llega de la mano de Ontinet, Distribuidor de ESET en España.