Los codificadores conquistan la seguridad: Share & Learn Series - Debilidades en la gestión de la sesión
Usted navega por un sitio web y se conecta. Como es normal, llena su cesta de productos que desea comprar. Entonces, ¡vaya!, su mano se resbala y cierra la pestaña del navegador. Después de un pequeño ataque de pánico, vuelve a introducir la URL del sitio en el navegador y pulsa la tecla "Enter". Vuelves a entrar en el sitio, te conectas y todos tus artículos siguen en el carrito. Uf.
¿Cómo sabía el sitio quién era usted sin reautenticarse? Te identificaba porque utilizaba sesiones. Las sesiones son la clave para una buena experiencia de usuario cuando se utiliza la web. Sin embargo, una gestión incorrecta de las sesiones puede dar lugar a agujeros de seguridad que los atacantes pueden explotar.
Repasemos ahora lo que significa la gestión de sesiones, cómo puede perjudicarle una gestión de sesiones deficiente y qué puede hacer para gestionar las sesiones correctamente.
Comprender los puntos débiles de la gestión de sesiones
Una sesión se refiere a un valor almacenado en el servidor, específico para un solo usuario de la aplicación. Esto es necesario por dos razones: En primer lugar, HTTP es un protocolo sin estado. Cada solicitud es independiente y no tiene conocimiento de las solicitudes que han llegado antes o después de ella. Una sesión ayuda al servidor a saber quién ha enviado la petición. De lo contrario, habría que iniciar una sesión cada vez que se pulsara un botón o un enlace.
La segunda razón de las sesiones es la autorización del usuario. El identificador de sesión puede utilizarse para reconocer a un usuario específico con derechos específicos dentro del sistema. La aplicación sabrá quién es la persona y qué puede hacer.
Hay dos componentes en una sesión. Un almacén de datos en el lado del servidor almacena un identificador de sesión y lo asigna a información sobre el usuario, como su identificación de usuario o la información del carrito. El mismo identificador de sesión se envía al navegador en una cookie. Las cookies son almacenadas por el navegador en el sistema del usuario. El cliente pasa la cookie con cada solicitud, haciendo saber al servidor que esa solicitud proviene del mismo usuario. La mayoría de las aplicaciones utilizan las sesiones para hacer un seguimiento de los usuarios tanto antes como después de la autenticación.
La gestión adecuada de la sesión es esencial para la seguridad de una aplicación. Un ID de sesión válido tiene el mismo nivel de confianza que un nombre de usuario/contraseña, o incluso un token de autenticación de segundo factor.
Por qué una mala gestión de la sesión es peligrosa
Una mala gestión de la sesión puede llevar a una toma de posesión completa de la cuenta. Esto significa que los datos de los clientes pueden ser robados, o los productos podrían ser comprados de forma fraudulenta. Hay varias formas de que los atacantes obtengan un ID de sesión válido.
Un ataque de fijación de sesión se produce cuando las sesiones no se cambian en momentos clave, como cuando un usuario se conecta al sistema, y si los identificadores de sesión pueden establecerse utilizando la URL. Fijar los identificadores de sesión de esta manera puede ser utilizado para mantener a los usuarios conectados a través de diferentes aplicaciones que utilizan la misma fuente de autenticación. En este caso, un atacante puede navegar a un sitio web y obtener un identificador de sesión. A continuación, el atacante envía una URL a una víctima desprevenida por correo electrónico con el identificador de sesión en la URL. La víctima hace clic en la URL del correo electrónico y se conecta al sitio web. Si el ID de sesión no se rota al iniciar la sesión, el atacante tiene ahora un ID de sesión válido y autentificado. Esto permite la toma de posesión completa de la cuenta.
Otro ataque a la mala gestión de sesiones es un ataque de fuerza bruta de adivinación. Cuando los desarrolladores intentan crear sus propios sistemas de gestión de sesiones, a menudo utilizan identificadores de sesión que son bastante sencillos de adivinar. Estos pueden ser una secuencia (1, 2, 3) o un patrón predecible de algún tipo. El atacante simplemente sigue adivinando los ID de sesión hasta que descubre uno válido. Esto también conduce a una toma de posesión de la cuenta.
Las sesiones que no se invalidan automáticamente después de un cierto tiempo pueden ser explotadas para atacar a los usuarios. Un ataque exitoso de falsificación de solicitudes entre sitios depende de que las sesiones sigan siendo válidas después de que el usuario abandone el sitio. Digamos que un atacante coloca un iframe o una imagen en un sitio visitado por el usuario. El atributo "src" (fuente) se establece en la URL del sitio vulnerable y realiza una acción en nombre del usuario. Por ejemplo, se puede hacer que una aplicación bancaria vulnerable transfiera dinero a la cuenta de un atacante sin el permiso del usuario.
La gestión de la sesión puede ser complicada, y los puntos débiles pueden ser devastadores. Sin embargo, es un problema bien conocido y puede resolverse.
Derrotar a la gestión de sesiones inseguras
La gestión de sesiones es una pieza fundamental de cualquier aplicación web. Por ello, muchos marcos de desarrollo web tienen incorporada la funcionalidad de gestión de sesiones. Estos sistemas han sido examinados por expertos para encontrar y eliminar los problemas. Utilízalos.
Algunas de las propiedades más comunes de una buena gestión de sesiones son
Se generan identificadores de sesión aleatorios que los atacantes no pueden adivinar
Las sesiones se invalidan cuando un usuario se desconecta
Las sesiones se invalidan automáticamente una vez transcurrido un tiempo determinado
Los identificadores de sesión se cambian después de que el usuario se conecte
Identificadores de sesión de al menos 128 bits para evitar ataques de fuerza bruta
Los frameworks web como Spring, ASP.NET Core, Rails y Django tienen estas propiedades y deberían utilizarse por sus mayores estándares de seguridad en este caso.
En resumen: No cree su propio sistema de gestión de sesiones desde cero.
Una vez creados los ID de sesión, es necesario protegerlos. Establezca los indicadores Secure y HttpOnly en "true" en las cookies de sesión. Esto asegura que su valor no puede ser recuperado con JavaScript y el navegador sólo enviará la cookie a través de HTTPS, evitando que los atacantes roben la sesión de alguien en tránsito.
Asegure sus sesiones
Consulte nuestros recursos de aprendizaje gratuitos para obtener más información sobre la gestión de sesiones seguras. Aprender a proteger sus sesiones le ayudará a evitar la toma de posesión de cuentas de usuario, el daño a la reputación y la pérdida de ingresos debido a las brechas de seguridad. Proteja sus sesiones y mantenga a sus usuarios seguros.


