Ir al contenido

La guía completa para extraer datos de las API de aplicaciones móviles

En nuestro mundo moderno en el que los dispositivos móviles son lo primero, las aplicaciones móviles están ganando popularidad y reemplazando a los sitios web tradicionales en muchos servicios. En la actualidad hay más de 5 millones de aplicaciones disponibles en las principales tiendas de aplicaciones. El usuario medio de un smartphone tiene más de 80 aplicaciones instaladas. Y las aplicaciones móviles representan el 90% del tiempo pasado en línea en aplicaciones en comparación con la web móvil.

¿Qué significa esto? Las aplicaciones móviles se están convirtiendo en una de las fuentes de datos más valiosas y abundantes en nuestro mundo cada vez más digital. Se pueden extraer datos de ubicación, estadísticas de uso, perfiles, transacciones y más del tráfico de aplicaciones móviles.

Esto presenta una gran oportunidad para empresas, investigadores y desarrolladores. Pero recopilar estos datos requiere interceptar la comunicación entre las aplicaciones y sus API de backend. Esto se debe a que las aplicaciones móviles utilizan conexiones HTTPS cifradas para transmitir datos de forma segura.

Simplemente olfatear el tráfico de la red no revelará el contenido. Necesita una forma de descifrar el tráfico.

Ingrese a los servidores proxy man-in-the-middle (MITM).

En esta guía completa de 4,000 palabras, aprenderá:

  • ¿Qué es exactamente un proxy MITM y cómo funciona?
  • Paso a paso cómo configurar su propio proxy MITM para el análisis del tráfico de aplicaciones móviles
  • Cómo utilizar el proxy para observar y aplicar ingeniería inversa a la API de una aplicación móvil
  • Herramientas y técnicas para extraer datos valiosos de las API de aplicaciones móviles
  • Mejores prácticas de proxy MITM para la recopilación responsable de datos

Si desea tener una experiencia práctica en la extracción de datos de aplicaciones como Tinder, Airbnb, Yelp y más, ha venido al lugar correcto. ¡Empecemos!

¿Qué es un proxy Man-in-the-Middle (MITM)?

Para comprender cómo los proxies MITM permiten extraer datos de aplicaciones móviles, primero debe comprender qué hace el cifrado HTTPS.

HTTPS utiliza certificados SSL/TLS para cifrar la comunicación entre un cliente (por ejemplo, una aplicación móvil) y un servidor (por ejemplo, API backend). Esto evita que cualquier persona que espíe la red pueda ver o alterar el tráfico.

Pero, ¿qué pasaría si pudiera interceptar ese tráfico ubicándose en el medio, entre el cliente y el servidor de destino?

Esto es exactamente lo que hace un proxy MITM. El proxy actúa como intermediario por el que pasa todo el tráfico:

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

El proxy establece conexiones SSL separadas con el cliente y el servidor para descifrar su tráfico. Luego puede inspeccionar, analizar e incluso modificar las solicitudes de texto sin formato antes de volver a cifrarlas y enviarlas.

Al instalar el certificado raíz del proxy como autoridad confiable, puede hacerse pasar por cualquier dominio de manera efectiva. Esto permite una interceptación perfecta sin activar advertencias de seguridad del navegador.

Algunos proxies MITM populares incluyen:

apoderadoProductosNotas
mitmproxymac, windows, linuxPotente herramienta basada en consola
Apoderado de Carlosmac, windows, linuxGUI, soporte de configuración de dispositivos
FiddlerWindowsPuede depurar el tráfico de aplicaciones de Windows

En esta guía, demostraremos el uso mitmproxy ya que es gratuito, de código abierto y rápido de configurar.

Ahora veamos cómo configurar un dispositivo móvil para enrutar su tráfico a través de su proxy MITM.

Paso 1: instale mitmproxy en su computadora

El primer paso es instalar e iniciar el servidor proxy mitmproxy en su computadora de escritorio o portátil. Interceptará solicitudes de dispositivos configurados para enrutarse a través de él.

Instalar en MacOS

Si estás en una Mac, la forma más sencilla de instalar mitmproxy es a través de Homebrew:

$ brew install mitmproxy

Instalar en Linux

En Linux, use el administrador de paquetes de su distribución, por ejemplo:

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

Instalar en Windows

Los usuarios de Windows pueden descargar la versión binaria oficial desde mitmproxy.org. Asegúrese de elegir la última versión de mitmproxy, no la utilidad mitmdump.

Iniciar el proxy

Una vez instalado, inicie mitmproxy en el puerto predeterminado 8080:

