Joven hacker sonriendo

Deseando la cookie

¿Te has preguntado alguna vez qué es lo que busca un atacante cuando quiere penetrar tu sistema?

Dependiendo del objetivo el atacante busca objetos o puntos vulnerables con los cuales puede lograr su objetivo; uno de esos objetos y de hecho uno de los más deseados son las cookies de un sistema, ya que usualmente son las que intervienen en el proceso de autenticación; y si el objetivo del atacante es entrar al sistema la conseguir la cookie es un buen punto de partida.

monster

Por esta razón el buen (seguro) manejo de la sesiones en todos los sistemas tanto internos como externos es primordial, ya que no es solo poner un login y manejar políticas de contraseñas para asegurar que un sistema está protegido. El manejo de sesiones es un punto crítico en el desarrollo de un sistema ya que muchas veces se utilizan técnicas inadecuadas o simplemente no se tiene en cuenta en la fase de diseño y terminan implementado autenticaciones que terminan reflejando una falsa sensación de seguridad.

Un atacante busca las cookies de sesión como el monstruo come galletas desea las galletas, es por esto que las cookies representan un activo valioso para un sistema ya que estas muchas veces guardan credenciales, información de estados o cualquier otro tipo de información sensible utilizada en la autenticación y un atacante puede tratar de utilizarlas para acceder al sistema suplantando a un usuario válido o en algunos casos modificar su contenido y engañar al servidor con información falsa.

¿Que podemos hacer para proteger las cookies?

En realidad en este caso es un tema de buenas decisiones que están ligadas a las buenas prácticas de los desarrolladores, ya que los esquemas para el manejo de sesiones que se pueden implementar son variados y muchas veces construirlos de forma correcta es un desafío.

Algunas de las buenas prácticas que se pueden implementar para el manejo de sesiones son las siguientes (estas son ideas no una camisa de fuerza)

  • Time-out de sesión: Permitir que los usuarios salgan de la aplicación y limpiar su sesión, es decir, cuando un usuario sale de la aplicación, se deben invalidar sus sesiones tanto en cliente como en servidor.

  • Canal seguro: Usar canales de transporte seguros al transferir las cookies, para evitar que sean capturadas. (Man in The Middle)

  • No almacenar información vital en las cookies: No guarde nada sensible en una cookie, de tal forma si se produce una suplantación no logren comprometer el funcionamiento del sistema. En lugar de eso, guarde en la cookie una referencia a la ubicación del servidor en la que se encuentra la información requerida para autenticar al usuario.

  • Atributos de seguridad: Implementar los atributos “Secure” del objeto cookie al valor “true” esto cifra la información a nivel de transporte utilizando SSL y el atributo “httpOnly” al valor “true” este es un indicador adicional de la cabecera de respuesta HTTP con esto la cookie es asegurada para que no sea accedida por un script en el lado del cliente.

  • Unicidad: El identificador de sesión debe ser único, aleatorio y no predecible. Con el fin de evitar suplantaciones de identidad. Asegurar que cada usuario obtiene un número identificador de sesión nuevo con cada visita a la aplicación

Con esto no eliminaras el riesgo de que el monstruo consiga la galleta pero mitigas la posibilidad de que las consiga en el primer intento.


Foto del autor

Paula Velez

Ingeniera en informatica

Viajar para correr es un mundo de posibilidades


Relacionado





Haz un comentario