Tema 12
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.
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.
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.
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.
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 |
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:
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.
En todos los casos, el objetivo es obtener material suficiente para reutilizar la identidad de la víctima.
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.
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:
Estos mecanismos son importantes, pero no alcanzan si el endpoint o el navegador ya están comprometidos por malware o extensiones maliciosas.
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 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:
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:
El robo de sesión no siempre deja rastros obvios, pero hay indicadores que justifican investigación:
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.
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.