A API Play Integrity ajuda a verificar se as interações e solicitações do servidor são provenientes do binário genuíno do app em execução em um dispositivo Android genuíno. Ao detectar interações possivelmente perigosas e fraudulentas, como versões do app adulteradas e ambientes não confiáveis, o servidor de back-end do app pode responder com as ações adequadas para evitar ataques e reduzir abusos.
Quando o app ou jogo é usado em um dispositivo Android com a Google Play Store e a tecnologia do Google Play Services, a API Play Integrity fornece uma resposta que ajuda a determinar se você está interagindo com o seguinte:
- 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 do 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 (ou uma instância genuína do Google Play Games para PC).
Você também pode optar por receber informações sobre o ambiente na resposta da API Play Integrity, incluindo:
- Risco de acesso a apps:determine se há apps em execução que podem ser usada para capturar a tela, mostrar sobreposições ou controlar o dispositivo.
- Risco de malware conhecido:determine se o Google Play Protect está ativado. e se ele encontrou apps de risco ou perigosos instalados no dispositivo.
Visão geral
Quando um usuário realiza uma ação no app, é possível chamar a API Play Integrity para verificar se isso aconteceu no binário genuíno do app, instalado pelo Google Play, em execução em um dispositivo Android genuíno. Você também pode ativar outros informações na resposta, incluindo o volume de solicitações feitas por um dispositivo e indicadores sobre o ambiente, incluindo o risco de acesso a apps e do Play Protect. Se algo estiver errado com os vereditos, o servidor de back-end do app poderá decidir o que fazer para se proteger contra problemas como abuso e fraude, uso indevido e trapaça, acesso não autorizado e ataques.
Considerações sobre segurança
A API Play Integrity oferece um melhor resultado quando você segue estas práticas recomendadas:
Tenha uma estratégia contra abusos
A API Play Integrity funciona melhor quando usada em conjunto com outros sinais como parte da sua estratégia geral contra abuso, e não como o único mecanismo antiabuso. Use a API em conjunto com outras práticas recomendadas de segurança adequadas para o app. Por padrão, o app pode fazer até 10.000 solicitações por dia em todas as instalações. É possível solicitar o aumento do limite máximo diário.
Colete telemetria e entenda seu público antes de agir
Antes de mudar a forma como o app se comporta com base nos vereditos da API Play Integrity, é possível: entenda a situação atual com seu público-alvo implementando os a API sem restrições. Assim que você souber quais vereditos sua base instalada atual estiver retornando, você poderá estimar o impacto de qualquer aplicação que estiver planejando e ajustar sua estratégia contra abuso de forma adequada.
Decida como solicitar vereditos de integridade
A API Play Integrity oferece duas opções para solicitar e receber vereditos de integridade. Se você fizer solicitações padrão, solicitações clássicas ou uma combinação dos dois tipos de solicitação, a resposta do veredito de integridade será retornada no mesmo formato.
As solicitações de API padrão são adequadas para todos os apps ou jogos e podem ser feitas sob demanda para verificar se uma ação do usuário ou solicitação do servidor é genuína. As solicitações padrão têm a menor latência (algumas centenas de milissegundos, em média) e uma alta confiabilidade de um veredito utilizável. As solicitações padrão usam o armazenamento em cache inteligente no dispositivo e delegam proteção ao Google Play contra certos tipos de ataque.
As solicitações de API clássicas, a forma original de solicitar vereditos de integridade, também continuarão disponíveis. As solicitações clássicas têm maior latência (alguns segundos, em média) e você é responsável por reduzir o risco de determinados tipos de ataques. As solicitações clássicas usam mais dados e bateria do usuário do que as padrão porque iniciam uma nova avaliação e, por isso, não devem ser feitas com frequência. Elas são úteis para conferir se uma ação altamente confidencial ou valiosa é genuína. Se estiver pensando em fazer uma solicitação clássica e armazená-la em cache para uso futuro, faça uma solicitação padrão para reduzir o risco de ataques.
A tabela abaixo destaca as principais diferenças entre os dois tipos de solicitações:
Solicitação de API padrão | Solicitação de API clássica | |
---|---|---|
Versão mínima do SDK do Android exigida | Android 5.0 (nível 21 da API) ou mais recente | Android 4.4 (nível 19 da API) ou mais recente |
Aquecimento da API necessário | ✔️ (alguns segundos) | ❌ |
Latência de solicitação típica | Algumas centenas de milissegundos | Alguns segundos |
Possível frequência de solicitação | Frequente (verificação sob demanda de qualquer ação ou solicitação) | Infrequente (verificação única para ações de maior valor ou solicitações mais sensíveis) |
Mitigação de ataques de repetição e semelhantes | Mitigação automática do Google Play | Use o campo nonce com a lógica do lado do servidor |
Consulte uma tabela com mais diferenças nas considerações sobre solicitações clássicas.
Solicitar um veredito de integridade em um momento adequado
Solicite um veredito de risco de acesso a apps o mais próximo possível do horário da ação ou solicitação do servidor que você quer defender contra o acesso, para evitar que golpistas contornem a verificação de integridade realizada pela sua app.
Torne as solicitações de API difíceis de replicar
As solicitações de API padrão têm um campo chamado requestHash
, que é usado para proteger
contra adulteração e ataques semelhantes. Nesse campo, inclua um
resumo de todos os valores relevantes da solicitação do app. Siga as orientações sobre
como usar a vinculação de conteúdo
para proteger as solicitações padrão do app.
As solicitações de API clássicas têm um campo chamado nonce
(abreviação de "number once"), que
é usado para proteção contra certos tipos de ataque, como ataques de repetição
e adulteração. Siga as orientações sobre como gerar
valores de uso único para proteger as solicitações clássicas
do app.
Evite armazenar vereditos de integridade em cache
Armazenar vereditos de integridade em cache aumenta o risco de proxy, que é um ataque em que um usuário de má-fé reutiliza um veredito de um dispositivo genuíno para fins abusivos em outro ambiente. Em vez de armazenar as respostas em cache, faça uma solicitação de API padrão para receber um veredito sob demanda.
Tenha uma estratégia de aplicação em níveis
O veredito de integridade da API Play Integrity tem várias respostas possíveis, o que possibilita criar uma estratégia antiabuso com vários níveis de aplicação. Você pode fazer isso configurando o servidor de back-end do app para se comportar de maneira diferente dependendo de cada resposta possível ou de cada grupo de respostas.
Também é possível classificar sua estratégia de aplicação com base na confiabilidade
do dispositivo, ativando o recebimento de outros rótulos
de dispositivo na resposta da API
no Play Console. Cada dispositivo retornará todos os rótulos
que atendem aos critérios. Por exemplo, depois de ativar o recebimento de todos os identificadores
de dispositivo, você pode confiar mais em um dispositivo que retorna
MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
e MEETS_BASIC_INTEGRITY
do que um dispositivo que só retorna MEETS_BASIC_INTEGRITY
.
É possível usar respostas
diferentes do servidor para cada cenário.
Envie outros tipos de respostas do servidor ao app
Ter vários resultados de decisão é mais difícil do que enviar uma resposta binária de Permitir/Negar do servidor de volta ao app para cada resposta. Por exemplo, você pode usar uma série de respostas relacionadas, como Permitir, Permitir com limites, Permitir com limites após o preenchimento do CAPTCHA e Negar.
Detectar abuso em grande escala usando a atividade recente do dispositivo
Use o recurso Atividade recente do dispositivo na API Play Integrity para encontrar dispositivos que solicitam muitos tokens de integridade. Atividade de alto volume os infratores geralmente geram resultados de atestado válidos a partir de dispositivos reais e fornecidas a bots para automatizar ataques em dispositivos e emuladores com acesso root. Você pode usar o nível de atividade recente do dispositivo para verificar quantas atestados foram gerados pelo seu app nesse dispositivo na última hora.
Mostrar mensagens de erro acionáveis
Quando possível, forneça mensagens de erro úteis aos usuários e os informe sobre o que pode ser feito para corrigir o problema, como tentar de novo, ativar a conexão de Internet ou conferir se o app da Play Store está atualizado.
Antecipar problemas ou falhas inesperadas
O painel de status do Google Play mostra o status do serviço da API Play Integrity, além de informações sobre quaisquer interrupções e falhas temporárias. Você deve planejar com antecedência como você quer que seu servidor de back-end funcione no caso improvável de uma grande Interrupção do serviço da API Play Integrity.
Considere soluções corporativas completas contra fraudes
Clientes empresariais que procuram uma solução completa de gerenciamento de fraudes e bots podem adquirir o reCAPTCHA Enterprise para dispositivos móveis, que conta com SDKs para Android com pontuações de risco de fraude. O reCAPTCHA Enterprise inclui automaticamente os indicadores da API Play Integrity e os combina com a rede reCAPTCHA e indicadores de aplicativos para clientes, fornecendo uma solução de gerenciamento de fraudes simples e descomplicada. Ele também pode fornecer proteção para apps Android em que a API Play Integrity não está disponível.
Contestar tráfego arriscado ao acessar recursos sensíveis ou de alto valor
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.
Termos de Serviço e segurança dos dados
Ao acessar ou usar a API Play Integrity, você concorda com os Termos de Serviço da API Play Integrity. Leia e entenda todos os termos e políticas relevantes antes de acessar a API.
O Google Play tem uma seção "Segurança dos dados" para os desenvolvedores divulgarem os apps coleta, compartilhamento e práticas de segurança de dados para manter seus usuários informados. Para ajudar você a preencher o formulário de dados, consulte estas informações sobre como a API Play Integrity lida com dados.