Meteen naar de inhoud

De complete gids voor het verzamelen van gegevens uit mobiele app-API's

In onze moderne mobile-first-wereld exploderen mobiele apps in populariteit en vervangen ze traditionele websites voor veel diensten. Er zijn nu meer dan 5 miljoen apps beschikbaar in de grote appstores. De gemiddelde smartphonegebruiker heeft ruim 80 apps geïnstalleerd. En mobiele apps zijn verantwoordelijk voor 90% van de tijd die online in apps wordt doorgebracht, vergeleken met het mobiele internet.

Wat houdt dit precies in? Mobiele apps worden een van de meest waardevolle en overvloedige gegevensbronnen in onze steeds digitalere wereld. Locatiegegevens, gebruiksstatistieken, profielen, transacties en meer kunnen uit mobiel app-verkeer worden gehaald.

Dit biedt enorme kansen voor bedrijven, onderzoekers en ontwikkelaars. Maar het verzamelen van deze gegevens vereist het onderscheppen van de communicatie tussen apps en hun backend-API's. Dat komt omdat mobiele apps gecodeerde HTTPS-verbindingen gebruiken om gegevens veilig te verzenden.

Door simpelweg aan het netwerkverkeer te snuffelen, wordt de inhoud niet onthuld. Je hebt een manier nodig om het verkeer te decoderen.

Voer man-in-the-middle (MITM) proxyservers in.

In deze uitgebreide gids van 4,000 woorden leert u:

  • Wat is een MITM-proxy precies en hoe deze werkt?
  • Stap voor stap hoe u uw eigen MITM-proxy instelt voor verkeersanalyse in mobiele apps
  • Hoe u de proxy gebruikt om een ​​API voor een mobiele app te observeren en reverse-engineeren
  • Tools en technieken voor het verzamelen van waardevolle gegevens uit API's voor mobiele apps
  • MITM proxy best practices voor verantwoorde gegevensverzameling

Als je praktische ervaring wilt met het extraheren van gegevens uit apps zoals Tinder, Airbnb, Yelp en meer, dan ben je hier aan het juiste adres. Laten we beginnen!

Wat is een Man-in-the-Middle (MITM)-proxy?

Om te begrijpen hoe MITM-proxy's het scrapen van mobiele app-gegevens mogelijk maken, moet u eerst begrijpen wat HTTPS-codering doet.

HTTPS gebruikt SSL/TLS-certificaten om de communicatie tussen een client (bijvoorbeeld mobiele app) en server (bijvoorbeeld API-backend) te coderen. Dit voorkomt dat iemand die het netwerk bespioneert, het verkeer kan bekijken of ermee kan knoeien.

Maar wat als u dat verkeer zou kunnen onderscheppen door uzelf in het midden te plaatsen: tussen de client en de doelserver?

Dit is precies wat een MITM-proxy doet. De proxy fungeert als tussenpersoon waar al het verkeer doorheen gaat:

Client <—-> MITM-proxy <—-> Bestemmingsserver

De proxy brengt afzonderlijke SSL-verbindingen tot stand met de client en server om hun verkeer te decoderen. Vervolgens kan het de leesbare tekstverzoeken inspecteren, analyseren en zelfs wijzigen voordat het opnieuw wordt gecodeerd en verzonden.

Door het rootcertificaat van de proxy als vertrouwde autoriteit te installeren, kan deze effectief elk domein nabootsen. Dit maakt een naadloze onderschepping mogelijk zonder dat er beveiligingswaarschuwingen in de browser worden geactiveerd.

Enkele populaire MITM-proxy's zijn onder meer:

volmachtPlatformOpmerkingen
mitmproxyMac, Windows, LinuxKrachtige consolegebaseerde tool
Charles volmachtMac, Windows, LinuxGUI, ondersteuning voor apparaatconfiguratie
vioolspelerDakramen en raamkozijnenKan verkeer van Windows-apps debuggen

In deze handleiding demonstreren we het gebruik van mitmproxy omdat het gratis, open source en snel te installeren is.

Laten we nu eens kijken hoe u een mobiel apparaat kunt configureren om zijn verkeer via uw MITM-proxy te routeren.

Stap 1: Installeer mitmproxy op uw computer

De eerste stap is het installeren en starten van de mitmproxy-proxyserver op uw desktop- of laptopcomputer. Het onderschept verzoeken van apparaten die zijn geconfigureerd om er doorheen te routeren.

Installeer op macOS

Als je een Mac gebruikt, is de eenvoudigste manier om mitmproxy te installeren via Homebrew:

$ brew install mitmproxy

Installeer op Linux

Gebruik op Linux de pakketbeheerder van uw distributie, bijvoorbeeld:

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

Installeren op Windows

Windows-gebruikers kunnen de officiële binaire release downloaden van mitmproxy.org. Zorg ervoor dat u de nieuwste versie van mitmproxy kiest, en niet het hulpprogramma mitmdump.

Start de proxy

Eenmaal geïnstalleerd, start u mitmproxy op de standaardpoort 8080:

