Récupération des données via sonde réseau

maj 6 nov 2024

Cette documentation explique comment utiliser le module tcpdump. Cela permet de récupérer les données échangées sur un téléphone.

Ce module n’est pas compatible avec Windows.

Pré-requis globaux

  • Testrunner téléchargé et placé dans le PATH

  • Dossier de mesure comprenant :

    • les fichiers de configuration config.yml et job.yml

    • un script gdsl avec l’extension “testgb”

  • Ordinateur connecté en Ethernet.

  • Activer le partage de connexion sur l’ordinateur Linux : Réseau > Utiliser comme point d’accès… > Allumer. Attention votre ordinateur doit être sur un réseau filaire pour pouvoir activer le partage de connexion wifi.

  • Connecter son téléphone au partage de connexion de l’ordinateur.

  • Vérifier si le paquet tcpdump est installé sur l'ordinateur Linux. tcpdump est installé par défaut sur la plupart des distributions Linux. Pour vérifier cela, lancer la commande suivante :

tcpdump --version

Si le paquet n’est pas installé, lancer la commande suivante :

sudo apt install tcpdump
  • Activer le partage de connexion sur l’ordinateur Mac.

Cliquer sur la pomme (en haut à gauche), puis sur "System Preferences > Sharing". Décocher la case "Internet Sharing" (si celle-ci est activée).

Appliquer les paramètres suivants :

-Share your connection from: Thunderbolt Ethernet

-To computers using: Wifi

-Wi-Fi Options...: inscrire le nom du réseau et le mot de passe souhaité

Puis cocher la caser "Internet Sharing". L'icône wifi change et devient une flèche orientée vers le haut.

internet_sharing.png
  • Connecter son téléphone au partage de connexion de l’ordinateur.

  • Vérifier si le paquet tcpdump est installé sur l'ordinateur Mac OS. tcpdump est installé par défaut sur la plupart des Mac OS. Pour vérifier cela, lancer la commande suivante :

tcpdump --version

Si le paquet n’est pas installé, lancer la commande suivante :

 

Modification dans le fichier job.yml

Modifications dans le fichier config.yml

Si le module tcpdump a été activé il faut renseigner les différentes valeurs du fichier job.yml.

Pour avoir les informations sur l’interface réseau correspondant au partage de connexion, vous pouvez utiliser la commande “ifconfig” (Linux et Mac OS) ou “ipconfig” (Windows). Cette commande permet d’identifier la liste des réseaux disponibles pour votre PC ainsi que l’adresse IP de votre PC sur chaque réseau. Vous pouvez repérer l’ip qu’a pris votre téléphone pour trouver le nom du réseau cherché.

Les champs à renseigner en détail :

  • deviceIP : L’adresse IP du téléphone dans le réseau partagé par votre PC. Normalement c’est souvent une adresse du type 10.42.0.x (remplacé le x par le bon chiffre)

  • gatewayIP : Il s’agit de l’ adresse IP de votre PC (qui sert de passerelle) dans le réseau partagé. Celle-ci peut se trouver à l’aide de la commande “ifconfig”. Normalement c’est souvent : 10.42.0.1

  • networkInterface : Le nom de l’interface réseau du réseau partagé. Celle-ci peut se trouver à l’aide de la commande “ifconfig”. Vous pouvez aussi l’obtenir en tapant la commande “sudo tcpdump -D”. L’interface réseau correspondant au partage de connexion commence par “wl” (Wireless Lan) sur Linux.

  • keepPcap : Si le booléen est à true, cela conserve le fichier pcap à la fin des mesures.

  • ipFilters : Ce sont des filtres pour pouvoir retirer certains échanges réseaux de la mesure. En cas de mesures sur iOS, placer le booléen “apple” à true pour filtrer les adresses IP correspondant à 17.0.0.0/8 (Apple).

  • L’IP du téléphone et l’IP de la gateway doivent être dans le même réseau. Normalement les ip sont du type 10.42.0.x

 

Lancement des mesures

Lancer le testrunner comme d’habitude :

Si le module tcpdump a été activé dans le fichier job.xml, le mot de passe root sera demandé sur Linux et Mac OS lors de l’initialisation du testrunner.

 

Ajout des droits pour lancer tcpdump sans mot de passe sur Linux [optionnel]

La procédure vient de ce site web : https://askubuntu.com/questions/530920/tcpdump-permissions-problem

  • Créer un groupe pcap et s’ajouter dedans

  • Changer le groupe de tcpdump et modifier les permissions. Il faudra peut-être changer le path par /usr/bin/tcpdump

  • Utiliser setcap pour donner à tcpdump les permissions nécessaires

  • Redémarrer le PC. Il est alors possible de lancer la commande tcpdump sans sudo.

 

Schéma de la situation

schema_logique_maquette_mesure_data_v3.png