Comment Wireshark peut faciliter l’analyse d’incidents Wi-Fi (Partie 3 : Analyse)

Une fois les trames capturées puis mises en forme, nous pouvons passer à l’analyse. Cette étape peut s’avérer très fastidieuse, surtout lorsque l’on ne sait pas encore ce que l’on cherche. Pour cela Wireshark met à notre disposition plusieurs outils qui vont permettre de mieux cibler les recherches, cependant il est essentiel de disposer d’un minimum de connaissances des échanges WLAN, du format des paquets, des différents paramètres et pour cela je vous renvoie vers la formation CWAP qui est très complète sur le sujet.

3.1 Décrypter une trame

Pour faciliter les analyses applicatives, il peut être intéressant de décrypter les trames et voir ainsi le contenu des échanges. Pour cela, il faut aller dans le menu “Edit” > “Preferences” > “Protocols” > “IEEE 802.11” et s’assurer que la case “Enable decryption » est bien cochée. Ensuite pour ajouter des clés, il faut aller cliquer sur le bouton “Edit …” en face de “Decryption keys”.

Dans la fenêtre qui s’ouvre vous pourrez ajouter des clés, suivant le type d’encryption utilisé vous avez plusieurs possibilités :

  • Si vous utilisez du WEP : Il faut sélectionner le type de clé wep puis rentrer la clé (10 valeurs numériques ou 26 caractères alphanumérique)
  • Si vous utilisez du WPA/WPA2 PSK : Vous pouvez utiliser le type de clé “wpa-pwd” ou “wpa-psk”
  • Pour le wpa-pwd il faut renseigner la clé puis le nom du ssid selon le formatage suivant : clé:ssid
  • Pour le wpa-psk il faut renseigner la pré-shared key au format 64byte héxadécimale
  • Si vous utilisez du WPA/WPA2 Enterprise : Vous pouvez sélectionner wpa-psk et renseigner la clé PMK que vous pouvez récupérer sur le client ou sur le serveur Radius

3.2 Les filtres de visualisation

Les filtres de visualisations sont un des éléments très importants dans l’analyse avec Wireshark. Ils permettent de n’afficher que les paquets correspondant au filtre indiqué. L’avantage par rapport aux filtres de captures, c’est qu’ils permettent de pouvoir malgré tout conserver l’intégralité des paquets pour une utilisation future.

Pour retrouver un filtre d’affichage, il est possible d’aller dans le détail d’un paquet, de sélectionner le champ qui nous intéresse, en cliquant simplement dessus le nom du champ apparait dans la barre inférieure. En faisant un clic droit dessus, puis “Apply as filter” il est possible de sélectionner directement le champ avec la valeur du paquet pour pouvoir retrouver tous les autres paquets qui correspondent à ce critère (choix “Selected”) ou au contraire pour exclure tous les paquets correspondant à ce critère (choix “Not Selected”).

Vous avez également la possibilité d’écrire vous-même votre filtre en vous aidant par exemple des références de Wireshark ici :

https://www.wireshark.org/docs/dfref/w/wlan.html

ou bien en utilisant cette compilation qui comprend énormément de filtres très utiles au quotidien :

https://semfionetworks.com/blog/wireshark-most-common-80211-filters/

Les macros

Lorsque l’on utilise plusieurs filtres les un à la suite des autres, ils deviennent rapidement assez difficiles à lire et pour faciliter cela on peut utiliser des macros. Les macros vont permettre de créer des filtres pré-définis dans lequel nous n’auront plus qu’à ajouter des paramètres. Pour créer une macro, il faut aller dans la barre de menu, choisir le menu “Analyze” puis “Display Filter Macros”.

Voici un exemple pour une macro qui se nomme “low_rssi” :

wlan_radio.signal_dbm <= $1 && wlan_radio.channel == $2 && wlan.ssid==$3

Pour l’utiliser, je vais simplement l’appeler dans la barre des filtres d’affichages en remplaçant $1 par la valeur souhaitée, $2 par la valeur souhaitée, et $3 par la valeur souhaitée. Ce qui donne par exemple :

${low_rssi:-77;36;SSID1}

Il est préférable de réaliser ses propres macros afin de faciliter leurs utilisations et être sûr que cela correspond à vos besoins et votre façon de rédiger les filtres, sinon vous allez passer plus de temps à retrouver l’ordre des paramètres et le type de valeur attendue qu’à les rédiger.

Les boutons

Lors des analyses, nous remarquons que nous utilisons très régulièrement les mêmes filtres d’affichages, afin d’éviter de devoir les réécrire à chaque fois et y avoir accès plus rapidement, nous avons la possibilité de créer des boutons qui vont directement appliquer le filtre choisi. Pour créer un bouton, il faut aller dans le menu “Edit”, puis “Preferences”, puis “Filter Buttons”, voici un exemple de bouton :

3.3 Les graphiques

Dans certains cas, la visualisation des paquets n’est pas suffisante pour analyser les paquets et il peut être intéressant d’utiliser des graphiques pour mettre en évidence certaines informations. Le nombre de fonctionnalités disponible avec les graphiques est très important, je vais ici vous faire une rapide présentation ainsi que quelques cas d’usages, mais je vous invite à creuser cette fonctionnalité qui est très utile pour analyser les différents échanges.

Graphique I/O

Les graphiques I/O sont une vision en deux dimensions dans lequel nous pourrons choisir les informations en abscisses et en ordonnées. Pour y accéder il faut aller dans le menu Statistics puis “I/O Graphs”

Par défaut, deux graphiques sont déjà présents :

Voici un descriptif de chaque colonne et des différentes possibilités qu’elles offrent :

  • Enabled : Permet d’afficher ou non une ligne, si elle est coché la ligne s’affichera
  • Graph Name : C’est le nom du graphique
  • Display Filter : Filtre d’affichage qui permet de choisir les paquets que nous souhaitons utiliser pour le graphique
  • Color : C’est la couleur utilisé pour le graphique
  • Style : C’est la façon dont le graphique est affiché, il y a 3 grandes catégories :
  • Line : Il s’agit d’une courbe qui relie tous les points en un seul trait (exemple ci-dessus)
  • Impulse / Bar et Stacked Bar : Chaque point est indiqué à l’aide d’une barre partant de l’axe des abscisses jusqu’à la valeur.
  • Dot/Square/Diamond/Cross/Circle/Plus : Chaque valeur est indiquée par un point (suivant la forme choisie)
  • Y Axis : C’est l’unité choisie pour représenter l’axe des ordonnées (en tenant compte de l’intervalle indiqué en dessous
  • Packets : Nombre de paquets correspondant au filtre d’affichage dans l’intervalle
  • Bytes / Bits : Nombre d’octets ou de bits transmis dans les paquets au cours de l’intervalle
  • SUM (Y Field) : Somme des valeurs contenue dans le champ “Y Field” (indiqué dans la section suivante)
  • MAX (Y Field) / MIN (Y Field) : Valeur maximale/minimale du champ “Y Field”
  • AVG (Y Field) : Valeur moyenne du champ “Y Field”
  • LOAD (Y Field) : Somme des champs “Y Field” divisé par l’intervalle
  • COUNT FRAME (Y Field) : Nombre de paquets contenant le champ “Y Field”
  • COUNT FIELD ( Y Field) : Nombre d’occurence du champ “Y Field”
  • Y Field : Nom d’un champ permettant un affichage de valeur particulière dans la partie Y Axis
  • SMA Period : Permet d’afficher une moyenne des valeurs pendant un intervalle

Voici quelques exemples de graphiques :

Le graphique ici nous indique ici la valeur maximale et moyenne du data rate sur l’ensemble des paquets capturés.
Le graphique nous indique ici le nombre total de paquets transmis (courbe) et le nombre de paquets retransmis (barres)
Ce graphique nous montre le taux d’utilisation du canal.

Les différents types d’audits Wi-Fi

Une couverture Wi-Fi est un élément essentiel pour s’assurer du bon fonctionnement des équipements. Cela passe donc par un positionnement optimisé des bornes par rapport aux différentes de l’environnement (mur, interférences, …). Pour réaliser cela nous allons nous baser sur différentes études : Audit sur plan, Audit AP on a stick ainsi que des audit actif et passif. Ces différents audits ont chacun leurs avantages et inconvénients, mais surtout des objectifs différents et sont généralement complémentaires. Nous allons donc dans la suite de cet article lister les différents audits possibles :

Audit sur plan

Un audit sur plan est une étude qui permet, à l’aide d’un logiciel qui simule la propagation des ondes radios, de positionner aux bons emplacements les bornes Wi-Fi en tenant compte des contraintes du site. Ces contraintes, tels que des murs, des zones d’exclusions ou au contraire de plus fortes densités, doivent être indiqués par la personne en charge de l’étude. La précision de cette étude dépend de ce fait directement de la qualité des valeurs indiquées, c’est pour cela que cette méthodologie est souvent utilisée en complément d’un autre audit qui servira à valider l’exactitude des valeurs. Une fois les différentes contraintes rentrées, cette méthodologie d’audit offre la possibilité de simuler rapidement plusieurs scénarios et installation.

Audit AP on a stick

Un audit AP on a stick est une étude sur site, réalisé à l’aide d’une borne qui servira ensuite lors de l’installation ainsi que d’une batterie et d’un mat permettant d’installer temporairement la borne aux différents emplacements préconisés et de la déplacer facilement. Le but de cette étude peut être de mesurer les atténuations des murs, de valider que la propagation du signal simulée par le logiciel est conforme. Utiliser cette méthodologie permet d’apporter de la précision à un audit sur plan en permettant d’utiliser des valeurs plus précises, car mesurées directement sur site.

Audit actif vs Audit passif

Une fois la solution installée, il existe deux types d’audits, les audits actifs et les audits passifs. Ces audits peuvent être réalisés pour valider une couverture Wi-Fi ou pour identifier d’éventuelles interférences ou perturbations. L’étude active s’appuie sur les échanges entre le point d’accès et l’outil de mesure et nécessite donc d’y être connecté. Ce type d’audit est de ce fait relativement limité, car l’analyse se fait uniquement sur le point d’accès auquel nous sommes connectés et non sur l’ensemble des points d’accès. Ce type d’audit est en conséquence rarement réalisé seul, mais plutôt en complément d’une étude passive.

Au contraire des audits actifs, les audits passifs eux ne nécessitent aucune authentification et viennent simplement écouter l’ensemble des trames 802.11 et permettent de voir l’ensemble des canaux et des réseaux environnants (suivants les capacités de votre outil de mesure). Ce type d’audit permet ainsi d’observer entre autres les éventuelles Co-channel interference.

Il est également conseillé en parallèle de ces audits d’effectuer une analyse spectrale afin d’identifier les éventuelles interférences non liés au Wi-Fi. Les environnements radiofréquence sur les bandes de fréquences liés au wifi est en constante évolution et de nombreux terminaux viennent s’y ajouter. Il est de ce fait essentiel que le processus d’audit soit réalisés de façon régulière pour anticiper les problématiques.

La réalisation de ces audits permet de déployer puis valider une bonne couverture wifi, cependant la réalisation de tests fonctionnels est nécessaire. En effet, la réalité des outils de mesure n’est pas toujours celles des différents terminaux même si certains outils permettent d’appliquer des compensations. La validation fonctionnelle permet également de valider que toute la chaîne de communication est bonne et que l’ensemble des équipements supportent les protocoles et encryption proposées par les bornes Wi-Fi.