Investigación

Galletas digitales saludables: para qué sirven los archivos cookie, qué peligros ocultan y cuál es su relación con el “session hijacking”

Cuando un usuario abre un sitio web, muy a menudo se le ofrece aceptar, rechazar o configurar archivos cookie, o al menos se le advierte sobre su uso. Para entender mejor esta práctica, revisamos 647 sitios web seleccionados al azar: en 563 de ellos se mostraban alertas sobre cookies. Sin embargo, los usuarios no se suelen detener a pensar qué hay detrás de una notificación de este tipo.

La práctica de advertir sobre el uso de cookies surgió gracias a normativas como el Reglamento General de Protección de Datos (RGPD), que regulan la recopilación de información de los usuarios y protegen sus datos personales. Al configurar los archivos cookie, el usuario puede reducir al mínimo la cantidad de información que se recopila sobre sus actividades en internet. Por ejemplo, puede evitar que se recopilen y almacenen cookies de terceros, que a menudo se utilizan con fines de marketing y análisis y no afectan el funcionamiento del sitio. En este artículo, explicaremos qué son los archivos cookie, qué tipos existen, cómo funcionan y por qué es necesario advertir sobre su presencia. También hablaremos sobre las cookies confidenciales con el identificador Session ID, los tipos de ataques que pueden sufrir y las formas de protección para los desarrolladores de sitios web y usuarios.

Qué son las cookies del navegador

Los archivos cookie son archivos de texto con fragmentos de datos que el servidor web envía al navegador cuando se visita un sitio. El navegador guarda estos datos en el dispositivo del usuario y los envía de vuelta al servidor en cada visita posterior a este sitio. Esto permite identificar al usuario y optimizar su interacción con el sitio web.

Analicemos con más detalle qué datos pueden incluirse en los archivos cookie.

Lo principal es recopilar información sobre las acciones del usuario en el sitio y los parámetros de la sesión: clics, páginas visitadas, duración de la sesión, idioma, región, productos guardados en el carrito, ajustes del perfil (por ejemplo, el tema visual), etc. También se incluyen datos sobre el dispositivo del usuario: modelo, sistema operativo, tipo de navegador.

Para identificar al usuario y facilitar la autenticación, se recopilan datos como tokens de seguridad, login y contraseña. Aunque no se recomienda almacenar esta información en cookies, en algunos casos se lo puede hacer, por ejemplo, si se activa la opción “Recordarme”. Los tokens de seguridad se vuelven vulnerables cuando se almacenan en cookies accesibles por scripts de JS.

Otro tipo de información importante que se almacena en los archivos cookie y es muy peligrosa en manos de los delincuentes, es el identificador de sesión (Session ID), un código único que se le asigna al usuario cuando ingresa a un sitio. Este identificador es el objetivo principal de los ataques denominados “session hijacking” porque permite al atacante suplantar al usuario. A continuación, analizaremos con más detalle este tipo de ataques. Valga recalcar que Session ID puede tanto almacenarse en cookies como escribirse directo en la URL de la página si el usuario ha desactivado las cookies.

Ejemplo de Session ID en las cookies dentro del panel de desarrollador del navegador (Firefox)

Ejemplo de Session ID en las cookies dentro del panel de desarrollador del navegador (Firefox)

Ejemplo de Session ID en la dirección URL: example.org/?account.php?osCsid=dawnodpasb<...>abdisoa.

Además, en los archivos cookie también se pueden almacenar datos personales “clásicos”, como el número de teléfono, la dirección, los datos de la tarjeta bancaria, etc. Es más, entre los datos que el usuario introduce en el sitio también puede haber información corporativa que constituye un secreto comercial, como datos confidenciales sobre clientes, proyectos y documentos internos, que se almacenaron en cookies sin la debida precaución.

Muchos de estos datos pueden considerarse confidenciales, es decir, son información cuya divulgación a terceros puede causar daño al usuario o a la organización. Los datos del dispositivo y las acciones del usuario en el sitio no son confidenciales, pero describen al usuario con mucho detalle y pueden usarse en ataques phishing o chantajes.

Según su tiempo de almacenamiento, las cookies pueden dividirse en temporales y permanentes.

Las cookies temporales (de sesión) se utilizan durante la visita al sitio y se eliminan al cerrarlo. Son necesarias, por ejemplo, para que el usuario no tenga que ingresar sus credenciales cada vez que navega entre las páginas de un mismo sitio, o para que no tenga que volver a configurar las preferencias de idioma o región. En el transcurso de una sesión, estos valores se guardarán en un archivo cookie, que asegura el acceso ininterrumpido al área personal y el funcionamiento correcto de las funciones del sitio para los usuarios registrados. Además, los archivos cookie temporales incluyen, por ejemplo, registros en formularios de pedidos y datos sobre las páginas visitadas (esta información también puede almacenarse en cookies permanentes si el usuario marca la opción “Recordar mi elección” o “Guardar ajustes”). Cabe señalar que las cookies temporales no se eliminan si el navegador tiene activada la opción de guardar automáticamente la sesión del usuario. En este caso, se restauran las pestañas que se abrieron en sesiones anteriores, ya que el sistema considerará todas las visitas al sitio como una misma sesión.

Las cookies persistentes, a diferencia de las temporales, se mantienen incluso después de que el usuario ha salido del sitio web. El propietario del sitio establece su duración (que suele ser de alrededor de un año), pero pueden ser eliminadas en cualquier momento si el usuario decide borrar las cookies en la configuración del navegador. En las cookies persistentes se almacenan logins, contraseñas, números telefónicos, direcciones y datos de pago. Estos archivos también se utilizan con fines publicitarios para determinar las preferencias del usuario. En aquellos que contienen información confidencial se asigna el atributo HttpOnly, lo que impide que el navegador acceda al contenido de los archivos: al abrir el sitio, se envían directamente al servidor web.

Es importante notar que, dependiendo de las acciones del usuario en el sitio, las credenciales pueden almacenarse tanto en cookies temporales como permanentes. Por ejemplo, durante la navegación en una sesión, el login y la contraseña se guardan en cookies temporales, y si el usuario selecciona “Recordarme”, en cookies permanentes.

Por su origen, los archivos cookie se dividen en “propios” (first-party) y “de terceros” (third-party). Los primeros son generados por el propio sitio, los segundos por recursos externos. Consideremos estos tipos con más detalle.

El sitio web que se está visitando suele utilizar las cookies propias para garantizar su funcionamiento e identificar al usuario. Sin embargo, también pueden desempeñar una función analítica o de marketing. Como regla general, en tal caso se considerarán opcionales (sobre esta clasificación hablaremos más adelante), a menos que el propietario del sitio quiera rastrear el comportamiento del usuario durante una sesión en particular.

Las cookies de terceros son archivos utilizados por otros sitios, a los que accede el sitio original. Se suelen utilizar para mostrar banners publicitarios, porque así la empresa que colocó el banner puede rastrear el comportamiento del usuario (por ejemplo, la cantidad de clics). Además, este tipo de archivos cookie son utilizados por servicios analíticos (como Google Analytics o Yandex Métrica).

En esta misma categoría incluimos las cookies de redes sociales, que son instaladas por los widgets y botones (por ejemplo, “Compartir” o “Me gusta”). Estos archivos cookie son responsables de todas las interacciones con las plataformas de redes sociales, por lo que pueden almacenar las credenciales y ajustes del usuario correspondientes para acelerar la interacción.

Los archivos cookie también pueden ser obligatorios u opcionales.

Las cookies obligatorias son necesarias para garantizar el funcionamiento básico del sitio o para proporcionar un servicio que el usuario haya solicitado de forma explícita. Entre ellas se encuentran las cookies temporales, que registran el comportamiento del usuario durante una sesión. Estas cookies también pueden estar relacionadas con la seguridad, al ser cookies que identifican al usuario durante la visita y pueden rastrear acciones fraudulentas. Cabe destacar que los archivos cookie que almacenan el consentimiento del usuario para guardar cookies también pueden considerarse obligatorios si así lo decide el propietario del sitio, ya que son necesarios para se cumpla con los parámetros de privacidad establecidos por el usuario.

El uso de archivos cookie resulta imprescindible para los sitios web que tienen una estructura compleja y diversos widgets. Entre ellos están los sitios de comercio electrónico (para el funcionamiento del carrito de compras y el procesamiento de pagos), aplicaciones para tomar fotografías (para guardar las imágenes obtenidas en el dispositivo del usuario), etc.

Es importante destacar que los datos almacenados en las cookies obligatorias incluyen el parámetro crítico mencionado: el Session ID, responsable de que el sitio identifique al usuario. Si el usuario se niega a almacenar el identificador de sesión en las cookies, los sitios lo colocan en la URL de la página. Esta es una práctica más peligrosa, ya que la URL no está sujeta a cifrado y también es visible para los servicios analíticos y estadísticos, e incluso para usuarios que se encuentran en la misma subred que el visitante del sitio, lo que la hace vulnerable a ataques de tipo cross-site scripting (XSS). Por esta razón, al configurar el uso de cookies, por motivos de seguridad se suele prohibir que el usuario desactive las cookies obligatorias.

Ejemplo de cookies obligatorias del sitio Osano CMP

Ejemplo de cookies obligatorias del sitio Osano CMP

Las cookies opcionales se usan para que servicios de terceros sigan el comportamiento del usuario con fines de marketing y estadísticas. Entre ellas se incluyen las cookies de terceros, como las que generan las redes sociales, así como las cookies que optimizan la velocidad del sitio y distribuyen la carga entre servidores (cookies de rendimiento). Por ejemplo, estas cookies rastrean los enlaces que no funcionan, lo que permite mejorar el funcionamiento del sitio web.

En general, la mayoría de las cookies opcionales son cookies de terceros que no son cruciales para el funcionamiento del sitio. Sin embargo, también pueden incluirse en esta categoría algunas cookies propias, como las cookies estadísticas o las que recopilan información sobre las preferencias del usuario para después mostrar contenido personalizado.

Por lo general, los datos personales del usuario no se almacenan sin cifrar en las cookies opcionales. No obstante, las herramientas de análisis pueden usar la información que tienen a su disposición para crear un perfil con datos suficientes para identificar a una persona. Por ejemplo, al analizar la información sobre los sitios web que visita un usuario, se puede determinar con mayor o menor grado de certeza su edad, estado de salud, lugar de residencia, etc.

También cabe destacar que las cookies opcionales pueden contener datos de autocompletado de formularios con información valiosa (nombre, dirección de residencia, datos de tarjetas bancarias, etc.). Por eso, muchos sitios web ofrecen al usuario la posibilidad de decidir si acepta o rechaza que se recopile esta información.

Tipos especiales de cookies

Destacaremos también subtipos especiales de archivos cookie, que se procesan mediante dos tecnologías similares que permiten almacenarlos y recuperarlos de manera no convencional.

Supercookie es una tecnología de seguimiento que permite insertar archivos cookie en los encabezados de los sitios y almacenarlos en ubicaciones no estándar (por ejemplo, en almacenes locales de HTML5, almacenes de complementos del navegador o la caché del navegador). Este método de almacenamiento implica que la función de limpieza de los ajustes del navegador no elimina las cookies. La tecnología de supercookies se utiliza para personalizar la publicidad y recopilar datos analíticos sobre el usuario, por ejemplo, por parte de proveedores de internet. Desde la perspectiva de la privacidad, la tecnología de supercookies puede ser cuestionable, ya que es un mecanismo de seguimiento permanente y difícil de gestionar, que no cuenta con el consentimiento del usuario ni le ofrece la opción de desactivarlo.

Otro mecanismo no estándar de seguimiento de cookies es Evercookie (un caso particular de zombie-cookie). Los archivos guardados con esta tecnología se pueden recuperar con JavaScript incluso después de su eliminación. Para recuperarlos se utiliza un identificador único de usuario (si está disponible) y las huellas de las cookies en todos los posibles almacenamientos del navegador.

Cómo se regula el uso de cookies

Muchas leyes regulan la recopilación y gestión de cookies. Consideremos las principales normas de la práctica mundial.

  1. Reglamento General de Protección de Datos (RGPD) y Directiva de ePrivacy (Cookie Law) en la Unión Europea.
    De acuerdo con la legislación europea, las cookies obligatorias no requieren el consentimiento del usuario. Esto ha servido como “laguna legal” a los propietarios de sitios web: es común que detrás del botón “Rechazar todas” solo se bloqueen las cookies no esenciales.
  2. Lei Geral de Proteção de Dados Pessoais (LGPD) en Brasil.
    La ley que regula la recopilación, el procesamiento y el almacenamiento de datos de los usuarios en el territorio de Brasil está en gran medida inspirada en los principios del GDPR y, de manera similar a este último, exige el consentimiento libre, inequívoco y claro del usuario para el uso de sus datos personales. Además, la LGPD considera como datos personales un espectro más amplio de información: por ejemplo, incluye también datos biométricos y genéticos. Cabe destacar que el cumplimiento del GDPR no implica automáticamente el cumplimiento de la LGPD, y viceversa.
  3. Ley de Privacidad del Consumidor de California (CCPA) en el estado de California.
    La Ley de Privacidad del Consumidor de California clasifica las cookies como información personal, por lo que se debe cumplir con una serie de requisitos para su recopilación y almacenamiento. Por ejemplo, cualquier residente del estado tiene el derecho de prohibir el uso cruzado de cookies para impedir la venta de sus datos personales. Los proveedores de servicios están obligados a ofrecer a los usuarios la posibilidad de elegir y configurar los datos recopilados.
  4. Reglamento de Privacidad y Comunicaciones Electrónicas (PECR, Directiva CE) en el Reino Unido: análogo a la Cookie Law.
    De acuerdo con PECR, los servicios web de información pública y las aplicaciones pueden almacenar información en el dispositivo del usuario solo en dos casos: si son imprescindibles para el funcionamiento del sitio (provisión del servicio) o si el usuario ha dado su consentimiento para ello.
  5. Ley №152-FZ “De los datos personales” en la Federación de Rusia.
    De acuerdo con la Ley Federal №152, se considera “dato personal” cualquier información que se refiera de forma directa o indirecta a una persona física. Por lo tanto, los archivos cookie también pueden considerarse datos personales y estar regulados por esta ley. Como consecuencia, deben cumplir el requisito de obtener del usuario un consentimiento explícito para el procesamiento de datos.

En Rusia, el propietario de un sitio web está obligado a notificar al usuario sobre el procesamiento de cookies técnicas, pero no requiere su consentimiento para recopilar esta información. Para almacenar otros tipos de cookies, se requiere el consentimiento del usuario. A menudo, el usuario da este consentimiento de forma automática en su primera visita al sitio: esto se indica en la advertencia sobre el uso de cookies por defecto.

En otros casos, los sitios solicitan el consentimiento mediante un banner o una ventana emergente, y a veces el usuario puede especificar qué archivos cookie está dispuesto a almacenar en el dispositivo.

Además de las normas legislativas, los propietarios de los sitios también regulan el uso de cookies propias de manera independiente. Asimismo, las cookies de terceros son gestionadas por los propietarios de los respectivos recursos de terceros (por ejemplo, Google Analytics). Y son ellos quienes deciden qué información se almacena en las cookies y en qué forma. Además, los propietarios de los sitios web determinan la duración de vida de las cookies y sus parámetros de seguridad. Para entender por qué esto es importante, analicemos los tipos de ataques que afectan uno de los archivos cookie más críticos: los que contienen Session ID.

Métodos de robo de Session ID

Como mencionamos antes, los archivos cookie que contienen Session ID son muy sensibles. Son los que más interesan a los delincuentes. En ataques reales, se han registrado diferentes métodos de robo de Session ID, conocidos en general como “secuestro de sesión” (session hijacking). A continuación, veremos algunos tipos de intercepción de sesión.

Session sniffing

Una forma de robar archivos de cookie con Session ID es interceptar la sesión mediante la escucha del tráfico de internet (session sniffing) entre el usuario y el sitio. Esta amenaza es relevante para los sitios que, en lugar del protocolo HTTPS que admite el cifrado del tráfico, transmiten datos a través del protocolo HTTP abierto. De esta manera, las cookies se transmiten sin cifrado en los encabezados de las solicitudes HTTP, lo que las hace vulnerables a la intercepción.

Los ataques más comunes dirigidos al tráfico HTTP sin cifrado ocurren en redes Wi-Fi públicas, sobre todo si no están protegidas con contraseña y con el protocolo de seguridad WPA2 o WPA3. Este es una tecnología de protección de tráfico en redes Wi-Fi con soporte de cifrado AES; actualmente, la versión más segura es WPA3. El uso de la protección WPA2/WPA3 limita la posibilidad de interceptar el tráfico HTTP, sin embargo, solo la implementación del protocolo HTTPS puede proteger contra el sniffing de sesiones.

Hoy en día, este método de robo de cookies con Session ID no es muy común, ya que la mayoría de los sitios web emplean cifrado HTTPS. Sin embargo, fue justo la popularidad de este tipo de ataques lo que impulsó la transición masiva a HTTPS en todas las conexiones dentro de la sesión de usuario (el concepto HTTPS Everywhere).

Cross-site scripting (XSS)

El cross-site scripting (XSS) explota vulnerabilidades en el código del sitio web para inyectar en sus páginas un script malicioso, a menudo JavaScript, que se activa cuando la víctima entra al sitio. El ataque ocurre así: el delincuente encuentra una vulnerabilidad en el código fuente del sitio web que permite inyectar un script malicioso. Este puede tratarse, por ejemplo, de un parámetro de URL o un comentario en la página. Cuando el usuario abre la página infectada, el script se ejecuta en su navegador y obtiene acceso a los datos del sitio, incluyendo las cookies con Session ID.

Session fixation

Durante un ataque de tipo fijación de sesión (session fixation), el atacante obliga al navegador de la víctima a utilizar un identificador de sesión (Session ID) previamente determinado. De esta manera, el delincuente prepara el terreno para interceptar los datos de la sesión después de que la víctima acceda al sitio y realice la autenticación.

El ataque ocurre de la siguiente manera: el atacante entra al sitio objetivo y obtiene del servidor un identificador válido de una nueva sesión, en la cual aún no se ha realizado la autenticación del usuario. Después, el atacante obliga al navegador de la víctima a usar este Session ID. Puede, por ejemplo, enviar al usuario un enlace donde el identificador ya esté especificado en la dirección URL (http://example.com/?SESSIONID=ATTACKER_ID). Cuando la víctima hace clic en dicho enlace e ingresa a su cuenta en el sitio, el servidor web vincula el Session ID controlado por el atacante con la sesión autenticada. A continuación, el delincuente puede utilizar el Session ID comprometido para acceder a la cuenta de la víctima.

En las aplicaciones web modernas y bien configuradas, la probabilidad de un ataque de fijación de sesión es mucho menor que la de ataques del tipo XSS. Esto se debe a que, para la mayoría de los marcos web modernos, cambiar el Session ID después de la autenticación del usuario es una práctica estándar. Sin embargo, la posibilidad de explotar el Session ID de la manera descrita subraya la importancia crítica de la gestión segura del ciclo de vida de la sesión, sobre todo en el momento de la autenticación del usuario.

Cross-site request forgery (CSRF)

A diferencia de los ataques que buscan escuchar o capturar la sesión del usuario, la falsificación de solicitudes entre sitios (cross-site request forgery, CSRF/XSRF) se basa en la confianza del sitio en el navegador del usuario. El atacante obliga al navegador de un usuario autenticado a realizar, sin autorización del usuario, una acción no deseada en el sitio, como cambiar la contraseña o eliminar datos.

Para llevar a cabo un ataque de este tipo, el atacante crea una página web maliciosa o un correo con un enlace, código HTML o script malicioso que contiene una solicitud al sitio vulnerable. Cuando la víctima abre una página o un correo, el navegador envía la solicitud especificada en el código de forma automática al sitio objetivo. Esta solicitud contiene una acción maliciosa, así como todas las cookies obligatorias (por ejemplo, las temporales) relacionadas con este sitio. Basándose en las cookies válidas recibidas, el sitio determina la solicitud como legítima y la ejecuta.

Casos particulares de man-in-the-middle (MitM)

Durante un ataque de tipo “hombre en el medio” (man-in-the-middle, MitM), los atacantes no solo interceptan, sino que también redirigen todo el tráfico de la víctima a través de sus propios recursos, obteniendo la capacidad de leer y modificar la información transmitida. Los ataques de este tipo son, por ejemplo, la suplantación de DNS o la creación de puntos de acceso falsos. De este modo, MitM es un método de intercepción de datos (incluyendo las cookies con Session ID) en el que los atacantes median la comunicación entre el usuario y el sitio web.

Los sitios que utilizan el protocolo HTTP son los más vulnerables a los ataques MitM. Sin embargo, los métodos man-in-the-middle también representan un peligro para las conexiones HTTPS. Un atacante puede, por ejemplo, presentar al navegador del usuario un certificado SSL/TLS falso. Los navegadores muestran advertencias sobre certificados sospechosos o inválidos pero, si se las ignora, el atacante podría descifrar el tráfico. Los atacantes también pueden reducir la seguridad del tráfico forzando una conexión HTTP en lugar de HTTPS (SSL stripping).

Session ID predecibles

Los delincuentes no siempre roban el Session ID; también pueden adivinarlo. En particular, el identificador puede calcular si se genera siguiendo un patrón predecible sin usar símbolos criptográficos. Por ejemplo, puede que el Session ID contenga la dirección IP del usuario o números secuenciales, y también utilice un algoritmo deficiente para generarlos, con secuencias aleatorias fácilmente predecibles.

Para llevar a cabo este tipo de ataques, los delincuentes recopilan una cantidad suficiente de muestras de Session ID, las analizan e intentan determinar el algoritmo de generación para predecir el siguiente o el actual Session ID.

Este tipo de ataque explota la forma en que el navegador procesa las cookies establecidas por los subdominios de un dominio. Si un atacante controla un subdominio, puede intentar modificar los archivos cookie, en particular el Session ID, del dominio de nivel superior. Por ejemplo, si para sub.domain.com se establece una cookie con el atributo Domain=.domain.com, entonces este archivo será válido para todo el dominio.

De esta manera, el atacante puede insertar cookies maliciosas con los mismos nombres que las cookies del dominio principal, por ejemplo, Session_id. Al enviar una solicitud al servidor, el navegador incluye en la solicitud todas las cookies adecuadas. Como resultado, el servidor puede procesar por error un archivo malicioso con el Session ID del atacante, y este obtendrá acceso a la sesión del usuario, incluso si la víctima no ha visitado las páginas en el subdominio vulnerable. Además, la transmisión de cookies incorrectas puede causar errores en el servidor.

Cómo protegerse y proteger a sus usuarios

La responsabilidad principal de proteger los archivos cookie recae en los desarrolladores de sitios web. A pesar de que los frameworks web listos para usar suelen incluir protección, cada desarrollador web debe conocer las características de configuración de las cookies y los riesgos que conlleva un manejo descuidado. En cuanto a las amenazas mencionadas en este artículo, ofrecemos las siguientes recomendaciones.

Recomendaciones para desarrolladores web

A nivel de conexión de red e intercambio de datos, es necesario cifrar todo el tráfico entre el cliente y el servidor. Para ello, recomendamos utilizar HTTPS, así como el redireccionamiento obligatorio de HTTP a HTTPS. Asimismo, no hay que olvidar el uso del encabezado HSTS (HTTP Strict Transport Security), que obliga al navegador a utilizar siempre HTTPS. Esta medida ayudará a protegerse de ataques como session sniffing, MitM y cookie tossing, ya que dificulta la inserción de un atacante en el tráfico y, a veces, lo hace prácticamente imposible.

Cabe destacar que el uso del protocolo HTTPS no es una medida de protección suficiente contra los ataques XSS. HTTPS protege los datos durante la transmisión, pero un script XSS opera directamente en el navegador del usuario dentro de una sesión HTTPS. La protección contra ataques XSS debe implementarse del lado del propietario del sitio web. Para prevenir la implementación de scripts maliciosos, es necesario seguir las reglas de desarrollo seguro:

  • verificar (validación) y limpiar (saneamiento) en detalle los datos que ingresa el usuario;
  • implementar la codificación obligatoria de datos al mostrarlos en la página: de esta manera, el navegador no podrá interpretar el código malicioso como parte de la página y no lo ejecutará;
  • utilizar la marca HttpOnly para proteger las cookies del acceso desde el navegador;
  • aplicar el estándar de Política de Seguridad de Contenidos (CSP) para controlar los orígenes del código: con su ayuda, se puede supervisar qué scripts y otros contenidos se permiten ejecutar o cargar en el sitio.

El método más efectivo de protección contra los ataques de tipo session fixation es que el servidor genere un nuevo Session ID de forma forzada después de que el usuario se haya autenticado. Es necesario que el desarrollador del sitio anule el antiguo Session ID (potencialmente comprometido) y genere uno nuevo, desconocido para el atacante.

Una medida de precaución adicional es verificar los atributos de los archivos cookie. Para garantizar la protección, se debe verificar la presencia de marcas especiales (y establecerlas en caso de ausencia): Secure y HttpOnly. Secure garantiza la transmisión de cookies a través de una conexión HTTPS, mientras que HttpOnly impide que se acceda a ellas desde el navegador, por ejemplo, a través de scripts, lo que ayuda a proteger los datos sensibles frente a códigos maliciosos. La presencia de estos atributos impedirá ataques de los siguientes tipos: session sniffing, MitM, cookie tossing y XSS.

También se debe prestar atención a otro atributo protegido: SameSite, que puede limitar el envío de cookies. Asígneles el parámetro Lax o Strict para todas las cookies, de modo que se envíen solo a direcciones web de confianza en solicitudes entre sitios y así queden protegidas contra ataques CSRF. Otro método común para prevenir ataques CSRF es generar tokens CSRF nuevos y únicos para cada sesión de usuario. Dicho token se transmite al navegador del usuario y se incluye en cada solicitud HTTP que realiza alguna acción en el sitio. Al recibir una solicitud, el sitio verifica que el token exista y sea correcto. Si está ausente o no coincide con lo esperado, la solicitud se rechaza por ser potencialmente maliciosa. Esto es crucial, ya que, en caso de que se comprometa Session ID, el atacante podría intentar suplantar el token CSRF.

Para protegerse contra ataques que adivinan el Session ID, es necesario asegurarse de que los identificadores sean completamente aleatorios y e impredecibles. Para esto, sugerimos usar un generador de números aleatorios con seguridad criptográfica, basado en algoritmos sólidos, que sea el más complicado de predecir. La protección adicional de Session ID se garantiza mediante su regeneración forzada después de la autenticación del usuario en el recurso web.

El método más efectivo para protegerse contra los ataques de cookie tossing es el uso de archivos cookie con el prefijo __Host-. Dichas cookies solo se pueden establecer en el mismo dominio que es el origen de la solicitud y no pueden tener el atributo Domain. Esto garantiza que las cookies establecidas por el dominio principal no puedan ser sobrescritas por ningún subdominio.

Además, es importante verificar la seguridad de todos los subdominios. Este proceso incluye, por ejemplo, el monitoreo de registros DNS inactivos y obsoletos, que puedan ser capturados por atacantes. También recomendamos verificar la confiabilidad del aislamiento del contenido del usuario en subdominios separados: los datos que son creados o cargados por los usuarios deben almacenarse y administrarse de tal manera que no afecten la seguridad del dominio principal.

Hemos indicado que al desactivar las cookies, el Session ID puede aparecer en la URL de la página. Para que esto no pase, los desarrolladores web deben incluir este identificador en las cookies obligatorias, que son imprescindibles.

Los marcos web modernos a menudo incluyen mecanismos integrados capaces de prevenir la mayoría de los ataques descritos. Estos componentes de protección permiten gestionar las cookies de manera más segura, facilitando la tarea a los desarrolladores. Entre tales mecanismos se pueden destacar la rotación regular de Session ID tras la autenticación, el uso de las banderas Secure y HttpOnly, la limitación del tiempo de vida de la sesión, su vinculación a la dirección IP del cliente, la cadena User-Agent y otros parámetros, así como la generación de tokens CSRF únicos.

Sin embargo, además de las cookies, existen otras formas de almacenar información del usuario que son más seguras y eficientes en términos de rendimiento.

Dependiendo de los objetivos del recurso web, sus propietarios pueden utilizar diferentes API, como Web Storage API (almacenamientos localStorage y sessionStorage), IndexedDB y otras alternativas. Al utilizar la API, los datos no se envían con cada solicitud al servidor, lo que ahorra muchos recursos y mejora el rendimiento.

Otra alternativa interesante a las cookies es la tecnología del lado del servidor, en la que solo se almacena el Session ID en el lado del cliente, mientras que los demás datos permanecen en el servidor. Este método es más seguro que almacenar información a través de una API, ya que los datos del usuario no se revelan en el lado del cliente.

Recomendaciones para los usuarios

Es clave que el usuario actúe con atención y cuidado para protegerse de la intercepción, manipulación y suplantación de cookies.

Al visitar un sitio web, debe fijarse que cuente con el protocolo HTTPS. Para ello, confirme que el enlace comience con https en la barra de direcciones del navegador. El usuario puede ver información adicional sobre la seguridad del sitio en algunos navegadores. Por ejemplo, en Google Chrome puede hacer clic en el ícono delante de la dirección del sitio y verificar que estén presentes parámetros como “Conexión segura” y “Certificado válido”. Si estos parámetros están ausentes o los datos se transmiten a través del protocolo HTTP, recomendamos tener la máxima precaución al visitar el sitio web y, en la medida de lo posible, no ingresar ningún dato personal, ya que no cumple con los principios básicos de seguridad.

Además, es importante prestar atención a las advertencias del navegador sobre certificados inválidos o sospechosos. Pueden ser señal de un ataque MitM. Si el sistema de seguridad se activa, recomendamos dejar de interactuar con el sitio sospechoso. Muchos navegadores implementan la verificación de certificados y otras funciones de seguridad, así que es importante instalar las actualizaciones del navegador a tiempo; de esta manera se reemplazarán los certificados obsoletos y comprometidos.

También recomendamos limpiar los datos del navegador de forma periódica, en particular las cookies y la caché, para ayudar a eliminar identificadores de sesión obsoletos y potencialmente comprometidos.

Utilice la autenticación de dos factores siempre que esté disponible. Esto dificultará que un atacante acceda a la cuenta después de finalizar la sesión, incluso si se revela el Session ID.

Cuando un sitio pide consentimiento para recopilar cookies, la opción más segura es rechazarlas. Sin embargo, es importante mencionar que, en algunos casos, el botón “Rechazar cookies” solo desactiva las cookies no esenciales. Si esta opción no está disponible, recomendamos revisar los parámetros y seleccionar solo las cookies obligatorias. Algunos sitios permiten hacerlo en una ventana emergente con la notificación sobre el uso de cookies, otros en configuraciones adicionales.

La recomendación universal de evitar hacer clic en enlaces sospechosos es muy importante para prevenir el robo de Session ID. Como ya lo hemos mencionado, este tipo de enlaces pueden utilizarse en ataques de tipo fijación de sesión. Revise con mucho cuidado la dirección URL: si contiene parámetros que no entiende, le recomendamos copiar el enlace en la barra de direcciones de forma manual y eliminar esos parámetros antes de cargar la página. Por ejemplo, las largas secuencias de caracteres en los parámetros de una URL legítima pueden corresponder al identificador de sesión de un atacante. Si se elimina este parámetro, el enlace se volverá seguro. También hay que constatar que el propio dominio es correcto, para no hacer clic por accidente en un enlace de phishing.

Además, recomendamos tener extrema precaución al conectarse a redes Wi-Fi públicas. A menudo, los ataques de intermediario (man-in-the-middle) ocurren a través de redes Wi-Fi abiertas y puntos de acceso falsos. Recomendamos no conectarse a redes no verificadas sin usar una VPN, que cifra el tráfico y hace prácticamente imposible que se intercepten datos.

Galletas digitales saludables: para qué sirven los archivos cookie, qué peligros ocultan y cuál es su relación con el “session hijacking”

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Informes

BlindEagle vuela alto en LATAM

Kaspersky proporciona información sobre la actividad y los TTPs del APT BlindEagle. Grupo que apunta a organizaciones e individuos en Colombia, Ecuador, Chile, Panamá y otros países de América Latina.

MosaicRegressor: acechando en las sombras de UEFI

Encontramos una imagen de firmware de la UEFI infectada con un implante malicioso, es el objeto de esta investigación. Hasta donde sabemos, este es el segundo caso conocido en que se ha detectado un firmware malicioso de la UEFI usado por un actor de amenazas.