O Google oferece um conjunto de APIs e serviços para ajudar a detectar se seu aplicativo está em um ambiente seguro e confiável. O ponto central é a Play Integrity que ajuda a verificar se as interações são genuínas, detectando potencialmente interações arriscadas e fraudulentas. Além da integridade do app e do dispositivo, o Google Play A API Integrity agora oferece informações sobre riscos de acesso e acessibilidade, Google Play Protect e atividade recente do dispositivo. Para endurecer 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
A API Play Integrity ensina 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 é acessar informações sensíveis.
Ele ajuda a verificar se as interações e solicitações do servidor estão vindo do seu 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 Play: determina se a conta de usuário atual é licenciado, o que significa que o usuário instalou ou pagou por seu app ou jogo em Google Play
- Dispositivo Android genuíno: determina se o app está sendo executado em um dispositivo Android genuíno. Dispositivo Android com a tecnologia do Google Play Services.
- Sem malware conhecido: determine se o Google Play Protect está ativado. e se ele encontrou apps perigosos ou perigosos instalados no dispositivo.
- Baixo risco de acesso de outros apps: determine se outros apps estão em execução. que podem capturar a tela ou controlar o dispositivo e as entradas do seu app.
Como isso ajuda a reduzir fraudes
Quando um usuário realiza uma ação importante no app, você pode chamar a função Play Store API Integrity. Caso contrário, o servidor de back-end do app pode decidir o que para se defender de ataques e fraudes. Por exemplo, é possível exigir verificação extra de usuários ou negar acesso a recursos sensíveis.
Risco de acesso ao app
O indicador Risco de acesso a apps foi criado para ajudar você a avaliar se outras em um dispositivo podem estar visualizando e capturando a tela quando seu aplicativo executar ou acessar o app usando as permissões de acessibilidade. Verificada os apps de acessibilidade são excluídos automaticamente desses vereditos. Acesso de apps ajuda os desenvolvedores a proteger os apps e preservar a privacidade do usuário porque o aplicativo solicitante não obtém a identidade dos aplicativos instalados e o ou o veredito não está vinculado a identificadores de usuários ou dispositivos.
Graças a esse esforço colaborativo, conseguimos os sinais necessários para fornecer insights mais detalhados para proteger os clientes com mais eficiência.
— Nubank, parceiro de acesso antecipado
O App Access Risk tem diferentes níveis de risco:
- Uma resposta de captura significa que outros apps que podem capturar a tela estão em execução.
- Uma resposta controlada significa que outros apps estão em execução e podem controlar o do dispositivo e, assim, podem capturar a tela e controlar as entradas no seu app.
O indicador de risco de acesso a apps já está disponível na versão Beta pública e será disponibilizado de forma geral disponíveis nos próximos meses.
Aplicação da restrição de 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 vereditos:
Exemplo de resposta para o veredito de risco de acesso a apps | Interpretação |
---|---|
appsDetected: ["KNOWN_INSTALLED"]
|
Somente os apps instalados são reconhecidos pelo Google Play ou pré-carregados na partição do sistema pelo fabricante. Não há aplicativos em execução que resultem na captura, controlar ou sobrepor vereditos. |
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 e com permissões ativadas que podem ser usado para visualizar a tela ou capturar outras entradas e saídas. |
appsDetected: ["KNOWN_INSTALLED", "KNOWN_CAPTURING", "UNKNOWN_INSTALLED", "UNKNOWN_CONTROLLING"]
|
Há alguma execução do Google Play ou do sistema 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 poderia ser usada para controlar o dispositivo e controlar diretamente as entradas seu app. |
appAccessRiskVerdict: {}
|
O risco de acesso a apps não foi avaliado porque um requisito necessário foi que você perdeu. Por exemplo, o dispositivo não era confiável o suficiente. |
Sinal do Play Protect
O sinal do Play Protect informa ao app se o Play Protect está ativado e se encontrou apps nocivos conhecidos instalados no dispositivo.
environmentDetails:{
playProtectVerdict: "NO_ISSUES"
}
Se o malware é uma preocupação específica para seu app ou para os usuários dados, é possível conferir o veredito e pedir aos usuários que ativem o Play Protect ou removam conteúdo nocivo 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 foi obrigatórios. |
|
O Play Protect está ativado, mas nenhuma verificação foi realizada ainda. A ou o app 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 foi obrigatórios. |
|
O Play Protect está desativado. |
O Play Protect está ativado e não encontrou problemas. Por isso, nenhuma ação do usuário é obrigatório. |
|
O Play Protect está ativado e encontrou apps potencialmente nocivos instalado no dispositivo. |
Dependendo da tolerância ao risco, é possível pedir ao usuário para lançar Play Protect e tomar medidas em relação aos avisos dele. Se o usuário não puder cumprir esses requisitos, poderá bloqueá-lo no servidor à ação. |
|
O Play Protect está ativado e encontrou apps perigosos instalados no dispositivo. |
Dependendo da tolerância ao risco, é possível pedir ao usuário para lançar Play Protect e tomar medidas em relação aos avisos dele. Se o usuário não puder cumprir esses requisitos, poderá bloqueá-lo ação do servidor. |
|
O veredito do Play Protect não foi avaliado. Isso poderia 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 o app solicitou um token de integridade em um dispositivo específico na última hora. Você pode usar a atividade recente do dispositivo para proteger o aplicativo contra dispositivos hiperativos que podem indicar um ataque ativo. Você pode decida o quanto confiar em cada nível de atividade recente do dispositivo com base em quantos vezes que você espera que o app instalado em um dispositivo comum solicite uma integridade por hora.
Se você ativar o recebimento de recentDeviceActivity
, o campo deviceIntegrity
será
têm 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 estão em todos os seus dispositivos. Depois, decida como seu app deve responder quando um dispositivo estiver fazendo muitas solicitações. Se a atividade for um um pouco alto, você pode pedir ao usuário para tentar novamente mais tarde. Se a atividade for muito alto, tome medidas de fiscalização mais rígidas.
Solicitações padrão x clássicas
Como parte da implementação da Play Integrity, é importante considerar os dois tipos de solicitações. Use solicitações padrão na maioria dos casos fornecer a resposta mais rápida, e as solicitações clássicas devem ser usadas uma solicitação recém-gerada no registro de atestado do dispositivo é necessária.
Solicitação clássica |
Solicitação padrão |
---|---|
As solicitações levam mais tempo e devem ser feitas com menos frequência. Por exemplo, como uma ocasião única para verificar se um item altamente valioso ou ações sensíveis são genuínas. 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:
Use sob demanda. |
Leia a documentação da Play Integrity para mais informações sobre padrões 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 do Google Cloud.
- Integre a API Play Integrity ao app.
- Decida como você vai lidar com os vereditos.
Por padrão, a API Play Integrity permite até 10 mil solicitações por app por dia. Para mostrar interesse em aumentar o número máximo de solicitações diárias, siga estas instruções. ter direito ao aumento do seu número máximo diário; de solicitações, o app precisa implementar a API Play Integrity corretamente e ser disponível no Google Play, além de quaisquer outros canais de distribuição.
Considerações sobre a API Play Integrity
- É essencial lidar com erros nas respostas das APIs Play Integrity. adequadamente. Siga o guia sobre estratégias de repetição e aplicação. com base em códigos de erro.
- A API Play Integrity oferece ferramentas de teste para respostas.
- Para conferir o resultado de integridade do seu dispositivo, siga estas etapas.
- Leia estas considerações de segurança para conhecer as 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 de código contra adulterações que protege o app contra abuso de integridade na forma de modificação e redistribuição. Ele funciona sem uma conexão de dados e exige nenhum trabalho do desenvolvedor antes do teste e nenhuma integração do servidor de back-end.
Como isso ajuda a reduzir fraudes
Quando você ativa a Proteção automática da integridade, o Google Play adiciona verificações no código do app e os torna difíceis de remover com ofuscação e técnicas antiengenharia reversa. No ambiente de execução, a proteção verifica se o o app foi adulterado ou redistribuído:
- Se a verificação do instalador resultar em um erro, os usuários vão precisar fazer o download do 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 só está disponível para parceiros do Google Play selecionados tempo de resposta. Entrar em contato com o suporte ao desenvolvedor do Google Play se o recurso não estiver disponível em Google Play Console e quiser demonstrar interesse em participar acesso.
É possível ativar a proteção ao criar uma versão ou no App Integridade (Versão > Integridade do app). Integridade automática exige que o 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 de apps desprotegidas
- Cuidado ao combinar soluções de proteção contra adulterações
- Testar o app protegido antes do lançamento para produção
- Monitore as estatísticas normalmente para verificar qualquer aumento nas falhas.
- É possível denunciar versões crackeadas do app ao Google Play