2 pontos por GN⁺ 2024-02-03 | 1 comentários | Compartilhar no WhatsApp
  • 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/gmsdrops no 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 gmsdrops nã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.com no 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
  • 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

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

    • A resposta “outra equipe interna” provavelmente se referia mais ao bug bounty do que à vulnerabilidade em si
      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
    • O Google é o rei do “não é meu departamento
      “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
    • Isso não parece ser uma vulnerabilidade no sentido de levar a uma invasão do sistema
      É 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
    • O “pergunte a eles” que eles disseram era sobre por que decidiram fechar a issue, e também implica que alguém já a analisou
      Não parece que tenham dito algo como “não vamos nem olhar”
    • Para começo de conversa, nem sei como encontrar a pessoa responsável certa
      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

    • Isso me lembra os PCs em exposição em lojas como Sears e CompUSA, que ficavam rodando apenas software de demonstração e impediam justamente o que você faria ao comprar um PC: usá-lo de verdade
      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
    • Lembro de burlar o filtro da web nos computadores do ensino médio
      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
    • Antigamente, eu costumava acessar vários hosts .edu por telnet na biblioteca
      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 !sh e abrir um shell
      Bons tempos
    • Na faculdade, os computadores da academia também tinham esse tipo de restrição
      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
    • Não sei bem o que era um selo “Best Viewed In” e fico curioso sobre como isso permitia burlar a restrição
      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

    • Os controles parentais do Google são, na prática, quase um software abandonado; funcionam de forma desajeitada e não se integram bem a outros produtos e serviços, como Google Home ou Google TV
      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
    • Acho que a frase “dá a impressão de que crianças de verdade não testam os controles parentais” se aplica igualmente aos serviços de acessibilidade
      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
    • Controles parentais são uma coisa curiosa
      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
    • Acho que pouca gente realmente usa bastante os controles parentais no Android ou no iOS
      É 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
    • Antigamente eu usava controles parentais, mas agora parei
      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

    • O motivo de ser um exploit excelente é que não exige conhecimento obscuro, como buffer overflow
      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
    • Isto não é burlar a tela de bloqueio
  • Isso me lembra este meme clássico: https://imgur.com/BULPmCI?r

    • Pensei exatamente nisso
      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

    • De forma parecida, lembro de ter vasculhado por bastante tempo as páginas Gopher da National Capital Feenet's](https://www.ncf.ca/en/)'s)
      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
    • Contornar o NetNanny com certeza melhorou minhas habilidades com computadores
      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

    • Não é root, mas é um app de sistema privilegiado, então consegue fazer, sem root, quase uma fábrica inteira de coisas que apps instalados não conseguem
    • Apps de sistema ou de fornecedores também precisam definir previamente as permissões no manifest, então nem todo app de sistema pode fazer tudo
      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
    • Exato
      Não é o usuário root de verdade, mas é confiado cegamente e consegue fazer coisas como instalar apps sem confirmação do usuário
      Como 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
    • Felizmente, dá para instalar dentro de uma sandbox, em vez de como app privilegiado
      Por exemplo, isso é possível no GrapheneOS
    • É correto chamar isso de backdoor
      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