Otro navegador secreto de Google
(matan-h.com)- El navegador oculto dentro de Google Play Services se abre mediante enlaces de sitios web en la app Contacts y puede eludir las restricciones generales del control parental de Google y el lock-down mode
- La elusión es posible porque, incluso en lock-down mode, Google Play Services y la app Contacts del teléfono permanecen disponibles, y los deeplinks que abre Contacts no quedan bloqueados por el control parental
- Conduce a la pantalla “what’s new” de Android y, pasando por la ayuda de Google y páginas de Google, puede usarse como un navegador
- En Android 11+, el screen pinning también puede eludirse abriendo
https://podcasts.google.comdesde Contacts para mostrar una ventana emergente de Google Podcast y luego ir al navegador predeterminado - Google recibió por separado los reportes de elusión del control parental y de elusión de screen pinning, pero respondió que la elusión de screen pinning era intended behavior, y atribuyó el manejo como duplicado a un asunto de otro programa de recompensas
Navegador de Google Play Services que se abre con enlaces de Contacts
- Dentro de Google Play Services hay un navegador secreto accesible mediante un enlace, que puede abrirse desde el campo de sitio web de un contacto en la app Contacts
- El flujo de ejecución consiste en editar o crear un contacto en la app Contacts, ingresar
https://gds.google.com/gmsdropsen el campo “Website”, guardarlo y luego abrir el enlace - Este enlace es un deeplink que lleva a la pantalla “what’s new” de Android
- Al pasar por “Show me” y “Learn more”, se puede entrar a una pantalla de navegador
- Después, desde el menú de hamburguesa, al tocar “Google Help” y luego seleccionar “Google” en el menú, se puede ir a una página de Google
- Este navegador puede o no tener iniciada sesión con una cuenta de Google
- Aunque se cierre sesión en Google desde ahí, no afecta al navegador Chrome
- En lock-down mode, Google bloquea apps, incluido el launcher de Android y partes del sistema, pero deja disponibles Google Play Services, que se usa para mostrar ventanas emergentes y aplicar restricciones, y la app Contacts del teléfono
- El control parental no permite abrir deeplinks, pero cuando se hace clic en el campo de sitio web de un contacto, la app Contacts abre el enlace, por lo que no se bloquea
Elusión de Android screen pinning y respuesta de Google
- Android screen pinning es una función de Android 11+ que fija la pantalla a una app específica para impedir que se cambie a otra app sin autorización
- El mismo enlace
gmsdropsno puede usarse porque, en estado de screen pinning, intenta abrir una nueva app - En cambio, el deeplink de Google Podcast se abre como una ventana emergente, no como una app completa
- Si se ingresa
https://podcasts.google.comen el campo de sitio web de la app Contacts y se abre el enlace con la app fijada, aparece una ventana emergente de Google Podcast - Desde el ícono de la cuenta de Google, al tocar “Content policies”, se puede ir al navegador predeterminado
- Luego, pasando por Google Help y el menú de Google, se puede llegar a una página de Google
- Si se ingresa
- Se reportaron dos casos por separado a Google
- Caso de elusión del control parental
- Caso de elusión de Android screen pinning
- Google fusionó el caso de elusión del control parental con el caso de elusión de screen pinning, y después el manejo de los casos duplicados quedó en un estado confuso
- La respuesta de Google sobre la elusión de screen pinning fue: “Android screen pinning bypassing is the intended behavior”
- Sobre el manejo como duplicado, se cerró como duplicado de “potentially another issue”, y hubo una respuesta en el sentido de que no era problema de ellos porque correspondía a otro programa de recompensas
1 comentarios
Comentarios de Hacker News
Si eres el equipo que recibe reportes de vulnerabilidades de seguridad, no deberías decir “eso le corresponde a otro equipo interno, pregúntales a ellos”
En realidad, casi cualquiera dentro de la organización que reciba un reporte de vulnerabilidad plausible debería asegurarse de que llegue a la persona correcta, no simplemente pasarlo por alto
Aun así, visto desde otro ángulo, el trabajo de soporte, ya sea para clientes externos o partes interesadas internas, se parece a pasarse una bomba: pierde la primera persona que no logra pasársela a otra
Sería bueno que todos asumieran resolver la queja del cliente sin importar quién tenga realmente la autoridad o la responsabilidad, pero en la práctica mucha gente actúa como bajo una interpretación ética de Copenhague
Incluso escalarlo a la persona responsable ya es riesgoso, y si te involucras más de la cuenta puedes terminar atrapado en el problema y cargando con la responsabilidad aunque en realidad no tenga mucho que ver contigo
A esto se le puede llamar un problema principal-agente, o “sobrevivir en un mundo donde el solicitante anda cazando a alguien que responda a su solicitud”
Antes intentaba atender todas las solicitudes internas que tuvieran aunque fuera una mínima relación con mi trabajo, pero mi jefe directo me dijo que para cualquier ayuda que tomara más de un minuto debía pedir un ID de proyecto o un código de cargo. Si no, terminaba sin poder hacer el trabajo por el que sí me pagaban
Eso de “no conozco los datos de contacto de otro departamento dentro de Google” o “no conozco el correo de nadie de otro equipo de Google” hace pensar: ¿qué demonios está pasando?
Sí es un defecto de diseño en una función añadida al OS, pero otra cosa es si realmente amerita una investigación a gran escala
No parece que hayan dicho algo como “ni siquiera pensamos verlo”
En mi empresa tampoco tendría claro qué hacer
Cuando era niño, en los lobbies de instituciones como bancos había terminales con computadoras que tenían un navegador especial que solo abría el sitio web de la empresa, y en esa época también eran comunes las insignias de Best Viewed In
Cuando acompañaba a mis padres a hacer un trámite, buscaba una de esas computadoras y hacía clic en páginas como Help hasta encontrar esa insignia; entonces podía saltarme la restricción del navegador de sitio único y salir a lugares como netscape.com
Desde ahí buscaba un enlace a un motor de búsqueda y podía navegar por donde quisiera
Así que abría el administrador de tareas con CTRL+ALT+DEL y mataba el software de demostración
Los demos más persistentes se volvían a ejecutar de inmediato, así que abría msconfig, los quitaba del inicio y reiniciaba
La gente que estaba al lado se sorprendía y me pedía que hiciera lo mismo en su PC, y entonces ellos también podían probar Buscaminas o Pinball
Ahora suena amateur, pero a mediados de los 90 usar CTRL+ALT+DEL era una especie de herramienta de poder que solo conocían los más curtidos
Si en MS Word elegías abrir una URL y escribías un motor de búsqueda o el sitio que querías, se abría el navegador y podías saltarte el filtro web
Esos servidores normalmente mostraban el motd con more y luego te mandaban a software como lynx, pero no usaban restricted mode, así que podías escribir
!shy abrir un shellQué buenos tiempos
Como se podía abrir el correo por web, me enviaba por correo un enlace a un motor de búsqueda y luego hacía clic derecho en el email para abrirlo en el mismo frame
Después de eso ya podía ir a cualquier sitio que encontrara desde los resultados de búsqueda
Sí tengo experiencia esquivando restricciones en la preparatoria en los 2000, así que estaría bueno que alguien que pase por aquí lo explicara con más detalle
Las funciones de control parental de Google dejan muchísimo que desear
Desde hace mucho se pide poder desactivar apps de Play Store, pero todavía sigue siendo imposible sin
adb, yadbtrae otros problemas, así que no es una buena soluciónDa la impresión de que no ponen a niños reales a probar las funciones de control parental
Durante un tiempo, aunque se pusiera un límite de tiempo a YouTube, bastaba con abrir Play Store, ir a una app que tuviera videos en la lista de capturas de pantalla, y desde ahí saltar a YouTube para esquivarlo con mucha facilidad
Mi hijo lo descubrió y me lo enseñó
Escribí un documento de cinco páginas ordenando este problema, pero no hay a quién enviárselo
Mi mayor queja aparece cuando tienes dos hijos que ya no son pequeños y varios dispositivos de Google, es decir, teléfonos, tablets, Google TV y una PC con sesión iniciada en una cuenta de Google
Parece que Google asume el control parental como una situación supervisada de “los padres le entregan físicamente el teléfono a Billy y luego lo recuperan cuando termina”
En esencia, está hecho a nivel de dispositivo y no de cuenta, así que es incómodo y fácil de eludir
Por ejemplo, si Jill puede acceder con su cuenta a tres Google TV en casa, Family Link hace que configures por separado cuántas horas al día se permiten en cada TV
Pero para Jill una TV es solo una TV, así que si está sola en casa, simplemente agota la cuota de la primera y se pasa a la siguiente
No tengo pruebas, pero da la impresión de que distintos equipos de producto ni colaboran estrechamente en la práctica, o incluso reciben incentivos para no hacerlo, y puede que estos equipos sean callejones sin salida dentro de Google
Da la impresión de que quienes llegan al equipo de Family Link desde producto o ingeniería no tienen hijos reales o son demasiado pequeños, y si los tienen, quizá solo tengan un niño pequeño
En el momento en que obtiene permisos de accesibilidad, una app puede controlar por completo el dispositivo del usuario
Habrían podido dividir los permisos y exponer APIs de control más granulares, pero parece diseñado en torno al caso extremadamente particular de usuarios con ceguera total que necesitan usar una app de accesibilidad como interfaz para toda interacción
Como resultado, aunque solo quieras usar una sola capacidad de esa API, tienes que confiar plenamente en la app y darle un cheque en blanco para hacer cualquier cosa en el dispositivo
Al final, solo porque “este es el único escenario de uso que imaginamos y no transigimos con otros usos”, se abre un agujero enorme en la seguridad de la plataforma
A menos que encierres a tu hijo en el sótano para aislarlo por completo de su grupo de pares, técnicamente es casi imposible ganarle a un niño con un mínimo de interés
Esta función trabaja mejor como un límite suave: algo que, si se evade, convierta el acto en una desobediencia clara e inequívoca
Al final es control parental, no seguridad para detener a la NSA, y hacerlo técnicamente perfecto podría incluso ser peor para todos
Es una función que está ahí para que el consumidor sienta que está más seguro, pero cuando intentas usarla de verdad, enseguida terminas abandonándola
Un ejemplo pequeño: en Screen Time de iOS puedes restringir los sitios web a una lista permitida, y suena útil, pero si haces eso se rompen por montones cosas como las pantallas de inicio de sesión de varias apps
Y tampoco te da pistas sobre qué URL debes permitir para arreglarlo
A veces, usando tecnología moderna, piensas “esto es demasiado complejo y está demasiado roto como para que haya muchos usuarios reales”, y el control parental da exactamente esa sensación
Al final no es más que un sustituto de los padres
O te interesas por tu hijo y sabes qué está haciendo, o no
Si crees que tu hijo es vulnerable a algo en la web, probablemente lo correcto sea no darle un teléfono desde el principio
Si ya tiene la edad suficiente para entender, lo que necesita no es software de control parental sino padres, y si eres un buen padre, no necesitas control parental en las apps de tu hijo
El control parental también bloquea la instalación de apps desde otras fuentes, y prefiero la app de F-Droid antes que la app de Play Store
Por último, esta función enseña, entrena y refuerza la ilusión de que estamos controlados por alguna empresa de software y “protegidos del peligro”
Esto es un truco de hackeo como el de saltar la pantalla de inicio de sesión de Windows 98
https://i.imgur.com/BULPmCI.gif
Sinceramente, no esperaba que Google pudiera ser tan malo en diseño de sistemas como Microsoft Windows 98
Hasta un usuario común puede seguir los pasos
Una gran parte de la seguridad parece consistir en minimizar la superficie de ataque para reducir las cosas en las que hay que pensar
Cuesta entender por qué un cuadro de diálogo de inicio de sesión debería poder imprimir tooltips
En el momento en que entra la impresión, entran también todo tipo de elementos inseguros de terceros
Incluso si se permitiera imprimir tooltips o ayuda, debería haber existido un contexto de seguridad donde esas funciones quedaran desactivadas
Con los PDF pasa algo parecido: el 99% de las funciones arbitrarias, como modelos 3D o scripting, se han usado para exploits de seguridad
Lo mejor es mantener lo básico simple y evitar ese tipo de funciones
Me hace pensar en este meme clásico: https://imgur.com/BULPmCI?r
Una vez usé una técnica parecida a la del post original para hacer un bypass de FRP en un Pixel 2 que compré usado en Craigslist
También pienso que, cuando era niño, de puro aburrimiento me quedé viendo esta pantalla durante horas y al final logré entrar; ese momento de primera “sensación de hackeo” quizá terminó marcando la dirección de toda mi vida
Me hizo recordar mi primer “hackeo” y esas experiencias de meter mano dentro de sistemas informáticos, algo que terminó llevándome a una carrera en IT e ingeniería
Arruiné la computadora familiar con un troyano mientras pirateaba Halo PC, y tuve que averiguar cómo arreglarla antes de que mi papá llegara a casa
También tuve que aprender a saltarme controles parentales tipo NetNanny cuando mis padres los instalaron de repente en nuestra computadora personal. Para entonces ya llevaba años usando Internet, y quizás Comcast hasta mandó una carta por la piratería tan mal hecha de arriba
En el proceso de dejar una netbook otra vez en un estado usable sin dejar rastro de las modificaciones, conocí Linux Live CD y Linux
Me alegra ver que los hackers del mañana todavía reciben ese tipo de educación
Buscando un enlace dentro de otro enlace dentro de otro enlace que permitiera hacer conexiones telnet arbitrarias, intentaba saltarme las restricciones con las que querían limitar su servicio de acceso telefónico gratuito solo a sus propios servicios
Por ejemplo, para jugar Nethack en el servidor público de tamu.edu, aunque ya no recuerdo el nombre de dominio exacto
Fue toda una clásica
También hay una publicación anterior relacionada
Google has a secret browser hidden inside the settings - https://news.ycombinator.com/item?id=36478206 - junio de 2023, 312 comentarios
Leí que Google Play Services incluso podría otorgarse nuevos permisos a sí mismo[1]
¿Cómo es posible eso? ¿Tiene privilegios de root?
[1]https://developers.google.com/android/guides/permissions
Pero la lista de permisos a los que esas apps pueden acceder es tan amplia que, si un desarrollador define suficientes, en la práctica puede usarlas casi como root
No usa
rootliteralmente, pero se confía ciegamente en él y puede hacer cosas como instalar apps sin confirmación del usuarioComo se trató en otra entrada de blog sobre GMS, el puente de JS puede ejecutarse dentro de un contexto privilegiado
Al aceptar la política de privacidad de Google al instalar Android, de cierta forma aceptaste esto también
Por ejemplo, eso se puede hacer en GrapheneOS
Ya puede instalar y desinstalar apps sin permiso del usuario
Antes ya hubo problemas por esto, pero no pasó lo suficiente como para generar más consecuencias
Parece que GrapheneOS, que usa Play Services aislado en sandbox, no está afectado
La app Phone no parece poder ver ni abrir URLs web de los contactos, y la app Contacts tampoco logra abrir las dos URLs mencionadas en la publicación cuando está en modo fijo
Si te interesa la discusión anterior de 2023, está aquí, 312 comentarios
https://news.ycombinator.com/item?id=36478206