Tema 12

12. Cookies, sesiones, almacenamiento web y protección frente a robo de sesión

La navegación moderna depende de mecanismos que recuerdan quién es el usuario y qué acceso tiene. Cookies, tokens, almacenamiento web y sesiones persistentes hacen posible una experiencia fluida, pero también crean activos de altísimo valor para el atacante si no se protegen adecuadamente.

Objetivo Entender cómo se mantiene la sesión del usuario en la web
Enfoque Persistencia de acceso, riesgos y controles
Resultado Comprender mejor el robo y abuso de sesiones

12.1 Introducción

En los temas anteriores vimos cómo el navegador se convierte en un punto central de exposición y cómo la web puede utilizarse para acercar contenido riesgoso al usuario. Ahora corresponde profundizar en uno de los activos más sensibles de ese entorno: la sesión autenticada.

La mayoría de las aplicaciones web modernas necesita recordar al usuario entre solicitudes. Para eso utiliza cookies, tokens y distintos mecanismos de almacenamiento local. Gracias a ellos, trabajar en SaaS, portales internos o correo web resulta cómodo. Pero esa misma comodidad introduce un riesgo importante: si alguien roba o abusa de esos artefactos, puede operar como el usuario sin conocer necesariamente su contraseña.

Por eso este tema estudia cómo funcionan cookies, sesiones y almacenamiento web, qué riesgos presentan y qué medidas ayudan a protegerlos.

12.2 Qué es una sesión web

Una sesión web es el mecanismo mediante el cual una aplicación recuerda que un usuario ya fue autenticado y le asocia un contexto de acceso durante un período determinado. Sin sesiones, el usuario debería autenticarse en cada acción relevante, lo que haría casi imposible la experiencia web moderna.

Desde el punto de vista defensivo, una sesión es una forma de confianza vigente. Si esa confianza se materializa en un token, una cookie o un identificador reutilizable, entonces ese artefacto se vuelve un objetivo de alto valor.

Robar una contraseña es valioso. Robar una sesión activa puede ser incluso más rentable, porque le ahorra al atacante la fase de autenticación y, a veces, también los controles MFA.

12.3 Cookies: función y relevancia de seguridad

Las cookies son pequeños datos que un sitio almacena en el navegador para mantener estado entre solicitudes. Pueden servir para recordar preferencias, sostener autenticación, identificar dispositivos o conservar información de navegación.

En seguridad interesan especialmente las cookies ligadas a la sesión del usuario, porque pueden actuar como llave de acceso a la aplicación si son reutilizables por un atacante.

No todas las cookies tienen el mismo impacto. Algunas solo guardan configuración visual o idioma. Otras, en cambio, representan autenticación activa y permiten operar directamente sobre servicios sensibles.

12.4 Tipos de almacenamiento web

Además de cookies, las aplicaciones web modernas usan otros mecanismos para guardar información en el navegador. Cada uno tiene implicancias distintas para seguridad, persistencia y exposición.

Mecanismo Qué suele almacenar Riesgo principal
Cookies Identificadores de sesión, preferencias, estado Robo o reutilización de sesión
Local storage Datos persistentes de la aplicación, tokens, configuraciones Exposición prolongada de información sensible
Session storage Datos temporales vinculados a la pestaña o sesión Abuso dentro del contexto activo
IndexedDB Datos estructurados más complejos y voluminosos Persistencia local de información valiosa
Caché del navegador Recursos, contenido y respuestas reutilizables Rastros residuales y exposición de actividad

12.5 Qué hace atractivo el robo de sesión

El robo de sesión es atractivo para un atacante porque convierte el trabajo del usuario en acceso ya preparado. Si la víctima tiene abierta una aplicación crítica, el atacante puede intentar secuestrar esa identidad operativa sin enfrentar todos los pasos del login tradicional.

Esto puede permitir:

  • Ingresar a aplicaciones sin conocer la contraseña.
  • Evitar o reutilizar un contexto ya validado por MFA.
  • Operar con permisos del usuario comprometido.
  • Persistir mientras la sesión siga siendo válida o mal revocada.

12.6 Cómo puede producirse el robo de sesión

Existen distintas formas de llegar a una sesión ajena. Algunas requieren malware o acceso al endpoint. Otras se apoyan en debilidades de la aplicación, del navegador o del flujo de autenticación.

  • Malware o infostealers que extraen cookies, tokens o artefactos del navegador.
  • Phishing avanzado que busca capturar contexto autenticado.
  • Extensiones maliciosas con acceso al contenido y almacenamiento del navegador.
  • Exposición de datos de sesión por mala implementación de la aplicación.
  • Equipos compartidos o sesiones abiertas sin cierre adecuado.

En todos los casos, el objetivo es obtener material suficiente para reutilizar la identidad de la víctima.

12.7 Persistencia de sesión y equilibrio entre comodidad y seguridad

Las aplicaciones buscan ofrecer continuidad: no pedir login constantemente, recordar dispositivos y sostener sesiones durante períodos largos. Eso mejora experiencia del usuario, pero también aumenta la ventana en la que una sesión comprometida puede ser abusada.

El equilibrio es delicado. Sesiones demasiado breves pueden generar fricción excesiva. Sesiones demasiado largas o poco revocables crean exposición innecesaria. El diseño seguro intenta ajustar duración, renovación y controles contextuales según criticidad del servicio.

12.8 Atributos de seguridad en cookies

Las cookies asociadas a autenticación pueden reforzarse con ciertos atributos que reducen su exposición o uso indebido en algunos escenarios. No resuelven todo, pero ayudan a limitar superficie de abuso.

