¿Qué es el secuestro de sesiones y formas de prevención?

¿Sabía que un pirata informático puede realizar transferencias bancarias o compras en línea en su nombre sin robar su información de registro?

Asociamos las cookies con el seguimiento y los molestos anuncios en línea, pero también almacenan consultas de búsqueda, lo que nos permite visitar sitios web sin ingresar un nombre de usuario y contraseña.

Sin embargo, si alguien intercepta la cookie, esto puede conducir a un ciberataque catastrófico llamado secuestro de sesión, que puede poner en riesgo sus datos confidenciales a manos de los atacantes, y puede causar mucho daño incluso antes de que sepa lo que sucedió.

¡Veamos qué es y cómo puedes prevenirlo!

¿Qué es el secuestro de sesión?

En el secuestro de sesión, un atacante intercepta y toma el control de una sesión establecida entre un usuario y un host, como un servidor web, una sesión Telnet o cualquier otra conexión basada en TCP. Una sesión comienza una vez que inicia sesión en un sitio web o aplicación, por ejemplo, un sitio web de redes sociales.

Continúa mientras estás dentro de la cuenta, revisando tu perfil o participando en un hilo, y finaliza cuando sales del sistema. Pero, ¿cómo sabe el servidor web que cada solicitud que haces es en realidad tuya?

Aquí es donde entran las cookies. Después de iniciar sesión, envía sus credenciales al servidor web. Confirma quién es usted y le proporciona una identificación de sesión mediante una cookie que se le adjuntará durante la duración de la sesión. Es por eso que no cierra la sesión de una aplicación cada vez que visita el perfil de alguien y por eso la tienda en línea recuerda lo que puso en su carrito de compras incluso si actualiza la página.

Pero los atacantes pueden secuestrar la sesión si usan técnicas especiales de administración de sesión o roban su cookie. Por lo tanto, puede engañar al servidor web haciéndole creer que las solicitudes provienen de usted, el usuario autorizado.

El fenómeno del secuestro de sesiones se hizo famoso a principios de la década de 2000, pero sigue siendo uno de los métodos más comunes utilizados por los piratas informáticos.

Un ejemplo reciente es el Grupo Lapsus$, que pasó a formar parte de la lista de los más buscados del FBI este año. Utiliza la infección InfoStealer Maleware para secuestrar la sesión.

Del mismo modo, GenesisStore es una tienda a la que solo se puede acceder por invitación, administrada por un grupo del mismo nombre que vende datos de cookies comprometidos, y su lista supera los 400 000 bots.

Tipos de captura de sesión

El secuestro de sesiones se puede dividir en dos categorías principales, según los deseos del perpetrador.

Activo: en un ataque activo, el atacante se hace cargo de su sesión, tomando así la conexión del cliente legítimo al recurso. Según el sitio de la sesión, el hacker puede realizar compras en línea, cambiar contraseñas o recuperar cuentas. Un ejemplo común de un ataque activo es un ataque de fuerza bruta, XSS o incluso DDoS.

Fuente: OSWAP

Pasivo: en un ataque pasivo, el atacante no toma el control ni altera la sesión. En cambio, monitorean silenciosamente el tráfico de datos entre su dispositivo y el servidor, recopilando toda la información confidencial. Por lo general, la suplantación de identidad IP y la inyección de malware se utilizan para llevar a cabo ataques de inyección pasiva.

Fuente: OSWAP

¿Cómo funciona el secuestro de sesiones?

HTTP es un protocolo sin estado, lo que significa que el servidor no tiene memoria de la operación del cliente. Cada nueva solicitud HTTP coincide con una nueva unidad de trabajo, o para decirlo de manera más simple, el servidor sirve páginas al cliente sin recordar las solicitudes anteriores del cliente.

Sin embargo, cuando navegamos por la web, nos damos cuenta de que, idealmente, las aplicaciones saben quién es el cliente (¡incluso demasiado bien!). Gracias a esta “memoria” del servidor, “es posible crear áreas reservadas modernas de sitios web, bancos en línea, servicios de correo web, etc.

Para ello, nació un apéndice que hace que un protocolo sin estado como HTTP sea con estado: las cookies.

Sesiones con estado

Una vez iniciada la sesión, las aplicaciones web que utilizan la sesión con estado colocan una cookie de sesión. Significa que confían en esta cookie para rastrear al cliente. Dentro de la cookie se guarda un código único que permite el reconocimiento del cliente, por ejemplo:

ID DE SESIÓN=ACF3D35F216AAEFC

Cualquier persona con la identificación o el código de sesión único mencionado anteriormente sería el cliente autenticado para el servidor. Si un atacante pudiera obtener este identificador, como se ve en la imagen a continuación, podría explotar la sesión validada inicialmente para su víctima, ya sea rastreando una sesión legítima o incluso tomando el control de la sesión por completo. Este identificador suele estar incrustado en la URL, en el campo oculto de cualquier formulario o en las cookies.

OSWAP

Sesiones sin estado

Con la evolución de la web han surgido soluciones para gestionar la “memoria” del servidor sin utilizar cookies de sesión. En una aplicación web donde el frontend y el backend están bien separados y se comunican solo a través de la API, la mejor solución podría ser un JWT (JSON Web Token), un token firmado que permite que el frontend consuma las API proporcionadas por el backend.

