Sécurité GSM

Vulnérabilité #1 : Man-in-the-Middle

L'industrie du GSM est fortement fermée, seulement 4 implémentations propriétaires de la norme existent et les constructeurs de puces n'ont jamais publiés de documentations relatives.

Concernant la sécurisation des données, les algorithmes n'étaient pas publics, ils ont été conçus par des sociétés privées d'une manière totalement opaque. Mais comme les constructeurs d'équipements GSM devaient y avoir accès, il ne faut pas s'étonner qu'une étude confidentielle décrivant une partie du code se soit un jour retrouvée sur un site de discussion dédié à la cryptographie. Il n'a pas fallu longtemps pour reconstituer le code complet par rétro-ingénierie, et pour découvrir différentes failles.

Description

Après avoir étudié brièvement la structure d'un réseau GSM, observons une attaque de type Man-in-the-middle sur ce que l'on appelle l'interface Um, c'est à dire le lien virtuel entre l'abonné et l'antenne-relais.

Ce type d'attaque est possible car la norme possède les vulnérabilités suivantes :

Dés 1991, des sociétés privées commercialisaient pour plusieurs dizaines de milliers d'euros des équipements capable d'exploiter ces vulnérabilités : des IMSI-Catcher.

IMSI Catcher

De nos jours il n'est plus nécessaire de débourser de telle somme pour intercepter des communications. En effet des implémentations open-source du GSM existent et la norme est maintenant bien détaillé.

Mise en pratique

Ces différentes vulnérabilités combinées entre elles permettent d'enregistrer les conversations téléphoniques des utilisateurs. En effet, imaginons un scénario d'attaque avec les étapes suivantes : créer un réseau GSM avec un signal très puissant, usurper l'identité d'un réseau opérateur légitime (Orange, Free, Bouygues), forcer les téléphones environs à s'appairer à l'antenne-relais malveillante, désactiver le chiffrement, connecter le réseau GSM malveillant au vrai réseaux d'opérateurs, et enfin enregistrer les communications.

Créer un réseau GSM

Pour créer un réseau GSM, nous avons besoin de plusieurs éléments. Tout d'abord matériels :

Un équipement de type SDR est un émetteur/récepteur radio réalisé principalement par logiciel et dans une moindre mesure par matériel. Il est possible avec ce genre de matériel de l'utiliser en tant que émetteur/récepteur FM, TNT, GSM, WiFi, recevoir des signaux satellite, signaux ADS-B émis par les avions. La partie traitement du signal est réalisée de manière logicielle, sur l'ordinateur hôte, et non grâce à une puce dédiée (comme dans une carte WiFi). Il suffit de changer ou d'adapter le logiciel pour fonctionner avec un système radio différent.

L'amplificateur va nous permettre de couvrir une plus large zone, l'ordinateur va prendre en charge la partie logicielle du traitement du signal et la clé 3G va relier cet ordinateur à une antenne-relais légitime.

Concernant la partie logicielle :

Le schéma ci-dessous représente l'architecture d'attaque :

Scénario 1

Usurper l'identité d'un opérateur

Les réseaux de téléphonie mobile sont identifiés par un couple MCC (Mobile Country Code)/MNC (Mobile Network Code). C'est l'identifiant du réseau visible dans la liste des réseaux sur le téléphone (similaire au SSID du WiFi). Par exemple, le code pays (MCC) de la France est 208 et le code réseau (MNC) d'Orange est 01.

Il est donc possible de paramétrer à travers l'application OpenBTS le nom de notre réseau :

Dans sa version open-source, OpenBTS ne gère pas le chiffrement des communications. Dans notre cas ce n'est pas gênant, au contraire, car nous voulons que les communications transitent en claire à travers notre ordinateur afin de pouvoir les enregistrer.

Enregistrer les communications

L'application qui gère les flux de communications, Asterisk, possède une fonction native de monitoring des appels. Cette fonction est utile par exemple pour les centres d'appels, qui ont l'obligation d'avoir une preuve numérique des échanges entre les opérateurs et les clients.

Le fichier de configuration ci-dessous précise que pour tous appels commençant par "0" ou "+", ce dernier est accepté, enregistré dans un fichier "wav" puis envoyé vers la clé 3G (Dongle) afin de rejoindre le réseau traditionnel.

Connecter son réseau aux réseaux d'opérateurs

Enfin c'est à travers Asterisk que la clé 3G va pouvoir se connecter au réseau opérateur et interagir avec notre propre réseau.

Lancement du réseau

Au bout de quelques minutes, un nombre conséquent de téléphones se sont connectés à notre antenne et des communications ont bien été enregistrées. Ci-dessous l'enregistrement d'une communication sortante vers le numéro 0623232323 à travers la clé 3G préalablement connectée au réseau de Free.

Améliorations

Notre attaque à ces limites. En effet elle n'est possible que sur des appels sortant, de notre réseau vers le réseau opérateur. Les utilisateurs de notre réseau ne sont plus joignables depuis l'extérieur.

De plus, la carte SIM contenue dans la clé 3G est utilisée pour joindre les correspondants, ce qui pose plusieurs problèmes : communications simultanées, mauvais numéro s'affichant sur le téléphone de la personne à joindre (celui de la carte SIM de la clé 3G et non celui de l'appelant), ... D'une manière générale, cette attaque n'est pas passive et un utilisateur averti pourrait se rendre compte assez facilement de la supercherie.

Nous pourrions envisager de multiplier les clés 3G, de cloner les cartes SIM de nos victimes à la volée en récupérant les identifiants/numéros et en les recopiant sur les cartes SIM des clés 3G. Mais les processus de clonage sont souvent trop long car nécessitant du matériel dédié.