Hace unos años (un poco más de tres para ser exactos), mencioné lo que considero un problema de seguridad bastante obvio (y serio) con la Plataforma Universal de Windows (UWP) : la capacidad de usar su WebAuthenticationBroker para credenciales de phish de una aplicación UWP.
Recientemente traje este problema y se ha confirmado que sigue siendo un problema en UWP . Consideraría esto como un problema de seguridad que alguien podría explotar a través de un ataque de phishing, así que en lugar de continuar la discusión, lo traigo aquí para comprender mejor mi percepción sobre él.
Ahora no soy un experto en seguridad, pero me encanta aprender sobre eso y siempre tengo mis ojos y oídos abiertos para escenarios exactamente como este. Estoy agradecido por haber averiguado sobre este sitio, por lo que estoy publicando esta pregunta aquí ahora. Si hubiera sabido sobre este sitio en diciembre de 2012 cuando publiqué esta pregunta originalmente, habría publicado mi pregunta original aquí en lugar de en los foros de MSDN (donde, en mi opinión, se ignoró y no se tomó muy en serio). / p>
Dicho esto, mi comprensión de cómo explotar este proceso es la siguiente:
- Cree una página de inicio de sesión que se vea exactamente como la página de inicio de sesión de Google o Facebook (o el proveedor de servicios de autenticación de su elección). Para empezar, crearía esto yendo a la página de inicio de sesión del proveedor de destino, guardando la fuente del archivo y usándolo como punto de partida.
- Modifique el archivo creado en el paso anterior para que tome la entrada del usuario y lo pase al proveedor del servicio de autenticación real. Tenga en cuenta cuándo pasan las credenciales y cuándo fallan.
- Encuentre un servidor para alojar el archivo anterior, implemente el (los) archivo (s) (quizás varios archivos, ya que podría involucrar la magia del lado del servidor) en este host y obtenga la URL en la ubicación implementada que carga este archivo.
- Cree una aplicación UWP que permita al usuario iniciar sesión en un proveedor de credenciales compatible a través de WebAuthenticationBroker. En la llamada a WebAuthenticationBroker.AuthenticateAsync , ingrese la URL de la ubicación desplegada en el paso anterior.
- Implementar la aplicación en la Tienda Windows. Haga que los usuarios lo descarguen y lo utilicen (¿qué es exactamente? Ahí es donde entra su creatividad ).
- Haga que el usuario inicie sesión en su página (pensando que es una ubicación de credencial legítima, la que está personificando). Ya que se ha confirmado que UWP y WebAuthenticationBroker no muestran la URL / dominio al que el usuario está iniciando , puede estar en cualquier lugar que esté bajo su control y el usuario no sabrá.
- Valide las credenciales con el proveedor de autenticación real. Si funciona, pase al usuario a la página de inicio de sesión real (o mejor aún, simplemente configure las cookies en la sesión del usuario para que parezca que todo está bien).
- Una vez que haya obtenido las credenciales validadas, almacene las credenciales para un momento posterior, o utilícelas para propósitos nefarios inmediatamente.
- Gobierna el planeta Tierra con tus nuevos poderes (OK, lo inventé).
En primer lugar, me gustaría verificar con certeza que mi comprensión sobre el proceso anterior es precisa (no obstante, el último paso, por supuesto, ¿o no?). ¿Hay algo de lo que no tengo en cuenta que hace que esto no sea un problema?
Si entiendo esto correctamente, parece que este es un posible problema de seguridad con UWP y que no se ha solucionado durante más de tres años. La guía proporcionada por MSFT CSG es abrir un voto de UserVoice para este problema. Sin embargo, me parece que un problema de seguridad es uno que arregla y no uno que vota para resolver.
Así que mi pregunta es: ¿Es esta una preocupación legítima? ¿O estoy haciendo una gran cosa sobre nada aquí? ¿O hay algo que haya malinterpretado por completo (bastante posible) que hace que esto no sea un problema?
Gracias de antemano por cualquier ayuda y / o aclaración a mi entender sobre este tema y sobre la seguridad en general.