De l’importance du mot de passe et de la configuration…

Bien que le mot de passe soit un des piliers de la sécurité des systèmes, il y a encore bien des domaines dans lesquels il est négligé. C’est notamment le cas dans de nombreux systèmes industriels, embarqués, IoT, etc. Cet article va aborder le cas des trackers GPS, aussi appelés « balises ». Ces petits équipements, dont le prix varie de quelques euros à quelques milliers d’euros, ont été démocratisés ces dernières années grâce (ou à cause?) de différents facteurs. 

Citons parmi eux :

  • la baisse du prix de ces équipements ;
  • la facilité d’accès aux marchés asiatiques ;
  • la baisse du prix des abonnements mobiles ;
  • la volonté ou le besoin d’avoir une information fiable de plus en plus rapidement.

Cette démocratisation s’est traduite par une explosion du nombre de ces équipements, allant de paire avec une croissance importante du nombre de lignes mobiles souscrites auprès des opérateurs télécom. L’un des leaders dans le domaine annonce à lui seul 300000 véhicules suivis en France par son produit. Ce n’est que la statistique d’un fournisseur de service, qui concerne uniquement les véhicules…

Toutefois, les technologies employées dans certains modèles de tracker, ou encore les lacunes en connaissances « sécurité » d’une grande partie des utilisateurs rendent ces objets et les données qui y sont associées relativement vulnérables.

Il est entendu, qu’avec un mot de passe changé dès la sortie du carton et un examen avancé de la configuration du périphérique, cet article n’a probablement plus lieu d’exister, mais la somme de critères précédemment indiqués ainsi que la criticité des données traitées méritent très probablement de s’attarder sur le sujet.

Ces périphériques sont en effet utilisés pour :

  • localiser des personnes (enfants, personnes âgées, agents de sécurité, agents armés…) ;
  • localiser des véhicules (véhicules particuliers, patrouilles, convois sensibles, marchandises, …) ;
  • localiser des objets (marchandises, drones, deux roues, …) ;
  • localiser des animaux (domestiques, bétail, sauvages sous surveillance, …) ;
  • agir sur la balise (verrouiller un véhicule, déclencher une alarme, couper le moteur, prendre une photo, déclencher un appel en écoute discrète, …).

Définition du périmètre

Le matériel nécessaire à cette expérimentation est constitué de :

  • un PC ;
  • un tracker GPS (modèle utilisé : la montre Q50) ;
  • une carte sim permettant l’envoi/réception de SMS, et la data en GPRS, pour le tracker ;
  • un téléphone avec un abonnement permettant l’envoi de SMS (Lab ou travail à petite échelle), OU un service de SMS mailing avec réponse (pour l’industrialisation de l’attaque) ;
  • Optionnel : un serveur de tracking, par exemple Traccar qui est Open Source.

Principe de fonctionnement du tracking

Les trackers utilisent un ou des systèmes pour positionner l’appareil à la surface du globe, puis un ou des systèmes de transmission de l’information vers un mobile ou vers un serveur.

  • Le système de positionnement

Lorsque l’on parle de trackers dits « GPS » (Global Positioning System) on évoque en réalité des trackers GNSS (Global Navigation Satellite System). La différence réside dans la constellation de satellites utilisée pour le positionnement du tracker. GPS est une des constellations disponibles pour pouvoir se géolocaliser sur terre. GPS est donc un type de GNSS. Il se trouve que GPS est la flotte qui est le plus fréquemment utilisée pour les trackers, ce qui explique l’abus de langage de ce début de paragraphe. Il est toutefois envisageable d’utiliser des trackers s’appuyant sur les constellations Galileo, Beïdou, Glonass, ou d’autres encore.

Le choix de la constellation aura un impact sur le choix du composant récepteur intégré au tracker, sur sa fréquence de fonctionnement, probablement sur son prix, et enfin sur sa sensibilité.

La géolocalisation via un GNSS  n’est pas la seule technologie employée dans les trackers. Ils peuvent aussi renvoyer des indications de localisation liées au Wifi, ou encore aux LBS (Location-Based Service) associées au réseau mobile. Lorsqu’il reçoit ces informations, le serveur les traduit en une position grâce à une base de données intégrant par exemple les différents codes LBS et les positions géographiques associées.

  • La transmission de l’information

Pour les trackers grand public, une fois que le périphérique connaît sa position dans l’espace, il doit la transmettre à un destinataire, en général un numéro de mobile (envoi de SMS) ou un serveur de tracking (utilisation du mode GPRS). Il est toutefois possible de transmettre cette information via d’autres technologies telles qu’une liaison satellitaire (exemple : les SBD sur Iridium) ou une liaison radio (exemple : Sigfox ou LoRa). 

Généralement ce canal est aussi utilisé en descendant, notamment pour pousser des commandes vers le tracker. C’est un des points qui sera exploité dans l’attaque décrite ci-dessous.

Scénario d'attaque

Dans le cas étudié, l’utilisateur se procure un tracker entrée de gamme modèle Q50. Il s’agit d’une montre plutôt destinée à suivre des enfants. Le protocole de commandes utilisé pour la configuration du tracker est largement répandu, documenté et utilisé pour de nombreux autres modèles de trackers.

Après avoir déballé et chargé sa montre, l’utilisateur va s’attaquer à la mise en fonction de celle-ci. Une notice d’utilisation (très succincte) est fournie dans la boîte. Un scan de cette notice est disponible ici. Disponible uniquement en anglais, cette notice indique les caractéristiques de la montre, une description physique puis de ces fonctions, et enfin la manière de mettre en œuvre. Pour ce dernier point, un QRCode invite l’utilisateur à installer l’application SeTracker ou SeTracker2.  Une observation intéressante à ce stade est que la notice ne mentionne à aucun endroit la possibilité d’une configuration interne du tracker (mot de passe d’administration), l’existence de commandes, ou encore l’envoi de ces dernières par SMS.

L’installation de l’application SeTracker se passe trop très facilement. En observant un peu l’envoi de trame depuis le téléphone il s’avère que l’application est très bavarde et communique très régulièrement vers les serveurs (en Chine ?). Le lancement de l’application n’indique à aucun moment qu’il est possible de configurer son tracker, qu’il dispose d’un mot de passe, ou encore qu’il accepte des commande SMS. L’utilisateur est simplement invité à ajouter son tracker à l’interface en saisissant le RegCod situé au dos de la montre. Une fois cette étape passé, l’utilisateur peut voir la position du tracker sur une carte, accéder à son « paramétrage », envoyer des messages vocaux, … Ci-dessous, quelques captures d’écran de l’application et du peu de détail de configuration qu’elle apporte :

 

Exploitation

 

Phase de

Reconnaissance

La première étape, et celle qui pourrait sembler la plus difficile à première vue, est d’identifier un tracker qui se prête à l’attaque. En effet, comme cela a été expliqué plus tôt dans cet article, il y a de plus en plus de lignes mobiles déclarées, de plus en plus d’équipements mobiles. Noyé dans la masse, le tracker de l’utilisateur peut donc lui sembler à l’abri.

L’attaquant va donc s’intéresser à un ensemble de trackers utilisant par exemple tous le même protocole d’envoi des commandes par SMS. Le protocole utilisé par la montre Q50 pour recevoir et envoyer des informations en GPRS est disponible ici. La liste des commandes SMS est disponible sur de nombreux sites internet. En voici un résumé présentant les commandes les plus intéressantes pour un attaquant :

Commande envoyée Action du tracker
pw,PASSWORD,ts#

Renvoi un récapitulatif de la configuration du tracker sous la forme :

Ce SMS indique en particulier la version du firmware (ver), le numero IMEI (Imei), l’adresse IP (Ip_url) et le port (port) du serveur de géolocalisation, les numéros de téléphone considérés comme administrateurs (center et slave), le délai entre l’envoi de deux positions (upload), ainsi que les niveaux de batterie et réception.

pw,123456,ıp,54.169.10.136,8001# Définition du serveur et du port destinataires des positions via GPRS.
pw,PASSWORD,find# Fait sonner la montre pour la localiser plus finement.
pw,PASSWORD,center,NUMBER# Définition d’un numéro de téléphone d’administrateur. Ce numéro aura des droits sur le tracker.
pw,PASSWORD,slave,NUMBER# Définition d’un deuxième numéro de téléphone administrateur.
pw,PASSWORD,upload,INTERVAL# Envoi d’une position en GPRS toutes les X secondes vers le serveur de collecte.
pw,PASSWORD,call,TELEPHONE_NUMBER# Le tracker émet un appel vers le numéro indiqué dans la commande. La montre étant équipée d’un micro il est possible de réaliser une écoute discrète.

Les recherches en ligne indiquent que le mot de passe par défaut de ces équipements est 123456 dans la majorité des cas, voire 654321 pour une petite partie d’entre eux.

Cette phase consiste à localiser, dans la masse des équipements connectés, un périphérique validant deux conditions :

  • l’utilisation du protocole de commandes SMS choisi au début de l’attaque ;
  • l’utilisation du mot de passe par défaut (123456).

