Ir para o conteúdo

O guia completo para extrair dados de APIs de aplicativos móveis

Em nosso mundo moderno, que prioriza os dispositivos móveis, a popularidade dos aplicativos móveis está explodindo e substituindo os sites tradicionais de muitos serviços. Existem agora mais de 5 milhões de aplicativos disponíveis nas principais lojas de aplicativos. O usuário médio de smartphone tem mais de 80 aplicativos instalados. E os aplicativos móveis representam 90% do tempo gasto online em aplicativos em comparação à web móvel.

O que isso significa? Os aplicativos móveis estão se tornando uma das fontes de dados mais valiosas e abundantes em nosso mundo cada vez mais digital. Dados de localização, estatísticas de uso, perfis, transações e muito mais podem ser extraídos do tráfego de aplicativos móveis.

Isso representa uma grande oportunidade para empresas, pesquisadores e desenvolvedores. Mas a coleta desses dados requer a interceptação da comunicação entre os aplicativos e suas APIs de back-end. Isso ocorre porque os aplicativos móveis usam conexões HTTPS criptografadas para transmitir dados com segurança.

Simplesmente farejar o tráfego da rede não revelará o conteúdo. Você precisa de uma maneira de descriptografar o tráfego.

Insira servidores proxy man-in-the-middle (MITM).

Neste guia abrangente de 4,000 palavras, você aprenderá:

  • O que exatamente é um proxy MITM e como funciona
  • Passo a passo de como configurar seu próprio proxy MITM para análise de tráfego de aplicativos móveis
  • Como usar o proxy para observar e fazer engenharia reversa de uma API de aplicativo móvel
  • Ferramentas e técnicas para extrair dados valiosos de APIs de aplicativos móveis
  • Melhores práticas de proxy MITM para coleta responsável de dados

Se você deseja experiência prática na extração de dados de aplicativos como Tinder, Airbnb, Yelp e muito mais, você veio ao lugar certo. Vamos começar!

O que é um proxy Man-in-the-Middle (MITM)?

Para entender como os proxies MITM permitem a coleta de dados de aplicativos móveis, primeiro você precisa entender o que a criptografia HTTPS faz.

HTTPS usa certificados SSL/TLS para criptografar a comunicação entre um cliente (por exemplo, aplicativo móvel) e um servidor (por exemplo, back-end de API). Isso evita que alguém que esteja espionando a rede visualize ou altere o tráfego.

Mas e se você pudesse interceptar esse tráfego situando-se no meio — entre o cliente e o servidor de destino?

Isto é exatamente o que um proxy MITM faz. O proxy atua como um intermediário pelo qual todo o tráfego passa:

Cliente <—-> Proxy MITM <—-> Servidor de destino

O proxy estabelece conexões SSL separadas com o cliente e o servidor para descriptografar o tráfego. Ele pode então inspecionar, analisar e até mesmo modificar as solicitações de texto simples antes de criptografá-las novamente e enviá-las.

Ao instalar o certificado raiz do proxy como uma autoridade confiável, ele pode representar efetivamente qualquer domínio. Isso permite uma interceptação contínua sem acionar avisos de segurança do navegador.

Alguns proxies MITM populares incluem:

procuraçãoPlataformaNotas
mitmproxy.Mac, Windows, LinuxFerramenta poderosa baseada em console
Procurador CarlosMac, Windows, LinuxGUI, suporte para configuração de dispositivo
ViolinistaWindowsPode depurar o tráfego de aplicativos do Windows

Neste guia, demonstraremos o uso mitmproxy. já que é gratuito, de código aberto e rápido de configurar.

Agora vamos ver como configurar um dispositivo móvel para rotear seu tráfego através do seu proxy MITM.

Etapa 1: instale o mitmproxy em seu computador

A primeira etapa é instalar e iniciar o servidor proxy mitmproxy em seu desktop ou laptop. Ele interceptará solicitações de dispositivos configurados para rotear através dele.

Instalar no macOS

Se você estiver em um Mac, a maneira mais fácil de instalar o mitmproxy é via Homebrew:

$ brew install mitmproxy

Instalar no Linux

No Linux, use o gerenciador de pacotes da sua distribuição, por exemplo:

$ sudo apt install mitmproxy # Debian/Ubuntu
$ sudo dnf install mitmproxy # Fedora

Instalar no Windows

Os usuários do Windows podem baixar a versão binária oficial em mitmproxy.org. Certifique-se de escolher a versão mais recente do mitmproxy, não o utilitário mitmdump.

Inicie o proxy

Depois de instalado, inicie o mitmproxy na porta padrão 8080:

$ mitmproxy

Você deverá ver as solicitações interceptadas aparecendo no console mitmproxy:

console mitmproxy

Deixe isso em execução em segundo plano enquanto você configura seu dispositivo móvel para usar o proxy.

Etapa 2: configurar o dispositivo móvel para rotear através do mitmproxy

Agora precisamos configurar o dispositivo móvel para rotear seu tráfego através do proxy mitmproxy para interceptação.

Aqui estão as etapas para sistemas operacionais móveis comuns:

No iPhone/iOS

  1. Conecte seu iPhone à mesma rede Wi-Fi do seu computador executando o mitmproxy.

  2. Vá para Configurações > Wi-Fi e selecione sua rede atual.

  3. Role para baixo e toque em Configurar Proxy.

  4. Selecionar manual para definir seus próprios detalhes de proxy:

    • Servidor: O endereço IP do seu computador na rede (por exemplo, 192.168.1.10)

    • Porto: 8080

Isso roteia todo o tráfego do dispositivo através do seu computador e do mitmproxy!

No Android

  1. Conecte seu dispositivo Android à mesma rede Wi-Fi do proxy.

  2. Vá para Configurações > Wi-Fi > Opções avançadas > Proxy e selecione manual.

  3. Digite o endereço IP do seu computador no campo Hostname e 8080 para a porta.

  4. Toque em Salvar para aplicar a configuração de proxy.

No Windows Phone

  1. Na tela inicial, deslize para a esquerda até a lista de aplicativos e toque em Configurações.

  2. Torneira Wi-fi e mantenha pressionada sua rede conectada. Selecione Editar.

  3. Torneira Mostrar opções avançadas então Definir proxy para Manual.

  4. Digite o endereço IP do seu computador e 8080 para a porta.

  5. Torneira Salvar para se conectar através do proxy.

E é isso! Seu dispositivo móvel agora deve rotear todo o tráfego através do mitmproxy para interceptação.

Etapa 3: Instale o certificado mitmproxy no dispositivo móvel

Neste ponto, você verá o tráfego no console mitmproxy do seu dispositivo móvel. No entanto, a maioria dos aplicativos usa HTTPS, então você não conseguirá visualizar o conteúdo.

Para descriptografar o tráfego HTTPS, você precisa instalar o certificado mitmproxy como uma autoridade de certificação raiz confiável em seu dispositivo móvel.

Mitmproxy fornece um site útil em http://mitm.it que irá gerar o certificado para a plataforma específica do seu dispositivo.

Simplesmente vá para http://mitm.it no navegador do seu dispositivo móvel e clique no link do seu sistema operacional:

site mitm.it

Em seguida, instale o certificado baixado no seu dispositivo:

No iOS

  1. Vá para Configurações > Geral > Sobre > Configurações de confiança do certificado

  2. permitir que o mitmproxy. certificado

No Android

  1. Salve o mitmproxy-ca-cert.pem arquivo em algum lugar no armazenamento do dispositivo

  2. Vá para Configurações > Segurança > Instalar do armazenamento

  3. Selecione os mitmproxy-ca-cert.pem lima

No Windows Phone

  1. Vá para Sistema > Criptografia > Importar certificado

  2. Escolha o baixado mitmproxy-ca-cert.crt

Talvez seja necessário definir o certificado mitmproxy como confiável para VPN ou aplicativos. Agora o mitmproxy pode interceptar até mesmo o tráfego criptografado por HTTPS do dispositivo.

Habilite o certificado apenas quando precisar depurar o tráfego e desabilite quando terminar! Não exponha dados de outros aplicativos desnecessariamente.

Ok, hora da parte divertida... vamos ver como observar o tráfego para fazer engenharia reversa e extrair APIs de aplicativos móveis!

Etapa 4: observar e reverter uma API de aplicativo móvel

Abra o aplicativo móvel que deseja estudar no dispositivo configurado para usar o proxy. Por exemplo, usarei o aplicativo de entrega de comida Swiggy.

No console mitmproxy do seu computador, você deverá ver solicitações provenientes do endereço IP do seu dispositivo móvel.

Filtre a visualização pelo domínio da API que você deseja analisar. Para Swiggy, isso é prod-api.swiggy.com:

Tráfego da API Swiggy em mitmproxy

Ao interagir com o aplicativo móvel, procure padrões nas solicitações de API. Você pode expandir uma solicitação para ver detalhes completos:

Solicitação de API expandida