$ mitmproxy

Deberías ver las solicitudes interceptadas apareciendo en la consola mitmproxy:

consola mitmproxy

Deje esto ejecutándose en segundo plano mientras configura su dispositivo móvil para usar el proxy.

Paso 2: configurar el dispositivo móvil para enrutar a través de mitmproxy

Ahora necesitamos configurar el dispositivo móvil para enrutar su tráfico a través del proxy mitmproxy para su interceptación.

Estos son los pasos para los sistemas operativos móviles comunes:

En iPhone/iOS

  1. Conecte su iPhone a la misma red Wi-Fi que su computadora con mitmproxy.

  2. Vaya a Configuración > Wi-Fi y seleccione su red actual.

  3. Desplázate hacia abajo y toca Configurar proxy.

  4. Seleccione Manual para configurar sus propios detalles de proxy:

    • Servidor: la dirección IP de su computadora en la red (por ejemplo, 192.168.1.10)

    • Puerto: 8080

¡Esto dirige todo el tráfico del dispositivo a través de su computadora y mitmproxy!

En Android

  1. Conecte su dispositivo Android a la misma red Wi-Fi que el proxy.

  2. Vaya a Configuración > Wi-Fi > Opciones avanzadas > Proxy y seleccione Manual.

  3. Ingrese la dirección IP de su computadora en el campo Nombre de host y 8080 para el Puerto.

  4. Toque Guardar para aplicar la configuración del proxy.

En Windows Phone

  1. Desde la pantalla de inicio, deslícese hacia la izquierda hasta la Lista de aplicaciones y toque Ajustes.

  2. Pulsa para buscar WiFi y mantenga presionada la red conectada. Seleccionar Editar.

  3. Pulsa para buscar Mostrar opciones avanzadas luego Establecer proxy a Manual.

  4. Ingrese la dirección IP de su computadora y 8080 para el puerto.

  5. Pulsa para buscar Guardar para conectarse a través del proxy.

¡Y eso es! Su dispositivo móvil ahora debería enrutar todo el tráfico a través de mitmproxy para su interceptación.

Paso 3: instale el certificado mitmproxy en el dispositivo móvil

En este punto, verá tráfico en la consola mitmproxy desde su dispositivo móvil. Sin embargo, la mayoría de las aplicaciones usan HTTPS, por lo que no podrás ver el contenido.

Para descifrar el tráfico HTTPS, debe instalar el certificado mitmproxy como autoridad de certificación raíz confiable en su dispositivo móvil.

Mitmproxy proporciona un sitio útil en http://mitm.it eso generará el certificado para la plataforma de su dispositivo específico.

Simplemente vaya a http://mitm.it en el navegador de su dispositivo móvil y haga clic en el enlace de su sistema operativo:

sitio mitm.it

Luego instale el certificado descargado en su dispositivo:

En iOS

  1. Vaya a Configuración > General > Acerca de > Configuración de confianza del certificado

  2. Habilitar el mitmproxy certificado

En Android

  1. Guarde el mitmproxy-ca-cert.pem archivo en algún lugar del almacenamiento del dispositivo

  2. Vaya a Configuración > Seguridad > Instalar desde almacenamiento

  3. Seleccione mitmproxy-ca-cert.pem presentar

En Windows Phone

  1. Vaya a Sistema > Cifrado > Importar certificado

  2. Elige el descargado mitmproxy-ca-cert.crt

Es posible que deba configurar el certificado mitmproxy como confiable para VPN o aplicaciones. Ahora mitmproxy puede interceptar incluso el tráfico cifrado con HTTPS desde el dispositivo.

¡Habilite el certificado solo cuando necesite depurar el tráfico y deshabilítelo cuando haya terminado! No exponga los datos de otras aplicaciones innecesariamente.

Bien, es hora de la parte divertida... ¡veamos cómo observar el tráfico para realizar ingeniería inversa y eliminar las API de aplicaciones móviles!

Paso 4: observar e invertir la API de una aplicación móvil

Abra la aplicación móvil que desea estudiar en el dispositivo configurado para usar el proxy. Por ejemplo, usaré la aplicación de entrega de comida Swiggy.

En la consola mitmproxy de su computadora, debería ver las solicitudes provenientes de la dirección IP de su dispositivo móvil.

Filtra la vista por el dominio de la API que deseas analizar. Para Swiggy, esto es prod-api.swiggy.com:

Tráfico API de Swiggy en mitmproxy

Mientras interactúa con la aplicación móvil, busque patrones en las solicitudes de API. Puede ampliar una solicitud para ver todos los detalles:

