martes, 22 de julio de 2014

Anulando SSLStrip con HTTP Strict Transport Security (HSTS)

El común de los ataques de SSL para “ hombre en medio “ es usar herramientas como SSLStrip, esta herramienta en realidad es un proxy, lo que hace SSLSTRIP es conectar a una página segura como Hotmail , Facebook y Google Gmail una vez realizada la conexión entrega por medio de un proxy sin cifrar la conexión sin seguridad SSL a la víctima, en el proceso le da la oportunidad al atacante de escuchar ahora sin el cifrado del SSL las contraseñas y los usuarios e incluso el tráfico de datos entre el servidor que se considera seguro y la victima que cree que está en una conexión segura. Básicamente convierte una conexión HTTPS a una HTTP y es por este motivo que el navegador de la víctima no le avisa de un posible ataque.

Hay un método que permite mitigar y en muchos casos inutilizar al SSLStrip quitándole lo espía a muchos hackers, con el HSTS o HTTP Strict Transport Security es una sencilla cabecera que se envía desde el servidor WEB hacia el cliente esta cabecera actua como una cookie, lleva una valor en segundos que le indican al navegador que a partir del momento de recibida y hasta que esos segundos transcurran no debe permitir conexiones HTTP , se fuerza siempre HTTPS. Esto tan simple pone en jaque al SSLStrip por que el navegador se niega a visitar el sitio WEB con solo HTTP y eso es lo que hace SSLStrip evitando el robo de contraseñas o impidiendo el espionaje.

La cantidad de segundos que yo recomiendo no debe ser mayor a 48 horas, la mayoría lo pone a un año o más, pero significa que durante ese tiempo tu certificado SSL no debe expirar ni ser revocado o nadie podrá visitar tu sitio WEB, 48 horas en un tiempo razonable, además que cada que recibe la cabecera se incrementa en 48 horas nuevamente, así si tienes que revocar tu certificado o por algún motivo no puedes seguir dando el servicio en HTTPS podrán seguir usando HTTP en los próximos 2 días.

Muchas páginas WEB no requiere obligar a las personas a consultar en HTTPS, pero la mayoría de los desarrolladores comerciales deberían implementar esto debido a que si están haciendo un sistema de nominas o de información con datos personales, estos datos siempre deberían ir cifrados y evitar que con herramientas que hacen trucos mediocres como el SSLStrip se puede vulnerar el sitio.

Los buenos navegadores entienden y soportan el HSTS, adivinen quien no lo soporta en su versión actual. El internet explorer 11. Si estas manejando información importante, nunca uses Explorer, Firefox y Chrome son excelentes para manejar HSTS y Chrome incluso trae una lista de sitios precargados en los que figura el Facebook, Twitter, Hotmail , Google y otros.

HSTS no es más que una simple cabecera, así que puede ser entregada de muchas formas, mandándola con la función headers de php del lenguaje que estés usando o simplemente enviarla obligatoriamente en cada conexión desde el mismo servidor.

El Servidor de la cueva del dragon la envía desde el servicio web de apache, es tan simple como agregar la siguiente línea en la configuración del virtualhost


ServerName lastdragon.net
Header add Strict-Transport-Security "max-age=86400"


Si solo tienes un hosting y no tienes permiso de modificar la configuración del servicio WEB, con php seria así:

header("strict-transport-security: max-age=86400");

La cabecera solo debe ser enviada desde la conexión HTTPS, si la envías desde la HTTP y no tienes HTTPS harías inaccesible tu sitio ya que el navegador se reusaria a conectar por HTTP durante la vigencia en segundos que hayas asignado. Asi que debes tener cuidado de nunca enviar esta cabecera en HTTP
El siguiente video muestra como los navegadores se reúsan a conectar a HTTP.



Fuente: https://www.lastdragon.net/?p=1074

No hay comentarios:

Publicar un comentario