SafetyNet explicou: por que o Android Pay e outros aplicativos não funcionam em dispositivos enraizados

Índice:

SafetyNet explicou: por que o Android Pay e outros aplicativos não funcionam em dispositivos enraizados
SafetyNet explicou: por que o Android Pay e outros aplicativos não funcionam em dispositivos enraizados

Vídeo: SafetyNet explicou: por que o Android Pay e outros aplicativos não funcionam em dispositivos enraizados

Vídeo: SafetyNet explicou: por que o Android Pay e outros aplicativos não funcionam em dispositivos enraizados
Vídeo: Vale a pena comprar um carro elétrico? Está na hora ou melhor esperar mais? Conheça os modelos! - YouTube 2024, Maio
Anonim
Enraizamento seu dispositivo Android dá acesso a uma maior variedade de aplicativos e um acesso mais profundo ao sistema Android. Mas alguns aplicativos, como o Android Pay do Google, não funcionam em um dispositivo com raiz.
Enraizamento seu dispositivo Android dá acesso a uma maior variedade de aplicativos e um acesso mais profundo ao sistema Android. Mas alguns aplicativos, como o Android Pay do Google, não funcionam em um dispositivo com raiz.

O Google usa algo chamado SafetyNet para detectar se seu dispositivo está com root ou não e bloqueia o acesso a esses recursos. O Google não é o único: muitos aplicativos de terceiros também não funcionam em dispositivos Android com root, embora eles possam verificar a presença do root de outras maneiras.

SafetyNet: como o Google sabe que você enraizou seu telefone Android

Os dispositivos Android oferecem uma "SafetyNet API", que faz parte da camada do Google Play Services instalada em dispositivos Android aprovados pelo Google. Essa API "fornece acesso aos serviços do Google que ajudam a avaliar a integridade e a segurança de um dispositivo Android", segundo o Google. Se você é um desenvolvedor do Android, pode ligar para esta API no seu aplicativo para verificar se o dispositivo em que você está executando foi adulterado.

Esta SafetyNet API foi projetada para verificar se um dispositivo foi adulterado - se foi enraizado por um usuário, se está executando uma ROM personalizada ou se foi infectado por malwares de baixo nível, por exemplo.

Os dispositivos fornecidos com a Play Store do Google e outros aplicativos instalados devem ser aprovados no "Pacote de testes de compatibilidade" do Google para Android. Enraizar um dispositivo ou instalar uma ROM personalizada impede que um dispositivo seja “Compatível com CTS”. É assim que a API do SafetyNet pode dizer se você está enraizado - apenas verifica a compatibilidade com o CTS. Da mesma forma, se você receber um dispositivo Android que nunca veio com os aplicativos do Google, como um desses tablets de US $ 20 enviados diretamente de uma fábrica na China, ele não será considerado "compatível com CTS", mesmo que não tenha sido implantado.

Para obter essas informações, o Google Play Services faz o download de um programa chamado "snet" e o executa em segundo plano no seu dispositivo. O programa coleta dados do seu dispositivo e os envia ao Google regularmente. O Google usa essas informações para diversas finalidades, desde obter uma imagem do ecossistema mais amplo do Android até determinar se o software do seu dispositivo foi adulterado ou não. O Google não explica exatamente o que o snet está procurando, mas é provável que o snet verifique se a partição do sistema foi modificada do estado de fábrica.

Você pode verificar o status SafetyNet do seu dispositivo baixando um aplicativo como SafetyNet Helper Sample ou SafetyNet Playground. O aplicativo perguntará ao serviço SafetyNet do Google sobre o status do seu dispositivo e informará a resposta que ele recebe do servidor do Google.

Para mais detalhes técnicos, leia este post no blog escrito por John Kozyrakis, um estrategista técnico da Cigital, uma empresa de segurança de software. Ele entrou na SafetyNet e explica mais sobre como funciona.

Image
Image

É até o aplicativo

A SafetyNet é opcional para desenvolvedores de aplicativos e os desenvolvedores de aplicativos podem optar por usá-la ou não. A SafetyNet apenas impede que um aplicativo funcione se o desenvolvedor de um aplicativo não quiser que ele funcione em dispositivos com raiz.

A maioria dos aplicativos não verifica a API do SafetyNet. Mesmo um aplicativo que verifica a API do SafetyNet, como os aplicativos de teste acima, não para de funcionar se receber uma resposta incorreta. O desenvolvedor do aplicativo precisa verificar a SafetyNet API e fazer com que o aplicativo não funcione se ele souber que o software do seu dispositivo foi modificado. O app Android Pay do Google é um bom exemplo disso em ação.

O Android Pay não funciona em dispositivos enraizados

A solução de pagamento móvel do Google Pay para Android não funciona em dispositivos Android com raiz. Tente iniciá-lo e você verá apenas uma mensagem dizendo O Android Pay não pode ser usado. O Google não pode verificar se o seu dispositivo ou o software em execução é compatível com Android.”

Não se trata apenas do enraizamento, é claro - a execução de uma ROM personalizada também o colocaria em conflito com esse requisito. A SafetyNet API afirma que não é "compatível com Android" se você estiver usando uma ROM personalizada com a qual o dispositivo não veio.

Lembre-se, isso não detecta apenas o enraizamento. Se o seu dispositivo foi infectado por algum malware no nível do sistema com a capacidade de espionar o Android Pay e outros aplicativos, a SafetyNet API também impediria o funcionamento do Android Pay, o que é uma coisa boa.
Lembre-se, isso não detecta apenas o enraizamento. Se o seu dispositivo foi infectado por algum malware no nível do sistema com a capacidade de espionar o Android Pay e outros aplicativos, a SafetyNet API também impediria o funcionamento do Android Pay, o que é uma coisa boa.

Enraizar seu dispositivo quebra o modelo de segurança normal do Android. O Android Pay normalmente protege seus dados de pagamento usando os recursos de sandbox do Android, mas os aplicativos podem sair do sandbox em um dispositivo com raiz. O Google não tem como saber a segurança do Android Pay em um dispositivo em particular se ele estiver enraizado ou executando uma ROM personalizada desconhecida, então bloqueá-lo. Um engenheiro do Android Pay explicou o problema no fórum XDA Developers se você tiver interesse em saber mais.

Outras formas de aplicativos podem detectar a raiz

A SafetyNet é apenas uma maneira de um aplicativo verificar se está sendo executado em um dispositivo com raiz. Por exemplo, os dispositivos Samsung incluem um sistema de segurança chamado KNOX. Se você torcer o seu dispositivo, a segurança KNOX está desarmada. O Samsung Pay, o aplicativo de pagamentos móveis da própria Samsung, se recusará a funcionar em dispositivos com root. A Samsung está usando o KNOX para isso, mas também pode usar SafetyNet.

Da mesma forma, muitos aplicativos de terceiros irão impedi-lo de usá-los, e nem todos eles usam o SafetyNet.Eles podem apenas verificar a presença de aplicativos e processos de raiz conhecidos em um dispositivo.

É difícil encontrar uma lista atualizada de aplicativos que não funcionam quando um dispositivo está enraizado. No entanto, o RootCloak fornece várias listas. Essas listas podem estar desatualizadas, mas são as melhores que podemos encontrar. Muitos são aplicativos bancários e outros aplicativos de carteira móvel, que bloqueiam o acesso a telefones enraizados na tentativa de proteger suas informações bancárias de serem capturadas por outros aplicativos. Aplicativos para serviços de streaming de vídeo também podem se recusar a funcionar em um dispositivo com raiz como uma medida de DRM, tentando impedir que você grave um fluxo de vídeo protegido.

Alguns aplicativos podem ser enganados

O Google está jogando um jogo de gato e rato com a SafetyNet, constantemente atualizando-o na tentativa de se manter à frente das pessoas que o rodeiam. Por exemplo, o desenvolvedor do Android Chainfire criou um novo método de enraizamento de dispositivos Android sem modificar a partição do sistema, conhecida como "raiz sem sistema". Inicialmente, a SafetyNet não detectou a violação desses dispositivos, e o Android Pay funcionou, mas a SafetyNet acabou sendo atualizada para detectar esse novo método de root. Isso significa que o Android Pay não funciona mais com raiz sem sistema.

Dependendo de como um aplicativo verifica o acesso root, você poderá enganá-lo. Por exemplo, existem métodos para fazer root em alguns dispositivos Samsung sem tropeçar na segurança KNOX, o que permitiria continuar usando o Samsung Pay.

No caso de aplicativos que apenas verificam aplicativos raiz em seu sistema, há um módulo do Xposed Framework chamado RootCloak que permite que você faça com que eles funcionem de qualquer maneira. Isso funciona com aplicativos como DirecTV GenieGo, Best Buy CinemaNow e Movies by Flixster, que normalmente não funcionam em dispositivos com raiz. No entanto, se esses aplicativos foram atualizados para usar a SafetyNet do Google, eles não seriam tão fáceis de enganar dessa maneira.

Image
Image

A maioria dos aplicativos continuará funcionando normalmente depois que você enraizar seu dispositivo. Aplicativos de pagamento móvel são a grande exceção, assim como alguns outros aplicativos bancários e financeiros. Por vezes, os serviços pagos de transmissão de vídeo tentam impedi-lo de ver os respetivos vídeos.

Se um aplicativo que você precisa não funcionar no seu dispositivo root, você poderá sempre desatribuir o dispositivo para usá-lo. O aplicativo deve funcionar depois que você devolver o dispositivo ao estado de fábrica seguro.

Recomendado: