Blog
dark mode light mode Search Archivos descargables
Search

Cómo la falta de expiración de sesión compromete tu seguridad (Insufficient Session Expiration)

Insufficient Session Expiration

Imagina que en la biblioteca pública de la ciudad, Juan inicia sesión en el sitio web de su banco para transferir dinero de su cuenta corriente a su cuenta de ahorros. Una vez que Juan completa su transacción, se distrae, se olvida de cerrar sesión en el sitio web de su banco y se aleja de la computadora. 

Un poco más tarde, Pedro, ahora usa la misma computadora que Juan usó. En lugar de utilizar el navegador para navegar a un sitio nuevo, Pedro simplemente explora el historial del navegador para volver a la URL anterior donde se mostraba la información de la cuenta de Juan. Debido a que la sesión de Juan aún está activa, Pedro ahora puede transferir dinero, abrir nuevas cuentas, solicitar tarjetas de crédito adicionales o realizar cualquier otra acción disponible para Juan a través del sitio web del banco.

Si la aplicación bancaria hubiera aplicado un tiempo de espera de inactividad establecido en 5 minutos, el hecho de que Juan no cerrará sesión no le daría a Pedro la posibilidad de usar la sesión de Juan para realizar transacciones fraudulentas. Por supuesto, si Pedro usará la información de la sesión de Juan dentro de ese período de 5 minutos, Juan no estaría protegido. Sin embargo, el vencimiento corto de la sesión reduciría drásticamente el riesgo de que esto ocurra.

Lo anterior, ilustra la vulnerabilidad conocida como Insufficient Session Expiration, un fallo de seguridad que permite a sesiones antiguas seguir activas más tiempo del debido, facilitando potenciales abusos y fraudes. En este artículo, te explicaremos de qué se trata esta vulnerabilidad, cuándo ocurre, por qué es importante y algunas buenas prácticas para que puedas proteger tu información de la mejor manera.

¿Qué es Insufficient Session Expiration?

La vulnerabilidad Insufficient Session Expiration en la gestión de sesiones, que se encuentra comúnmente en aplicaciones web y API. Ocurre cuando el servidor no finaliza una sesión en el momento esperado, lo que permite a un atacante reutilizar una sesión válida, evitando así el proceso de autenticación.

La vulnerabilidad, se compone de dos tipos de tiempo de espera: inactividad y absoluto.

Un tiempo de espera absoluto se define por la cantidad total de tiempo que una sesión puede ser válida sin volver a autenticarse y un tiempo de espera de inactividad es la cantidad de tiempo de inactividad permitido antes de que se invalide la sesión. La falta de una caducidad adecuada de la sesión puede aumentar la probabilidad de éxito de ciertos ataques. Un tiempo de vencimiento prolongado aumenta las posibilidades de que un atacante adivine con éxito una ID de sesión válida. Cuanto mayor sea el tiempo de vencimiento, más sesiones abiertas simultáneas existirán en un momento dado. Cuanto mayor sea el grupo de sesiones, más probable será que un atacante adivine una al azar.

Por otro lado, un tiempo de espera de inactividad de sesión corto no ayuda si un token se usa inmediatamente, el tiempo de espera corto ayuda a garantizar que el token sea más difícil de capturar mientras aún sea válido.

¿Cuándo ocurre la vulnerabilidad Insufficient Session Expiration ?

Insufficient Session Expiration ocurre cuando una aplicación web permite a un atacante utilizar credenciales de sesión antiguas o ID de sesión para autorización. Esta vulnerabilidad aumenta la exposición de un sitio web a ataques que roban o reutilizan los identificadores de sesión del usuario.

Dado que HTTP es un protocolo sin estado, los sitios web suelen utilizar cookies para almacenar ID de sesión que identifican de forma única a un usuario de una solicitud a otra. En consecuencia, se debe mantener la confidencialidad de cada ID de sesión para evitar que varios usuarios accedan a la misma cuenta. Una ID de sesión robada se puede utilizar para ver la cuenta de otro usuario o realizar una transacción fraudulenta.

¿Cómo prevenir la vulnerabilidad Insufficient Session Expiration?

Una aplicación web debe invalidar una sesión después de que haya pasado un tiempo de inactividad predefinido (un tiempo de espera) y proporcionar al usuario los medios para invalidar su propia sesión, es decir, cerrar sesión; esto ayuda a mantener la vida útil de una ID de sesión lo más corta posible y es necesario en un entorno informático compartido donde más de una persona tiene acceso físico sin restricciones a una computadora. La función de cierre de sesión debe ser visible para el usuario, invalidar explícitamente la sesión del usuario y no permitir la reutilización del token de sesión.

¿Por qué es importante?

La “Insufficient Session Expiration” pone en riesgo tu privacidad y seguridad en línea. Si alguien más puede acceder a tu cuenta, podría ver tus correos electrónicos, mensajes privados o información personal. Para evitar esto, es esencial comprender cómo proteger nuestras sesiones en línea.

Buenas prácticas

A continuación se enumeran algunas buenas prácticas para proteger la privacidad de nuestros datos en internet:

  • Al terminar de usar una cuenta en línea, asegurarse de cerrar sesión. Esto aplica especialmente en dispositivos compartidos o públicos.
  • Algunos sitios y aplicaciones permiten configurar la expiración automática de la sesión después de un período de inactividad. Aprovecha esta función para añadir una capa adicional de seguridad.
  • Evitar guardar contraseñas en dispositivos públicos o compartidos. Siempre introduce tus credenciales manualmente.
  • Habilita la autenticación de dos factores cuando sea posible. Esto agrega una capa adicional de seguridad al requerir un segundo paso de verificación.
  • Asegurarse de que los dispositivos estén protegidos con contraseñas fuertes y con actualizaciones de seguridad. Esto reduce el riesgo de accesos no autorizados.

Conclusión

La “Insufficient Session Expiration” es una vulnerabilidad se puede evitar con unas simples prácticas de seguridad. Al cerrar sesión de manera adecuada y adoptar medidas de protección, podemos disfrutar de nuestras actividades en línea sin comprometer nuestra privacidad y seguridad. Recuerda, una pequeña acción puede marcar la gran diferencia en la protección de tu información en el mundo digital.

En Hackmetrix te ayudamos a cerrar brechas de seguridad con nuestros servicios de Hacking Ético y nuestra Plataforma de Seguridad y Cumplimiento. Nosotros te ayudamos a identificar y corregir vulnerabilidades, asegurando cumplimiento y protección en tus sistemas ¡Contactános si estás interesado en fortalecer tu seguridad digital!

Solicitar demo hackmetrix