Pueden pasar muchas cosas entre un inicio de sesión y un cierre de sesión.
Los atacantes buscan sesiones en las que puedan obtener acceso no autorizado a tus cuentas y explotar tus datos. Debes asegurarte de autenticar tus datos de inicio de sesión en un entorno seguro y protegerte contra ataques de secuestro de sesión.
Puedes utilizar firewalls de aplicaciones web para detectar anomalías en el tráfico entrante y bloquear el tráfico potencialmente malintencionado a medida que llega. Pero para arreglar las defensas de seguridad sólidas, es crucial comprender en detalle el secuestro de sesiones, sus tipos y las herramientas que los atacantes pueden usar para penetrar en las cuentas de los usuarios.
Indice
¿Qué es el secuestro de sesiones?
El secuestro de sesiones, también conocido como secuestro de cookies, es un proceso de tomar el control de la sesión de un usuario obteniendo o generando un ID de sesión mientras la sesión aún está en progreso.
Un atacante podría utilizar secuencias de comandos entre sitios (XSS), fuerza bruta, ingeniería inversa o varios otros métodos para hacerse con las cookies de sesión y obtener acceso no autorizado a las cuentas de los usuarios.
Una sesión comienza cuando inicias sesión en un servicio, como una aplicación web, y finaliza cuando cierras la sesión. El Protocolo de transferencia de hipertexto (HTTP) es un protocolo sin estado, lo que significa que lleva cada solicitud de forma independiente sin hacer referencia a ninguna solicitud anterior, lo que requiere que un usuario se autentique cada vez que ve una página web. Para evitar pedirle a un usuario que inicie sesión cada vez, el servidor asigna una ID de sesión para proporcionar una experiencia web perfecta después de la autenticación.
Los atacantes intentan robar la identificación de sesión del objetivo o engañarlos para que hagan clic en un enlace malicioso que los lleva a una sesión prefabricada para un ataque de secuestro de sesión. Una vez que el usuario está autenticado en el servidor, los actores de amenazas pueden secuestrar la sesión y engañar al servidor para que considere que su sesión es válida.
Cuando un atacante tiene como objetivo una cookie de sesión, está relacionado con el secuestro de la sesión de la aplicación web, no con el secuestro de la sesión del Protocolo de control de transmisión (TCP). TCP es un protocolo de transporte que se utiliza sobre IP para garantizar una transmisión confiable de paquetes. La aplicación web devuelve una cookie de sesión después de una autenticación exitosa que un atacante explota para secuestrar una sesión. No tiene nada que ver con la conexión TCP entre el dispositivo del usuario y el servidor.
Métodos de secuestro de sesiones
Los atacantes suelen tener algunos métodos de elección mientras realizan un secuestro de sesión. Pueden usarlos individualmente o en combinación para hacerse cargo de las cuentas de los usuarios y realizar actividades maliciosas.
Secuencias de comandos entre sitios
En un ataque de secuencia de comandos entre sitios (XSS), un pirata informático malintencionado engaña a la computadora del objetivo para que ejecute un código que se hace pasar por un código confiable que pertenece a un servidor. Permite que un atacante obtenga una copia de la cookie para realizar sus acciones maliciosas.
Normalmente, las páginas web están integradas con JavaScript. Sin las protecciones adecuadas y las herramientas de seguridad de la aplicación, revela la información confidencial de los usuarios si se ejecutan los scripts.
Si el servidor no establece el atributo HTTPOnly en las cookies de sesión, los scripts pueden exponerlos a atacantes.
Inyección de malware
Algunos malware o troyanos están programados para robar cookies del navegador y realizar acciones maliciosas sin el conocimiento del usuario. Por ejemplo, cuando un usuario visita un sitio web malicioso o hace clic en un enlace no solicitado, el malware escanea el tráfico de la red, recopila cookies de sesión y las envía a los delincuentes. Los atacantes con acceso al almacenamiento local pueden robar claves de sesión del almacenamiento local temporal del navegador (tarro de cookies), o pueden obtener archivos o contenidos de memoria del servidor o de la computadora del usuario.
Fuerza bruta
Los atacantes pueden realizar un ataque de fuerza bruta para adivinar la clave de sesión de un usuario. Cuando una aplicación usa una clave de sesión secuencial o predecible, hace que la sesión sea vulnerable a un secuestro. Este era un método preferido en el pasado, pero con las aplicaciones modernas, los ID de sesión son largos y se generan aleatoriamente, lo que ofrece una resistencia sustancial a los ataques de fuerza bruta.
Toma lateral de la sesión
En el secuestro lateral de la sesión, un atacante aprovecha el rastreo de paquetes para leer el tráfico de la red y robar la cookie de la sesión. Normalmente, los sitios web utilizan el cifrado Secure Sockets Layer / Transport Layer Security (SSL / TLS) en sus páginas de autenticación. Aún así, algunos no lo usan en todo el sitio después de la autenticación, lo que permite a los atacantes interceptar los datos intercambiados entre el servidor y las páginas web.
Una vez que los atacantes tienen en sus manos las cookies de sesión, pueden secuestrar las sesiones de los usuarios para realizar operaciones maliciosas. Por ejemplo, un mal actor que se dirige a un usuario conectado a un WiFi no seguro puede leer fácilmente los datos o el tráfico compartido entre otros nodos y puntos de acceso.
Fijación de sesión
Los atacantes a veces pueden crear una sesión disfrazada y engañar a un usuario para que se autentique en un servidor vulnerable. Por ejemplo, un actor de amenazas podría usar ingeniería social (phishing) o un método similar para persuadir a un usuario de que haga clic en un enlace que lo lleve a una sesión diseñada con una cookie de sesión conocida. Una vez que el usuario se autentica, el atacante puede usar la clave de sesión conocida para secuestrar la sesión del usuario.
Un atacante también puede engañar a los usuarios para que completen un formulario de inicio de sesión prefabricado que incluye un ID de sesión fijo y oculto.
Niveles de ataques de secuestro de sesiones
Hay dos niveles de ataques de secuestro de sesiones. Estos ataques pueden estar interrelacionados, ya que un ataque exitoso en una capa de red le dará al atacante información para explotar a un usuario real en el nivel de la aplicación.
Secuestro de la capa de transporte
El secuestro de la capa de transporte ocurre en las conexiones TCP donde un atacante intercepta los intercambios de datos entre un servidor web y un usuario, excluyendo el canal de comunicación establecido entre ellos. Luego, los delincuentes envían paquetes de datos maliciosos disfrazados de legítimos tanto al cliente como al servidor, tomando el control de la sesión del usuario.
Un método común de secuestro de la capa de transporte es la suplantación de IP, donde un atacante usa una dirección IP falsificada disfrazada de confiable para comunicarse con las computadoras en la red. Utilizan paquetes IP enrutados en origen para interceptar la comunicación activa entre dos nodos. La suplantación de IP se aprovecha indebidamente de la autenticación única al inicio de la sesión TCP.
Secuestro de la capa de aplicación
En el secuestro de la capa de aplicación, un atacante roba el ID de sesión de un usuario después de que un usuario se autentica en su aplicación. Los ataques man-in-the-middle son ejemplos típicos de secuestro de sesión de capa de aplicación, donde el secuestrador intercepta el canal de comunicación entre el cliente y el servidor.
Los ataques de proxy también se incluyen en el secuestro de la capa de aplicación. Un atacante dirige el tráfico a un servidor proxy con un ID de sesión predefinido para interceptar la comunicación durante estos ataques.
Tipos
El secuestro de sesiones implica adivinar o interceptar cookies de sesión en una sesión existente o engañar a un usuario para que se autentique en una sesión prefabricada. Hay tres tipos de ataques de secuestro de sesiones.
Activo
En el secuestro de sesiones activas, un atacante se apodera de una conexión activa en una red. Pueden silenciar todos los dispositivos y hacerse cargo del canal de comunicación entre el cliente y el servidor. Luego, abandonan la afiliación entre el servidor y el dispositivo del usuario.
Hay algunas formas en las que un atacante puede interrumpir la comunicación entre un cliente y un servidor. Normalmente, los intrusos envían tráfico masivo para atacar una sesión válida y provocar un ataque de denegación de servicio (DoS).
Pasivo
El secuestro pasivo de sesiones es similar al activo, excepto que un atacante monitoriza la comunicación entre un cliente y un servidor. El atacante no bloquea al usuario real fuera de la sesión, pero supervisa el intercambio de comunicación en curso.
El motivo principal de los ataques pasivos es robar la información intercambiada y utilizarla con fines maliciosos.
Híbrido
Los ataques de secuestro de sesión híbrida son una combinación de ataques activos y pasivos. En un ataque híbrido, los atacantes monitorizan el tráfico de la red hasta que encuentran un problema, luego toman el control de la sesión y comienzan a hacerse pasar por usuarios legítimos.
Los ataques híbridos dependen de la suplantación de identidad y se clasifican además en los siguientes tipos:
- Un ataque de suplantación de identidad ciega implica que los atacantes se dirijan a una víctima sin interrumpir una sesión. Capturan paquetes de datos intercambiados entre un servidor y un usuario e intentan descifrar las secuencias de paquetes TCP.
- Un ataque de suplantación de identidad no ciego incluye monitorizar el tráfico entre un servidor y un usuario para predecir el pacto posterior para pronosticar su rango de secuencia TCP. Un atacante toma el control de la sesión a nivel de aplicación y forma una nueva sesión, utilizando un token de sesión que podría ser robado o predecible.
Secuestro de sesión vs suplantación de sesión vs repetición de sesión
La principal diferencia entre el secuestro de sesiones y la falsificación de sesiones es el tiempo del ataque.
Los ataques de secuestro de sesiones se llevan a cabo una vez que los usuarios se autentican en la aplicación. El ataque puede provocar retrasos o comportamientos poco comunes en las aplicaciones. Es porque un atacante explota tus datos mientras aún estás conectado. Si una aplicación falla con frecuencia, podría sugerir un ataque de secuestro de sesión.
En la suplantación de identidad de sesión, las víctimas no son conscientes del ataque. Los atacantes pueden utilizar ID de sesión robados o falsificados y hacerse pasar por usuarios genuinos sin depender de un usuario para realizar la autenticación.
La repetición de una sesión es un poco diferente.
En la reproducción de la sesión, los atacantes ya tienen cookies de sesión (recopiladas del secuestro de sesiones) y pueden usarlas como quieran. Pueden engañar a una víctima para que vuelva a enviar una solicitud previamente válida, como comprar varias cantidades de artículos donde originalmente solicitaron una unidad.
Herramientas de secuestro de sesiones
Varias herramientas pueden ayudar a un atacante a realizar un ataque de secuestro de sesión. Puedes utilizarlas en pruebas de penetración y comprobar si tus sistemas y aplicaciones son a prueba de ataques.
Estas son algunas de las herramientas de secuestro de sesión más populares que se utilizan para llevar a cabo un ataque.
*Estas herramientas solo deben usarse con fines éticos para probar y fortalecer los sistemas contra el secuestro de sesiones.
Hámster y hurón
Hamster actúa como un servidor proxy que manipula los datos recopilados por Ferret, que captura las cookies de sesión que pasan por la red.
T-Sight
T-Sight se desarrolló inicialmente como una herramienta de monitorización de red para ejecutarse en la plataforma Windows. Sin embargo, mientras se monitoriza una red, se puede secuestrar una sesión, ya que toda la comunicación a través de la red se copia en tiempo real, lo que proporciona una salida de transmisión de datos precisa. Debido a esto, Engrade, el desarrollador de T-Sight, ahora proporciona licencias de software solo para direcciones IP predeterminadas.
Juggernaut
Juggernaut es una herramienta de rastreo de redes que se puede utilizar de forma malintencionada para realizar un ataque de secuestro de sesión. Es posible configurar Juggernaut para ver todo el tráfico de red en una red de área local (LAN) o escuchar un token de sesión en particular. Se puede configurar para registrar el tráfico de la red después de que la víctima intente iniciar sesión.
Juggernaut es diferente de los rastreadores de red habituales que registran todo el tráfico de la red en archivos de registro enormes. Juggernaut mantiene una base de datos de conexiones que permite a un atacante ver todas las conexiones basadas en TCP e incluso secuestrar una sesión.
La herramienta de secuestro de sesiones también proporciona una función incorporada de ensamblaje de paquetes. Los atacantes utilizan esta funcionalidad para fragmentar paquetes y evadir los sistemas de detección de intrusos y los cortafuegos.
Estas son algunas de las herramientas que utilizan los atacantes para realizar ataques de secuestro de sesiones.
Necesitas fortalecer tus redes y sistemas contra herramientas similares como Hunt, TTY-Watcher, IP-Watcher, 1164, Wireshark, SSHMITM, Hjksuite, C2MYAZZ, que los atacantes utilizan para explotar las sesiones de los usuarios.
Cómo evitar el secuestro de sesiones
El secuestro de sesiones puede tener consecuencias nefastas para las organizaciones, incluidas pérdidas financieras y de reputación en las que se incurra después de años de construir una buena reputación y brindar un servicio fiel en la industria.
Las empresas deben establecer medidas de seguridad estratégicas para evitar convertirse en blanco de ataques de secuestro de sesiones. Estas medidas incluyen:
- Cifrar toda la transmisión de datos en una página web
- Implementación de la certificación Hypertext Transfer Protocol Secure (HTTPS) en páginas web
- Actualizar y aplicar parches a los navegadores con regularidad.
- Adopción de herramientas de ciberseguridad como software de protección DDoS y tecnología de engaño
- Iniciar y cerrar sesión con cuidado
- Tener HTTPS en todo el sitio es posiblemente el mecanismo preventivo más importante. Si te preocupan los problemas de rendimiento, puedes implementar SSL en las páginas de inicio de sesión del sitio web y en otras áreas sensibles. Otra medida preventiva importante sería cifrar el valor de la sesión almacenado en una cookie de sesión.
Protege tus sesiones
El secuestro de sesiones puede ser problemático. Se proactivo y establece un mecanismo de defensa adecuado para protegerte de los ataques de secuestro de sesiones y para proteger tu cuenta y tus datos.
Dado que los piratas informáticos desarrollan constantemente nuevos métodos para romper los perímetros de defensa de una organización, puede resultar aún más complicado garantizar el 100% de la seguridad.