Solicitud de API ampliada

Probar diferentes flujos de aplicaciones revela qué puntos finales existen en la API backend y qué datos devuelven. Para raspar, nos interesa solicitudes que devuelven datos JSON.

Basándonos en la observación del tráfico desde Swiggy, podemos ver:

  • /restaurants/list/v5 devuelve una lista de restaurantes para una ubicación
  • /menu/v4 obtiene el menú de un restaurante específico
  • /geocode/v1 convierte direcciones a coordenadas lat/lng

Etcétera. Esto nos permite comprender y mapear los puntos finales de la API.

Ahora podemos replicar solicitudes de API para extraer datos. Por ejemplo, llamando /restaurants/list/v5 con el lat y lng Los parámetros devuelven una 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‘])

Esto imprime nombres y áreas de restaurantes Swiggy cerca de una ubicación determinada. El proxy nos permite ver cómo funciona la aplicación y aplicar ingeniería inversa a la API para el scraping.

Estrategias de scraping para API de aplicaciones móviles

Una vez que haya inspeccionado el tráfico API de una aplicación para comprender los puntos finales y los parámetros, puede comenzar a recopilar datos mediante programación.

Estas son algunas de las mejores prácticas:

  • Usar servidores proxy – Rote diferentes IP residenciales para evitar bloqueos por limitación de velocidad.

  • Aleatorizar entradas – Variar coordenadas geográficas, ID de usuario, etc. para parecer más humano.

  • Solicitudes de aceleración – Agregue retrasos entre solicitudes para limitar el volumen.

  • Datos de caché – Almacenar respuestas para evitar solicitudes duplicadas.

  • Manejar errores – Vuelva a intentar las solicitudes fallidas y maneje con gracia los errores HTTP.

  • Paginar datos – Siga los enlaces de paginación en las respuestas para extraer todos los datos.

  • Utilice POST cuando sea necesario – Algunas acciones, como realizar un pedido, requieren solicitudes POST.

  • Analizar rápidamente – Extraiga sólo los datos que necesita en lugar de analizarlo todo.

  • Limpiar metadatos – Eliminar identificaciones únicas, marcas de tiempo, etc. que podrían identificar registros.

  • Mantente al día – Verifique los cambios de API después de las actualizaciones de la aplicación.

Con algo de creatividad, puede crear raspadores para extraer todo tipo de datos valiosos de las API de aplicaciones móviles. ¡Solo asegúrese de seguir cuidadosamente los Términos de servicio y utilizar los datos de manera responsable!

Scraping responsable de API móviles

Como cualquier forma de web scraping, la recopilación de datos de las API móviles conlleva algunas consideraciones éticas:

  • No sobrecargues los servidores – Limitar el volumen de solicitudes para minimizar el impacto.

  • Restringir el uso – Recopile únicamente datos que pueda justificar su necesidad.

  • Respetar los términos de servicio – Evite violar los términos de servicio o NDA.

  • Proteger datos – Almacene los datos de forma segura y minimice los períodos de retención.

  • Desidentificar datos – Eliminar información personal que no sea necesaria para su propósito.

  • Consultar leyes – Algunas ubicaciones regulan los tipos de recopilación de datos.

  • Usa sabiamente – Los datos deben proporcionar valor, no simplemente recopilarse porque se puede.

La transparencia y la ética son fundamentales. ¡Un gran dato conlleva una gran responsabilidad!

Conclusión

Espero que esta guía le haya brindado una visión completa sobre cómo interceptar datos de aplicaciones móviles con servidores proxy de tipo intermediario. Las conclusiones clave:

  • Los proxies MITM le permiten interceptar el tráfico HTTPS desde aplicaciones móviles instalando el certificado de proxy.

  • Herramientas como mitmproxy facilitan la inspección de este tráfico para comprender cómo se comunica una aplicación con los backends de API.

  • La ingeniería inversa de los puntos finales de la API permite replicar solicitudes para extraer datos de aplicaciones móviles.

  • Se pueden utilizar proxies, limitaciones y otras técnicas para recopilar datos de aplicaciones móviles a escala de manera eficiente.

  • Asegúrese de eliminar las API móviles de forma ética y legal.

Las aplicaciones móviles proporcionan una gran cantidad de datos esperando ser aprovechados. Ahora que sabes cómo utilizar proxies MITM para acceder a él, ¡las posibilidades son infinitas!

¿De qué aplicaciones interesantes empezarás a extraer datos? ¡Avíseme si tiene alguna otra pregunta sobre el proxy móvil!

Únase a la conversación

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *