Passer au contenu

Le guide complet pour récupérer les données des API d'applications mobiles

Dans notre monde moderne axé sur le mobile, les applications mobiles gagnent en popularité et remplacent les sites Web traditionnels pour de nombreux services. Il existe désormais plus de 5 millions d’applications disponibles dans les principaux magasins d’applications. L'utilisateur moyen d'un smartphone a plus de 80 applications installées. Et les applications mobiles représentent 90 % du temps passé en ligne dans les applications par rapport au Web mobile.

Qu'est-ce que cela signifie? Les applications mobiles deviennent l’une des sources de données les plus précieuses et les plus abondantes dans notre monde de plus en plus numérique. Les données de localisation, les statistiques d'utilisation, les profils, les transactions et bien plus encore peuvent être extraites du trafic des applications mobiles.

Cela représente une énorme opportunité pour les entreprises, les chercheurs et les développeurs. Mais la récolte de ces données nécessite d’intercepter la communication entre les applications et leurs API backend. En effet, les applications mobiles utilisent des connexions HTTPS cryptées pour transmettre des données en toute sécurité.

Le simple fait de renifler le trafic réseau ne révélera pas le contenu. Vous avez besoin d'un moyen de décrypter le trafic.

Entrez les serveurs proxy man-in-the-middle (MITM).

Dans ce guide complet de 4,000 XNUMX mots, vous apprendrez :

  • Qu'est-ce qu'un proxy MITM exactement et comment il fonctionne
  • Comment configurer étape par étape votre propre proxy MITM pour l'analyse du trafic des applications mobiles
  • Comment utiliser le proxy pour observer et procéder à l'ingénierie inverse d'une API d'application mobile
  • Outils et techniques pour extraire des données précieuses des API d'applications mobiles
  • Meilleures pratiques de proxy MITM pour une collecte de données responsable

Si vous souhaitez une expérience pratique de l'extraction de données à partir d'applications telles que Tinder, Airbnb, Yelp, etc., vous êtes au bon endroit. Commençons!

Qu'est-ce qu'un proxy Man-in-the-Middle (MITM) ?

Pour comprendre comment les proxys MITM permettent de récupérer les données des applications mobiles, vous devez d'abord comprendre ce que fait le cryptage HTTPS.

HTTPS utilise des certificats SSL/TLS pour crypter la communication entre un client (par exemple une application mobile) et un serveur (par exemple un backend API). Cela empêche toute personne espionnant le réseau de visualiser ou de falsifier le trafic.

Mais et si vous pouviez intercepter ce trafic en vous situant au milieu, entre le client et le serveur de destination ?

C'est exactement ce que fait un proxy MITM. Le proxy agit comme un intermédiaire par lequel passe tout le trafic :

Client <—-> Proxy MITM <—-> Serveur de destination

Le proxy établit des connexions SSL distinctes avec le client et le serveur pour décrypter leur trafic. Il peut ensuite inspecter, analyser et même modifier les requêtes en texte brut avant de les recrypter et de les envoyer.

En installant le certificat racine du proxy en tant qu'autorité de confiance, celui-ci peut effectivement usurper l'identité de n'importe quel domaine. Cela permet une interception transparente sans déclencher d’avertissements de sécurité du navigateur.

Certains proxys MITM populaires incluent :

procurationPlateformeNotes
mimpproxyMac, Windows, LinuxOutil puissant basé sur une console
Proxy CharlesMac, Windows, LinuxInterface graphique, prise en charge de la configuration des appareils
VioloneuxWindowsPeut déboguer le trafic des applications Windows

Dans ce guide, nous démontrerons l'utilisation mimpproxy car il est gratuit, open source et rapide à configurer.

Voyons maintenant comment configurer un appareil mobile pour acheminer son trafic via votre proxy MITM.

Étape 1 : Installez mitmproxy sur votre ordinateur

La première étape consiste à installer et à démarrer le serveur proxy mitmproxy sur votre ordinateur de bureau ou portable. Il interceptera les requêtes des appareils configurés pour les acheminer.

Installer sur macOS

Si vous êtes sur un Mac, le moyen le plus simple d'installer mitmproxy est via Homebrew :

$ brew install mitmproxy

Installer sur Linux

Sous Linux, utilisez le gestionnaire de paquets de votre distribution, par exemple :

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

Installer sur Windows

Les utilisateurs Windows peuvent télécharger la version binaire officielle à partir de mitmproxy.org. Assurez-vous de choisir la dernière version de mitmproxy, et non l'utilitaire mitmdump.

Démarrer le proxy

Une fois installé, démarrez mitmproxy sur le port par défaut 8080 :

$ mitmproxy

Vous devriez voir les requêtes interceptées apparaître dans la console mitmproxy :

console mitmproxy