$ mitmproxy

Je zou de onderschepte verzoeken moeten zien verschijnen in de mitmproxy-console:

mitmproxy-console

Laat dit op de achtergrond actief terwijl u uw mobiele apparaat configureert om de proxy te gebruiken.

Stap 2: Configureer mobiel apparaat om via mitmproxy te routeren

Nu moeten we het mobiele apparaat configureren om het verkeer via de mitmproxy-proxy te leiden voor onderschepping.

Hier zijn de stappen voor veelgebruikte mobiele besturingssystemen:

Op iPhone/iOS

  1. Verbind uw iPhone met hetzelfde Wi-Fi-netwerk als uw computer waarop mitmproxy wordt uitgevoerd.

  2. Ga naar Instellingen > Wi-Fi en selecteer uw huidige netwerk.

  3. Scroll naar beneden en tik op Configureer proxy.

  4. kies Handmatig om uw eigen proxygegevens in te stellen:

    • Server: het IP-adres van uw computer op het netwerk (bijvoorbeeld 192.168.1.10)

    • Port: 8080

Hierdoor wordt al het apparaatverkeer via uw computer en mitmproxy geleid!

Op Android

  1. Verbind uw Android-apparaat met hetzelfde Wi-Fi-netwerk als de proxy.

  2. Ga naar Instellingen > Wi-Fi > Geavanceerde opties > Proxy en selecteer Handmatig.

  3. Voer het IP-adres van uw computer in het veld Hostnaam in en 8080 bij Poort.

  4. Tik op Opslaan om de proxyconfiguratie toe te passen.

Op Windows Phone

  1. Veeg vanaf het startscherm naar links naar de Applijst en tik op Instellingen.

  2. Tik WiFi en druk lang op uw verbonden netwerk. Selecteer Edit.

  3. Tik Toon geavanceerde zoekopties harte Proxy instellen naar Handmatig.

  4. Voer het IP-adres van uw computer in en 8080 voor de poort.

  5. Tik Bespaar om verbinding te maken via de proxy.

En dat is het! Uw mobiele apparaat moet nu al het verkeer via mitmproxy leiden om het te onderscheppen.

Stap 3: Installeer het mitmproxy-certificaat op mobiel apparaat

Op dit punt ziet u verkeer in de mitmproxy-console vanaf uw mobiele apparaat. De meeste apps gebruiken echter HTTPS, dus u kunt de inhoud niet bekijken.

Om HTTPS-verkeer te decoderen, moet u het mitmproxy-certificaat als vertrouwde root-certificeringsinstantie op uw mobiele apparaat installeren.

Mitmproxy biedt een handige site op http://mitm.it waarmee het certificaat voor uw specifieke apparaatplatform wordt gegenereerd.

Ga gewoon naar http://mitm.it in de browser van uw mobiele apparaat en klik op de link voor uw besturingssysteem:

mitm.it-site

Installeer vervolgens het gedownloade certificaat op uw apparaat:

Op iOS

  1. Ga naar Instellingen > Algemeen > Info > Certificaatvertrouwensinstellingen

  2. Schakel de mitmproxy certificaat

Op Android

  1. Sla de mitmproxy-ca-cert.pem bestand ergens op de apparaatopslag

  2. Ga naar Instellingen > Beveiliging > Installeren vanuit opslag

  3. Selecteer het mitmproxy-ca-cert.pem filet

Op Windows Phone

  1. Ga naar Systeem > Codering > Certificaat importeren

  2. Kies het gedownloade mitmproxy-ca-cert.crt

Mogelijk moet u het mitmproxy-certificaat instellen als vertrouwd voor VPN of apps. Nu kan mitmproxy zelfs HTTPS-gecodeerd verkeer van het apparaat onderscheppen.

Schakel het certificaat alleen in als u verkeer wilt debuggen en schakel het uit als u klaar bent! Stel andere app-gegevens niet onnodig bloot.

Oké, tijd voor het leuke gedeelte... laten we eens kijken hoe we het verkeer kunnen observeren om API's voor mobiele apps te reverse-engineeren en te schrapen!

Stap 4: Een mobiele app-API observeren en terugdraaien

Open de mobiele app die u wilt bestuderen op het apparaat dat is geconfigureerd om de proxy te gebruiken. Ik gebruik bijvoorbeeld de Swiggy-app voor eten bezorgen.

In de mitmproxy-console op uw computer zou u verzoeken moeten zien afkomstig van het IP-adres van uw mobiele apparaat.

Filter de weergave op het domein van de API die u wilt analyseren. Voor Swiggy is dit het geval prod-api.swiggy.com:

Swiggy API-verkeer in mitmproxy

Terwijl u met de mobiele app communiceert, zoekt u naar patronen in de API-verzoeken. U kunt een verzoek uitvouwen om de volledige details te bekijken:

Uitgebreid API-verzoek

Door verschillende app-stromen te testen, wordt duidelijk welke eindpunten er op de backend-API bestaan ​​en welke gegevens deze retourneren. Voor schrapen zijn wij geïnteresseerd GET verzoeken die JSON-gegevens retourneren.

