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
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
El movimiento Secure-by-Design es el futuro del desarrollo de software seguro. Conozca los elementos clave que las empresas deben tener en cuenta cuando piensan en una iniciativa Secure-by-Design.
DigitalOcean reduce su deuda de seguridad con Secure Code Warrior
El uso por parte de DigitalOcean de la formación Secure Code Warrior ha reducido significativamente la deuda de seguridad, permitiendo a los equipos centrarse más en la innovación y la productividad. La mejora de la seguridad ha reforzado la calidad de sus productos y su ventaja competitiva. De cara al futuro, SCW Trust Score les ayudará a seguir mejorando las prácticas de seguridad y a continuar impulsando la innovación.
Recursos para empezar
La puntuación de confianza revela el valor de las iniciativas de mejora de la seguridad mediante el diseño
Nuestra investigación ha demostrado que la formación en código seguro funciona. Trust Score, que utiliza un algoritmo basado en más de 20 millones de puntos de datos de aprendizaje procedentes del trabajo de más de 250 000 alumnos en más de 600 organizaciones, revela su eficacia a la hora de reducir las vulnerabilidades y cómo hacer que la iniciativa sea aún más eficaz.
Seguridad reactiva frente a seguridad preventiva: Prevenir es mejor que curar
La idea de introducir la seguridad preventiva en el código y los sistemas heredados al mismo tiempo que en las aplicaciones más recientes puede parecer desalentadora, pero un planteamiento basado en el diseño seguro, aplicado mediante la mejora de las competencias de los desarrolladores, puede aplicar las mejores prácticas de seguridad a esos sistemas. Es la mejor oportunidad que tienen muchas organizaciones de mejorar su seguridad.
Ventajas de la evaluación comparativa de las competencias de seguridad de los desarrolladores
La creciente atención que se presta al código seguro y a los principios del diseño seguro exige que los desarrolladores reciban formación en ciberseguridad desde el principio del proceso de desarrollo de software, con herramientas como Secure Code Warrior's Trust Score, que ayudan a medir y mejorar sus progresos.
Impulsando iniciativas de seguridad por diseño para empresas con éxito significativo
Nuestro último documento de investigación, Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise, es el resultado de un análisis profundo de iniciativas reales de Secure-by-Design a nivel empresarial y de la derivación de enfoques de mejores prácticas basados en hallazgos basados en datos.