Las sesiones son la clave para una buena experiencia de usuario cuando se utiliza la web. Sin embargo, gestionar las sesiones de forma incorrecta puede dar lugar a agujeros de seguridad que los atacantes pueden explotar.
Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónJaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.


Usted navega por un sitio web y se conecta. Como es normal, llena su cesta de productos que desea comprar. Entonces, ¡vaya!, su mano se resbala y cierra la pestaña del navegador. Después de un pequeño ataque de pánico, vuelve a introducir la URL del sitio en el navegador y pulsa la tecla "Enter". Vuelves a entrar en el sitio, te conectas y todos tus artículos siguen en el carrito. Uf.
¿Cómo sabía el sitio quién era usted sin reautenticarse? Te identificaba porque utilizaba sesiones. Las sesiones son la clave para una buena experiencia de usuario cuando se utiliza la web. Sin embargo, una gestión incorrecta de las sesiones puede dar lugar a agujeros de seguridad que los atacantes pueden explotar.
Repasemos ahora lo que significa la gestión de sesiones, cómo puede perjudicarle una gestión de sesiones deficiente y qué puede hacer para gestionar las sesiones correctamente.
Comprender los puntos débiles de la gestión de sesiones
Una sesión se refiere a un valor almacenado en el servidor, específico para un solo usuario de la aplicación. Esto es necesario por dos razones: En primer lugar, HTTP es un protocolo sin estado. Cada solicitud es independiente y no tiene conocimiento de las solicitudes que han llegado antes o después de ella. Una sesión ayuda al servidor a saber quién ha enviado la petición. De lo contrario, habría que iniciar una sesión cada vez que se pulsara un botón o un enlace.
La segunda razón de las sesiones es la autorización del usuario. El identificador de sesión puede utilizarse para reconocer a un usuario específico con derechos específicos dentro del sistema. La aplicación sabrá quién es la persona y qué puede hacer.
Hay dos componentes en una sesión. Un almacén de datos en el lado del servidor almacena un identificador de sesión y lo asigna a información sobre el usuario, como su identificación de usuario o la información del carrito. El mismo identificador de sesión se envía al navegador en una cookie. Las cookies son almacenadas por el navegador en el sistema del usuario. El cliente pasa la cookie con cada solicitud, haciendo saber al servidor que esa solicitud proviene del mismo usuario. La mayoría de las aplicaciones utilizan las sesiones para hacer un seguimiento de los usuarios tanto antes como después de la autenticación.
La gestión adecuada de la sesión es esencial para la seguridad de una aplicación. Un ID de sesión válido tiene el mismo nivel de confianza que un nombre de usuario/contraseña, o incluso un token de autenticación de segundo factor.
Por qué una mala gestión de la sesión es peligrosa
Una mala gestión de la sesión puede llevar a una toma de posesión completa de la cuenta. Esto significa que los datos de los clientes pueden ser robados, o los productos podrían ser comprados de forma fraudulenta. Hay varias formas de que los atacantes obtengan un ID de sesión válido.
Un ataque de fijación de sesión se produce cuando las sesiones no se cambian en momentos clave, como cuando un usuario se conecta al sistema, y si los identificadores de sesión pueden establecerse utilizando la URL. Fijar los identificadores de sesión de esta manera puede ser utilizado para mantener a los usuarios conectados a través de diferentes aplicaciones que utilizan la misma fuente de autenticación. En este caso, un atacante puede navegar a un sitio web y obtener un identificador de sesión. A continuación, el atacante envía una URL a una víctima desprevenida por correo electrónico con el identificador de sesión en la URL. La víctima hace clic en la URL del correo electrónico y se conecta al sitio web. Si el ID de sesión no se rota al iniciar la sesión, el atacante tiene ahora un ID de sesión válido y autentificado. Esto permite la toma de posesión completa de la cuenta.
Otro ataque a la mala gestión de sesiones es un ataque de fuerza bruta de adivinación. Cuando los desarrolladores intentan crear sus propios sistemas de gestión de sesiones, a menudo utilizan identificadores de sesión que son bastante sencillos de adivinar. Estos pueden ser una secuencia (1, 2, 3) o un patrón predecible de algún tipo. El atacante simplemente sigue adivinando los ID de sesión hasta que descubre uno válido. Esto también conduce a una toma de posesión de la cuenta.
Las sesiones que no se invalidan automáticamente después de un cierto tiempo pueden ser explotadas para atacar a los usuarios. Un ataque exitoso de falsificación de solicitudes entre sitios depende de que las sesiones sigan siendo válidas después de que el usuario abandone el sitio. Digamos que un atacante coloca un iframe o una imagen en un sitio visitado por el usuario. El atributo "src" (fuente) se establece en la URL del sitio vulnerable y realiza una acción en nombre del usuario. Por ejemplo, se puede hacer que una aplicación bancaria vulnerable transfiera dinero a la cuenta de un atacante sin el permiso del usuario.
La gestión de la sesión puede ser complicada, y los puntos débiles pueden ser devastadores. Sin embargo, es un problema bien conocido y puede resolverse.
Derrotar a la gestión de sesiones inseguras
La gestión de sesiones es una pieza fundamental de cualquier aplicación web. Por ello, muchos marcos de desarrollo web tienen incorporada la funcionalidad de gestión de sesiones. Estos sistemas han sido examinados por expertos para encontrar y eliminar los problemas. Utilízalos.
Algunas de las propiedades más comunes de una buena gestión de sesiones son
Se generan identificadores de sesión aleatorios que los atacantes no pueden adivinar
Las sesiones se invalidan cuando un usuario se desconecta
Las sesiones se invalidan automáticamente una vez transcurrido un tiempo determinado
Los identificadores de sesión se cambian después de que el usuario se conecte
Identificadores de sesión de al menos 128 bits para evitar ataques de fuerza bruta
Los frameworks web como Spring, ASP.NET Core, Rails y Django tienen estas propiedades y deberían utilizarse por sus mayores estándares de seguridad en este caso.
En resumen: No cree su propio sistema de gestión de sesiones desde cero.
Una vez creados los ID de sesión, es necesario protegerlos. Establezca los indicadores Secure y HttpOnly en "true" en las cookies de sesión. Esto asegura que su valor no puede ser recuperado con JavaScript y el navegador sólo enviará la cookie a través de HTTPS, evitando que los atacantes roben la sesión de alguien en tránsito.
Asegure sus sesiones
Consulte nuestros recursos de aprendizaje gratuitos para obtener más información sobre la gestión de sesiones seguras. Aprender a proteger sus sesiones le ayudará a evitar la toma de posesión de cuentas de usuario, el daño a la reputación y la pérdida de ingresos debido a las brechas de seguridad. Proteja sus sesiones y mantenga a sus usuarios seguros.

Usted navega por un sitio web y se conecta. Como es normal, llena su cesta de productos que desea comprar. Entonces, ¡vaya!, su mano se resbala y cierra la pestaña del navegador. Después de un pequeño ataque de pánico, vuelve a introducir la URL del sitio en el navegador y pulsa la tecla "Enter". Vuelves a entrar en el sitio, te conectas y todos tus artículos siguen en el carrito. Uf.
¿Cómo sabía el sitio quién era usted sin reautenticarse? Te identificaba porque utilizaba sesiones. Las sesiones son la clave para una buena experiencia de usuario cuando se utiliza la web. Sin embargo, una gestión incorrecta de las sesiones puede dar lugar a agujeros de seguridad que los atacantes pueden explotar.
Repasemos ahora lo que significa la gestión de sesiones, cómo puede perjudicarle una gestión de sesiones deficiente y qué puede hacer para gestionar las sesiones correctamente.
Comprender los puntos débiles de la gestión de sesiones
Una sesión se refiere a un valor almacenado en el servidor, específico para un solo usuario de la aplicación. Esto es necesario por dos razones: En primer lugar, HTTP es un protocolo sin estado. Cada solicitud es independiente y no tiene conocimiento de las solicitudes que han llegado antes o después de ella. Una sesión ayuda al servidor a saber quién ha enviado la petición. De lo contrario, habría que iniciar una sesión cada vez que se pulsara un botón o un enlace.
La segunda razón de las sesiones es la autorización del usuario. El identificador de sesión puede utilizarse para reconocer a un usuario específico con derechos específicos dentro del sistema. La aplicación sabrá quién es la persona y qué puede hacer.
Hay dos componentes en una sesión. Un almacén de datos en el lado del servidor almacena un identificador de sesión y lo asigna a información sobre el usuario, como su identificación de usuario o la información del carrito. El mismo identificador de sesión se envía al navegador en una cookie. Las cookies son almacenadas por el navegador en el sistema del usuario. El cliente pasa la cookie con cada solicitud, haciendo saber al servidor que esa solicitud proviene del mismo usuario. La mayoría de las aplicaciones utilizan las sesiones para hacer un seguimiento de los usuarios tanto antes como después de la autenticación.
La gestión adecuada de la sesión es esencial para la seguridad de una aplicación. Un ID de sesión válido tiene el mismo nivel de confianza que un nombre de usuario/contraseña, o incluso un token de autenticación de segundo factor.
Por qué una mala gestión de la sesión es peligrosa
Una mala gestión de la sesión puede llevar a una toma de posesión completa de la cuenta. Esto significa que los datos de los clientes pueden ser robados, o los productos podrían ser comprados de forma fraudulenta. Hay varias formas de que los atacantes obtengan un ID de sesión válido.
Un ataque de fijación de sesión se produce cuando las sesiones no se cambian en momentos clave, como cuando un usuario se conecta al sistema, y si los identificadores de sesión pueden establecerse utilizando la URL. Fijar los identificadores de sesión de esta manera puede ser utilizado para mantener a los usuarios conectados a través de diferentes aplicaciones que utilizan la misma fuente de autenticación. En este caso, un atacante puede navegar a un sitio web y obtener un identificador de sesión. A continuación, el atacante envía una URL a una víctima desprevenida por correo electrónico con el identificador de sesión en la URL. La víctima hace clic en la URL del correo electrónico y se conecta al sitio web. Si el ID de sesión no se rota al iniciar la sesión, el atacante tiene ahora un ID de sesión válido y autentificado. Esto permite la toma de posesión completa de la cuenta.
Otro ataque a la mala gestión de sesiones es un ataque de fuerza bruta de adivinación. Cuando los desarrolladores intentan crear sus propios sistemas de gestión de sesiones, a menudo utilizan identificadores de sesión que son bastante sencillos de adivinar. Estos pueden ser una secuencia (1, 2, 3) o un patrón predecible de algún tipo. El atacante simplemente sigue adivinando los ID de sesión hasta que descubre uno válido. Esto también conduce a una toma de posesión de la cuenta.
Las sesiones que no se invalidan automáticamente después de un cierto tiempo pueden ser explotadas para atacar a los usuarios. Un ataque exitoso de falsificación de solicitudes entre sitios depende de que las sesiones sigan siendo válidas después de que el usuario abandone el sitio. Digamos que un atacante coloca un iframe o una imagen en un sitio visitado por el usuario. El atributo "src" (fuente) se establece en la URL del sitio vulnerable y realiza una acción en nombre del usuario. Por ejemplo, se puede hacer que una aplicación bancaria vulnerable transfiera dinero a la cuenta de un atacante sin el permiso del usuario.
La gestión de la sesión puede ser complicada, y los puntos débiles pueden ser devastadores. Sin embargo, es un problema bien conocido y puede resolverse.
Derrotar a la gestión de sesiones inseguras
La gestión de sesiones es una pieza fundamental de cualquier aplicación web. Por ello, muchos marcos de desarrollo web tienen incorporada la funcionalidad de gestión de sesiones. Estos sistemas han sido examinados por expertos para encontrar y eliminar los problemas. Utilízalos.
Algunas de las propiedades más comunes de una buena gestión de sesiones son
Se generan identificadores de sesión aleatorios que los atacantes no pueden adivinar
Las sesiones se invalidan cuando un usuario se desconecta
Las sesiones se invalidan automáticamente una vez transcurrido un tiempo determinado
Los identificadores de sesión se cambian después de que el usuario se conecte
Identificadores de sesión de al menos 128 bits para evitar ataques de fuerza bruta
Los frameworks web como Spring, ASP.NET Core, Rails y Django tienen estas propiedades y deberían utilizarse por sus mayores estándares de seguridad en este caso.
En resumen: No cree su propio sistema de gestión de sesiones desde cero.
Una vez creados los ID de sesión, es necesario protegerlos. Establezca los indicadores Secure y HttpOnly en "true" en las cookies de sesión. Esto asegura que su valor no puede ser recuperado con JavaScript y el navegador sólo enviará la cookie a través de HTTPS, evitando que los atacantes roben la sesión de alguien en tránsito.
Asegure sus sesiones
Consulte nuestros recursos de aprendizaje gratuitos para obtener más información sobre la gestión de sesiones seguras. Aprender a proteger sus sesiones le ayudará a evitar la toma de posesión de cuentas de usuario, el daño a la reputación y la pérdida de ingresos debido a las brechas de seguridad. Proteja sus sesiones y mantenga a sus usuarios seguros.

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónJaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.
Usted navega por un sitio web y se conecta. Como es normal, llena su cesta de productos que desea comprar. Entonces, ¡vaya!, su mano se resbala y cierra la pestaña del navegador. Después de un pequeño ataque de pánico, vuelve a introducir la URL del sitio en el navegador y pulsa la tecla "Enter". Vuelves a entrar en el sitio, te conectas y todos tus artículos siguen en el carrito. Uf.
¿Cómo sabía el sitio quién era usted sin reautenticarse? Te identificaba porque utilizaba sesiones. Las sesiones son la clave para una buena experiencia de usuario cuando se utiliza la web. Sin embargo, una gestión incorrecta de las sesiones puede dar lugar a agujeros de seguridad que los atacantes pueden explotar.
Repasemos ahora lo que significa la gestión de sesiones, cómo puede perjudicarle una gestión de sesiones deficiente y qué puede hacer para gestionar las sesiones correctamente.
Comprender los puntos débiles de la gestión de sesiones
Una sesión se refiere a un valor almacenado en el servidor, específico para un solo usuario de la aplicación. Esto es necesario por dos razones: En primer lugar, HTTP es un protocolo sin estado. Cada solicitud es independiente y no tiene conocimiento de las solicitudes que han llegado antes o después de ella. Una sesión ayuda al servidor a saber quién ha enviado la petición. De lo contrario, habría que iniciar una sesión cada vez que se pulsara un botón o un enlace.
La segunda razón de las sesiones es la autorización del usuario. El identificador de sesión puede utilizarse para reconocer a un usuario específico con derechos específicos dentro del sistema. La aplicación sabrá quién es la persona y qué puede hacer.
Hay dos componentes en una sesión. Un almacén de datos en el lado del servidor almacena un identificador de sesión y lo asigna a información sobre el usuario, como su identificación de usuario o la información del carrito. El mismo identificador de sesión se envía al navegador en una cookie. Las cookies son almacenadas por el navegador en el sistema del usuario. El cliente pasa la cookie con cada solicitud, haciendo saber al servidor que esa solicitud proviene del mismo usuario. La mayoría de las aplicaciones utilizan las sesiones para hacer un seguimiento de los usuarios tanto antes como después de la autenticación.
La gestión adecuada de la sesión es esencial para la seguridad de una aplicación. Un ID de sesión válido tiene el mismo nivel de confianza que un nombre de usuario/contraseña, o incluso un token de autenticación de segundo factor.
Por qué una mala gestión de la sesión es peligrosa
Una mala gestión de la sesión puede llevar a una toma de posesión completa de la cuenta. Esto significa que los datos de los clientes pueden ser robados, o los productos podrían ser comprados de forma fraudulenta. Hay varias formas de que los atacantes obtengan un ID de sesión válido.
Un ataque de fijación de sesión se produce cuando las sesiones no se cambian en momentos clave, como cuando un usuario se conecta al sistema, y si los identificadores de sesión pueden establecerse utilizando la URL. Fijar los identificadores de sesión de esta manera puede ser utilizado para mantener a los usuarios conectados a través de diferentes aplicaciones que utilizan la misma fuente de autenticación. En este caso, un atacante puede navegar a un sitio web y obtener un identificador de sesión. A continuación, el atacante envía una URL a una víctima desprevenida por correo electrónico con el identificador de sesión en la URL. La víctima hace clic en la URL del correo electrónico y se conecta al sitio web. Si el ID de sesión no se rota al iniciar la sesión, el atacante tiene ahora un ID de sesión válido y autentificado. Esto permite la toma de posesión completa de la cuenta.
Otro ataque a la mala gestión de sesiones es un ataque de fuerza bruta de adivinación. Cuando los desarrolladores intentan crear sus propios sistemas de gestión de sesiones, a menudo utilizan identificadores de sesión que son bastante sencillos de adivinar. Estos pueden ser una secuencia (1, 2, 3) o un patrón predecible de algún tipo. El atacante simplemente sigue adivinando los ID de sesión hasta que descubre uno válido. Esto también conduce a una toma de posesión de la cuenta.
Las sesiones que no se invalidan automáticamente después de un cierto tiempo pueden ser explotadas para atacar a los usuarios. Un ataque exitoso de falsificación de solicitudes entre sitios depende de que las sesiones sigan siendo válidas después de que el usuario abandone el sitio. Digamos que un atacante coloca un iframe o una imagen en un sitio visitado por el usuario. El atributo "src" (fuente) se establece en la URL del sitio vulnerable y realiza una acción en nombre del usuario. Por ejemplo, se puede hacer que una aplicación bancaria vulnerable transfiera dinero a la cuenta de un atacante sin el permiso del usuario.
La gestión de la sesión puede ser complicada, y los puntos débiles pueden ser devastadores. Sin embargo, es un problema bien conocido y puede resolverse.
Derrotar a la gestión de sesiones inseguras
La gestión de sesiones es una pieza fundamental de cualquier aplicación web. Por ello, muchos marcos de desarrollo web tienen incorporada la funcionalidad de gestión de sesiones. Estos sistemas han sido examinados por expertos para encontrar y eliminar los problemas. Utilízalos.
Algunas de las propiedades más comunes de una buena gestión de sesiones son
Se generan identificadores de sesión aleatorios que los atacantes no pueden adivinar
Las sesiones se invalidan cuando un usuario se desconecta
Las sesiones se invalidan automáticamente una vez transcurrido un tiempo determinado
Los identificadores de sesión se cambian después de que el usuario se conecte
Identificadores de sesión de al menos 128 bits para evitar ataques de fuerza bruta
Los frameworks web como Spring, ASP.NET Core, Rails y Django tienen estas propiedades y deberían utilizarse por sus mayores estándares de seguridad en este caso.
En resumen: No cree su propio sistema de gestión de sesiones desde cero.
Una vez creados los ID de sesión, es necesario protegerlos. Establezca los indicadores Secure y HttpOnly en "true" en las cookies de sesión. Esto asegura que su valor no puede ser recuperado con JavaScript y el navegador sólo enviará la cookie a través de HTTPS, evitando que los atacantes roben la sesión de alguien en tránsito.
Asegure sus sesiones
Consulte nuestros recursos de aprendizaje gratuitos para obtener más información sobre la gestión de sesiones seguras. Aprender a proteger sus sesiones le ayudará a evitar la toma de posesión de cuentas de usuario, el daño a la reputación y la pérdida de ingresos debido a las brechas de seguridad. Proteja sus sesiones y mantenga a sus usuarios seguros.
Índice
Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Panorama de la gestión de riesgos de los promotores
La gestión de riesgos del desarrollador es un enfoque holístico y proactivo de la seguridad de las aplicaciones, centrado en quienes contribuyen al código y no en los bits y bytes de la propia capa de la aplicación.
Seguridad desde el diseño: Definición de las mejores prácticas, capacitación de los desarrolladores y evaluación comparativa de los resultados de la seguridad preventiva
En este documento de investigación, los cofundadores Secure Code Warrior , Pieter Danhieux y el Dr. Matias Madou, Ph.D., junto con los expertos colaboradores, Chris Inglis, ex Director Nacional Cibernético de EE.UU. (ahora Asesor Estratégico de Paladin Capital Group), y Devin Lynch, Director Senior, Paladin Global Institute, revelarán los hallazgos clave de más de veinte entrevistas en profundidad con líderes de seguridad empresarial, incluyendo CISOs, un VP de Seguridad de Aplicaciones y profesionales de seguridad de software.
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
Encontrar datos significativos sobre el éxito de las iniciativas Secure-by-Design es notoriamente difícil. Los responsables de la seguridad de la información se enfrentan a menudo al reto de demostrar el rendimiento de la inversión (ROI) y el valor empresarial de las actividades de los programas de seguridad, tanto a nivel de las personas como de la empresa. Por no mencionar que a las empresas les resulta especialmente difícil obtener información sobre cómo se comparan sus organizaciones con los estándares actuales del sector. La Estrategia Nacional de Ciberseguridad del Presidente desafió a las partes interesadas a "adoptar la seguridad y la resiliencia desde el diseño". La clave para que las iniciativas de seguridad por diseño funcionen no es sólo dotar a los desarrolladores de las habilidades necesarias para garantizar un código seguro, sino también garantizar a los reguladores que esas habilidades están en su lugar. En esta presentación, compartimos una miríada de datos cualitativos y cuantitativos, derivados de múltiples fuentes primarias, incluidos puntos de datos internos recogidos de más de 250.000 desarrolladores, opiniones de clientes basadas en datos y estudios públicos. Aprovechando esta agregación de puntos de datos, pretendemos comunicar una visión del estado actual de las iniciativas Secure-by-Design en múltiples verticales. El informe detalla por qué este espacio está actualmente infrautilizado, el impacto significativo que un programa de mejora de las competencias puede tener en la mitigación de los riesgos de ciberseguridad y el potencial para eliminar categorías de vulnerabilidades de un código base.
Servicios profesionales - Acelerar con experiencia
El equipo de servicios de estrategia de programas (PSS) de Secure Code Warriorle ayuda a crear, mejorar y optimizar su programa de codificación segura. Tanto si empieza de cero como si está perfeccionando su enfoque, nuestros expertos le proporcionarán orientación personalizada.
Recursos para empezar
Revelado: Cómo define el sector cibernético la seguridad por diseño
En nuestro último libro blanco, nuestros cofundadores, Pieter Danhieux y el doctor Matias Madou, se sentaron con más de veinte líderes de seguridad empresarial, incluidos CISO, líderes de AppSec y profesionales de la seguridad, para averiguar las piezas clave de este rompecabezas y descubrir la realidad detrás del movimiento Secure by Design. Se trata de una ambición compartida por todos los equipos de seguridad, pero no de un libro de jugadas compartido.
¿Vibe Coding va a convertir tu código en una fiesta de fraternidad?
Vibe Coding es como una fiesta de fraternidad universitaria, y la IA es la pieza central de todos los festejos, el barril. Es muy divertido dar rienda suelta a la creatividad y ver adónde te lleva tu imaginación, pero después de unas cuantas borracheras, beber (o usar IA) con moderación es, sin duda, la solución más segura a largo plazo.