2 puntos por GN⁺ 2024-02-03 | 1 comentarios | Compartir por WhatsApp
  • 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.com desde 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/gmsdrops en 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 gmsdrops no 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.com en 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
  • 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

 
GN⁺ 2024-02-03
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

    • Parece bastante probable que la respuesta de “otro equipo interno” se refería más al lado del bug bounty que a la vulnerabilidad en sí
      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
    • Google es el rey del “no es mi departamento
      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?
    • Esto no parece una vulnerabilidad en el sentido de que lleve a comprometer el sistema
      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
    • Lo de “pregúntales a ellos” que dijeron era sobre por qué decidieron cerrar el issue, y también implica que alguien ya lo revisó
      No parece que hayan dicho algo como “ni siquiera pensamos verlo”
    • Para empezar, ni siquiera sé cómo encontrar a la persona responsable correcta
      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

    • Me recuerda a las PCs de exhibición en tiendas como Sears o CompUSA, que solo mostraban software de demostración y no te dejaban hacer lo que uno realmente hace al comprar una PC: usarla de verdad
      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
    • Recuerdo haber evadido el filtro web en las computadoras de la preparatoria
      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
    • Antes solía conectarme por telnet desde la biblioteca a varios hosts edu
      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 !sh y abrir un shell
      Qué buenos tiempos
    • En la universidad, las computadoras del gimnasio también tenían una restricción así
      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
    • No tengo muy claro qué era una insignia de “Best Viewed In” ni cómo eso permitía saltarse la restricción
      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, y adb trae otros problemas, así que no es una buena solución
    Da 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ñó

    • El control parental de Google en la práctica se parece más a software abandonado, funciona torpemente y tampoco se integra bien con otros productos y servicios como Google Home o Google TV
      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
    • Creo que eso de “da la impresión de que no ponen a niños reales a probar las funciones de control parental” también aplica tal cual a los servicios de accesibilidad
      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
    • El control parental es una cosa extraña
      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
    • Creo que en realidad no hay mucha gente que use de verdad las funciones de control parental en Android o iOS
      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
    • Antes usaba control parental, pero ya lo dejé
      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

    • Es un gran exploit porque no hace falta saber cosas crípticas como desbordamientos de búfer
      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
    • Esto no sirve para saltarse la pantalla de bloqueo
  • Me hace pensar en este meme clásico: https://imgur.com/BULPmCI?r

    • Pensé exactamente en eso
      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

    • Similarmente, recuerdo haber explorado durante bastante tiempo la página Gopher de National Capital Feenet's](https://www.ncf.ca/en/)'s)
      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
    • Saltarme NetNanny definitivamente mejoró mis habilidades con las computadoras
      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

    • No es root, pero como es una app de sistema privilegiada, puede hacer prácticamente un montón de cosas que una app instalada no puede hacer sin root
    • Las apps de sistema o del proveedor también tienen que definir de antemano sus permisos en el manifest, así que no todas las apps de sistema pueden hacer cualquier cosa
      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 root literalmente, pero se confía ciegamente en él y puede hacer cosas como instalar apps sin confirmación del usuario
      Como 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 suerte es posible instalarlo no como app privilegiada sino dentro del sandbox
      Por ejemplo, eso se puede hacer en GrapheneOS
    • A esto sí corresponde llamarlo una puerta trasera
      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