Cargando
SecurityInside.info
  • Sobre SecurityInside
  • GitHub
  • Click to open the search input field Click to open the search input field Buscar
  • Menú Menú
  • Link to X
  • Link to Rss this site
  • Link to Youtube

Listado de la etiqueta: sniffing

HSTS, una defensa contra MITM y sslstrip

6 abril, 2015/en Hacking/por Antonio López

Siempre escuchamos que debemos, al menos,  asegurarnos que nuestra navegación viaja sobre HTTPs cuando debemos introducir contraseñas y/o acceder a sitos de información confidencial. Pero…¿Es HTTPs una garantía absoluta de que nuestras comunicaciones son realmente seguras?. En las tecnologías de la información nunca podremos hablar de un 100% de seguridad, y siempre debemos estar atentos a multiples circunstancias que pudieran ser aprovechadas para vulnerar nuestras comunicaciones. En este artículo introducimos un ataque clásico y eficaz contra conexiones seguras (sslstrip) y un mecanismo relativamente reciente que lo mitiga (hsts). ¿Puede considerarse HSTS el final de SSLStrip? Veamos.

Ataques Man in the Middle y SSLStrip

El ataque de hombre en el medio o MITM (del inglés Man in the Middle) es una de las técnicas mas frecuentemente utilizadas por su implementación, relativamente sencilla, y por la eficacia de sus resultados. No obstante el uso de SSL/TLS y el uso de criptografía  en las comunicaciones ha puesto siempre en jaque este tipo de interceptación de tráfico. Ante esta dificultad los ataques han tratado de sacar partido de debilidades en las suites de cifrado negociadas en una conexión segura, como BEAST, CRIME o BREACH o en vulnerabilidades SSL como Heartbleed. Actualizaciones, parches y otros condicionantes hacen que estas circunstancias no sean, en general, sencillas de explotar.

Otra técnica muy conocida y utilizada ampliamente durante un buen periodo de tiempo es SSLStrip. SSLstrip fue presentado por Moxie Marlinspike en la Black Hat 2009, y demostraba una genial idea para interceptar conexiones HTTPS  donde, en lugar de atacar el cifrado entre el cliente y el servidor se engaña al cliente, interponiéndose en mitad de la conexión. De este modo, SSLStrip hace de pasarela, intercepta el tráfico HTTP, evita que llegue un mensaje de redirección a HTTPS por parte del servidor y a continuación establece y mantiene dos conexiones: una HTTP sin cifrar con el cliente (víctima) y otra con el servidor HTTPS, manejando las cookies y la sesión para hacer creer a la víctima que está bajo una conexión segura cuando en realidad todo el tráfico va sin cifrar.

Durante un buen periodo de tiempo esta técnica dio excelentes frutos puesto que, para el servidor todo era correcto (conexion segura) y para también para el cliente, el cual no es consciente de que la conexión no es cifrada. Algunas contramedidas contra este ataque pasaban por utilizar plugins de navegador para forzar HTTPS hasta que apareció una mejora en el protocolo denominada HSTS.

HSTS: HTTP Strict Transport Security

HSTS, acrónimo para HTTP Strict Transport Security, nace con el objetivo de evitar  ataques de interceptación en conexiones HTTPS. La idea principal es introducir una nueva cabecera HTTP denominada Strict-Transport-Security, la cual puede ser enviada por un servidor al navegador cliente para fijar una política que obligue a usar únicamente conexiones seguras SSL/TLS y de como manejar las mismas con el servidor. En una política HSTS hay dos parámetros principales:

  • max-age, seguida de un número que representa el tiempo en segundos en que un navegador debe utilizar siempre HTTPS para la conexión con el dominio concreto incluso si se escribe específicamente «http://» en el barra de direcciones. Pasado ese tiempo el navegador recupera el comportamiento habitual.
  • IncludeSubdomains es otro parámetro opcional, que indicaría además al cliente que todo subdominio debe ser accedido igualmente estrictamente bajo HTTPS. Esta opción ha de ser utilizada con cuidado para evitar dejar fuera de contexto posibles alias o hospedajes bajo un CDN.

Un ejemplo de la cabecera de respuesta HSTS de conexión  con un servidor web puede ser  el siguiente:

Strict-Transport-Security: max-age=31556926; includeSubDomains

Este campo de la cabecera establece que ,durante un año (max-age=31556926) tanto el dominio solicitado como todos sus subdominios (includeSubDomains) han de ser accedidos únicamente utilizando HTTPs.