Testar diferentes fluxos de aplicativos revela quais endpoints existem na API de back-end e quais dados eles retornam. Para raspagem, estamos interessados ​​em ENTRE solicitações que retornam dados JSON.

Com base na observação do tráfego de Swiggy, podemos ver:

  • /restaurants/list/v5 retorna uma lista de restaurantes para um local
  • /menu/v4 obtém o menu de um restaurante específico
  • /geocode/v1 converte endereços em coordenadas lat/lng

E assim por diante. Isso nos permite entender e mapear os endpoints da API.

Agora podemos replicar solicitações de API para extrair dados. Por exemplo, ligar /restaurants/list/v5 com o lat e lng parâmetros retorna uma lista JSON de restaurantes:

import requests

api_url = ‘https://prod-api.swiggy.com/restaurants/list/v5‘

params = {
  ‘lat‘: 12.972442, 
  ‘lng‘: 77.580643 
}

response = requests.get(api_url, params=params)
data = response.json() 

for restaurant in data:
  print(restaurant[‘name‘], restaurant[‘area‘])

Isso imprime nomes e áreas de restaurantes Swiggy próximos a um determinado local. O proxy nos permite ver como o aplicativo funciona e fazer engenharia reversa da API para raspagem.

Estratégias de raspagem para APIs de aplicativos móveis

Depois de inspecionar o tráfego da API de um aplicativo para entender os endpoints e os parâmetros, você poderá começar a coletar dados de maneira programática.

Aqui estão algumas das melhores práticas:

  • Usar proxies – Alterne IPs residenciais diferentes para evitar bloqueios de limitação de taxa.

  • Randomizar entradas – Varie as coordenadas geográficas, IDs de usuário, etc. para parecer mais humano.

  • Limitar solicitações – Adicione atrasos entre solicitações para limitar o volume.

  • Dados de cache – Armazene respostas para evitar solicitações duplicadas.

  • Lidar com erros – Tente novamente solicitações com falha e lide normalmente com erros HTTP.

  • Paginar dados – Siga os links de paginação nas respostas para extrair todos os dados.

  • Use POST quando necessário – Algumas ações, como fazer um pedido, exigem solicitações POST.

  • Analise rapidamente – Extraia apenas os dados necessários em vez de analisar tudo.

  • Limpar metadados – Remova IDs exclusivos, carimbos de data/hora, etc. que possam identificar registros.

  • Mantenha-se atualizado – Verifique se há alterações na API após atualizações do aplicativo.

Com alguma criatividade, você pode criar scrapers para extrair todos os tipos de dados valiosos de APIs de aplicativos móveis. Apenas certifique-se de seguir cuidadosamente os Termos de Serviço e usar os dados com responsabilidade!

Scraping responsável de API móvel

Como qualquer forma de web scraping, a coleta de dados de APIs móveis envolve algumas considerações éticas:

  • Não sobrecarregue os servidores – Limite o volume de solicitações para minimizar o impacto.

  • Restringir uso – Colete apenas dados cuja necessidade você possa justificar.

  • Respeite os Termos de Serviço – Evite violar os termos de serviço ou NDAs.

  • Proteger dados – Armazene dados com segurança e minimize os períodos de retenção.

  • Desidentificar dados – Remova informações pessoais não necessárias para o seu propósito.

  • Verifique as leis – Alguns locais regulamentam tipos de coleta de dados.

  • Use sabiamente – Os dados devem agregar valor, não apenas ser coletados porque você pode.

Transparência e ética são críticas. Com ótimos dados vêm grandes responsabilidades!

Conclusão

Espero que este guia tenha fornecido uma visão abrangente sobre a interceptação de dados de aplicativos móveis com proxies man-in-the-middle. As principais conclusões:

  • Os proxies MITM permitem interceptar o tráfego HTTPS de aplicativos móveis instalando o certificado proxy.

  • Ferramentas como o mitmproxy facilitam a inspeção desse tráfego para entender como um aplicativo se comunica com os back-ends da API.

  • A engenharia reversa dos endpoints da API permite a replicação de solicitações para extrair dados de aplicativos móveis.

  • Proxies, limitação e outras técnicas podem ser usadas para coletar dados de aplicativos móveis com eficiência e em grande escala.

  • Certifique-se de eliminar APIs móveis de forma ética e legal.

Os aplicativos móveis fornecem uma grande quantidade de dados que estão apenas esperando para serem acessados. Agora que você sabe como usar proxies MITM para acessá-lo, as possibilidades são infinitas!

De quais aplicativos legais você começará a extrair dados? Deixe-me saber se você tiver alguma outra dúvida sobre proxy móvel!

Junte-se à conversa

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *