Comment tromper les capteurs de trafic routier

Cette enquête a fait l’objet d’une présentation détaillée lors de la Conférence RSA US 2016. Celle-ci est disponible ici.

L’apparition des capteurs de trafic routier dans les villes russes remonte à deux ans environ. Les conducteurs qui utilisaient des dispositifs de détection de radars ont été les premiers à remarquer les boîtiers blancs sur les pylônes. Leurs appareils, destinés à détecter les radars de contrôle de vitesse, réagissaient aux ondes des nouveaux capteurs comme pour les radars. Bien que cet effet inattendu ait eu un impact positif sur la vitesse, ce n’était pas l’objectif premier des autorités municipales lorsqu’elles ont décidé l’installation des boîtiers. Ces capteurs comptent le nombre de véhicules, quel que soit leur gabarit, dans chaque bande de circulation. Ils calculent la vitesse moyenne et transmettent les informations récoltées dans un centre d’exploitation unique.

Comment tromper les capteurs de trafic routier

Capteurs de trafic routier dans les rues de Moscou

La ville obtient ainsi des données sur la densité du trafic, qu’elle peut exploiter pour programmer les feux rouge par exemple ou pour développer le réseau routier. Le rapport hebdomadaire permet aux services chargés du transit dans la capitale de voir les voies les plus lentes et les plus rapides selon les informations du Centre d’organisation de la circulation (TsODD) et selon les données de Yandex. Alors que la deuxième colonne est alimentée par les applications installées sur les smartphones, la première ne peut être alimentée que par les éléments de l’infrastructure routière dont il va être question ici.

Comment tromper les capteurs de trafic routier

Chaque semaine, les autorités municipales publient les données relatives aux voies les plus rapides et les plus lentes de la capitale.

Le capteur constitue l’échelon le plus bas dans l’infrastructure de la  » ville intelligente « . Il transmet la matière première que sont les données relatives à la circulation sans lesquelles il serait impossible d’analyser quoi que ce soit et de configurer correctement le système. Par conséquent, les informations transmises par les capteurs doivent être précises. Mais est-ce vraiment le cas ? Un tiers pourrait-il influencer le fonctionnement du capteur et modifier les données récoltées ? Nous allons tenter de répondre à ces questions et de comprendre ce qui peut être amélioré dans l’infrastructure informatique de nos villes.

Comment trouver les appareils et les données qui les concernent

Toute enquête, y compris une enquête sur la catégorie des systèmes embarqués à laquelle appartiennent les capteurs de trafic routier, débute par la collecte de toutes les données disponibles. Il est impossible de reconnaître tous les modèles de capteur d’un simple coup d’œil, même dans une niche comme celle-ci, sauf si vous travaillez dans ce domaine. Autrement dit, il est fort peu probable que vous parveniez à identifier le fabricant d’un capteur d’un coup d’œil. C’est ici que les logos et les signes apposés par les installateurs prennent toute leur valeur.

Une fois que vous avez réussi à identifier plus ou moins le modèle sur la base de son apparence, vous pouvez vous rendre sur le site du fabricant ou de ses partenaires intégrateurs afin de trouver la documentation, voire, si vous avez de la chance, une application pour l’utilisation de ces appareils. Vous obtiendrez très probablement une brochure marketing ; il n’est pas exclu non plus que vous mettiez la main sur des documents commerciaux plus détaillés. La documentation relative à l’installation apparaît également assez souvent. Par contre, la perle rare, c’est la description technique intégrale du système de commande de l’appareil.

Il existe un côté pratique à l’automatisation de l’utilisation des capteurs, à savoir éviter de devoir s’assoir avec un ordinateur portable près de chaque pylône pour examiner l’appareil. C’est désormais une réalité : les éléments qui constituent la ville intelligente sont souvent connectés via des protocoles de communication sans fil. Mais avant de passer à l’automatisation, il faut d’abord comprendre quel est le protocole employé par le capteur, puis comment isoler les appareils requis de tous les autres.

Pour résoudre ce problème, il est possible d’utiliser n’importe quel identificateur, y compris certaines particularités liées à la façon dont l’appareil communique ses données. Par exemple, la grande majorité des adresses MAC est associée à des fabricants (mais il existe malgré tout encore des adresses anonymes). Outre les identificateurs numériques, un appareil peut également porter un nom qui lui-aussi peut être typique, par exemple, le nom du modèle plus un index croissant.

Ces éléments permettent de programmer un appareil de balayage qui recherchera uniquement les appareils qui vous intéressent. Un des modèles utilisés à Moscou exploite une connexion via Bluetooth. Ces appareils ont tous une adresse MAC ou un nom plus  » sympa  » qui sont caractéristiques et permettent d’ajouter à la base de données uniquement les capteurs de trafic en ignorant les smartphones ou les télévisions qui pourraient se trouver à proximité. La sécurité du Bluetooth n’est pas l’objet de cet article et pour cette raison, nous ne développerons pas la question de la compromission des appareils Bluetooth. Les autorités municipales de Moscou ont été prévenues en novembre 2015 des lacunes dans la configuration des appareils.

Comment tromper les capteurs de trafic routier

Enregistrements relatifs à des capteurs de données conservés dans une base de données.

J’ai utilisé Python, PostgreSQL et un peu de langage C. En temps réel, à savoir quand le dispositif de balayage passe à proximité du capteur, il détermine l’adresse MAC, le nom  » sympa  » de l’appareil et ses coordonnées. Les champs « fabricant » et « adresse » se trouvent déjà dans la base suite à un passage antérieur, ce que signifie que toutes les données dont nous avons besoin sont déjà enregistrées. L’obtention des adresses selon les coordonnées est une procédure qui prend du temps et il n’est pas nécessaire de la réaliser en même temps que la recherche des appareils. L’établissement de la connexion Bluetooth est également une procédure qui prend du temps, donc ne soyez pas pressé le jour où vous la réaliserez.

Que faire avec le micrologiciel ?

L’ouverture dont fait preuve le fabricant vis-à-vis des ingénieurs chargés de l’installation auxquels il va donner un accès aisé aux outils et à la documentation implique également une ouverture vis-à-vis des chercheurs. (Je respecte cette attitude. J’estime que l’ouverture, associée à un programme de recherche de bugs de type  » bug bounty « , donne de meilleurs résultats que la volonté de ne rien dévoiler). Après avoir choisi n’importe lequel des capteurs trouvés, il est possible d’installer sur l’ordinateur portable une application commercialisée pour leur configuration et de réaliser une connexion via l’adresse enregistrée.

Comme dans toute analyse de la sécurité de systèmes embarqués, il convient avant tout de vérifier s’il est possible de reprogrammer l’appareil.

Comment tromper les capteurs de trafic routier

Application de configuration permettant de modifier le micrologiciel du capteur

Oui, un accès technique sans fil permet de reprogrammer l’appareil. Atteindre le micrologiciel du fabricant est aussi simple que d’atteindre son appareil. Son format évoque Intel iHex ou Motoroal SREC, mais en réalité il ne s’agit pas de ces formats mais bien d’un développement exclusif du fabricant. Après avoir séparé les informations de service (« : » commande d’écriture, numéros de série, adresses de la mémoire et sommes de contrôle) dans les blocs pour processeur de traitements du signal (Digital Signal Processor – DSP) et main processing unit (MPU), nous avons obtenu directement le code. Mais nous ne connaissons pas l’architecture des contrôleurs dans l’appareil, ce qui signifie qu’il est impossible d’ouvrir le fichier à l’aide d’un désassembleur.

Comment tromper les capteurs de trafic routier

Comment tromper les capteurs de trafic routier

Micrologiciel d’un capteur de trafic routier.

C’est ici que LinkedIn intervient. Les cadres et les personnes en recherche d’emploi ne sont pas les seuls à trouver ce site utile. Parfois, l’architecture d’un appareil n’a rien de secret et les anciens ingénieurs de la société sont disposés à en parler. Désormais, nous disposons non seulement du fichier mais également du type d’architecture pour laquelle le micrologiciel a été compilé. Toutefois, ce bonheur ne dure pas longtemps : seulement jusqu’au lancement d’IDA.

Comment tromper les capteurs de trafic routier

Même si la documentation n’indique pas les types de contrôleur, il est possible de les identifier.

Même en connaissant l’architecture, le micrologiciel demeure une suite incompréhensible d’octets. Mais l’ingénieur qui nous a aidé avec l’architecture peut également nous parler du chiffrement du micrologiciel, de la table des clés et des algorithmes. Je ne disposais pas d’un appareil et j’ai estimé qu’il n’était pas utile de modifier le micrologiciel en mode black box. Il faut signaler que dans ce cas précis, les spécialistes de la microélectronique ont su comment protéger le micrologiciel. Cela marque-t-il la fin de l’étude des capteurs ? Pas du tout.

Et seuls les camions roulent la nuit…

