lunes, 23 de febrero de 2009

El SSL no está roto... ¿o sí? (I)

Moxie Marlinspike protagonizó la semana pasada una conferencia en la Black Hat en la que demostraba cómo eludir la autenticación y el cifrado SSL de las páginas supuestamente seguras. El investigador se ha centrado en una inteligente combinación de técnicas que permiten confundir a los usuarios (incluso a los avanzados) sobre si están o no en la página correcta. Ninguna de las técnicas usadas es realmente nueva, pero todas en conjunto forman una excelente herramienta llamada sslstrip.

Sslstrip combina una buena tanda de técnicas con el único objetivo de que el usuario realmente no sepa que está en una web falsa o que su tráfico no está siendo realmente cifrado. Aclarar que el problema no está en el SSL, sigue siendo lo mejor de lo que disponemos para realizar conexiones seguras. El fallo está un poco en los navegadores, un mucho en los usuarios, algo en los certificados, bastante en las redes... pero no en la tecnología en sí.

Como siempre, teniendo en cuenta el éxito del que gozan técnicas mucho más sencillas, sslstrip todavía no será usado por atacantes de forma masiva, sino para ataques muy específicos contra usuarios avanzados. Y estos son quizás los que deban estar más atentos.

Para ser víctima del sslstrip, la primera condición ineludible es que la conexión debe estar siendo interceptada. Bien a través de un envenenamiento de ARP en red interna, bien a través de puntos de acceso wireless falsos... el caso es que el atacante debe actuar como proxy en la comunicación, teniendo acceso al tráfico. Esta es una premisa importante, pero no es extraña. El investigador usó con éxito la red de anonimato Tor para sus pruebas. Sslstrip hace todo en tiempo real, básicamente sustituyendo el tráfico cifrado (https) por uno no cifrado (http), de forma que al usuario se le presenta una página idéntica a la que necesita, pero sin cifrar y probablemente en otro servidor que pertenece al atacante. Acude al servidor real para tomar la información necesaria, pero en vez de devolverla cifrada al usuario, lo hace sin cifrar. Esta es su funcionalidad básica.

En la mayoría de las ocasiones esto sería suficiente para engañar a muchos usuarios. Pero obviamente esto llamaría la atención de otros tantos, que echarían en falta las advertencias que normalmente el navegador realiza cuando se está sobre una página cifrada (el candado, la barra dorada, el https, etc). Marlinspike, en su charla en la Black Hat, dio un buen montón de ideas y métodos para hacer que esto pase desapercibido incluso para los usuarios más avispados.

Una de ellas es la sustitución de un "favicon" de la página por un simple candado. El candado real no aparecería pero en los últimos tiempos se ha abusado tanto de esta imagen que su simple presencia (aunque no sea en el lugar correcto) da sensación de seguridad a los usuarios.

Otra de las técnicas es muy vieja ya. Se basa en el uso de caracteres especiales para hacer pensar al usuario que se encuentra en el dominio correcto. El atacante no tiene más que comprar un certificado válido para ese dominio, y de esta forma se evitarían todas las advertencias del navegador. Solo quien comprobase realmente la cadena de certificación del certificado estaría a salvo.

También presenta otras técnicas para eludir problemas como las cookies de seguridad y el manejo de sesiones autenticadas. Su herramienta tiene soluciones para evitar que el usuario más experimentado note que está siendo víctima de un robo de sus datos.

Otro de los puntos interesantes de la charla que ofreció Marlinspike, además de la presentación de la herramienta (que ha hecho pública), son las reflexiones sobre la seguridad SSL y cómo está implementada en los navegadores, de lo que hablaremos en la siguiente entrega.


Sergio de los Santos
ssantos@hispasec.com


Más información:

sslstrip
http://www.thoughtcrime.org/software/sslstrip/index.html

No hay comentarios:

Publicar un comentario en la entrada