Por lo general, el JWT se guarda en el almacenamiento de sesión del navegador, un área de memoria que el cliente mantiene activa hasta que se cierra la pestaña. En consecuencia, abrir una nueva pestaña crea una nueva sesión (a diferencia de lo que sucede con las cookies).

Robar el token de identificación del cliente le permite robar la sesión del usuario y, por lo tanto, llevar a cabo un ataque de secuestro de sesión. Pero, ¿cómo robar ese token?

Actualmente, los métodos más utilizados por los hackers son:

#1. Toma lateral de sesión

Este método utiliza redes inseguras para averiguar su ID de sesión. El atacante usa sniffing (software especial) y generalmente se dirige a Wi-Fi públicos o sitios web sin un certificado SSL, que son conocidos por su poca seguridad.

#2. Fijación de sesión

La víctima usa la ID de sesión creada por el atacante. Puede hacer esto con un ataque de phishing (a través de un enlace malicioso) que «arregla» su ID de sesión.

#3. Fuerza bruta

El método más lento e ineficiente. Durante este ataque, el hacker no roba sus cookies. En su lugar, intenta todas las combinaciones posibles para adivinar su ID de sesión.

#4. XSS o Cross-site Scripting

Un hacker explota vulnerabilidades en sitios web o aplicaciones para inyectar código malicioso. Cuando un usuario visita el sitio, el script se activa, roba las cookies del usuario y las envía al atacante.

#5. Inyección de malware

El software malicioso puede realizar acciones no autorizadas en su dispositivo para robar información personal. También se usa a menudo para interceptar cookies y enviar información a un atacante.

#6. Suplantación de IP

Un ciberdelincuente cambia la dirección IP de origen de su paquete para que parezca que proviene de usted. Debido a la IP falsa, el servidor web cree que eres tú y la sesión es secuestrada.

¿Cómo prevenir el secuestro de sesión?

La posibilidad de secuestro de sesión generalmente se reduce a la seguridad de los sitios web o aplicaciones que utiliza. Sin embargo, hay pasos que puede tomar para protegerse:

  • Evite las redes Wi-Fi públicas, ya que los puntos de acceso gratuitos son ideales para los ciberdelincuentes. Por lo general, tienen poca seguridad y los piratas informáticos pueden falsificarlos fácilmente. Sin mencionar que siempre están llenos de víctimas potenciales cuyo tráfico de datos se ve constantemente comprometido.
  • Cualquier sitio que no use un certificado SSL lo hace vulnerable, ya que no puede encriptar el tráfico. Compruebe si el sitio es seguro buscando un pequeño candado junto a la URL.

  • Instale una aplicación antimalware para detectar y proteger su dispositivo contra malware y ratas que pueden robar información personal.
  • Evite descargar malware utilizando tiendas de aplicaciones o sitios web oficiales para descargar aplicaciones.
  • Si recibe un mensaje que le pide que haga clic en un enlace desconocido, no lo haga. Este podría ser un ataque de phishing que puede infectar su dispositivo y robar información personal.

El usuario puede hacer poco contra un ataque de Secuestro de Sesión. Sin embargo, por el contrario, la aplicación puede notar que un dispositivo diferente se ha conectado con el mismo identificador de sesión. Y con base en eso, puede diseñar estrategias de mitigación como:

  • Asociar a cada sesión alguna huella técnica o características del dispositivo conectado para detectar cambios en los parámetros registrados. Esta información debe guardarse en la cookie (para sesiones con estado) o en el JWT (para sesiones sin estado), absolutamente cifrada.
  • Si la sesión está basada en cookies, suelte la cookie con el atributo HTTPOnly para que sea inaccesible en caso de un ataque XSS.
  • Configure un sistema de detección de intrusiones (IDS), un sistema de prevención de intrusiones (IPS) o una solución de monitoreo de redes.
  • Algunos servicios realizan comprobaciones secundarias de la identidad del usuario. Por ejemplo, un servidor web podría verificar con cada solicitud que la dirección IP del usuario coincida con la última utilizada durante esa sesión. Sin embargo, esto no previene los ataques de alguien que comparte la misma dirección IP y podría ser frustrante para los usuarios cuya dirección IP puede cambiar durante una sesión de navegación.
  • Alternativamente, algunos servicios cambiarán el valor de la cookie con todas y cada una de las solicitudes. Esto reduce drásticamente la ventana en la que un atacante puede operar y facilita la identificación si se ha producido un ataque pero puede causar otros problemas técnicos.
  • Utilice diferentes soluciones de autenticación multifactor (MFA) para cada sesión de usuario.
  • Mantenga todos los sistemas actualizados con los últimos parches y actualizaciones de seguridad.

Preguntas más frecuentes

¿En qué se diferencia el secuestro de sesión de la suplantación de identidad de sesión?

El secuestro de sesión implica hacerse pasar por el usuario, mientras que la suplantación de identidad implica reemplazar al usuario. En los últimos años, algunos analistas de seguridad han comenzado a caracterizar este último como un tipo de secuestro de sesión.

Ultimas palabras

La frecuencia de los ataques de secuestro de sesiones ha aumentado en los últimos años; por lo tanto, se ha vuelto cada vez más importante comprender tales ataques y seguir las medidas preventivas. Sin embargo, así como la tecnología se desarrolla, los ataques también se vuelven más sofisticados; por lo tanto, es esencial crear estrategias activas de mitigación contra el secuestro de sesiones.

También te puede interesar saber cuánto valen tus datos en la dark web.