Seguridad del token de seguridad de Passportjs

1

Estoy utilizando Express js web framework y Passport js biblioteca para la autenticación. Todo funciona bien pero tengo una duda.

Para mantener una sesión de inicio de sesión persistente, el pasaporte js utiliza sesión de cookies y guarda dos cookies en el navegador del usuario. Uno es session y otro es session.sig . También tengo un módulo de autorización en mi aplicación que viene después de pasar la autenticación.

Mi problema es cuando dos usuarios inician sesión y ambos tienen roles diferentes (derechos y permisos). Si uno de los usuarios está copiando el valor session y session.sig del navegador de otro usuario y está pegando dentro de la cookie de su propio navegador, entonces puede obtener los detalles y derechos de su cuenta.

¿Entonces es una vulnerabilidad o es una cosa general?

¿Qué pasa si alguien usa una herramienta de proxy web como "Burp"?

Gracias.

    
pregunta Arpit Meena 27.06.2017 - 12:06
fuente

2 respuestas

1

Diferentes profesionales de AppSec tienen diferentes puntos de vista sobre esto. He conocido a algunos que han argumentado que esto es una vulnerabilidad.

Personalmente, pienso: "depende" (lo sé, esa frase es un cliché).

Dos razones:

  1. Si un usuario autenticado está cooperando con un atacante, o es un atacante por sí mismo, debe aceptar que la aplicación & Los datos están expuestos en la medida en que el usuario tiene acceso. Considero que esto es "bueno, esto es casi lo mismo que el usuario que pasa sus credenciales de inicio de sesión", aunque técnicamente es diferente.

  2. Lo mismo se aplica si el sistema / navegador cliente está comprometido en la medida en que un atacante tiene acceso a todo lo que contiene.

Sin embargo, moviendo las cookies de sesión de un navegador a otro o, lo que es peor, un sistema a otro es defendible en cierta medida, mediante el uso de la comunicación por conversación y / o el mantenimiento de otra información de perfil de cliente, como cadenas de acceso UA e IP. direcciones Hay límites en cuanto a lo lejos que puedes llegar con esta línea de defensa, pero entonces ninguna defensa es suficiente contra un atacante determinado.

    
respondido por el Sas3 27.06.2017 - 12:32
fuente
1

Los tokens de sesión se consideran secretos, si los copia de un navegador a otro, es normal que pueda acceder a ellos cuando sus aplicaciones miren estos valores para verificar la identidad.

Si está utilizando una herramienta de proxy web como eructar, los atacantes ya han realizado con éxito un hombre en el medio. Es por eso que usamos SSL / TLS: para cifrar el tráfico para que este token sensible no se escape.

Hay algunas acciones de mitigación que puede tomar, como verificar el agente de usuario o las direcciones IP para cada sesión. Si esto cambia entonces inmediatamente invalidas la sesión.

    
respondido por el Lucas Kauffman 27.06.2017 - 12:33
fuente

Lea otras preguntas en las etiquetas