Adicionalmente, una política HSTS también previene que un usuario pueda aceptar un certificado autofirmado o cualquier irregularidad al registrarse y recordarse la CA que firma un dominio ya visitado.

Un aspecto importante a tener en cuenta es, que cuando se visita por primera vez un servidor con HSTS se recibirán la cabecera Strict-Transport-Security y los parámetros fijados, momento desde el cual  el navegador reconocerá el sitio y aplicará la política HSTS hasta su expiración. Esta primera visita es un punto vulnerable puesto que aún el navegador no tiene información sobre el sitio en concreto. Lo mismo ocurre cuando la política caduca.

De este modo al igual que hace SSLStrip con el manejo de una  sesión HTTPs, en un ataque man in the middle se podrían eliminar las cabeceras HSTS en la primera visita (vulnerabilidad Bootstrap man in the middle)  y así de este modo evitar que el navegador reciba esta notificación y aplique una política estricta. Sin embargo del mismo modo que en la parte servidora, también es posible  establecer en el navegador (parte cliente) «listas precargadas» de dominios, a los que se aplicará una política estricta independientemente de que sea la primera vez que se visita el sitio HTTPS. Este mecanismo evitaría el Bootstrap man in the middle. En algunos navegadores se pueden consultar y/o añadir elementos de estas listas, por ejemplo en Chrome accediendo a la URI: chrome://net-internals/#hsts

 

hsts

– HSTS: Configuración de listas precargadas en Chrome –

 Consideraciones de seguridad en HSTS

Entonces…. ¿podemos considerar HTTP Strict Transport Security el mecanismo que acaba definitivamente con los ataques SSLStrip y similares?. No, y tal y como se describe en el propio RFC de HSTS existen diversos vectores de ataque entre ellos ataques basados en NTP o DNS poisoning y que convenientemente explotados pueden servir para evitar la protección ofrecida por HSTS.

En un próximo artículo echaremos un vistazo a algunas aproximaciones que hacen uso de esos vectores como por ejemplo, SSLStrip+ o Delorean.

https://www.securityinside.info/wp-content/uploads/ssl-with-hsts.png 300 300 Antonio López https://securityinside.info/wp-content/uploads/logo.png Antonio López2015-04-06 11:00:452024-11-06 12:22:18HSTS, una defensa contra MITM y sslstrip

Categorías

  • Anonimato (18)
  • Auditoría (30)
  • Charlas y ponencias (68)
  • Cloud Security (9)
  • Control de acceso (29)
  • Desarrollo (32)
  • Dispositivos (19)
  • Eventos (25)
  • Exploiting (6)
  • Forense (6)
  • Formación (39)
  • Gobierno IT (36)
  • Hacking (20)
  • Herramientas (26)
  • I+D (13)
  • Ingeniería inversa (6)
  • ISO 27001 (10)
  • Live (20)
  • Malware (22)
  • Noticias (54)
  • Pentesting (12)
  • Privacidad (39)
  • Sin categoría (1)
  • Vulnerabilidades (24)

Archivo

  • mayo 2026
  • abril 2025
  • septiembre 2024
  • junio 2024
  • abril 2024
  • marzo 2024
  • enero 2021
  • septiembre 2020
  • abril 2020
  • febrero 2020
  • enero 2020
  • octubre 2019
  • septiembre 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • febrero 2019
  • enero 2019
  • octubre 2018
  • agosto 2018
  • mayo 2018
  • abril 2018
  • marzo 2018
  • febrero 2018
  • diciembre 2017
  • noviembre 2017
  • octubre 2017
  • septiembre 2017
  • julio 2017
  • junio 2017
  • mayo 2017
  • abril 2017
  • marzo 2017
  • febrero 2017
  • enero 2017
  • diciembre 2016
  • noviembre 2016
  • octubre 2016
  • septiembre 2016
  • julio 2016
  • junio 2016
  • mayo 2016
  • abril 2016
  • marzo 2016
  • febrero 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • octubre 2015
  • septiembre 2015
  • agosto 2015
  • julio 2015
  • junio 2015
  • mayo 2015
  • abril 2015
  • marzo 2015
[2015 - 2024] - SecurityInside.info - Segura gracias a Defender Eye
  • Link to X
  • Link to Rss this site
  • Link to Youtube
Desplazarse hacia arriba Desplazarse hacia arriba Desplazarse hacia arriba