Laissez-le s'exécuter en arrière-plan pendant que vous configurez votre appareil mobile pour utiliser le proxy.

Étape 2 : configurer l'appareil mobile pour qu'il soit acheminé via mitmproxy

Nous devons maintenant configurer l'appareil mobile pour acheminer son trafic via le proxy mitmproxy pour l'interception.

Voici les étapes pour les systèmes d’exploitation mobiles courants :

Sur iPhone/iOS

  1. Connectez votre iPhone au même réseau Wi-Fi que votre ordinateur exécutant mitmproxy.

  2. Accédez à Paramètres > Wi-Fi et sélectionnez votre réseau actuel.

  3. Faites défiler vers le bas et appuyez sur Configurer le proxy.

  4. Sélectionnez Manuelle pour définir vos propres détails de proxy :

    • Serveur : L'adresse IP de votre ordinateur sur le réseau (par exemple 192.168.1.10)

    • Port: 8080

Cela achemine tout le trafic des appareils via votre ordinateur et mitmproxy !

Sur Android

  1. Connectez votre appareil Android au même réseau Wi-Fi que le proxy.

  2. Accédez à Paramètres > Wi-Fi > Options avancées > Proxy et sélectionnez Manuelle.

  3. Entrez l'adresse IP de votre ordinateur dans le champ Nom d'hôte et 8080 pour le port.

  4. Appuyez sur Enregistrer pour appliquer la configuration du proxy.

Sur Windows Phone

  1. Depuis l'écran de démarrage, balayez vers la gauche jusqu'à la liste des applications et appuyez sur Paramètres.

  2. Exploiter WiFi et appuyez longuement sur votre réseau connecté. Sélectionner Modifier.

  3. Exploiter Afficher les options avancées puis Définir un proxy au manuel.

  4. Entrez l'adresse IP de votre ordinateur et 8080 pour le port.

  5. Exploiter Épargnez pour vous connecter via le proxy.

Et c'est tout! Votre appareil mobile devrait maintenant acheminer tout le trafic via mitmproxy pour l'interception.

Étape 3 : Installez le certificat mitmproxy sur un appareil mobile

À ce stade, vous verrez le trafic dans la console mitmproxy depuis votre appareil mobile. Cependant, la plupart des applications utilisent HTTPS, vous ne pourrez donc pas afficher le contenu.

Pour décrypter le trafic HTTPS, vous devez installer le certificat mitmproxy en tant qu'autorité de certification racine de confiance sur votre appareil mobile.

Mitmproxy fournit un site pratique sur http://mitm.it qui générera le certificat pour la plate-forme de votre appareil spécifique.

Il suffit d'aller à http://mitm.it sur le navigateur de votre appareil mobile et cliquez sur le lien correspondant à votre système d'exploitation :

site mitm.it

Installez ensuite le certificat téléchargé sur votre appareil :

Sur iOS

  1. Accédez à Paramètres > Général > À propos > Paramètres de confiance du certificat

  2. Activez la mimpproxy certificat

Sur Android

  1. Enregistrez le mitmproxy-ca-cert.pem fichier quelque part sur le stockage de l'appareil

  2. Accédez à Paramètres > Sécurité > Installer à partir du stockage

  3. Sélectionnez le mitmproxy-ca-cert.pem filet

Sur Windows Phone

  1. Accédez à Système > Chiffrement > Importer le certificat

  2. Choisissez le téléchargé mitmproxy-ca-cert.crt

Vous devrez peut-être définir le certificat mitmproxy comme étant approuvé pour le VPN ou les applications. Désormais, mitmproxy peut intercepter même le trafic crypté HTTPS provenant de l'appareil.

Activez le certificat uniquement lorsque vous devez déboguer le trafic et désactivez-le une fois terminé ! N'exposez pas inutilement d'autres données d'application.

D'accord, il est temps de passer à la partie amusante… voyons comment observer le trafic pour faire de l'ingénierie inverse et supprimer les API des applications mobiles !

Étape 4 : Observation et inversion d'une API d'application mobile

Ouvrez l'application mobile que vous souhaitez étudier sur l'appareil configuré pour utiliser le proxy. Par exemple, j'utiliserai l'application de livraison de nourriture Swiggy.

Dans la console mitmproxy de votre ordinateur, vous devriez voir les requêtes provenant de l'adresse IP de votre appareil mobile.

Filtrez la vue par domaine de l'API que vous souhaitez analyser. Pour Swiggy, c'est prod-api.swiggy.com:

Trafic de l'API Swiggy dans mitmproxy

Lorsque vous interagissez avec l'application mobile, recherchez des modèles dans les requêtes API. Vous pouvez développer une demande pour afficher tous les détails :

Demande d'API étendue

