¿Cómo protegería a un usuario contra un cliente malicioso?

0

Dado en OAuth 2.0 o en alguna otra aplicación web o incluso en el servidor de API REST. ¿Cómo protegería a los usuarios de utilizar un cliente malicioso o un navegador comprometido?

Para OAuth, el secreto del cliente se puede colocar en una aplicación existente y extraer Riesgo de mantener OAuth2 client_secret en la aplicación

Incluso con el uso de redirect_uri, el cliente malintencionado puede simplemente tomarlo y redirigirlo a su propio sitio.

Con una aplicación web normal, un token XSRF aún se genera en el servidor y se pasa al cliente y el usuario aún puede ingresar sus credenciales.

Un cliente comprometido también puede ignorar las comprobaciones de CORS y enviar lo que quiera como el encabezado Origin .

Me inclino hacia que la única prevención es avisar a los usuarios que se aseguren de obtener sus clientes / aplicaciones / navegadores de fuentes confiables y no es algo que se pueda abordar técnicamente.

    
pregunta Archimedes Trajano 05.12.2017 - 21:15
fuente

1 respuesta

2

No estoy seguro de que haya una buena respuesta a esta pregunta.

  

Dado en OAuth 2.0 o en alguna otra aplicación web o incluso en el servidor de API REST. ¿Cómo protegería a los usuarios de utilizar un cliente malicioso o un navegador comprometido?

La pregunta habitual aquí es "¿Cómo protejo al servidor / a otros usuarios de un cliente comprometido?". Esa es una pregunta difícil, pero hay respuestas a través del diseño de la aplicación teniendo en cuenta a los usuarios malintencionados.

Tu pregunta es diferente. Si entiendo su pregunta correctamente, su usuario ha dado voluntariamente sus credenciales de cuenta (en cualquier forma que sean, nombre de usuario / pase, token OAuth2, wtv).

Escenario de ejemplo: consideremos que "cliente malicioso" es una versión de Firefox para la que modifiqué la fuente, que formé un binario y que instalé a su usuario. Hay algo de código para disparar una vez que el usuario inicia sesión en facebook.com . Una vez que el usuario inicia sesión en Facebook, el atacante ahora se ha convertido en la víctima en lo que respecta a los servidores de Facebook. Además, el atacante ahora controla lo que se envía al servidor y lo que se muestra al usuario. Eso es poder infinito.

Law # 1 parece aplicarse:

  

Ley n.º 1: si un malvado puede persuadirte de que ejecutes su programa en tu computadora, ya no es solo tu computadora.

Estoy de acuerdo contigo; aparte de capacitar a los usuarios para que no instalen software incompleto, no hay mucho que pueda hacer para protegerlos.

La buena noticia es que para una aplicación bien desarrollada, el usuario comprometido solo se está haciendo daño a sí mismo, el resto de la base de usuarios no se ve comprometido, pero eso está fuera del alcance de su pregunta.

    
respondido por el Mike Ounsworth 05.12.2017 - 21:56
fuente

Lea otras preguntas en las etiquetas