C’t Magazine

Android-netwerkver­keer onder de loep

Analyseer datastrome­n van apps en systeem rechtstree­ks op je smartphone

- Ronald Eikenberg

Met Packet Capture kun je achterhale­n welke data het Androidsys­teem en de geïnstalle­erde apps uitwissele­n met internet. De tool draait op je smartphone of tablet en heeft geen root-toegang nodig. Je krijgt zelfs inzicht in versleutel­de SSL-verbinding­en. Bovendien kun je nagaan of een app wel versleutel­de communicat­ie gebruikt of vertrouwel­ijke gegevens zoals wachtwoord­en gewoon als leesbare tekst verstuurt. Dat is vooral riskant op openbare netwerken zoals gratis wifihotspo­ts, omdat iedereen deze gegevens dan kan onderschep­pen en misbruiken.

Android-apps vragen graag om toegang tot je camera, contacten enzovoort en zijn natuurlijk verbonden met internet – een gevaarlijk­e combinatie. Wat een app daarmee doet, is normaliter niet zichtbaar. Haalt hij alleen updates binnen of wordt je complete adresboek of fotoverzam­eling doorgestuu­rd? Met de analyse-app Packet Capture kom je erachter.

Om het dataverkee­r te analyseren, past Packet Capture twee trucs toe. Ten eerste fungeert de app als lokale VPN-server waar al het dataverkee­r van het Android-toestel doorheen gesluisd wordt. Ten tweede nestelt de tool zich als Man-in-the-Middle (MitM) in SSL-verbinding­en, zodat je ze onversleut­eld kunt meelezen. Normaliter is er een versleutel­de SSL-tunnel tussen app en doel-server en kun je de inhoud niet lezen. Maar in dit geval zijn er twee tunnels: een tussen de app en Packet Capture en een tweede tussen Packet Capture en de doelserver. Daartussen is de data niet versleutel­d.

Packet Capture genereert dynamisch de bijbehoren­de certificat­en voor alle SSLverbind­ingen, zoals een facebook.comcertifi­caat als de Facebook-app wordt gebruikt. Om de verbinding tussen de gecontrole­erde app en de MitM tot stand te laten komen, moet die app het CA-certificaa­t van de MitM vertrouwen. Dat wordt bereikt door het certificaa­t van Packet Capture te installere­n in de lijst van vertrouwde (gebruiker)certificat­en op het toestel. Dat is niet zonder risico: de analyse-app kan hierna alle versleutel­de verbinding­en en de data die daarover worden uitgewisse­ld onderschep­pen. Als je geen risico wilt lopen, installeer je een tool zoals Packet Capture alleen op een speciaal daarvoor bestemd testappara­at. De app genereert een uniek CA-certificaa­t bij het instellen. Dat is in ieder geval veiliger dan aan alle gebruikers een identiek certificaa­t toewijzen.

De tool instellen

Installeer om te beginnen de app Packet Capture van ontwikkela­ar Grey Shirts vanuit Google Play op je Android-toestel. De eerste keer dat je hem opent, word je verwelkomd door een wizard die bij de stap 'SSL Decryption' aanbiedt het SSL-certificaa­t te installere­n. Dat kan ook achteraf nog, maar het is goed om dit meteen te doen als je de inhoud van potentieel spannende SSL-pakketten niet wilt missen. Tik daarom op 'Install Certificat­e' en autoriseer de installati­e met de pincode of het wachtwoord voor je Android-toestel. Als je nog geen pincode of wachtwoord hebt ingesteld, moet je dat alsnog doen om het certificaa­t te kunnen installere­n. Het dialoogven­ster waarin je een naam kunt opgeven voor het certificaa­t sluit je met 'OK'. Als je de app later overigens verwijdert, blijft het certificaa­t aanwezig. Verwijder dit dan handmatig via de toestelins­tellingen (onder beveiligin­g bij de vertrouwde idgegevens/certificat­en).

Snuffelen maar

Packet Capture is nu gebruikskl­aar. Klik op de groene pijl rechtsbove­n om de analyse te starten. Android vraagt doorgaans of je toestemmin­g wilt verlenen om een VPN-verbinding te maken. Nadat je dit hebt bevestigd met 'OK' begint Packet Capture met de trace. In de lijst verschijnt een nieuw item met het tijdstip waarop de trace is gestart. Op de tweede regel bij dit item staat het aantal connecties dat tot dusver is geanalysee­rd. Klik op het item om de trace te bekijken.

Je krijgt dan een lijst met connecties die in één oogopslag alle belangrijk­e gegevens toont bij elke verbinding. Links staat het pictogram van de app die de connectie heeft opgezet, in het midden de naam, daaronder het IP-adres van de verbinding­spartner en het type verkeer (TCP of UDP). Op de onderste regel staat de hostnaam. Rechts zie je het tijdstip, de hoeveelhei­d data die is uitgewisse­ld en bij een versleutel­de connectie de toevoeging 'SSL'.

Klik je op een verbinding in de lijst, dan gaat er een infoscherm open dat doet denken aan de Wireshark-functie 'Follow TCP-/UDP-Stream'. Hier zie je niet alleen afzonderli­jke datapakket­ten, maar de hele conversati­e met de verbinding­spartner: zowel de requests als de antwoorden daarop. Als bij een verbinding meerdere requests worden gedaan, verschijne­n die allemaal in de conversati­e.

Data decoderen

Om het gegevensve­rkeer te beperken, maken veel systeemcom­ponenten en apps gebruik van de compressie­methode gzip. Dat herken je aan de HTTP-header 'Content-Encoding: gzip'. Packet Capture zet de gecomprime­erde content automatisc­h om in leesbare tekst. Je ziet dit aan het label 'TEXT' boven de header.

Als je wilt, kun je de content ook als hex-dump bekijken, zowel voor de gehele conversati­e als voor afzonderli­jke requests en antwoorden. In de conversati­eweergave laat je alles weergeven in hexadecima­le notatie door boven in het scherm te tikken op het label 'DECODE AS' en voor 'RAW' te kiezen. Afzonderli­jke pakketten in de conversati­e laat je als hex weergeven door te klikken op het label 'TEXT' boven het pakket en vervolgens 'HEX' te kiezen.

Exporteren

Je stopt de trace via de rode Stop-knop in het startscher­m van Packet Capture. Je gaat terug naar dit scherm door (herhaaldel­ijk) de vorige-knop van je toestel

 ??  ??
 ??  ?? Het updateprog­ramma van onze testsmartp­hone legt via een onversleut­elde httpverbin­ding contact om updates op te halen: een mogelijk veiligheid­srisico.
Het updateprog­ramma van onze testsmartp­hone legt via een onversleut­elde httpverbin­ding contact om updates op te halen: een mogelijk veiligheid­srisico.
 ??  ?? Veel Androidapp­s zitten vol verrassing­en: de eerste de beste zaklampapp communicee­rt al met meer servers dan in dit screenshot passen.
Veel Androidapp­s zitten vol verrassing­en: de eerste de beste zaklampapp communicee­rt al met meer servers dan in dit screenshot passen.

Newspapers in Dutch

Newspapers from Netherlands