- En el popup Manage my account de Android se abre una pantalla desde la que se puede navegar a sitios web normales, y también se puede acceder desde Settings y el conjunto de apps de Google
- La ruta de acceso pasa por la pestaña Security de la administración de la cuenta de Google, Password Manager, la ayuda de cifrado en el dispositivo, la política de privacidad y el menú Search, en ese orden
- Esta pantalla incluso permite reproducir YouTube, pero no tiene historial de navegación ni barra de direcciones, y al volver atrás regresa a la pantalla de configuración en lugar del historial web
- En la consola de JavaScript aparecen el objeto
mmy las funcionescloseView(),requestSecurityKeyHandshake()yupdateSecurityKey(), aunque no se ha confirmado el uso real de algunas de ellas - Google respondió al principio que no era una vulnerabilidad de seguridad y que la evasión del control parental también era un comportamiento intencional, pero 3 días después de la publicación y la cobertura en medios informó que volvería a revisar el reporte
El navegador oculto que se abre dentro de la configuración de Android
- Varias apps de Android tienen el popup Manage my account, y se puede acceder a él también desde apps principales como Settings y el conjunto de apps de Google
- Tras pasar por varios pasos, el interior del popup funciona como un navegador capaz de ir a sitios web normales
- Settings → Google o, en una app donde se pueda elegir cuenta, seleccionar “Manage my account”
- En la pestaña “Security”, seleccionar “Password Manager”
- Seleccionar el ícono
Settingsen la esquina superior derecha - Seleccionar “Set up on-device encryption” → “Learn more about on-device encryption”
- En el menú hamburguesa, ir a “Privacy Policy”
- Pulsar el menú de nueve puntos de la parte superior, esperar unos 5 segundos y luego seleccionar “Search”, o ir a la opción
Google - Si se cierra sesión en la cuenta de Google, se puede usar como un navegador capaz de ir a donde se quiera
- En este estado incluso es posible reproducir videos de YouTube, y la pantalla se abre dentro de la app Settings o de la app desde la que se entró originalmente
-
Diferencias frente a un navegador normal
- No deja historial de navegación
- Al terminar la sesión, cierra automáticamente la sesión de la cuenta de Google conectada
- No tiene barra de direcciones
- Al pulsar la tecla de retroceso, no vuelve a la página web anterior sino a la configuración de Password Manager
El objeto JavaScript mm y la respuesta de Google
- En una consola móvil de JavaScript como eruda se puede ver un objeto JavaScript llamado
mm - El objeto
mmtiene tres funcionescloseView(): cierra el navegador y funciona de manera similar a cuando se pulsa la tecla de retrocesorequestSecurityKeyHandshake(): su función no se ha confirmado, pero por el nombre parece una función sensibleupdateSecurityKey(): su función no se ha confirmado, pero por el nombre parece una función sensible
- Como este navegador se abre desde la ruta de la función on-device encryption, la posibilidad de que las dos funciones no verificadas estén relacionadas con la configuración de claves de cifrado locales sigue siendo solo una especulación
- Google respondió al reporte inicial que no era una vulnerabilidad de seguridad y que la evasión del control parental era “Intended Behavior”
- Después de la publicación del artículo, varios medios en inglés y ruso, entre otros, cubrieron el tema, y 3 días después de la publicación Google informó que volvería a revisar ese reporte
- Hay una discusión relacionada en Hacker News discussion
2 comentarios
Cuando entrabas al administrador de contraseñas, se sentía como si todo respondiera con un pequeño retraso... quizá no era solo mi imaginación.
Comentarios de Hacker News
Investigué un poco y, al pulsar "Manage my account", no se queda dentro de la app de Configuración, sino que abre una Activity embebida dentro de Google Play Services
Al final, el navegador era
com.google.android.gms/.auth.folsom.ui.GenericActivity, y no parecía usar Chrome, que es la implementación predeterminada de WebView del sistema en mi teléfonoAndroid puede crear una interfaz entre código Android y código JavaScript con
addJavascriptInterface, y parece que GMS usa bastante eso, así que se ve como una superficie de ataque que valdría la pena revisar despuésLa interfaz sospechosa
mmestá dentro deMagicArchChallengeViewy enlazada a la clase ofuscadabwuz.bwuzen sí está casi vacía, pero vuelve a enlazar con algunas clases ofuscadas másSi buscas por cadenas, las clases
"qvc"y"pdn"exponen funciones relacionadas, ypdnparece ser la pieza clave, mientras queqvctiene logs de error útiles que revelan qué es cada parámetrosetVaultSharedKeysespera un arreglo de objetos JSON con los valoresgaiaId,epochykey, lo convierte en una lista y se lo pasa a una clase abstracta que parece estar profundamente relacionada con la seguridad de la cuentaaddEncryptionRecoveryMethodesperagaiaId, una lista de dominios de seguridad y una clave pública de miembro, y también se lo pasa a la misma clase abstractaAquí me detuve porque tenía que irme a trabajar, pero parece que valdría la pena investigar más no solo esta interfaz, sino también otras interfaces que GMS expone al WebView
https://developer.android.com/reference/android/webkit/WebVi...
Incluso si fuera Blink, parecería poco probable que estuviera tan actualizado como lo que entrega Chrome. Viendo el enlace de la documentación, parece que sí es WebKit
https://2021.stateofthebrowser.com/speakers/alex-russell/
gaiaIdsignifique Google Accounts and ID Administration ID... quien le puso ese nombre a lo que en la práctica es el identificador global único de Google seguro se sintió bastante orgulloso, y con razónNo veo qué tiene esto de diferente frente a cualquier otro WebView embebido. ¿No mete casi cualquier app un WebView embebido para cosas como "ver la política de privacidad"?
Muchas veces mostrar HTML es muchísimo más fácil que entregarle toda la política de privacidad al desarrollador de la app
Según recuerdo, también era bastante difícil configurar un WebView que permitiera varios dominios o URL. No soy desarrollador Android y la última vez que toqué eso fue hace años
Lo de la gestión de claves sigue siendo bastante especulativo, y el autor no probó realmente qué hacen, así que por ahora estamos en el nivel de “hay dos métodos que no sé qué hacen, pero se ven aterradores”
Esto se parece un poco a cuando uno accedía a internet desde un archivo de ayuda CHM cuando el navegador estaba bloqueado
Maldición, ya se me nota la edad
Es exactamente igual a cómo de niño me saltaba la app de control parental de Windows
Solo tenía una hora de uso de la computadora y, al acabarse el tiempo, cerraba todas las apps excepto las de Microsoft Office porque se consideraban de productividad
Picándole a todo, de alguna manera logré abrir un navegador dentro de Outlook y jugar juegos Flash en Miniclip
Cambiábamos el navegador predeterminado a Terminal, luego abríamos Word, creábamos un enlace y le dábamos clic. Normalmente, el Terminal abierto de forma normal estaba restringido, por ejemplo fallaba al intentar lanzar otras apps, pero la instancia de Terminal abierta de esta manera tenía más permisos, así que con
open /path/to/your/apppodías lanzar cosas como juegos desde un disco que hubieras insertadoCuando el maestro que vigilaba el estudio llegó y preguntó si se nos permitía jugar Starcraft, le respondí: “Como usted sabe, estas computadoras están bastante bloqueadas, así que si podemos jugar este juego, supongo que la escuela lo permitió”. Todavía no puedo creer que eso funcionara
Si un niño puede descubrir este hack y entrar a sitios bloqueados, diría que se ganó ese derecho
Había un bypass parecido en la página de licencias de
aboutSi seguías un enlace hasta una licencia, aparecía un navegador. Útil para abrir un navegador en cosas como unidades principales de autos o bicicletas Peloton
Parece un listado de todos los archivos dentro del sistema de archivos
La experiencia de esta persona reportando un bug a Google me recordó a la mía
Yo: hay un bug en Google Sheets donde contenido eliminado queda expuesto a terceros
Google: no es un bug. Funciona como fue diseñado. Cerramos el caso
Yo: ¿en serio? Yo sufrí un perjuicio real usando esta aplicación
Google: en realidad sí es un bug, pero como es un problema conocido desde hace mucho no califica para bug bounty. Cerramos el caso
Yo: hay un bug en Gmail que permite que un correo falsificado oculte un fallo de DKIM y parezca legítimo
Google: "Won't fix (Intended Behavior)"
Yo: ¿de verdad Google pretende que en la interfaz un correo falsificado se vea como normal?
Google: en realidad es un problema conocido
Encima, los primeros artículos intentaron vincular esa vulnerabilidad con hackeos de China/Rusia. Esa propaganda deberían devolvérsela al propio Google. Google es una empresa estadounidense y dejó la puerta trasera completamente abierta para que cualquiera la explotara, tanto del extranjero como dentro del país. De hecho, ambos la explotaron
Google tiene un problema real. No sé qué pasó desde 2019, pero no pinta bien
Yo: hay un bug en Google Play Services
Google: no es un bug. Funciona como fue diseñado. Cerramos el caso
Yo: publiqué el bug en mi blog y salió bastante en la prensa
Google: ¡parece que estábamos equivocados! Sí es un bug. Nos pondremos en contacto otra vez en unas semanas
Hoy me enteré de que existe una consola de JavaScript móvil
https://eruda.liriliri.io/
Puedes abrir las herramientas de desarrollador desde otra computadora y toda la información se sincroniza por WebSocket. La usé una vez para depurar un problema en el equipo de un cliente
data:text/html,, pero esto es sorprendentemente completoYo hacía algo parecido en el lobby mientras mis padres hacían trámites bancarios
En esa época la etiqueta best viewed in Netscape Navigator era una mina de oro. El flujo era casi igual: ibas presionando hasta que aparecía una de esas etiquetas y desde ahí saltabas a un motor de búsqueda
Después entré a un sitio de streaming lleno de adware sospechoso y, en cuanto cambié a otro video, toda la computadora del Tesla se congeló y tuve que hacer un reinicio forzado del auto
Me recordó a versiones antiguas de Windows. Al presionar F1 podías disparar varios comandos de ejecución a través de Windows Help
explorer.exey elegir Run”