Descobriu-se que smartphones de vários fabricantes como LG, OnePlus, Huawei, Xiaomi vazam informações de processo de aplicativos. Aqui está o que isso significa.
O sistema operacional móvel Android é usado em mais de 2 bilhões de dispositivos todos os meses por consumidores regulares e entusiastas de tecnologia. Embora o número de pessoas que desbloqueiam o bootloader e fazem root em seus smartphones seja relativamente pequeno quando em comparação com a população geral de usuários do Android, ainda há muitos de nós em fóruns como XDA e Reddit. Magisk é uma ferramenta indispensável para a comunidade de ajustes. Ele fornece acesso root sem sistema e possui ferramentas como MagiskHide para permitir que usuários com root continuem usando os aplicativos, jogos e serviços de que desfrutam sem restrições. No entanto, um popular jogo de anime tem abusado habilmente de uma vulnerabilidade de segurança do sistema para contornar a detecção anti-root do Magisk. Veja como isso funciona e quais dispositivos são afetados por esta vulnerabilidade de segurança.
- Um jogo usou um bug para detectar se um dispositivo foi enraizado. Se o dispositivo estiver enraizado, o jogo impede o usuário de jogar.
- O bug permite que um aplicativo leia o status de outros aplicativos na memória, sem precisar de nenhuma permissão especial. O bug não permite que aplicativos roubem dados de outros aplicativos. O bug não é grave e é bastante inofensivo.
- O Google já está ciente do problema e atualizou suas ferramentas de teste para garantir que todos os dispositivos estejam protegidos.
Fundo
Um popular jogo de anime chamado Fate/Grand Order impede que usuários enraizados tentem jogar. Desenvolvedor reconhecido pelo XDA topjohnwu, o principal desenvolvedor do Magisk, anteriormente descobri um caminho para ignorar a detecção de raiz do Fate/Grand Order, mas sua solução não estava funcionando em seu OnePlus 6, apesar de seus melhores esforços. Determinado a não desistir, o desenvolvedor analisou Fate/Grand Order para descobrir como ele ainda estava detectando root em seu dispositivo OnePlus. Como ele explica em seu Postagem média, isso o levou à descoberta de uma vulnerabilidade de segurança que o Fate/Grand Order aparentemente estava abusando para continuar detectando o acesso root em dispositivos OnePlus.
Preço: Grátis.
4.
Procfs e Android
Em sistemas operacionais baseados em Unix, existe um sistema de arquivos especial chamado “procfs” contendo informações sobre processos (pense em aplicativos), como uso de memória (pense em RAM), status (se o processo está em execução, dormindo, etc.). Na maioria dos sistemas operacionais baseados em Unix, o usuário e os aplicativos têm acesso fácil ao procfs para ver quais tipos de aplicativos e serviços estão em execução em seus sistemas (pense nisso como o Gerenciador de Tarefas do Windows). No entanto, o Google começou a bloquear o acesso ao procfs começando no Android 7.0 Nougat. Antes do Android Nougat, aplicativos como o SystemPanel eram capazes de coletar dados sobre quais aplicativos estavam em execução sem a necessidade de permissões especiais. Depois do Android Nougat, os aplicativos precisam usar APIs como Estatísticas de uso ou Serviço de acessibilidade, ambos controlados por permissões que devem ser concedidas pelo usuário.
Preço: Grátis.
4.2.
O Google impede que aplicativos leiam o status de outros aplicativos por meio de procfs montando /proc com o sinalizador "hidepid=2". Ao montar procfs com hidepid=2, os aplicativos só podem ver o status de seu próprio processo. Assim, um aplicativo precisaria usar APIs aceitas, como UsageStats ou AccessibilityService, para obter informações sobre quais aplicativos e serviços estão sendo executados no dispositivo.
Vulnerabilidade
E se o procfs não estiver montado com hidepid=2? Bem, então os aplicativos seriam capazes de ler livremente o status de outros aplicativos (e pontos de montagem) em execução no sistema sem precisar de permissões extras*. O Google monta procfs com hidepid=2 em seus próprios dispositivos, mas não impõe esse requisito em dispositivos de outros fabricantes. Vários dispositivos da LG, OnePlus, Huawei/Honor, Xiaomi e outros não montaram procfs com hidepid=2, que é o que aplicativos como Fate/Grand Order aproveitam para detectar se Magisk está presente em o dispositivo.
*Uma mudança de segurança no Android 9 Pie impede que os aplicativos leiam informações fora de seu próprio “contexto SELinux” porque cada aplicativo agora está isolado individualmente. SELinux é um módulo do kernel que atua como uma espécie de porteiro, impedindo que aplicativos e serviços acessem arquivos que não deveriam. Um contexto SELinux é como um rótulo para um arquivo que contém informações como usuário e função. Aplicativos com o mesmo contexto SELinux podem ler informações sobre outros aplicativos no mesmo contexto se o sinalizador hidepid=2 não estiver habilitado para procfs. Em dispositivos que executam o Android 9 Pie, apenas os aplicativos desenvolvidos para o Android Pie terão as novas alterações do SELinux do Android Pie aplicadas a eles. Os aplicativos direcionados ao Android 8.1 Oreo ou inferior usarão as antigas regras do SELinux, permitindo-lhes acessar informações sobre processos no mesmo contexto SELinux, desde que o procfs seja montado sem esconderpid=2. A maioria dos aplicativos em execução no seu dispositivo deve ser direcionada pelo menos ao Android 8.0 Oreo, graças a novos requisitos do Google Play, mas muitos ainda não foram atualizados para o Android Pie.
As capturas de tela a seguir mostram as consequências de não montar procfs com hidepid=2.
Quão ruim é isso?
Se comparássemos esta vulnerabilidade do sistema com explorações como Fusée Gelée, Blueborne, KRACK, e Fusão/Espectro, então esse bug não é nada em comparação. Os aplicativos não podem usar isso para obter acesso root ou roubar suas senhas. Suas contas bancárias estão seguras, assim como seus cartões de crédito. O pior que um aplicativo pode fazer é saber se outro aplicativo está sendo executado no seu dispositivo, o que tem usos muito limitados. Lembre-se de que esse é um comportamento padrão em muitas distribuições GNU/Linux e que só recentemente o Google começou a bloquear o acesso a procfs com Android Nougat. Esse bug permite que os aplicativos contornem a necessidade de certas permissões para monitorar outros processos, mas eles ainda não conseguem quebrar a sandbox do Android e roubar dados de outros aplicativos. Independentemente disso, este é um comportamento não intencional e quebra um recurso de privacidade do Android, por isso deve ser corrigido.
Meu dispositivo foi afetado?
Aqui está uma lista de dispositivos que descobrimos que não montam procfs com hidepid=2:
OEM |
Dispositivo |
Versão Android |
Vazamentos de procfs |
---|---|---|---|
ASUS |
ZenFone 5Z |
Android 8.0 Oreo |
Sim |
Amora |
CHAVE2 |
Android 8.0 Oreo |
Não |
Essencial |
PH-1 |
Torta Android 9 |
Não |
Pixel 2 |
Torta Android 9 |
Não |
|
Pixel 3 |
Torta Android 9 |
Não |
|
Pixel3XL |
Torta Android 9 |
Não |
|
Honra |
Magia 2 |
Torta Android 9 |
Sim |
HTC |
Sub12+ |
Android 8.0 Oreo |
Sim |
Huawei |
Companheiro 20 X |
Torta Android 9 |
Sim |
LG |
G7 fino Q |
Android 8.0 Oreo |
Sim |
LG |
V40 ThinQ |
Android 8.1 Oreo |
Sim |
Motorola |
Moto G4 |
Android 8.1 Oreo |
Não |
Nokia |
7.1 |
Android 8.1 Oreo |
Não |
OnePlus |
6 |
Android 8.1 Oreo/Android 9 Torta |
Sim |
OnePlus |
6T |
Torta Android 9 |
Sim |
Razer |
Telefone 2 |
Android 8.1 Oreo |
Sim |
Samsung |
Galáxia Nota 8 |
Android 8.0 Oreo |
Não |
Samsung |
Galáxia Nota 9 |
Android 8.1 Oreo/Android 9 Torta |
Não |
Samsung |
Galáxia S7 |
Android 8.0 Oreo |
Não |
Samsung |
Galáxia S8 |
Android 8.0 Oreo |
Não |
Samsung |
Galáxia S9 |
Torta Android 9 |
Não |
Samsung |
Galaxy S9+ (Exynos) |
Android 8.0 Oreo |
Sim |
Sony |
Xperia XZ1 |
Torta Android 9 |
Não |
Xiaomi |
Mi Mix 2S |
Torta Android 9 |
Sim |
Xiaomi |
POCO F1 |
Android 8.1 Oreo |
Sim |
Como verificar se o seu dispositivo foi afetado
É muito fácil verificar se o seu dispositivo está vazando informações do processo para outros aplicativos (em outras palavras, o procfs não está montado com hidepid=2). Embora você possa usar comandos shell como fizemos, você também pode verificar usando um aplicativo desenvolvido por topjohnwu. Seu aplicativo também permite remontar procfs com hidepid = 2, se o seu telefone estiver enraizado.
BaixarProcGate
Haverá uma solução?
Sim, isso será corrigido. O Google agora exigirá que todos os dispositivos montem procfs com hidepid=2. Eles vão fazer cumprir isso atualizando o Compatibility Test Suite (CTS), um conjunto de testes que todos os dispositivos devem passar para poder usar aplicativos e serviços do Google Play. Todos os OEMs (que desejam vender dispositivos com a Google Play Store pré-instalada) deverão eventualmente emitir uma atualização para remontar procfs com hidepid=2 em um futuro próximo. Como os dispositivos OnePlus foram os primeiros a serem descobertos com esse problema, OnePlus já foi informado e está trabalhando em uma correção. Atualizaremos este artigo se outros OEMs comentarem sobre esse bug, mas não há necessidade de se perguntar se o OEM do seu dispositivo emitirá uma atualização. Se eles quiserem que sua atualização passe no CTS, eles deverão corrigir esse bug.