Autenticación de Windows e identificadores de sesión

4

Después de una prueba de penetración realizada en una aplicación de intranet que estoy desarrollando, en ASP.NET MVC, una de las inquietudes planteadas fue que la aplicación admite sesiones de usuarios concurrentes y se recomienda que la aplicación se reconfigure para admitir solo una sesión. a la vez para cualquier cuenta de usuario dada.

Se está utilizando la autenticación de Windows. Esto significa que el usuario no tiene que iniciar sesión en la aplicación, obviamente. La aplicación simplemente verifica la propiedad de Windows Identity IsAuthenticated antes de continuar con cualquier acción. La sesión tampoco puede ser agotada. No hay ninguna configuración disponible, que yo sepa, que pueda limitar al usuario a un único ID de sesión.

¿Esta recomendación es correcta? Si es así, ¿puedo limitar al usuario a un ID de sesión único dado que estoy usando la autenticación de Windows?

    
pregunta Boggin 12.12.2013 - 16:50
fuente

2 respuestas

3

Para aplicaciones estándar, generalmente lo menciono como una búsqueda de prioridad "baja", principalmente como si un atacante hubiera comprometido una cuenta, puede ser una restricción útil tener un usuario que solo pueda mantener una sola sesión y desconectar las sesiones antiguas. cuando se inicia uno nuevo, de esa manera el atacante es expulsado la próxima vez que el usuario inicie sesión.

En este escenario, el atacante tendría que iniciar sesión en la cuenta de dominio del usuario para tener acceso a su sesión, por lo que realmente el control debería colocarse en el nivel de dominio (por ejemplo, detener a los usuarios que tienen múltiples inicios de sesión de dominio concurrentes) si eso es deseable / posible en el contexto de su organización

Por lo tanto, diría que la recomendación no se aplica realmente a la aplicación que está desarrollando, ya que la aplicación realmente no tiene control sobre ese aspecto de la autenticación.

    
respondido por el Rоry McCune 12.12.2013 - 17:11
fuente
3
  

No hay ninguna configuración disponible, que yo sepa, que pueda limitar al usuario a un único ID de sesión.

No, tendrías que hacerlo tú mismo. No estoy seguro de cómo funciona su modelo de autenticación y sesión en este momento, pero en general el enfoque sería mantener una tabla de búsqueda persistente de ID de usuario para su ID de sesión, y gemir cuando hay una falta de coincidencia.

  

¿Es correcta esta recomendación?

Para algunos tipos de aplicaciones, se puede decir que tiene algún beneficio limitar los inicios de sesión de los usuarios, pero generalmente no se acepta como un requisito de referencia, ni siquiera necesariamente como la mejor práctica. Los marcos web no lo hacen de forma predeterminada y la mayoría ni siquiera le ofrece una opción directa para hacerlo.

Péselo: ¿podría ser legítimamente útil para un usuario iniciar sesión con dos navegadores, o dos dispositivos, o iniciar sesión sin haberse desconectado de una sesión anterior reciente? ¿O es el uso típicamente tan lineal que esto nunca sucederá y es más probable que sea evidencia de una intrusión? Para mí, personalmente, la molestia adicional del usuario generalmente supera el beneficio de seguridad marginal, pero dependerá de su modelo de uso.

La buena noticia es que se trata de una búsqueda de relleno de pentest clásica y, si te preocupas por las sesiones simultáneas, probablemente lo estés haciendo bien. :-)

    
respondido por el bobince 15.12.2013 - 04:02
fuente

Lea otras preguntas en las etiquetas