Pour réaliser cela, et vérifier les deux conditions en une seule fois, il est possible d’utiliser un service de mailing SMS qui permet l’envoi en masse de SMS, mais aussi de recevoir la réponse lorsqu’il y en a une. Ce service facturé est disponible auprès des plus grands de la communication web tels qu’OVH (service SMS réponse).

Le SMS envoyé contiendra la commande pw,123456,ts#

Pour cette démonstration le service SMS réponse d’OVH a été utilisé, en version démo (20 SMS). Une plage de 5 numéros est choisie « arbitrairement ».

Exemple de liste de destinataires

Configuration de la campagne SMS

Sur la plage de numéros utilisée pour l’attaque, beaucoup seront des numéros de téléphones portables. Les utilisateurs choisiront donc soit de ne pas répondre à ce SMS en pensant qu’il s’agit d’une erreur, soit de répondre en indiquant que ce doit être une erreur. Par contre, s’il y a un tracker vulnérable dans cette plage de numéros, il répondra en renvoyant le résumé de sa configuration. Il indiquera alors à l’attaquant, premièrement qu’il a bien compris le protocole de commandes, et deuxièmement que son mot de passe est le mot de passe par défaut à savoir 123456. Par ailleurs, le résumé de sa configuration contiendra plusieurs informations intéressantes.

La réponse au SMS arrive directement sur l’interface du service en ligne

Il se peut que le tracker ait été configuré pour ne pas répondre aux commandes par un SMS. Cela peut se faire par exemple avec la commande  pw,123456,smsonoff,0#

Dans ce cas, si le tracker reçoit le SMS de l’attaquant, il ne renverra tout simplement aucune réponse.

L’attaquant peut adapter son scénario, en envoyant la commande inverse, à savoir  pw,123456,smsonoff,1#

Cette commande réactive la réponse par SMS et envoie d’ailleurs directement une confirmation. Le tracker répondra alors sms:1.ok! et révèlera donc son protocole, son mot de passe par défaut, ainsi que le fait qu’il reçoit et interprète bien les commandes.

Affichage du contenu de la réponse

Phase d’exploitation et d’exfiltration

L’attaquant ayant identifié un tracker en particulier, il va être possible dans un premier temps de récupérer les positions via SMS. En effet en envoyant la commande pw,123456,url# le tracker renverra un lien vers sa position dans Google Maps.

Dès lors, la position de l’appareil est compromise. Par ailleurs, cette phase reste relativement discrète car aucun changement de configuration n’a été effectué. Seule une augmentation du nombre de SMS envoyés par le tracker pourrait être décelée, mais sans certitude si le tracker envoie déjà plusieurs centaines de SMS par mois.

En modifiant légèrement et donc discrètement la configuration du tracker, il est possible d’ajouter son propre numéro en tant qu’administrateur (center) ou administrateur secondaire (slave) si le premier est occupé. 

Enfin, pour optimiser l’interception des trames de positions, l’idéal serait de configurer un serveur de géolocalisation tel que Traccar. Ce dernier est OpenSource et sait gérer de très nombreux protocoles utilisés par les trackers les plus répandus sur le marché. Au delà du serveur, il faudra modifier la configuration du tracker pour le faire pointer vers la nouvelle adresse IP et le nouveau port, désignant le serveur pirate.

 

Dans l’idéal, un script sur le serveur pirate veillera à renvoyer les trames vers le serveur légitime. Ainsi il n’y aura aucune interruption de service pour l’utilisateur qui ne se rendra donc compte de rien. Cette partie fera peut-être l’objet d’un deuxième article sur le sujet.

 

 

Enjeux et criticité de l'information

Dès la découverte d’un périphérique répondant au SMS, l’information est compromise. En effet, à partir de ce moment, l’attaquant pourra, sans attirer l’attention, récupérer diverses informations en fonction du type de tracker utilisé. La première information critique récupérée sera bien entendu la position de la balise. Que se soit une personne, un enfant, un convoi sensible, un véhicule, un drone, … le porteur de cette balise a probablement une importance particulière pour son propriétaire.

Par ailleurs certains, pour ne pas dire tous les trackers d’entrée de gamme, disposent de fonctionnalités supplémentaires. Sur le modèle étudié, la montre Q50, il est possible de procéder à une écoute, de réaliser des appels ou des envois de SMS depuis la montre. Sur d’autres modèles, il est possible de faire une photo avec la caméra embarquée et de la récupérer. Sur des modèles dédiés au véhicules, il est souvent possible de connaître les caractéristiques du véhicules (niveau de carburant, moteur tournant ou non, temps de pause des conducteurs); ces données peuvent par exemple faciliter l’interception d’un véhicule. Plus grave, certains trackers disposent d’un relais de coupure moteur permettant, à distance, de stopper le moteur, ou du moins son alimentation en carburant. Enfin, d’autres permettent d’activer ou désactiver l’alarme à distance, de déverrouiller les portes…

Comme nous l’avons vu, afin de s’assurer un accès permanent à l’information de géolocalisation, l’attaquant pourra modifier le serveur de destination en indiquant l’adresse IP de son propre serveur dans la configuration du tracker, puis re-router toutes les trames vers le serveur qui était configuré initialement. L’exemple parfait de l’attaque de type Man In The Middle.

Seule une vérification de la configuration du boitier pourra trahir de telles actions.

Contre-mesures

Différentes solutions peuvent être apportées pour « sécuriser » ce système, ou son utilisation. En voici certaines, applicables par l’utilisateur standard, ou encore d’autres applicables dès la conception des appareils.

  • Le mot de passe

La première des solutions est, bien entendu, le changement du mot de passe dès la sortie de l’appareil. Une bonne partie des trackers d’entrée de gamme permettent de changer ce mot de passe. Cependant les fabricants ne détaillent jamais ce procédé dans la fiche d’utilisation (le manuel est en général réduit à une fiche, lorsqu’il existe). La majorité des utilisateurs, particuliers ou pro, se contentent donc de suivre les quelques consignes de synchronisation avec le serveur du fabricant.  Dans le scénario étudié précédemment, un tracker sur lequel le mot de passe a été changé n’aurait pas répondu à la campagne de mailing SMS, et serait donc passé inaperçu, déjouant ainsi l’attaque.

  • La configuration des whitelists et des numéros d’admin

Une majorité de modèles permet aussi de configurer des whitelists et/ou des numéros d’admin. La whitelist va en général contenir une liste de numéro que le tracker est autorisé à contacter. Les numéros ne faisant pas partie de cette whitelist ne peuvent pas être contactés depuis le tracker, il est donc impossible de l’utiliser pour effectuer des rebonds vers d’autres numéros. La configuration du ou des numéros d’admin permet quant à elle de restreindre le nombre de téléphones pouvant envoyer des commandes à la balise. Le changement de configuration n’est donc possible que depuis les numéros déclarés.

  • La revue régulière des configurations des balises

De par leur utilisation et leur conception, les balises sont très exposées. Tout d’abord sur le réseau GSM. N’importe qui peut en théorie envoyer des SMS à une balise comme cela a été démontré précédemment. Par ailleurs, les trackers sont bien souvent « lâchés » dans la nature, et donc accessibles physiquement. L’attaque physique n’a pas été étudiée ici, mais la plupart des trackers démontés lors des tests ont fait apparaître des points de test sur les circuits imprimés. Il est sûr qu’une connexion à ces points de test permet des actions sur le système, et par conséquent une modification de la configuration sans passer par le réseau GSM.

Une revue régulière des configurations de tracker permet de vérifier que ces dernières n’ont pas changé. Dans le cas d’un modèle grand public, les points à vérifier seront notamment l’adresse IP et le port du serveur de destination, les numéros de téléphones autorisés, les numéros d’admin, les restrictions d’appels ou d’envoi de messages … bref, tous les points liés à la communication et qui pourraient affecter la confidentialité ou l’intégrité des données transmises par la balise.

  • L’authentification des trackers et le chiffrement des communications avec le serveur

Ce sont ici des choix techniques qui sont faits lors de la conception du système et des équipements. Le développeur de solutions de tracking peut faire le choix d’authentifier les trackers et/ou de chiffrer les communications avec le serveur en appliquant des algorithmes cryptographiques. Cependant, ces choix ont différentes conséquences sur le système. Tout d’abord le micro contrôleur intégré au tracker doit être en mesure de faire de la crypto. A capacité de batterie équivalente, l’autonomie sera probablement réduite du fait que le micro contrôleur réalisera en permanence des opérations crypto. Le volume de données transmis sur le réseau sera aussi augmenté. Enfin une politique de gestion/renouvellement/révocation des clés de chiffrement et/ou authentification doit être mise en place. Toutes ces nouvelles contraintes ont un impact considérable sur le coût de la solution. C’est l’une des raisons qui font que les solutions bon marché ne sont pas équipées de tels mécanismes.

Conclusion

Comme c’est bien souvent le cas, cette attaque ne fait pas intervenir de grandes connaissances techniques, mais simplement la curiosité et l’imagination de l’attaquant. Sans autre matériel qu’un simple téléphone, il est possible d’obtenir la position d’un tracker, de procéder à une écoute, ou encore d’agir sur un véhicule pour certains modèles de tracker. Encore une fois il est donc primordial de ne pas conserver les mots de passe par défaut, de personnaliser la configuration de ses équipements, et d’effectuer des revues régulières.