Entre los atributos más importantes se encuentran:

  • Secure: indica que la cookie debe enviarse solo sobre conexiones seguras.
  • HttpOnly: dificulta acceso desde scripts del lado del cliente.
  • SameSite: ayuda a controlar cuándo la cookie se envía en contextos cruzados.

Estos mecanismos son importantes, pero no alcanzan si el endpoint o el navegador ya están comprometidos por malware o extensiones maliciosas.

12.9 Local storage y otros mecanismos persistentes

Muchas aplicaciones web almacenan información sensible fuera de cookies tradicionales. El local storage, por ejemplo, puede contener tokens, configuración persistente, información de estado y datos que sobreviven al cierre del navegador.

Esto tiene implicancias importantes:

  • La información puede permanecer más tiempo disponible en el equipo.
  • Su protección depende fuertemente del navegador y del endpoint.
  • Un compromiso local puede revelar material útil para acceso futuro.
Desde la perspectiva del atacante, no importa demasiado si el acceso está representado por cookie, token o almacenamiento local. Lo importante es si ese material puede reutilizarse para operar como la víctima.

12.10 Riesgos en equipos compartidos o desatendidos

La seguridad de sesiones no depende solo de la aplicación. También depende del contexto físico y operativo del dispositivo. Un equipo compartido, desatendido o mal bloqueado expone directamente sesiones abiertas y datos guardados por el navegador.

Los riesgos más comunes en estos escenarios son:

  • Uso indebido de pestañas ya autenticadas.
  • Acceso a correos, portales o aplicaciones SaaS sin reautenticación.
  • Exportación de datos desde sesiones aún vigentes.
  • Instalación de extensiones o cambios de navegador por un tercero.

12.11 Revocación de sesiones y cierre efectivo

Un aspecto clave de la seguridad es la capacidad de invalidar sesiones cuando hay sospecha de compromiso, cambio de credenciales, baja de usuario o cierre desde otro dispositivo. Si la revocación es lenta, parcial o inexistente, el atacante puede seguir operando incluso después de que la víctima crea haberse protegido.

Esto vuelve importante que las aplicaciones puedan:

  • Cerrar sesiones activas de forma remota.
  • Revocar tokens comprometidos.
  • Exigir reautenticación ante eventos sensibles.
  • Asociar alertas de identidad con decisiones de invalidación.

12.12 Señales que pueden indicar abuso de sesión

El robo de sesión no siempre deja rastros obvios, pero hay indicadores que justifican investigación:

  • Accesos simultáneos o inusuales desde ubicaciones incompatibles.
  • Actividades realizadas desde una sesión que el usuario no reconoce.
  • Cambios de configuración, reglas o descargas inesperadas.
  • Reaparición de acceso después de cambio de contraseña.
  • Alertas del endpoint vinculadas a robo de cookies o extracción del navegador.

12.13 Buenas prácticas para proteger sesiones y almacenamiento

  • Reducir persistencia innecesaria de sesiones en servicios críticos.
  • Aplicar políticas de cierre, renovación y revocación coherentes con el riesgo.
  • Proteger el endpoint contra malware y robo de secretos del navegador.
  • Usar MFA y controles contextuales para eventos sensibles.
  • Evitar que el navegador almacene más información sensible de la necesaria.
  • Revisar periódicamente sesiones activas, dispositivos confiables y permisos.
  • Bloquear el equipo siempre que quede desatendido.

12.14 Errores frecuentes en la protección de sesiones

  • Suponer que cambiar la contraseña siempre invalida todas las sesiones existentes.
  • Permitir sesiones demasiado largas en servicios de alto valor.
  • Guardar tokens o secretos de acceso en almacenamiento local sin criterio suficiente.
  • No diferenciar entre equipos personales, compartidos y corporativos.
  • No monitorear actividad anómala asociada a sesiones persistentes.
  • Depender solo de MFA inicial sin pensar en protección posterior del contexto autenticado.
La autenticación fuerte no termina el problema. Si la sesión que genera queda mal protegida, el atacante puede saltarse la fase más difícil y aprovechar el acceso ya concedido.

12.15 Qué aprenderemos en el próximo tema

El siguiente paso será estudiar extensiones, complementos y plugins del navegador. Tiene sentido hacerlo después de sesiones y almacenamiento web porque una extensión con permisos excesivos puede convertirse en un mecanismo muy eficaz para leer contenido, interceptar datos o abusar del contexto autenticado del usuario.

12.16 Qué debes recordar de este tema

  • La sesión web es un activo crítico porque representa confianza vigente sobre el usuario.
  • Cookies, tokens y almacenamiento web sostienen experiencia y acceso, pero también exposición.
  • El robo de sesión puede permitir operar como la víctima sin conocer su contraseña.
  • La persistencia de sesión debe equilibrar usabilidad con capacidad de revocación y control.
  • Proteger sesiones exige cuidar tanto la aplicación como el navegador, el endpoint y el contexto de uso.

12.17 Conclusión

Las sesiones y los mecanismos de almacenamiento web son indispensables para la operación moderna, pero también representan una de las formas más valiosas de acceso para un atacante. Su protección no depende solo de buenas credenciales, sino de cómo el navegador, la aplicación y el endpoint sostienen y resguardan ese contexto autenticado.

En el próximo tema nos enfocaremos en extensiones, complementos y plugins para entender cómo el código adicional dentro del navegador puede ampliar o debilitar este modelo de seguridad.