Explotación de una sesión informática válida
En informática , el secuestro de sesión , a veces también conocido como secuestro de cookies , es la explotación de una sesión de computadora válida —a veces también llamada clave de sesión— para obtener acceso no autorizado a información o servicios en un sistema informático. En particular, se utiliza para referirse al robo de una cookie mágica utilizada para autenticar a un usuario en un servidor remoto. Tiene particular relevancia para los desarrolladores web, ya que las cookies HTTP utilizadas para mantener una sesión en muchos sitios web pueden ser robadas fácilmente por un atacante utilizando una computadora intermediaria o con acceso a las cookies guardadas en la computadora de la víctima (ver Robo de cookies HTTP ). Después de robar con éxito las cookies de sesión apropiadas, un adversario podría usar la técnica Pass the Cookie para realizar el secuestro de sesión. El secuestro de cookies se usa comúnmente contra la autenticación de clientes en Internet. Los navegadores web modernos utilizan mecanismos de protección de cookies para proteger la web de ser atacada. [1]
Un método popular es el uso de paquetes IP enrutados desde el origen. Esto permite que un atacante en el punto B de la red participe en una conversación entre A y C al alentar a los paquetes IP a pasar por la máquina de B.
Si el enrutamiento de origen está desactivado, el atacante puede utilizar un secuestro "ciego", mediante el cual adivina las respuestas de las dos máquinas. De este modo, el atacante puede enviar un comando, pero nunca puede ver la respuesta. Sin embargo, un comando común sería establecer una contraseña que permita el acceso desde cualquier otro lugar de la red.
Un atacante también puede estar "en línea" entre A y C utilizando un programa espía para observar la conversación. Esto se conoce como "ataque de intermediario".
Historia del HTTP
Las versiones 0.8 y 0.9 del protocolo HTTP carecían de cookies y otras funciones necesarias para el secuestro de sesiones. La versión 0.9beta de Mosaic Netscape, publicada el 13 de octubre de 1994, admitía cookies.
Las primeras versiones de HTTP 1.0 tenían algunas debilidades de seguridad relacionadas con el secuestro de sesiones, pero eran difíciles de explotar debido a los caprichos de la mayoría de los primeros servidores y navegadores HTTP 1.0. Como HTTP 1.0 ha sido designado como una alternativa para HTTP 1.1 desde principios de la década de 2000, y como los servidores HTTP 1.0 son esencialmente servidores HTTP 1.1, el problema del secuestro de sesiones se ha convertido en un riesgo de seguridad casi permanente. [2] [ verificación fallida ]
La introducción de supercookies y otras funciones con la versión modernizada del protocolo HTTP 1.1 ha permitido que el problema del secuestro se convierta en un problema de seguridad permanente. La estandarización de las máquinas de estado de los servidores web y los navegadores ha contribuido a este problema de seguridad permanente.
Métodos
Existen cuatro métodos principales que se utilizan para cometer un secuestro de sesión:
- Fijación de sesión : el atacante establece el ID de sesión de un usuario en uno que este conozca, por ejemplo, enviándole un correo electrónico con un enlace que contiene un ID de sesión en particular. El atacante ahora solo tiene que esperar hasta que el usuario inicie sesión.
- Session side jacking , donde el atacante utiliza el rastreo de paquetes para leer el tráfico de red entre dos partes para robar la cookie de sesión . Muchos sitios web utilizan el cifrado SSL para las páginas de inicio de sesión para evitar que los atacantes vean la contraseña, pero no utilizan el cifrado para el resto del sitio una vez autenticado . Esto permite a los atacantes que pueden leer el tráfico de la red interceptar todos los datos que se envían al servidor o las páginas web vistas por el cliente. Dado que estos datos incluyen la cookie de sesión , les permite hacerse pasar por la víctima, incluso si la contraseña en sí no está comprometida. [3] Los puntos de acceso Wi-Fi no seguros son particularmente vulnerables, ya que cualquiera que comparta la red generalmente podrá leer la mayor parte del tráfico web entre otros nodos y el punto de acceso .
- Scripting entre sitios , donde el atacante engaña a la computadora del usuario para que ejecute un código que se considera confiable porque parece pertenecer al servidor, lo que le permite al atacante obtener una copia de la cookie o realizar otras operaciones.
- El malware y los programas no deseados pueden usar el secuestro del navegador para robar los archivos de cookies de un navegador sin el conocimiento del usuario y luego realizar acciones (como instalar aplicaciones de Android) sin el conocimiento del usuario. [4] Un atacante con acceso físico puede simplemente intentar robar la clave de sesión , por ejemplo, obteniendo el contenido del archivo o la memoria de la parte apropiada de la computadora del usuario o del servidor.
Después de adquirir con éxito las cookies de sesión apropiadas, un adversario inyectaría la cookie de sesión en su navegador para hacerse pasar por el usuario víctima en el sitio web del cual se robó la cookie de sesión. [5]
Hazañas
oveja de fuego
Firesheep , una extensión de Firefox introducida en octubre de 2010, demostró vulnerabilidades de secuestro de sesiones en redes no seguras. Capturó cookies no cifradas de sitios web populares, lo que permitió a los usuarios tomar el control de sesiones activas de otros en la misma red. La herramienta funcionaba mostrando objetivos potenciales en una barra lateral, lo que permitía el acceso a la sesión sin robo de contraseñas. Los sitios web compatibles incluían Facebook , Twitter , Flickr , Amazon , Windows Live y Google , con la capacidad de usar scripts para agregar otros sitios web. [6] Solo unos meses después, Facebook y Twitter respondieron ofreciendo (y luego exigiendo) HTTP Secure en todo momento. [7] [8]
Oveja droide
DroidSheep es una sencilla herramienta Android para el secuestro de sesiones web (sidejacking). Escucha los paquetes HTTP enviados a través de una conexión de red inalámbrica (802.11) y extrae el identificador de sesión de estos paquetes para reutilizarlos. DroidSheep puede capturar sesiones utilizando la biblioteca libpcap y admite: redes abiertas (sin cifrar), redes cifradas WEP y redes cifradas WPA/WPA2 (solo PSK). Este software utiliza libpcap y arpspoof. [9] [10] El apk estaba disponible en Google Play , pero Google lo ha eliminado.
Cajero de galletas
CookieCadger es una aplicación gráfica Java que automatiza el secuestro lateral y la reproducción de solicitudes HTTP, para ayudar a identificar fugas de información de aplicaciones que utilizan solicitudes GET no cifradas. Es una utilidad de código abierto multiplataforma basada en la suite Wireshark que puede monitorear Ethernet por cable, Wi-Fi inseguro o cargar un archivo de captura de paquetes para análisis fuera de línea. Cookie Cadger se ha utilizado para destacar las debilidades de los sitios de intercambio de equipos juveniles como Shutterfly (utilizado por la liga de fútbol AYSO) y TeamSnap. [11]
Prevención
Los métodos para evitar el secuestro de sesiones incluyen:
- Cifrado del tráfico de datos que pasa entre las partes mediante SSL / TLS ; en particular, la clave de sesión (aunque lo ideal sería que se cifrara todo el tráfico de la sesión completa [12] ). Esta técnica es ampliamente utilizada por los bancos basados en la web y otros servicios de comercio electrónico, ya que evita por completo los ataques de tipo sniffing. Sin embargo, todavía podría ser posible realizar algún otro tipo de secuestro de sesión. En respuesta, los científicos de la Universidad Radboud de Nijmegen propusieron en 2013 una forma de evitar el secuestro de sesión mediante la correlación de la sesión de la aplicación con las credenciales SSL / TLS [13].
- Uso de un número o cadena aleatorios largos como clave de sesión . Esto reduce el riesgo de que un atacante pueda adivinar una clave de sesión válida mediante prueba y error o ataques de fuerza bruta.
- Regeneración del ID de sesión después de iniciar sesión correctamente. Esto evita la fijación de la sesión porque el atacante no conoce el ID de sesión del usuario después de iniciar sesión.
- Algunos servicios realizan comprobaciones secundarias de la identidad del usuario. Por ejemplo, un servidor web podría comprobar con cada solicitud realizada que la dirección IP del usuario coincida con la última utilizada durante esa sesión. Sin embargo, esto no evita los ataques de alguien que comparte la misma dirección IP y puede resultar frustrante para los usuarios cuya dirección IP es propensa a cambiar durante una sesión de navegación .
- Alternativamente, algunos servicios cambiarán el valor de la cookie con cada solicitud. Esto reduce drásticamente el margen de tiempo en el que un atacante puede operar y facilita la identificación de si se ha producido un ataque, pero puede causar otros problemas técnicos (por ejemplo, dos solicitudes legítimas y muy próximas del mismo cliente pueden provocar un error de comprobación de token en el servidor).
- Los usuarios también pueden desear cerrar sesión en sitios web cuando terminen de usarlos. [14] [15] Sin embargo, esto no protegerá contra ataques como Firesheep .
Véase también
Referencias
- ^ Bugliesi, Michele; Calzavara, Stefano; Focardi, Riccardo; Khan, Wilayat (16 de septiembre de 2015). "CookiExt: parchear el navegador contra ataques de secuestro de sesión". Journal of Computer Security . 23 (4): 509–537. doi :10.3233/jcs-150529. hdl : 10278/3663357 . ISSN 1875-8924.
- ^ "Secuestro de sesión y comunicación HTTP". 19 de octubre de 2020. Archivado desde el original el 31 de octubre de 2020.
- ^ "Advertencia de secuestro de correo web por Wi-Fi". BBC News . 3 de agosto de 2007.
- ^ "El malware utiliza el secuestro del navegador para robar cookies". 19 de octubre de 2020.
- ^ Nikiforakis, Nick; Meert, Wannes; Younan, Yves; Johns, Martín; Joosen, Wouter (2011). Erlingsson, Úlfar; Wieringa, Roel; Zannone, Nicola (eds.). "SessionShield: protección ligera contra el secuestro de sesiones". Ingeniería de software y sistemas seguros . Berlín, Heidelberg: Springer: 89. doi :10.1007/978-3-642-19125-1_7. ISBN 978-3-642-19125-1.
- ^ "La extensión de Firefox roba sesiones de Facebook, Twitter, etc." The H . 25 de octubre de 2010. Archivado desde el original el 6 de marzo de 2024.
- ^ "Facebook ahora está encriptado con SSL en todo su contenido". The H. 27 de enero de 2011.
- ^ "Twitter añade la opción 'Usar siempre HTTPS'". The H . 16 de marzo de 2011.
- ^ "Oveja droide".
- ^ "Blog de DroidSheep". Archivado desde el original el 20 de noviembre de 2016. Consultado el 7 de agosto de 2012 .
- ^ "Cómo Shutterfly y otros sitios sociales dejan a sus hijos vulnerables a los piratas informáticos". Mother Jones . 2013-05-03. Archivado desde el original el 2024-05-19.
- ^ "Schneier sobre seguridad: Firesheep". 27 de octubre de 2010. Consultado el 29 de mayo de 2011 .
- ^ Burgers, Willem; Roel Verdult; Marko van Eekelen (2013). "Prevenir el secuestro de sesiones vinculando la sesión a las credenciales de la red criptográfica". Sistemas de TI seguros . Apuntes de clase en informática. Vol. 8208. págs. 33–50. doi :10.1007/978-3-642-41488-6_3. ISBN 978-3-642-41487-9.
- ^ Consulte "NetBadge: Cómo cerrar sesión".
- ^ Ver también "Sea inteligente con su tarjeta en línea: cierre siempre la sesión".