Op basis van het observeren van het verkeer vanuit Swiggy kunnen we het volgende zien:

  • /restaurants/list/v5 retourneert een lijst met restaurants voor een locatie
  • /menu/v4 krijgt het menu voor een specifiek restaurant
  • /geocode/v1 converteert adressen naar lat/lng-coördinaten

Enzovoort. Hierdoor kunnen we de API-eindpunten begrijpen en in kaart brengen.

Nu kunnen we API-verzoeken repliceren om gegevens te extraheren. Bellen bijvoorbeeld /restaurants/list/v5 met de lat en lng parameters retourneert een JSON-lijst met 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‘])

Hiermee worden de namen en gebieden van Swiggy-restaurants in de buurt van een bepaalde locatie afgedrukt. Met de proxy kunnen we zien hoe de app werkt en de API reverse-engineeren voor scraping.

Scrapingstrategieën voor API's voor mobiele apps

Zodra u het API-verkeer van een app heeft geïnspecteerd om inzicht te krijgen in de eindpunten en parameters, kunt u beginnen met het programmatisch verzamelen van gegevens.

Hier volgen enkele praktische tips:

  • Gebruik proxy's – Roteer verschillende residentiële IP's om te voorkomen dat er snelheidsbeperkingen optreden.

  • Willekeurige invoer – Varieer geocoördinaten, gebruikers-ID's, enz. om er menselijker uit te zien.

  • Gaspedaal verzoeken – Voeg vertragingen toe tussen verzoeken om het volume te beperken.

  • Gegevens cachen – Bewaar antwoorden om dubbele verzoeken te voorkomen.

  • Fouten afhandelen – Probeer mislukte verzoeken opnieuw en handel HTTP-fouten netjes af.

  • Gegevens pagineren – Volg pagineringslinks in reacties om alle gegevens te extraheren.

  • Gebruik POST wanneer dat nodig is – Voor sommige acties, zoals het plaatsen van een bestelling, zijn POST-verzoeken vereist.

  • Snel analyseren – Extraheer alleen de gegevens die u nodig hebt in plaats van alles te parseren.

  • Metagegevens opschonen – Verwijder unieke ID's, tijdstempels, enz. die records kunnen identificeren.

  • Blijf op de hoogte – Controleer op API-wijzigingen na app-updates.

Met wat creativiteit kun je scrapers bouwen om allerlei waardevolle gegevens uit mobiele app-API's te extraheren. Zorg ervoor dat u de Servicevoorwaarden zorgvuldig volgt en gegevens op verantwoorde wijze gebruikt!

Verantwoord mobiel API-scrapen

Zoals bij elke vorm van webscraping brengt het verzamelen van gegevens van mobiele API's een aantal ethische overwegingen met zich mee:

  • Overbelast servers niet – Beperk het verzoekvolume om de impact te minimaliseren.

  • Beperk het gebruik – Verzamel alleen gegevens waarvan u de noodzaak ervan kunt rechtvaardigen.

  • Respecteer ToS – Vermijd het schenden van de servicevoorwaarden of geheimhoudingsverklaringen.

  • Gegevens beschermen – Sla gegevens veilig op en minimaliseer de bewaartermijnen.

  • Gegevens de-identificeren – Verwijder persoonlijke gegevens die niet nodig zijn voor uw doel.

  • Controleer wetten – Sommige locaties reguleren de soorten gegevensverzameling.

  • Gebruik verstandig – Gegevens moeten waarde bieden en niet alleen worden verzameld omdat het kan.

Transparantie en ethiek zijn van cruciaal belang. Met geweldige data komt een grote verantwoordelijkheid!

Conclusie

Ik hoop dat deze handleiding je een uitgebreid inzicht heeft gegeven in het onderscheppen van mobiele app-gegevens met man-in-the-middle-proxy's. De belangrijkste afhaalrestaurants:

  • Met MITM-proxy's kunt u HTTPS-verkeer van mobiele apps onderscheppen door het proxycertificaat te installeren.

  • Tools zoals mitmproxy maken het inspecteren van dit verkeer eenvoudig te begrijpen hoe een app communiceert met API-backends.

  • Reverse-engineering van de API-eindpunten maakt het repliceren van verzoeken mogelijk om mobiele app-gegevens te schrapen.

  • Proxy's, beperking en andere technieken kunnen worden gebruikt om op grote schaal mobiele-app-gegevens efficiënt te verzamelen.

  • Zorg ervoor dat u mobiele API's op ethisch en legale wijze schrapt.

Mobiele applicaties bieden een schat aan gegevens die wachten om te worden afgeluisterd. Nu u weet hoe u MITM-proxy's moet gebruiken om toegang te krijgen, zijn de mogelijkheden eindeloos!

Van welke coole apps ga je gegevens verzamelen? Laat het me weten als je nog andere vragen over het schrapen van mobiele proxy's hebt!

Doe mee aan het gesprek

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *