Outro navegador secreto do Google
(matan-h.com)- Um navegador oculto dentro do Google Play Services pode ser aberto por links de sites no app Contatos e permite contornar as restrições comuns do controle parental do Google e o lock-down mode
- A possibilidade de bypass existe porque, mesmo no lock-down mode, o Google Play Services e o app Contatos do telefone permanecem disponíveis, e os deeplinks abertos pelo Contatos não são bloqueados pelo controle parental
- Leva à tela “what’s new” do Android e pode ser usado como um navegador passando pela Ajuda do Google e por páginas do Google
- O screen pinning do Android 11+ também pode ser contornado abrindo um pop-up do Google Podcast pelo app Contatos e depois indo para o navegador padrão
- O Google recebeu os relatos de bypass do controle parental e de bypass do screen pinning como casos separados, mas respondeu que o bypass do screen pinning é intended behavior e atribuiu o tratamento como duplicado a uma questão de outro programa de recompensas
Navegador do Google Play Services aberto por links do Contatos
- Dentro do Google Play Services há um navegador secreto acessível por link, que pode ser aberto pelo campo de site de um contato no app Contatos
- O fluxo de execução consiste em editar ou criar um contato no app Contatos, inserir
https://gds.google.com/gmsdropsno campo “Website”, salvar e então abrir o link - Esse link é um deeplink que leva à tela “what’s new” do Android
- Ao passar por “Show me” e “Learn more”, é possível entrar em uma tela de navegador
- Depois, pelo menu hambúrguer, ao tocar em “Google Help” e, novamente no menu, selecionar “Google”, é possível ir para uma página do Google
- Esse navegador pode ou não estar logado em uma conta Google
- Fazer logout do Google nele não afeta o navegador Chrome
- No lock-down mode, o Google bloqueia apps, incluindo o launcher do Android e partes do sistema, mas mantém disponíveis o Google Play Services, usado para exibir pop-ups e aplicar restrições, e o app Contatos do telefone
- O controle parental não permite abrir deeplinks, mas, ao clicar no campo de site de um contato, quem abre o link é o app Contatos, então ele não é bloqueado
Bypass do screen pinning do Android e resposta do Google
- Android screen pinning é um recurso do Android 11+ que fixa a tela em um app específico, impedindo a mudança para outros apps sem permissão
- O mesmo link
gmsdropsnão pode ser usado em estado de screen pinning, porque ele abre um novo app - Em vez disso, o deeplink do Google Podcast é aberto como uma janela pop-up, não como um app completo
- Ao inserir
https://podcasts.google.comno campo de site do app Contatos e abrir o link enquanto o app está fixado, aparece uma janela pop-up do Google Podcast - Ao tocar em “Content policies” no ícone da conta Google, é possível ir para o navegador padrão
- Depois, passando pela Ajuda do Google e pelo menu do Google, é possível ir para uma página do Google
- Ao inserir
- Dois casos foram reportados separadamente ao Google
- Caso de bypass do controle parental
- Caso de bypass do Android screen pinning
- O Google mesclou o caso de bypass do controle parental ao caso de bypass do screen pinning, e depois o tratamento do caso duplicado ficou confuso
- A resposta do Google sobre o bypass do screen pinning foi: “Android screen pinning bypassing is the intended behavior”
- Sobre o tratamento como duplicado, o caso foi fechado como duplicado de “potentially another issue”, com uma resposta no sentido de que, por se tratar de outro programa de recompensas, não era problema deles
1 comentários
Opiniões no Hacker News
Se você é uma equipe que recebe relatos de vulnerabilidades de segurança, não deve dizer “isso é assunto de outra equipe interna, pergunte a eles”
Na verdade, se praticamente qualquer pessoa dentro da organização recebeu um relato plausível de vulnerabilidade, deveria encaminhá-lo à pessoa apropriada; não é algo para simplesmente deixar passar
Ainda assim, olhando pelo outro lado, trabalho de suporte — seja para clientes externos ou stakeholders internos — parece um jogo de passar a bomba: a primeira pessoa que não consegue repassar se queima
Seria bom se todos assumissem a resolução das reclamações dos clientes, independentemente de quem tem autoridade ou responsabilidade real, mas na prática muita gente age como na interpretação ética de Copenhague
Até encaminhar ao responsável é arriscado; se você se envolver mais do que isso, acaba ligado ao problema e responsabilizado, independentemente da sua relação real com ele
Dá para chamar isso de problema principal-agente, ou de “sobreviver em um mundo em que o solicitante caça alguém que atenda ao seu pedido”
Antigamente eu tentava atender qualquer solicitação interna que tivesse alguma relação com meu trabalho, mas meu gerente direto disse para pedir um ID de projeto ou código de cobrança para qualquer ajuda que levasse mais de 1 minuto. O motivo era que, caso contrário, eu deixaria de fazer o trabalho pelo qual de fato estavam pagando
“Não sei o contato de outro departamento dentro do Google”, “não sei o e-mail de ninguém de outra equipe do Google” — dá vontade de perguntar o que eles estão fazendo, afinal
É verdade que é uma falha de design em um recurso adicionado ao OS, mas é outra questão se isso exige necessariamente uma investigação em grande escala
Não parece que tenham dito algo como “não vamos nem olhar”
Mesmo na minha empresa, não tenho ideia do que fazer
Quando eu era criança, em saguões de instituições como bancos havia terminais de computador com navegadores especiais instalados que só abriam o site da própria empresa, e naquela época os selos Best Viewed In também eram comuns
Quando eu acompanhava meus pais em alguma tarefa, procurava esses computadores e clicava em lugares como a página de Help até encontrar esse selo; então conseguia contornar a restrição do navegador de site único e sair para algo como netscape.com
A partir dali, eu encontrava links para mecanismos de busca e navegava pelo que quisesse
Então eu abria o Gerenciador de Tarefas com CTRL+ALT+DEL e matava o software de demonstração
As demos mais insistentes reiniciavam imediatamente, então eu abria o msconfig, removia dos programas de inicialização e reiniciava
As pessoas que viam ao lado ficavam impressionadas e pediam para eu fazer o mesmo no PC delas, e aí elas também podiam jogar Campo Minado ou Pinball
Hoje isso soa amador, mas em meados dos anos 90 o CTRL+ALT+DEL era uma espécie de ferramenta de poder que só usuários experientes conheciam
No MS Word, eu escolhia abrir uma URL e digitava um mecanismo de busca ou o site desejado; o navegador abria e dava para escapar do filtro da web
Esses servidores geralmente mostravam o motd com more e depois encaminhavam para algum software como o lynx, mas não usavam restricted mode, então dava para digitar
!she abrir um shellBons tempos
Como eu conseguia abrir e-mail pela web, mandava para mim mesmo um link de mecanismo de busca e, no e-mail, clicava com o botão direito para abrir no mesmo frame
Depois disso, eu podia ir a qualquer lugar que aparecesse nos resultados de busca
Tenho experiência de burlar restrições no ensino médio nos anos 2000, então seria ótimo se alguém que passasse por aqui explicasse em detalhes
Os controles parentais do Google deixam muito a desejar
Há muito tempo existe o pedido para desativar o app da Play Store, mas até hoje isso não é possível sem adb, e adb não é uma boa solução porque cria outros problemas
Dá a impressão de que crianças de verdade não testam os controles parentais
Por um tempo, mesmo colocando limite de tempo no YouTube, dava para abrir a Play Store, ir para um app que tinha vídeos na lista de capturas de tela e, a partir dali, passar para o YouTube com muita facilidade
Meu filho descobriu isso sozinho e me mostrou
Escrevi um documento de 5 páginas organizando esse problema, mas não tenho para quem enviar
Minha maior reclamação aparece quando há duas crianças mais velhas, não bebês, e vários dispositivos Google juntos: celulares, tablets, Google TV e PCs conectados a uma conta Google
O Google parece tratar o controle parental como um cenário de supervisão em que “o pai entrega fisicamente o telefone do Billy e o pega de volta quando termina”
Fundamentalmente, ele é em nível de dispositivo, não em nível de conta, o que o torna incômodo e fácil de contornar
Por exemplo, se Jill consegue acessar 3 Google TVs dentro de casa com a própria conta, o Family Link faz você definir separadamente quantas horas por dia ela pode usar em cada TV
Mas, para Jill, TV é só TV; se estiver sozinha em casa, ela simplesmente usa toda a cota da primeira TV e depois passa para a seguinte
Não tenho provas, mas parece que equipes de produtos diferentes não colaboram de fato de forma estreita, ou até são recompensadas por não colaborar, e talvez essas equipes sejam becos sem saída dentro do Google
Dá a impressão de que as pessoas de produto e engenharia que chegam à equipe do Family Link não têm filhos de verdade, ou os filhos são pequenos demais; e, quando têm, parece ser no máximo uma criança pequena
No momento em que se obtém a permissão de acessibilidade, é possível controlar completamente o dispositivo do usuário
Eles poderiam ter dividido as permissões e exposto APIs de controle mais granulares, mas parecem ter projetado tudo em torno de um caso extremamente específico, em que um usuário totalmente cego precisa usar um app de acessibilidade como interface para todas as interações
Como resultado, mesmo que você queira usar apenas um recurso dessa API, precisa confiar totalmente no app e lhe dar um cheque em branco para fazer qualquer coisa no dispositivo
No fim, só porque “este é o único cenário de uso que pretendemos, e não vamos fazer concessões para outros usos”, cria-se um enorme buraco na segurança da plataforma
A menos que você tranque a criança no porão para isolá-la completamente do grupo de pares, tecnicamente é quase impossível vencer até uma criança minimamente interessada
Esse recurso funciona melhor como uma linha de limite suave: algo que, se for contornado, vira uma desobediência clara e sem ambiguidade
No fim, são controles parentais, não uma segurança para barrar a NSA, e torná-los tecnicamente perfeitos talvez fosse pior para todo mundo
É um recurso incluído para fazer o consumidor se sentir mais seguro, mas, quando você tenta usá-lo de verdade, acaba desistindo rápido
Um exemplo pequeno: no Screen Time do iOS, dá para restringir sites a uma lista de permissões, o que parece útil, mas, ao fazer isso, várias coisas, como telas de login de diversos apps, quebram completamente
Ele também não dá nenhuma pista sobre qual URL precisa ser liberada para consertar algo
Ao usar tecnologia moderna, às vezes bate a sensação de que “isso é complexo e quebrado demais para ter muitos usuários reais”, e controles parentais dão exatamente essa impressão
No fim, eles são só um substituto para os pais
Ou você presta atenção na criança e sabe o que ela está fazendo, ou não
Se você acha que a criança é vulnerável a algo na web, provavelmente o certo é nem dar um celular a ela em primeiro lugar
Se a criança tem idade suficiente para entender, o que ela precisa não é de controles parentais por software, e sim de pais; e, se os pais forem bons, o app da criança não precisa de controles parentais
Os controles parentais também impedem instalar apps de outras fontes, e eu prefiro apps do F-Droid aos apps da Play Store
Por fim, esse recurso ensina, treina e reforça a ilusão de que somos controlados por alguma empresa de software e “protegidos de perigos”
Isto é um truque de hacking do tipo burlar a tela de login do Windows 98
https://i.imgur.com/BULPmCI.gif
Sinceramente, eu não esperava que o Google ficasse tão ruim em design de sistemas quanto o Microsoft Windows 98
Usuários comuns também conseguem seguir o procedimento
Uma parte considerável da segurança parece ser minimizar a superfície de ataque para reduzir o número de coisas em que é preciso pensar
Fico me perguntando por que diabos seria necessário conseguir imprimir uma tooltip a partir de uma caixa de diálogo de login
No momento em que impressão entra na jogada, vem junto todo tipo de componente inseguro de terceiros
Mesmo que se permita imprimir tooltips ou ajuda, deveria haver um contexto de segurança em que esses recursos fossem desativados
PDFs são parecidos: 99% dos recursos arbitrários, como modelos 3D ou scripting, foram usados em exploits de segurança
É melhor manter o padrão simples e evitar esses recursos
Isso me lembra este meme clássico: https://imgur.com/BULPmCI?r
Já usei uma técnica parecida com a do texto original para fazer bypass de FRP em um Pixel 2 usado que comprei no Craigslist
Também pensei que, quando eu era criança e ficava olhando para essa tela durante horas por tédio até finalmente conseguir entrar, aquele momento do primeiro “gostinho” talvez tenha definido o rumo de toda a minha vida
Lembrei da minha primeira “invasão” e da experiência de mexer por dentro de sistemas de computador, e isso acabou levando a uma carreira em TI e engenharia
Ao piratear Halo PC, estraguei o computador da família com um cavalo de Troia e tive que descobrir como consertá-lo antes que meu pai chegasse em casa
Também tive que contornar quando meus pais de repente instalaram controles parentais tipo NetNanny no nosso computador pessoal. Isso foi depois de eu já usar a internet havia alguns anos, e talvez a Comcast tenha mandado uma carta por causa daquela pirataria malfeita acima
No processo de recuperar o netbook e deixá-lo utilizável de novo sem deixar vestígios das alterações, conheci Linux Live CD e Linux
Fico feliz em saber que os hackers de amanhã ainda estão recebendo esse tipo de educação
Tentava encontrar um link dentro de outro link dentro de outro link que permitisse criar conexões telnet arbitrárias, para contornar a restrição que tentava limitar o serviço gratuito de acesso discado apenas aos serviços deles
Por exemplo, eu queria jogar Nethack em um servidor público da tamu.edu, mas já não lembro o nome de domínio exato
Era um clássico
Há também um post anterior relacionado
Google has a secret browser hidden inside the settings - https://news.ycombinator.com/item?id=36478206 - junho de 2023, 312 comentários
Li que o Google Play Services também pode conceder novas permissões a si mesmo[1]
Como isso é possível? Ele tem permissão de root?
[1]https://developers.google.com/android/guides/permissions
Mas a lista de permissões acessíveis a esses apps é tão ampla que, se o desenvolvedor definir bastante coisa, na prática dá para usar quase como root
Não é o usuário
rootde verdade, mas é confiado cegamente e consegue fazer coisas como instalar apps sem confirmação do usuárioComo tratado em outro post de blog sobre o GMS, a ponte JS pode ser executada dentro de um escopo privilegiado
Ao instalar o Android, você concorda com isso ao aceitar a Política de Privacidade do Google
Por exemplo, isso é possível no GrapheneOS
Ele já consegue instalar e remover apps sem permissão do usuário
Isso já causou problemas no passado, mas não aconteceu o suficiente
O GrapheneOS com Play Services em sandbox não parece ser afetado
O app Phone aparentemente não consegue ver nem abrir URLs da web dos contatos, e o app Contacts também falha ao abrir, no modo fixado, as duas URLs citadas no texto
Se a discussão anterior de 2023 interessar, está aqui, com 312 comentários
https://news.ycombinator.com/item?id=36478206