Le test de différents flux d'applications révèle quels points de terminaison existent sur l'API backend et quelles données ils renvoient. Pour le scraping, on s'intéresse à ÉCONOMISEZ requêtes qui renvoient des données JSON.

En observant le trafic depuis Swiggy, nous pouvons voir :

  • /restaurants/list/v5 renvoie une liste de restaurants pour un emplacement
  • /menu/v4 obtient le menu d'un restaurant spécifique
  • /geocode/v1 convertit les adresses en coordonnées lat/lng

Et ainsi de suite. Cela nous permet de comprendre et de cartographier les points de terminaison de l'API.

Nous pouvons désormais répliquer les requêtes API pour extraire des données. Par exemple, appeler /restaurants/list/v5 des lat ainsi que lng paramètres renvoie une liste JSON de restaurants :

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‘])

Ceci imprime les noms et les zones des restaurants Swiggy à proximité d'un emplacement donné. Le proxy nous permet de voir comment fonctionne l'application et de procéder à l'ingénierie inverse de l'API pour le scraping.

Stratégies de scraping pour les API d'applications mobiles

Une fois que vous avez inspecté le trafic API d'une application pour comprendre les points de terminaison et les paramètres, vous pouvez commencer à collecter des données par programmation.

Voici quelques bonnes pratiques:

  • Utiliser des proxys – Faites pivoter différentes adresses IP résidentielles pour éviter les blocages dus à la limitation de débit.

  • Randomiser les entrées – Variez les géocoordonnées, les identifiants d’utilisateur, etc. pour paraître plus humain.

  • Demandes de limitation – Ajoutez des délais entre les requêtes pour limiter le volume.

  • Cache les données – Stockez les réponses pour éviter les demandes en double.

  • Gérer les erreurs – Réessayez les requêtes ayant échoué et gérez avec élégance les erreurs HTTP.

  • Paginer les données – Suivez les liens de pagination dans les réponses pour extraire toutes les données.

  • Utilisez POST si nécessaire – Certaines actions comme passer une commande nécessitent des requêtes POST.

  • Analyser rapidement – Extrayez uniquement les données dont vous avez besoin au lieu de tout analyser.

  • Effacer les métadonnées – Supprimez les identifiants uniques, les horodatages, etc. qui pourraient identifier les enregistrements.

  • Tiens-toi à jour – Vérifiez les modifications de l'API après les mises à jour de l'application.

Avec un peu de créativité, vous pouvez créer des scrapers pour extraire toutes sortes de données précieuses à partir des API d'applications mobiles. Assurez-vous simplement de suivre attentivement les conditions d’utilisation et d’utiliser les données de manière responsable !

Scraping responsable des API mobiles

Comme toute forme de web scraping, la collecte de données à partir d’API mobiles s’accompagne de certaines considérations éthiques :

  • Ne surchargez pas les serveurs – Limiter le volume des demandes pour minimiser l’impact.

  • Restreindre l'utilisation – Ne collectez que les données dont vous pouvez justifier votre besoin.

  • Respecter les conditions d'utilisation – Évitez de violer les conditions de service ou les NDA.

  • Protéger les données – Stockez les données en toute sécurité et minimisez les périodes de conservation.

  • Anonymiser les données – Supprimez les informations personnelles non nécessaires à votre objectif.

  • Vérifier les lois – Certains endroits réglementent les types de collecte de données.

  • Utilisez avec sagesse – Les données doivent apporter de la valeur, et pas seulement être collectées parce que vous le pouvez.

La transparence et l’éthique sont essentielles. Des données de qualité impliquent de grandes responsabilités !

Conclusion

J'espère que ce guide vous a fourni un aperçu complet de l'interception des données d'applications mobiles avec des proxys man-in-the-middle. Les principaux points à retenir :

  • Les proxys MITM vous permettent d'intercepter le trafic HTTPS des applications mobiles en installant le certificat proxy.

  • Des outils tels que mitmproxy permettent d'inspecter ce trafic pour comprendre facilement comment une application communique avec les backends d'API.

  • L'ingénierie inverse des points de terminaison de l'API permet de répliquer les requêtes pour récupérer les données des applications mobiles.

  • Les proxys, la limitation et d’autres techniques peuvent être utilisés pour collecter efficacement les données des applications mobiles à grande échelle.

  • Assurez-vous de supprimer les API mobiles de manière éthique et légale.

Les applications mobiles fournissent une multitude de données qui ne demandent qu'à être exploitées. Maintenant que vous savez comment utiliser les proxys MITM pour y accéder, les possibilités sont infinies !

À partir de quelles applications intéressantes allez-vous commencer à récupérer des données ? Faites-moi savoir si vous avez d'autres questions sur le proxy mobile !

Prendre part à la conversation

Votre adresse email n'apparaitra pas. Les champs obligatoires sont marqués *