- No pop-up Manage my account do Android, abre-se uma tela capaz de acessar sites comuns, também acessível dentro das configurações e do conjunto de apps do Google
- O caminho de acesso passa, em sequência, pela aba Security do gerenciamento da conta Google, Password Manager, ajuda sobre criptografia no dispositivo, política de privacidade e menu Search
- Essa tela consegue até reproduzir YouTube, mas não tem histórico de navegação nem barra de endereço, e o botão voltar retorna à tela de configurações em vez de navegar pelo histórico da web
- No console JavaScript, aparecem o objeto
mme as funçõescloseView(),requestSecurityKeyHandshake()eupdateSecurityKey(), mas a finalidade real de algumas delas não foi confirmada - Inicialmente, o Google respondeu que não era uma vulnerabilidade de segurança e que o bypass do controle parental também era um comportamento intencional, mas, 3 dias após a publicação e a cobertura da imprensa, informou que reavaliaria a denúncia
Navegador oculto que abre dentro das configurações do Android
- Vários apps do Android têm o pop-up Manage my account, acessível também em apps importantes como as configurações e o conjunto de apps do Google
- Após alguns passos, o interior do pop-up passa a se comportar como um navegador capaz de acessar sites comuns
- Em Settings → Google, ou em um app que permita escolher uma conta, selecione “Manage my account”
- Na aba “Security”, selecione “Password Manager”
- Selecione o ícone
Settingsno canto superior direito - Selecione “Set up on-device encryption” → “Learn more about on-device encryption”
- No menu hambúrguer, vá para “Privacy Policy”
- Toque no menu de 9 pontos na parte superior e aguarde cerca de 5 segundos antes de selecionar “Search”, ou vá para o item
Google - Ao sair da conta Google, é possível usá-lo como um navegador capaz de ir para onde quiser
- Nesse estado, também é possível reproduzir vídeos do YouTube, e a tela se abre dentro do app Settings ou do app usado para o acesso inicial
-
Diferenças em relação a um navegador comum
- Não deixa histórico de navegação
- Ao encerrar a sessão, faz logout automaticamente da conta Google conectada
- Não tem barra de endereço
- Ao pressionar o botão voltar, ele retorna para a área de configurações do Password Manager, em vez de voltar para a página anterior da web
O objeto JavaScript mm e a resposta do Google
- Em um console JavaScript móvel como o eruda, é possível ver um objeto JavaScript chamado
mm - O objeto
mmtem três funçõescloseView(): fecha o navegador e se comporta de forma parecida com pressionar o botão voltarrequestSecurityKeyHandshake(): a função não foi confirmada, mas pelo nome parece sensívelupdateSecurityKey(): a função não foi confirmada, mas pelo nome parece sensível
- Como esse navegador é aberto pelo caminho do recurso de on-device encryption, a possibilidade de as duas funções não confirmadas estarem relacionadas à configuração de chaves de criptografia locais permanece apenas uma especulação
- Em resposta à denúncia inicial, o Google afirmou que não era uma vulnerabilidade de segurança e que o bypass do controle parental era “Intended Behavior”
- Após a publicação do texto, vários veículos em inglês, russo e outros idiomas cobriram o caso, e 3 dias depois da publicação o Google informou que voltaria a analisar a denúncia
- Há uma discussão relacionada no Hacker News discussion
2 comentários
Quando eu entrava no gerenciador de senhas, sempre parecia que havia uma certa lentidão... pelo visto, não era só impressão minha.
Comentários do Hacker News
Investiguei um pouco, e ao tocar em "Manage my account", em vez de permanecer dentro do app de configurações, ele abre uma Activity embutida no Google Play Services
No fim, o navegador era
com.google.android.gms/.auth.folsom.ui.GenericActivity, e não parecia usar o Chrome, que é a implementação padrão de WebView do sistema no meu celularNo Android, é possível criar uma interface entre código Android e código JavaScript com
addJavascriptInterface, e parece que o GMS usa isso bastante, então parece uma superfície de ataque que vale examinar depoisA interface suspeita
mmestá dentro deMagicArchChallengeViewe se conecta à classe ofuscadabwuzA
bwuzem si está quase vazia, mas por sua vez se conecta a algumas outras classes ofuscadasProcurando por strings, dá para ver que as duas classes
"qvc"e"pdn"expõem funções relacionadas, epdnparece ser a principal, enquantoqvctem logs de erro úteis que revelam o que cada parâmetro significasetVaultSharedKeysespera um array de objetos JSON comgaiaId,epoche dois valoreskey, transforma isso em uma lista e repassa para uma classe abstrata que parece estar profundamente relacionada à segurança da contaaddEncryptionRecoveryMethodesperagaiaId, uma lista de domínios de segurança e uma chave pública de membro, e também repassa isso para a mesma classe abstrataTive que parar por aqui porque preciso ir trabalhar, mas parece valer a pena investigar mais não só essa interface, como também outras interfaces que o GMS expõe ao WebView
https://developer.android.com/reference/android/webkit/WebVi...
Mesmo que seja Blink, provavelmente não está tão atualizado quanto o que o Chrome fornece. Pelo link da documentação, parece mesmo ser WebKit
https://2021.stateofthebrowser.com/speakers/alex-russell/
gaiaIdsignificar Google Accounts and ID Administration ID... quem deu esse nome a um ID globalmente único do Google provavelmente ficou bem orgulhoso, e com razãoNão entendo o que isso tem de diferente de outros WebViews embutidos. Quase todo app não coloca um WebView embutido em algo como "ver política de privacidade"?
Muitas vezes é muito mais fácil exibir HTML do que passar toda a política de privacidade para o desenvolvedor do app
Pelo que lembro, configurar um WebView para permitir vários domínios ou URLs também era bem difícil. Não sou desenvolvedor Android, e a última vez que mexi nisso já faz alguns anos
Essa história de gerenciamento de chaves ainda é bem especulativa, e o autor não testou o que aquilo realmente faz, então por enquanto é mais algo como “há dois métodos que não sei o que fazem, mas parecem assustadores”
Isso é meio parecido com acessar a internet por um arquivo de ajuda CHM quando o navegador estava bloqueado
Droga, entreguei minha idade
É exatamente igual à forma como eu burlava o app de controle parental do Windows quando era criança
Eu só tinha 1 hora de uso do computador, e quando o tempo acabava ele fechava todos os apps, exceto os do Microsoft Office, porque eram considerados produtivos
Fuçando aqui e ali, de algum jeito consegui abrir um navegador dentro do Outlook e jogar games em Flash no Miniclip
Eu mudava o navegador padrão para o Terminal, depois abria o Word, criava um link e clicava nele
Normalmente, o Terminal aberto do jeito normal era restrito, por exemplo falhando ao abrir outros apps, mas essa instância do Terminal aberta assim tinha mais permissões, então dava para executar algo como um jogo num disco inserido com
open /path/to/your/appQuando o professor de estudo dirigido apareceu e perguntou se podia jogar Starcraft, eu respondi: “como o senhor sabe, esses computadores são bem bloqueados, então se a gente consegue jogar isso, é porque a escola permitiu” — e até hoje não acredito que isso funcionou
Se uma criança consegue descobrir esse hack e acessar sites bloqueados, eu acho que ela merece aproveitar
Havia um bypass parecido na página de licenças de
aboutSe você seguir os links das licenças, aparece um navegador. É útil para abrir um navegador em coisas como central multimídia automotiva ou bicicletas Peloton
Parece a lista de todos os arquivos no sistema de arquivos
A experiência dessa pessoa ao reportar um bug para o Google me lembrou a minha própria experiência
Eu: há um bug no Google Sheets em que conteúdo excluído fica exposto a terceiros
Google: não é bug. Está funcionando como pretendido. Issue encerrada
Eu: sério? Eu de fato sofri prejuízo usando este aplicativo
Google: na verdade é um bug, mas é um problema conhecido há muito tempo, então não se qualifica para bug bounty. Issue encerrada
Eu: há um bug no Gmail que permite que e-mails falsificados ocultem uma falha de DKIM e pareçam legítimos
Google: "Won't fix (Intended Behavior)"
Eu: então o Google realmente pretende que e-mails falsificados pareçam legítimos na interface?
Google: na verdade é um problema conhecido
Além disso, as primeiras matérias tentaram ligar a vulnerabilidade a invasões chinesas/russas. Esse tipo de propaganda deveria voltar para o próprio Google. O Google é uma empresa americana e deixou uma backdoor escancarada para qualquer um explorar, seja do exterior ou do próprio país. Na prática, ambos exploraram
O Google tem um problema sério. Não sei o que aconteceu desde 2019, mas não está bom
Eu: há um bug no Google Play Services
Google: não é bug. Está funcionando como pretendido. Issue encerrada
Eu: publiquei o bug no blog, e a cobertura da imprensa foi grande
Google: parece que estávamos errados! Realmente é um bug. Entraremos em contato novamente em algumas semanas
Hoje descobri que existe um console JavaScript para mobile
https://eruda.liriliri.io/
Dá para abrir as ferramentas de desenvolvedor em outro computador e todas as informações são sincronizadas via WebSocket. Já usei uma vez para depurar um problema no equipamento de um cliente
data:text/html,, mas isto é surpreendentemente rico em recursosEu fazia algo parecido no saguão enquanto meus pais resolviam coisas no banco
Naquela época, a tag best viewed in Netscape Navigator era uma mina de ouro. O fluxo era quase o mesmo: ia clicando até aparecer uma dessas tags e, dali, pulava para um mecanismo de busca
Depois fui para um site de streaming suspeito, cheio de adware, e no momento em que troquei para outro vídeo, o computador inteiro do Tesla travou e tive que fazer um hard reboot no carro
Lembra as versões antigas do Windows. Ao apertar F1, dava para disparar vários comandos de execução pelo Windows Help
explorer.exee escolher Run”