Recentemente, relatamos como vários aplicativos piratas de streaming para iOS conseguiram ser aprovados na App Store enganando o processo de revisão. Embora tenhamos mencionado brevemente algumas das técnicas usadas por esses desenvolvedores, 9to5Mac agora se aprofundou em como esses aplicativos são projetados para enganar a Apple.
Técnicas usadas por desenvolvedores para contornar a revisão da App Store
No mês passado, um aplicativo chamado “Collect Cards” chegou ao topo do ranking da App Store dos aplicativos gratuitos mais baixados em alguns países. Após nossa reportagem, a Apple tirou o aplicativo do ar – mas muitas outras versões do mesmo aplicativo foram lançadas posteriormente na App Store. Mas como exatamente os desenvolvedores conseguem enganar a equipe de revisão da App Store?
Em nosso relatório original, explicamos que esses aplicativos usam geofence para impedir que qualquer pessoa na Apple veja o que o aplicativo é realmente capaz de fazer. Mas, ao analisar o código desses aplicativos, agora temos uma ideia melhor de como isso acontece.
Como imaginamos, esses aplicativos compartilham a mesma base de código – mesmo que sejam distribuídos por diferentes contas de desenvolvedores. Eles são construídos no React Native, uma estrutura multiplataforma baseada em JavaScript, e usam o CodePush SDK da Microsoft, que permite que os desenvolvedores atualizem partes do aplicativo sem ter que enviar uma nova compilação para a App Store.
Construir aplicativos React Native e usar CodePush não é contra as regras da App Store. Na verdade, há muitos aplicativos populares que fazem isso. No entanto, desenvolvedores maliciosos aproveitam essas tecnologias para contornar a revisão da App Store.
Um dos aplicativos analisados por 9to5Mac aponta para um Repositório GitHub que parece fornecer arquivos para vários aplicativos de streaming piratas. Este aplicativo também usa uma API específica para verificar a localização do dispositivo com base no endereço IP. Ele retorna dados como país, região, cidade e até longitude e latitude estimadas.
Quando o aplicativo é aberto pela primeira vez, ele espera alguns segundos para chamar a API de geolocalização. Dessa forma, o processo de revisão automatizado da App Store não vê nada incomum no código do aplicativo. Também verificamos o comportamento do aplicativo executando-o por meio de um proxy para falsificar nossa localização para San Jose, Califórnia. Para essa localização, o aplicativo nunca revela sua interface oculta.
Após a Apple aprovar o aplicativo com suas funcionalidades básicas, os desenvolvedores usam o CodePush para atualizá-lo com o que quiserem. O aplicativo então revela sua verdadeira interface em locais “seguros”.
O que a Apple pode fazer a respeito?
Claro, a Apple não é imune a aplicativos que tentam enganar seu sistema de revisão. No entanto, a empresa poderia melhorá-lo implementando testes adicionais para verificar o comportamento do aplicativo em outros locais. Ao mesmo tempo, a Apple deveria encontrar e remover aplicativos fraudulentos da App Store de forma mais proativa.
Em 2017, a Uber foi acusada de trabalhar em uma “cerca geográfica” para a sede da Apple em Cupertino. Quando o aplicativo era executado dentro dessa cerca geográfica, ele desabilitava automaticamente os códigos usados para fazer a impressão digital e rastrear o usuário pela web. Mesmo assim, parece que a Apple não fez muito para evitar outras situações como essa.
Em 2021, documentos revelaram que a equipe de revisão da App Store tem mais de 500 especialistas humanos para revisar mais de 100.000 aplicativos toda semana. Mesmo assim, a grande maioria dos aplicativos passa por processos de revisão automatizados para verificar se violam as diretrizes da App Store antes de passar pelo processo de revisão manual.
Após a publicação dos nossos artigos, um porta-voz da Apple disse 9to5Mac que os aplicativos foram removidos da App Store, mas nenhum detalhe foi fornecido sobre as medidas da empresa para impedir que outros aplicativos como esse sejam aprovados.