O Google oferece um conjunto de APIs e serviços para ajudar você a detectar se o app está sendo executado em um ambiente seguro e confiável. O principal recurso é a API Play Integrity, que ajuda a verificar se as interações são genuínas ao detectar interações potencialmente arriscadas e fraudulentas. Além da integridade do app e do dispositivo, a API Play Integrity agora oferece informações sobre riscos de acesso e acessibilidade, Google Play Protect e atividade recente do dispositivo. Para reforçar ainda mais sua estratégia antifraude, a plataforma Android oferece APIs para cenários específicos que podem ser relevantes para seu app.
API Play Integrity
Com a API Play Integrity, você pode saber mais sobre o estado de segurança do dispositivo em que o app está sendo executado. Isso ajuda você a ter certeza de que o usuário certo está acessando informações sensíveis.
Ela ajuda a verificar se as interações e solicitações do servidor vêm do binário genuíno do app em um ambiente confiável:
- Binário genuíno do app: determina se você está interagindo com o binário não modificado reconhecido pelo Google Play.
- Instalação genuína do Google Play: determina se a conta de usuário atual é licenciada, o que indica se o usuário instalou ou pagou pelo app ou jogo no Google Play.
- Dispositivo Android genuíno: determina se o app está sendo executado em um dispositivo Android genuíno com a tecnologia do Google Play Services.
- Sem malware conhecido: determine se o Google Play Protect está ativado e se encontrou apps de risco ou perigosos instalados no dispositivo.
- Baixo risco de acesso por outros apps: determina se outros apps estão em execução e podem capturar a tela ou controlar o dispositivo e as entradas no seu app.
Como isso ajuda a mitigar fraudes
Quando um usuário realiza uma ação importante no app, você pode chamar a API Play Integrity. Caso contrário, o servidor de back-end do app poderá decidir o que fazer para se proteger de ataques e fraudes. Por exemplo, você pode exigir uma verificação adicional do usuário ou negar o acesso a funcionalidades sensíveis.

Risco de acesso ao app
O indicador Risco de acesso ao app foi criado para ajudar a avaliar se outros apps em um dispositivo podem acessar e capturar a tela quando o app está em execução ou usando permissões de acessibilidade. Os apps de acessibilidade verificados são excluídos automaticamente desses vereditos. O indicador de risco de acesso ajuda os desenvolvedores a proteger os apps e, ao mesmo tempo, preservar a privacidade do usuário, porque o app solicitante não recebe a identidade dos apps instalados e o veredito não é vinculado a identificadores de usuário ou dispositivo.
Graças a esse esforço colaborativo, conseguimos os indicadores necessários para gerar insights mais profundos e proteger nossos clientes de forma mais eficaz.
—Nubank, parceiro de acesso antecipado
O risco de acesso a apps tem diferentes níveis:
- Uma resposta de captura significa que outros apps estão em execução e podem capturar a tela.
- Uma resposta de controle significa que outros apps estão em execução e podem controlar o dispositivo. Portanto, eles podem capturar a tela e controlar as entradas no seu app.
Aplicação do risco de acesso a apps
Identifique ações sensíveis ou de alto valor no app ou jogo para proteger com a API Play Integrity em vez de negar o acesso imediatamente. Sempre que possível, conteste o tráfego arriscado antes de permitir ações de alto valor. Por exemplo, quando o risco de acesso indicar que um app que pode capturar a tela está em execução, peça para o usuário desativar ou desinstalar apps que conseguem fazer isso antes de permitir que ele prossiga para a funcionalidade que você quer proteger.
Esta tabela contém alguns exemplos de veredictos:
| Exemplo de resposta para o veredito de risco de acesso a apps | Interpretação |
|---|---|
appsDetected:["KNOWN_INSTALLED"]
|
Os únicos apps instalados são reconhecidos pelo Google Play ou foram pré-carregados na partição do sistema pelo fabricante do dispositivo. Não há apps em execução que possam resultar nos vereditos de captura, controle ou sobreposições. |
appsDetected:["KNOWN_INSTALLED","UNKNOWN_INSTALLED","UNKNOWN_CAPTURING"]
|
Há apps instalados pelo Google Play ou pré-carregados na partição do sistema pelo fabricante do dispositivo. Há outros apps em execução com permissões ativadas que podem ser usados para visualizar a tela ou capturar outras entradas e saídas. |
appsDetected:["KNOWN_INSTALLED","KNOWN_CAPTURING","UNKNOWN_INSTALLED","UNKNOWN_CONTROLLING"]
|
Há apps do sistema ou do Google Play em execução com permissões ativadas que podem ser usados para visualizar a tela ou capturar outras entradas e saídas. Há também outros apps em execução com permissões ativadas que podem ser usados para controlar o dispositivo e controlar diretamente as entradas no seu app. |
appAccessRiskVerdict: {}
|
O risco de acesso a apps não foi avaliado porque um requisito necessário está ausente. Por exemplo, o dispositivo não era confiável o suficiente. |
Play Protect Signal
O indicador do Play Protect informa ao app se o serviço está ativado e se encontrou apps nocivos conhecidos instalados nos dispositivos.
environmentDetails:{
playProtectVerdict: "NO_ISSUES"
}
Se o malware for uma preocupação específica para seu app ou os dados dos usuários, verifique esse veredito e peça aos usuários para ativar o Play Protect ou remover apps nocivos antes de continuar.

O playProtectVerdict pode ter um destes valores:
| Veredito | Explicação | Ação recomendada |
|---|---|---|
|
O Play Protect está ativado e não encontrou problemas de apps no dispositivo. |
O Play Protect está ativado e não encontrou problemas. Por isso, nenhuma ação do usuário é necessária. |
|
O Play Protect está ativado, mas nenhuma verificação foi realizada ainda. O dispositivo ou o app Google Play Store pode ter sido redefinido recentemente. |
O Play Protect está ativado e não encontrou problemas. Por isso, nenhuma ação do usuário é necessária. |
|
O Play Protect está desativado. |
O Play Protect está ativado e não encontrou problemas. Por isso, nenhuma ação do usuário é necessária. |
|
O Play Protect está ativado e encontrou apps potencialmente nocivos instalados no dispositivo. |
Dependendo da sua tolerância a riscos, você pode pedir que o usuário abra o Play Protect e tome medidas em relação aos avisos mostrados. Se o usuário não conseguir cumprir esses requisitos, você poderá bloqueá-lo da ação do servidor. |
|
O Play Protect está ativado e encontrou apps perigosos instalados no dispositivo. |
Dependendo da sua tolerância a riscos, você pode pedir que o usuário abra o Play Protect e tome medidas em relação aos avisos mostrados. Se o usuário não conseguir cumprir esses requisitos, você poderá bloqueá-lo da ação do servidor. |
|
O veredito do Play Protect não foi avaliado. Isso pode acontecer por vários motivos, incluindo:
|
Atividade recente do dispositivo
Você também pode ativar a atividade recente do dispositivo, que informa quantas vezes seu app solicitou um token de integridade em um dispositivo específico na última hora. É possível usar a atividade recente do dispositivo para proteger seu app contra dispositivos hiperativos inesperados que podem indicar um ataque ativo. Você pode decidir o quanto confiar em cada nível de atividade do dispositivo recente com base em quantas vezes você espera que o app instalado em um dispositivo comum solicite um token de integridade a cada hora.
Se você ativar o recebimento de recentDeviceActivity, o campo deviceIntegrity
terá dois valores:
deviceIntegrity: {
deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
recentDeviceActivity: {
// "LEVEL_2" is one of several possible values.
deviceActivityLevel: "LEVEL_2"
}
}
Primeiro, verifique os dados para saber quais são os níveis típicos de atividade do dispositivo para seu app em todos os dispositivos. Em seguida, você pode decidir como o app deve responder quando um dispositivo faz muitas solicitações. Se a atividade estiver um pouco alta, peça para o usuário tentar de novo mais tarde. Se a atividade for muito alta, talvez seja necessário tomar medidas mais enérgicas.
Solicitações padrão x clássicas
Como parte da implementação da API Play Integrity, é importante considerar os dois tipos de solicitações. Use solicitações padrão na maioria dos casos para fornecer a resposta mais rápida. As solicitações clássicas devem ser usadas quando for necessário gerar uma nova solicitação em relação ao registro de atestado do dispositivo.
Solicitação clássica |
Solicitação padrão |
|---|---|
As solicitações levam mais tempo e precisam ser feitas com menos frequência. Por exemplo, como uma ocasião única para verificar se uma ação sensível é genuína. Use com pouca frequência. |
As solicitações têm baixa latência e podem ser usadas sob demanda. Uma solicitação padrão consiste em duas partes:
Usar sob demanda. |
Leia a documentação da Play Integrity para mais informações sobre solicitações padrão e clássicas.
Implementação
Para começar a usar a API Play Integrity:
- Ative as respostas da API Play Integrity no Google Play Console e vincule a um projeto na nuvem do Google.
- Integre a API Play Integrity ao app.
- Decida como processar vereditos.
Por padrão, a API Play Integrity permite até 10 mil solicitações por app por dia. Para expressar interesse em aumentar o número máximo de solicitações diárias, siga estas instruções. Para se qualificar para um aumento no número máximo diário de solicitações, o app precisa implementar a API Play Integrity corretamente e estar disponível no Google Play além de outros canais de distribuição.
O que você precisa saber sobre a API Play Integrity
- É essencial processar os erros nas respostas das APIs Play Integrity de maneira adequada. Siga o guia sobre estratégias de novas tentativas e aplicação com base em códigos de erro.
- A API Play Integrity oferece ferramentas de teste para respostas.
- Para conferir o resultado da integridade no seu dispositivo, siga estas etapas.
- Leia estas considerações de segurança para práticas recomendadas usando a API Play Integrity.
Proteção automática da integridade (API >= 23)
A Proteção automática da integridade é um serviço de proteção contra adulterações que protege seu app contra abusos de integridade na forma de modificações e redistribuições não autorizadas. Ela funciona sem uma conexão de dados e não exige trabalho do desenvolvedor antes do teste nem a integração do servidor de back-end.
Como isso ajuda a mitigar fraudes
Quando você ativa a Proteção automática da integridade, o Google Play adiciona verificações ao código do app e dificulta a remoção delas com técnicas avançadas de ofuscação e antiengenharia reversa. Durante a execução, a proteção verifica se o app foi adulterado ou redistribuído:
- Se a verificação do instalador falhar, os usuários precisarão baixar o app no Google Play.
- Se a verificação de modificações resultar em um erro, o app não será executado.
Isso ajuda a proteger os usuários contra versões modificadas do app.
Implementação
No momento, a Proteção automática da integridade está disponível apenas para parceiros selecionados do Google Play. Entre em contato com o suporte ao desenvolvedor do Google Play se o recurso não estiver disponível no seu Google Play Console e você quiser ter acesso a ele.
Você pode ativar a proteção ao criar uma versão ou na página Protegido com o Google Play. A Proteção automática da integridade exige que seu app use a assinatura de apps do Google Play.
Teste o app protegido antes de promover o lançamento para produção.
Considerações importantes
- Não lançar versões não protegidas do app
- Cuidado ao combinar soluções de proteção contra adulterações
- Testar o app protegido antes de lançar para produção
- Monitore as estatísticas normalmente para detectar aumentos nas falhas.
- Você pode denunciar versões crackeadas do app ao Google Play