La modification du micrologiciel est utile en ce sens où elle permet d’ajouter de nouvelles fonctions. Mais l’application standard du fabricant n’en manque pas. Par exemple, l’appareil compte environ 8 Mo de mémoire où est stockée une copie des données du trafic jusqu’à ce que la mémoire soit pleine. Et cette mémoire est accessible. Le micrologiciel permet de changer la catégorie des véhicules qui passent en fonction de la longueur ainsi que le nombre de bandes de circulation. Vous souhaitez obtenir une copie des informations obtenues sur la circulation ? Pas de problème. Pour une raison quelconque, toutes les voitures doivent être transformées en camions qui roulent sur la bande de droite ? C’est possible. Cela peut nuire à la précision des statistiques employées par la ville, avec toutes les conséquences que l’on peut imaginer.

Comment tromper les capteurs de trafic routier

Voici ce que collectent et transmettent les capteurs de trafic routier. Ces données sont conservées sur l’appareil

L’individu désireux d’obtenir une copie des statistiques de la capitale ou de les modifier devra passer, à pied ou en voiture, à proximité de tous les capteurs, mais il ne devra pas obligatoirement exécuter l’application sur chacun des milliers de capteur et modifier manuellement les paramètres. Il existe pour cela un système de commandes exclusif pour ces appareils. On ne peut pas dire que cette situation se présente souvent dans le cadre de l’étude de systèmes embarqués mais une fois que la connexion a été établie avec le capteur via l’application du fabricant, les commandes ne sont plus un secret : le sniffer y a accès. Grâce à la description en anglais, il n’est plus nécessaire d’analyser le protocole de communication avec l’appareil sur l’ordinateur.

Comment tromper les capteurs de trafic routier

Les commandes avec les commentaires éliminent la nécessité d’une analyse du trafic.

Les services Bluetooth ne sont en fait pas mis en œuvre sur le capteur. Le protocole de communication sans fil n’est dans ce cas qu’un moyen de transfert des données. Transfert via un port série normal. La programmation avec de tels ports ne diffère pas de la lecture et de l’écriture de fichiers, le code d’envoi des commandes est trivial. Il n’est même pas nécessaire de mettre en œuvre un fonctionnement normal sur plusieurs flux avec le port. L’envoi de l’octet et la réception de la réponse dans un flux suffisent.

Conclusion. Un véhicule qui se déplace lentement dans la ville, un ordinateur doté d’un émetteur Bluetooth assez puissant et un dispositif de balayage en exécution permettent de récolter les données sur les emplacements des capteurs, de prélever les données sur la circulation et, si vous le souhaitez, de modifier les paramètres. Je ne dirais pas que les informations sur la circulation sont confidentielles, mais la fiabilité de ces informations peut être endommagée par des modifications des paramètres. Et pour rappel, ce sont ces données qui servent à programmer les feux rouges  » intelligents  » et d’autres équipements qui interviennent dans la gestion de la circulation.

Comment tromper les capteurs de trafic routier

Le capteur nous a répondu, il a reçu la commande La connaissance du système de commandes permet de  » traduire  » la réponse

Que faire ?

Il s’avère que les réponses aux questions posées au début sur la fiabilité des données relatives à la circulation et à la protection sont affirmatives. Pourquoi en est-il ainsi ? Aucune autorisation n’était requise, mise à part celle prévue par Bluetooth et cette dernière n’était pas configurée de la meilleure façon qui soit. Le fabricant veut faciliter la tâche des ingénieurs et la majorité des informations relatives à ses appareils sont accessibles au public, notamment via son site officiel. Personnellement, j’appuie la démarche du fabricant et je le respecte car je ne pense pas que le concept de la sécurité par le secret ait beaucoup de sens à notre époque : les individus malintentionnés obtiendront de toute manière le système de commande et l’application requise. J’estime qu’il est préférable de jouer sur l’ouverture, associée à un programme de type bug bounty et une réaction rapide face aux vulnérabilités découvertes. Ne serait-ce que parce que le nombre de chercheurs externes intéressés par un appareil ou logiciel très utilisé sera toujours supérieur au nombre d’employés d’un service informatique.

Lors de l’installation, il faut oublier tous les identifiants standards. Il est normal que les fabricants souhaitent promouvoir leurs produits et il est vrai que les équipes de maintenance peuvent obtenir des informations utiles via les étiquettes, mais il faut également penser aux questions de sécurité. Ne vaudrait-il pas mieux se contenter uniquement d’une identification standard mise en œuvre dans des protocoles bien étudiés ? Toute mesure de protection complémentaire exclusive ajoutée sera la bienvenue et compliquera la compromission.

Cette étude a été présentée en détails lors de la Conférence RSA US 2016 et la présentation est disponible sur le site de la conférence.

Posts similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *