Fallos del Hackme – Usar las cookies para validar o para controlar el rol del usuario.

Las cookies no son más que un fichero de texto, que se guarda en el ordenador local de la persona que accede a una página web.

La página web necesita las cookies para guardar información relativa al usuario, como por ejemplo el identificador de sesión cuando este navega por una web en la que se ha registrado o en la que se está haciendo una gestión. Sin ese identificador de sesión el servidor no puede identificar nuestros datos en los intercambios de información y la web puede dejar de funcionar. Por eso a veces, nos piden que habilitemos las cookies para continuar.

Realmente, si no estás registrado en una página, ni realizando ninguna actividad que implique comunicarse con el servidor, las cookies son prescindibles ya que no se utilizan para recordar tu identidad en esa página sino que utilizan para trazar tus movimientos. Ofrecerte contenido personalizado, ofrecerte anuncios de tu interés, etc.

El caso es que las cookies se guardan en un directorio de tu propio dispositivo, pero están tan escondidas en el sistema que acceder a ellas con un editor de texto es complicado. Depende del sistema operativo, del navegador, de la versión del mismo, etc. Pero desde el propio navegador también es difícil encontrarlas. Por eso os he dejado el vídeo ahí arriba.

Una norma de las cookies es que solo deberían ser accesibles desde el dominio que las creó. Es decir, Amazon no tiene porque saber si me gusta la política cuando leo el diario y el diario no debería saber si me gusta la fantasía o la ciencia-ficción.

Sin embargo, hay formas de hacer que terceras compañías accedan a tus cookies. En general, el dominio principal les cede ese permiso. Y de eso va todo ese jaleo de las «cookies consent» que vemos en todos los sitios web que navegamos.

En general, las cookies de legítimo interés, no son problemáticas. Y el resto de cookies de terceros aunque sin duda pueden mejorar nuestra experiencia, son prescindibles y deberían evitarse, porque los perfiles que se pueden sacar de alguien con su navegación web son de película de ciencia ficción.

En los viejos tiempos, sabiendo que el 90% de los usuarios no sabía lo que eran las cookies ni cómo editarlas, algunos programadores hacían algunas chapuzas dignas de atención. Siendo ésta una de las más destacables:

Para poder identificar a un usuario registrado hay que validarlo en cada acción que hace, en cada página que visita.

Si validamos al usuario contra una base de datos, eso significa que tenemos que consultar la base de datos si ese usuario sigue siendo válido, con cada acción del usuario, lo que es a todas luces un uso inadecuado de los recursos.

Por tanto empezó a utilizarse una argucia para consumir menos consultas en el servidor. Se validaba el usuario y se guardaba dentro de una cookie si el usuario era válido, su identificación y su perfil. De este modo, podía saberse si el usuario tenía permiso para acceder a cierto recurso simplemente leyendo la cookie del equipo local del cliente, sin consumir recursos del servidor.

Los problemas de este tipo de enfoque eran claros. Podías escalar privilegios, o darte por registrado simplemente editando las cookies en tu equipo local.

Hoy en día, lo que se registra en la cookie es un ID de sesión, que se crea al visitar una web y se destruye a los pocos segundos de haberla abandonado. Ese ID de sesión es lo bastante complejo y aleatorio como para que sea difícil, por no decir, casi imposible acertar el de un desconocido por ensayo error. Especialmente porque las sesiones se cierran frecuentemente y porque el servidor limpia las sesiones que dan por cerradas.

Adivinar un ID de sesión es difícil, pero ¿y si pudiera copiarlo en un descuido del usuario?

Adivinar un ID de sesión es difícil, pero ¿y si pudiera copiarlo en un descuido del usuario?

Ese escenario puede darse, y de hecho los robos de sesión son algo a la orden del día en temas de ciberseguridad. Sin embargo, con los años, se han ido implementando soluciones paliativas.

Hoy en día, se añaden diferentes campos en la cookies, para acompañar el id de sesión. No es que no se puedan dar robos de sesión, es que se dificulta su ejecución.

Hoy en día, los robos de sesión son más propios de extensiones de navegador, troyanos o banners maliciosos que de descuidos. Las bromas que nos solíamos gastar en el aula de informática robando la sesión de Facebook al que se iba al baño, ya no son tan simples de ejecutar como antes.

Pero no se puede decir que Internet sea más segura, sino que los atacantes son cada vez mejores y más especializados. Por tanto, el daño que nos causan es cada vez mayor, más acorde a su formación y experiencia.

Divertíos con el reto de hackear cookies a la antigua usanza que os creado y hasta el próximo reto.

Play That Class
Play That Class

Me encanta escribir, la tecnología y la educación. En estos artículos intento unir mis tres pasiones.

Artículos: 21

Deja un comentario

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