Brevet FR3121528A1 — publié le 20221007

L’invention concerne un procédé et un dispositif de détection d’intrusion sur un bus de données (100). A cet effet, un dispositif (10) relié au bus de données (100) reçoit un message circulant sur le bus de données (100). Le dispositif (10) récupère un premier identifiant contenu dans ce message et identifiant ce message. Le dispositif (10) compare le premier identifiant à un ensemble de deuxièmes identifiants compris dans une table de données stockée en mémoire du dispositif (10). Chaque deuxième identifiant identifie avantageusement un message autorisé à circuler sur le bus de données (10). Le résultat de la comparaison permet au dispositif (10) de détecter si la circulation de ce message sur le bus de données (100) constitue une intrusion malveillante ou non sur le bus de données (100). Figure pour l’abrégé : Figure 1 Procédé et dispositif de détection d’une intrusion sur un bus de données d’un véhicule L’invention concerne les procédés et dispositifs de détection d’intrusion sur un bus de données d’un véhicule, notamment de type automobile. L’invention concerne également plus particulièrement un procédé et un dispositif de détection d’un ou plusieurs messages émis par un dispositif malveillant sur un bus de données d’un véhicule. Arrière-plan technologique Les véhicules contemporains embarquent nombre de calculateurs assurant chacun une ou plusieurs fonctions, telles que par exemple la gestion de l’aide à la conduite, de l’antipatinage, de la répartition électronique du freinage ou encore la commande d’actionneurs pour assurer le fonctionnement optimal d’un moteur à combustion. Ces calculateurs sont reliés entre eux via un bus de données multiplexé de type CAN (de l’anglais « Controller Area Network » ou en français « Réseau de contrôleurs ») ou CAN FD (de l’anglais « Controller Area Network Flexible Data-Rate » ou en français « Réseau de contrôleurs à débit de données flexible »), l’ensemble bus de données et calculateurs formant le système embarqué du véhicule. Ces calculateurs sont aussi appelés UCE (« Unité de Commande Electronique » ou en anglais ECU « Electronic Control Unit »). Ces calculateurs embarquent des logiciels qui sont exécutés pour assurer les fonctions dont ils ont la charge. L’émission de messages malveillants par un dispositif tel qu’un boîtier électronique ou par un logiciel de type malware introduit dans un des calculateurs du système embarqué est utilisé pour pirater ou perturber les échanges de données entre les calculateurs du système embarqué. Ce ou ces messages malveillants sont potentiellement dangereux pour la sécurité du véhicule, l’introduction de tels messages malveillants pouvant générer des dysfonctionnements des calculateurs exploitant les données contenues dans ces messages. Certaines méthodes sont connues pour détecter l’introduction ou l’intrusion de tels messages malveillants sur un bus de données, ces méthodes étant par exemple basées sur des approches statistiques sur un enregistrement long de messages, sur des techniques dites d’apprentissage machine (de l’anglais « machine learning »), sur la détection d’anomalie par rapport à un comportement observé durant une phase d’apprentissage. Le problème de ces méthodes connues est qu’elles requièrent une charge de calcul importante avec une fiabilité limitée. Un objet de la présente invention est de résoudre au moins un des problèmes de l’art antérieur, par exemple de détecter l’introduction de messages malveillants sur un bus de données d’un véhicule, par exemple automobile et/ou d’améliorer la détection d’intrusion de message malveillant sur un bus de données d’un véhicule. Un autre objet de l’invention est d’améliorer la sécurité des échanges de données entre calculateurs reliés par un bus de données d’un véhicule. Selon un premier aspect, l’invention concerne un procédé de détection d’une intrusion sur un bus de données d’un véhicule, le procédé étant mis en œuvre par au moins un processeur embarqué dans le véhicule, le procédé comprenant les étapes suivantes : - réception d’un ensemble de messages transmis sur le bus de données ; - pour chaque message reçu au cours d’un intervalle de temps déterminé : ● détermination d’un premier identifiant du message, le premier identifiant étant compris dans le message, ● détermination d’un deuxième identifiant correspondant au premier identifiant par comparaison du premier identifiant avec une liste de deuxièmes identifiants compris dans une première table stockée dans une mémoire associée à le au moins un processeur, les deuxièmes identifiants de la liste étant répartis dans une pluralité de groupes, à chaque groupe étant associée une pluralité de deuxièmes identifiants, à chaque groupe étant associés un compteur et une valeur seuil de compteur, ● incrémentation du compteur associé au groupe de deuxièmes identifiants comprenant le deuxième identifiant correspondant au premier identifiant ; - comparaison de chaque compteur avec la valeur seuil de compteur associé à chaque compteur à échéance de l’intervalle de temps déterminé ; - détection d’une intrusion sur le bus de données en fonction d’un résultat de la comparaison. Selon une variante, une intrusion est détectée lorsqu’au moins un compteur de la pluralité de compteurs est supérieur à la valeur seuil de compteur associée à le au moins un compteur. Selon une autre variante, le procédé comprend en outre une étape de transmission d’une alerte à destination d’un dispositif distant via une liaison sans fil lorsqu’une intrusion est détectée. Selon encore une variante, la valeur seuil de compteur associée à un compteur est déterminée en fonction d’une périodicité des messages identifiés par les deuxièmes identifiants du groupe auquel est associé le compteur et en fonction d’une durée de l’intervalle de temps déterminé Selon une variante supplémentaire, le premier identifiant est codé sur 11 bits et la liste de deuxièmes identifiants est codée de manière déterminée dans la première table, la première table comprenant 256 éléments chacun codé sur 8 bits, la pluralité de groupes comprenant 256 groupes comprenant chacun 8 deuxièmes identifiants, les compteurs étant stockés dans une deuxième table de 256 éléments et les valeurs seuil de compteur étant stockées dans une troisième table de 256 éléments. Selon une autre variante, le premier identifiant comprend une première partie formé des 3 bits de poids les plus faibles et d’une deuxième partie formée des 8 bits de poids les plus forts, la première partie étant utilisée pour identifier une colonne de la première table, la deuxième partie étant utilisée pour identifier une ligne de la première table, un traitement déterminé étant appliqué au premier identifiant pour mettre en œuvre la comparaison en utilisant la ligne identifiée dans la première table et la colonne identifiée dans la première table. Selon une variante additionnelle, le bus de données est un bus de type réseau de contrôleurs, dit bus CAN. Selon un deuxième aspect, l’invention concerne un dispositif de détection d’une intrusion sur un bus de données d’un véhicule, le dispositif comprenant une mémoire associée à un processeur configuré pour la mise en œuvre des étapes du procédé selon le premier aspect de l’invention. Selon un troisième aspect, l’invention concerne un bus de données comprenant le dispositif tel que décrit ci-dessus selon le deuxième aspect de l’invention et un ou plusieurs calculateurs. Selon un quatrième aspect, l’invention concerne un véhicule, par exemple de type automobile, comprenant un dispositif tel que décrit ci-dessus selon le deuxième aspect de l’invention ou un bus de données tel que décrit ci-dessus selon le troisième aspect de l’invention. Selon un cinquième aspect, l’invention concerne un programme d’ordinateur qui comporte des instructions adaptées pour l’exécution des étapes du procédé selon le premier aspect de l’invention, ceci notamment lorsque le programme d’ordinateur est exécuté par au moins un processeur. Un tel programme d’ordinateur peut utiliser n’importe quel langage de programmation, et être sous la forme d’un code source, d’un code objet, ou d’un code intermédiaire entre un code source et un code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable. Selon un sixième aspect, l’invention concerne un support d’enregistrement lisible par un ordinateur sur lequel est enregistré un programme d’ordinateur comprenant des instructions pour l’exécution des étapes du procédé selon le premier aspect de l’invention. D’une part, le support d’enregistrement peut être n'importe quel entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une mémoire ROM, un CD-ROM ou une mémoire ROM de type circuit microélectronique, ou encore un moyen d'enregistrement magnétique ou un disque dur. D'autre part, ce support d’enregistrement peut également être un support transmissible tel qu'un signal électrique ou optique, un tel signal pouvant être acheminé via un câble électrique ou optique, par radio classique ou hertzienne ou par faisceau laser autodirigé ou par d'autres moyens. Le programme d’ordinateur selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme d’ordinateur est incorporé, le circuit intégré étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Brève description des figures D’autres caractéristiques et avantages de l’invention ressortiront de la description des modes de réalisation non limitatifs de l’invention ci-après, en référence aux figures 1 à 5 annexées, sur lesquelles : illustre de façon schématique un bus de données d’un véhicule, selon un exemple de réalisation particulier de la présente invention ; illustre un organigramme des différentes opérations d’un processus de détection d’une intrusion sur le bus de données de la , selon un exemple de réalisation particulier de la présente invention. illustre de façon schématique un premier identifiant d’un message transmis sur le bus de données de la , selon un exemple de réalisation particulier de la présente invention ; illustre schématiquement un dispositif configuré pour détecter une intrusion sur le bus de données de la , selon un exemple de réalisation particulier de la présente invention ; illustre un organigramme des différentes étapes d’un procédé de détection d’une intrusion sur le bus de données de la , selon un exemple de réalisation particulier de la présente invention. Un procédé et un dispositif de détection d’une intrusion sur le bus de données vont maintenant être décrits dans ce qui va suivre en référence conjointement aux figures 1 à 5. Des mêmes éléments sont identifiés avec des mêmes signes de référence tout au long de la description qui va suivre. Selon un exemple particulier et non limitatif de réalisation de l’invention, un ensemble de messages circulant sur un bus de données, par exemple de type CAN (de l’anglais « Controller Area Network » ou en français « Réseau de contrôleurs ») ou CAN FD (de l’anglais « Controller Area Network Flexible Data-Rate » ou en français « Réseau de contrôleurs à débit de données flexible »), d’un véhicule sont reçus par un dispositif connecté à ce bus, le dispositif embarquant un ou plusieurs processeurs et correspondant par exemple un calculateur du système embarqué du véhicule relié à d’autres calculateurs du système embarqué via le bus de données. Les messages reçus correspondent avantageusement à des messages périodiques. Pour chaque message reçu, le dispositif récupère un premier identifiant contenu dans ce message et identifiant ce message, un tel identifiant étant par exemple codé sur 11 bits. Le dispositif compare le premier identifiant à une liste de deuxièmes identifiants compris dans une première table de données stockée en mémoire du dispositif. Chaque deuxième identifiant identifie avantageusement un message périodique connu et circulant sur le bus de données selon une période déterminée. Les deuxièmes identifiants de la liste sont avantageusement répartis dans plusieurs groupes, par exemple 256 groupes comprenant chacun 8 deuxièmes identifiants, un deuxième identifiant n’appartenant qu’à un seul groupe. Un compteur est associé à chaque groupe et à chaque compteur est associé une valeur seuil de compteur. Pour chaque message reçu pendant un intervalle de temps déterminé (par exemple égal à 1 seconde), le compteur associé au groupe comprenant le deuxième identifiant auquel correspond le premier identifiant du message reçu est incrémenté de 1. A la fin de l’intervalle de temps déterminé, la valeur prise par chaque compteur est comparée à la valeur seuil de compteur associée. Le résultat de la comparaison entre chaque compteur et sa valeur seuil associée permet ainsi au dispositif de détecter si la circulation de ce message sur le bus de données constitue une intrusion malveillante ou non sur le bus de données. Une telle méthode présente l’avantage d’être simple à mettre en œuvre en ne requérant que le stockage en mémoire d’une première table comprenant les deuxièmes identifiants, d’une deuxième table comprenant les compteurs associés à chaque groupe de deuxièmes identifiants et d’une troisième table comprenant les valeurs associées à chaque compteur (et chaque groupe). Ainsi, aucune phase d’apprentissage n’est nécessaire pour mettre en œuvre la méthode. Les ressources en termes de calcul et d’empreinte mémoire nécessaires à la mise en œuvre de cette méthode sont peu élevées, l’architecture matérielle d’un calculateur standard d’un système embarqué d’un véhicule étant adaptée à une telle mise en œuvre. Une telle méthode est par exemple adaptée pour détecter des messages illicites ou malveillants émis ou circulant sur un bus de données ne respectant pas la période d’émission du message. De tels messages sont par exemple émis sur le bus de données par un calculateur corrompu ou un équipement pirate relié au bus de données, lequel utilise un identifiant de message connu par les calculateurs reliés au bus de données mais comprenant des données malveillantes. Une telle attaque perturbe le fonctionnement du ou des calculateurs qui reçoit ce ou ces messages illicites ou malveillants du fait des données malveillantes qu’ils contiennent. Un fonctionnement en mode dégradé voire un défaut de ce ou ces calculateurs peut apparaître entrainant un dysfonctionnement du véhicule avec les problèmes de sécurité associés pour le véhicule et ses passagers. illustre schématiquement un bus de données 100 d’un véhicule, selon un premier exemple de réalisation particulier et non limitatif de la présente invention. Le bus de données 100 correspond avantageusement à un bus de données de type multiplexé reliant plusieurs calculateurs 11, 12 et 13. Un dispositif 10 configuré pour détecter une ou plusieurs intrusions sur le bus de données 100 est également relié aux calculateur 11 à 13 via le bus de données 100. Le dispositif 10 correspond par exemple à un système de détection d’intrusion, dit dispositif ou module IDS (de l’anglais « Intrusion Detection System »). Un tel module IDS correspond par exemple à un dispositif configuré pour recevoir et traiter des données et est par exemple hébergé dans un calculateur sous la forme d’un module logiciel. Un tel module IDS est avantageusement hébergé dans un environnement ou une zone sécurisée (de l’anglais « Trusted zone ») d’un calculateur pour le protéger d’une éventuelle attaque. L’ensemble formé par le bus de données 100, les calculateurs 11 à 13 et le dispositif 10 forment tout ou partie d’un système embarqué du véhicule, par exemple un véhicule automobile. Le nombre de calculateurs 11 à 13 n’est cependant pas limité à 3 et s’étend à tout nombre, par exemple 2, 5, 10, 100 ou plus de calculateurs. Le système embarqué comprend par exemple également une unité de contrôle télématique, dite TCU (de l’anglais « Telematic Control Unit »), reliée en communication avec les calculateurs 11 à 13 via le bus de données 100. La TCU est reliée à une ou plusieurs antennes du véhicule pour la communication de données entre le véhicule et un ou plusieurs dispositifs distants, par exemple via une liaison sans fil basée sur un réseau cellulaire de type LTE (de l’anglais « Long-Term Evolution » ou en français « Evolution à long terme »), LTE-Advanced (ou en français LTE-avancé), aussi appelé réseau 4G ou 5G. Le bus de données est par exemple de type CAN tel que défini dans la norme ISO 11898 ou de type CAN FD tel que défini dans la norme ISO 11898-1. Le bus de données 100 met avantageusement en œuvre un multiplexage temporel permettant aux calculateurs 11 à 13 d’émettre des messages (aussi appelés trames de données) à tour de rôle, selon une périodicité déterminée. Les messages périodiques émis correspondent à un type déterminé, chaque type de message étant identifié par un identifiant déterminé et particulier, la période d’émission variant par exemple selon le type du message périodique. Comme cela sera décrit plus en détail en regard des figures 2 et 3, les messages légitimes, c’est-à-dire les messages connus et autorisés à circuler sur le bus de données, sont identifiés via un identifiant dont la valeur est connue, cette valeur étant par exemple codé sur un nombre de bits déterminé, par exemple 11 bits. Les messages circulant sur le bus correspondent avantageusement à des messages périodiques émis sur le bus de données 100, ces messages périodiques étant d’un type déterminé identifié par un identifiant déterminé et unique. Les messages sont dits périodiques en ce qu’ils sont transmis à intervalle régulier (une période) par un calculateur, par exemple toutes les 10, 20, 30 ms. Selon une variante de réalisation, le bus de données 100 correspond par exemple à un bus de type FlexRay (selon la norme ISO 17458) ou Ethernet (selon la norme ISO/IEC 802-3). illustre un organigramme des différentes opérations d’un processus de détection d’une intrusion sur le bus de données 100 de la , selon un premier exemple de réalisation particulier et non limitatif de la présente invention. Un tel processus est avantageusement mis en œuvre par le dispositif 10 relié ou connecté au bus de données 100. Les opérations du processus ci-dessous seront décrites en référence à la réception et au traitement d’un ensemble de messages périodiques reçus au cours d’un intervalle de temps déterminé, par exemple pendant un intervalle d’une durée égale à 1 seconde. Bien entendu, les mêmes opérations s’appliquent à la réception et au traitement sur des intervalles de durée différente de 1 seconde, par exemple pour des intervalles de durée égale à 500 ms ou 2 secondes. La durée de l’intervalle de temps correspond par exemple à un paramètre configurable. Les première, deuxième et troisième opérations décrites ci-dessous sont mises en œuvre pour chaque message reçu pendant l’intervalle de temps déterminé. Dans une première opération 21, un message émis sur le bus de données 100 est reçu par le dispositif 10. Le message (ou la trame de données) est par exemple émis sur le bus de données par un des calculateurs 11 à 13 et correspond à un message périodique, par exemple un message émis toutes les 10 ms ou toutes les 50 ms. Selon un autre exemple, le message émis correspond à un message malveillant émis par un calculateur corrompu ou un dispositif malveillant relié au bus 100, le message étant également du type périodique. Dans une deuxième opération 22, le dispositif 10 récupère ou détermine l’identifiant du message reçu, appelé premier identifiant. Le premier identifiant est par exemple contenu dans un champ du message appelé champ d’arbitrage ou champ identificateur, lequel comprend le premier identifiant. Ce champ comprend par exemple entre 10 et 32 bits, par exemple 11 bits. Le premier identifiant est déterminé au cours de l’opération 22 en décodant tout ou partie du message reçu, par exemple en décodant l’en-tête (de l’anglais « header ») du message reçu. Le premier identifiant correspond à un code binaire, le premier identifiant correspondant à une chaine binaire de longueur égale à 11 bits, chaque bit de la chaine prenant la valeur 0 ou 1. Le premier identifiant est comparé à une liste de deuxièmes identifiants stockés dans une première table à deux dimensions, telle que la table illustrée en regard de la . Cette table est avantageusement stockée en mémoire du dispositif 10, ou, selon une variante particulière, en mémoire d’un autre dispositif (par exemple un des calculateurs 11 à 13) accessible par le dispositif 10, par exemple via le bus de données 100. Chaque deuxième identifiant compris dans la table correspond à un identifiant d’un message dont le type est connu du dispositif 10 car appartenant aux types de messages autorisés à circuler sur le bus de données 100. Les deuxièmes identifiants sont avantageusement codés dans la première table de manière à minimiser l’empreinte mémoire de la table. Par exemple, la première table est une table à 2 dimensions, avec par exemple 256 lignes et 8 colonnes. Le codage associé à cette table permet de stocker 8*256 deuxièmes identifiants, soit 2048 deuxièmes identifiants en n’utilisant que 256 octets d’espace mémoire. Un tel codage sera expliqué avec plus de détail en regard de la . La chaine binaire formant le premier identifiant est par exemple décomposée en deux parties, une première partie étant par exemple formée des 3 bits de poids les plus faibles, dit bits LSB (de l’anglais « Least Significant Bit » ou en français « bit de poids faible »), et la deuxième partie étant par exemple formée des 8 bits de poids les plus forts, dits bits MSB (de l’anglais « Most Significant Bit » ou en français « bit de poids fort »). Selon le codage particulier utilisé dans la table, les 8 bits MSB permettent d’identifier une ligne de la table et les 3 bits LSB permettent d’identifier une colonne de la table. La valeur (0 ou 1) comprise dans la cellule de la table correspondant au croisement de la ligne et de la colonne identifiées permet de déterminer si le premier identifiant correspond à un deuxième identifiant de la table, en effectuant un nombre réduit d’opérations logiques sur la chaine binaire, par exemple 5 opérations, selon le codage utilisé. Selon le résultat de la comparaison entre le premier identifiant et la pluralité de deuxièmes identifiants compris dans la table, le message identifié avec le premier identifié est déterminé comme étant : - un message ne correspondant pas à un message identifié dans la première table lorsque le premier identifiant ne correspond à aucun des deuxièmes identifiants stockés dans la première table : le processus passe alors directement à l’opération 26 qui correspond à la fin du processus ; et - un message correspondant à un message identifié dans la première table lorsque le premier identifiant correspond à un des deuxièmes identifiants stockés dans la première table : le processus passe alors directement à l’opération suivante 23. Dans une troisième opération 23, un compteur associé à un groupe de deuxièmes identifiants de la liste de deuxièmes identifiants stockés dans la première table est incrémenté de 1. Les deuxièmes identifiants de la première table sont avantageusement répartis dans plusieurs groupes, par exemple 256 groupes comprenant chacun 8 deuxièmes identifiants de telle manière que chaque deuxième identifiant soit dans un groupe et dans un seul groupe. Il n’existe ainsi pas de chevauchement entre les groupes, c’est-à-dire qu’un deuxième identifiant ne peut appartenir à plus d’un groupe mais doit appartenir à un groupe. Les groupes sont par exemple constitués en regroupant les deuxièmes identifiants 8 par 8, selon la valeur prise par chaque deuxième identifiant dans un ordre croissant. Ainsi et par exemple, le premier groupe comprend les deuxièmes identifiants allant de 0x000 à 0x007, le deuxième groupe comprend les deuxièmes identifiants suivants allant de 0x008 à 0x015 et ainsi de suite jusqu’au dernier groupe qui comprendra les deuxièmes identifiants allant de 0x7F8 à 0x7FF. Un compteur particulier est avantageusement associé à chaque groupe. Ainsi pour un groupe donné, le compteur associé à ce groupe donné permet de compter le nombre de messages reçus (pendant la durée de l’intervalle de temps paramétré (par exemple 1 s)) dont le premier identifiant correspond à un deuxième identifiant appartenant à ce groupe donné. Les première 21, deuxième 22 et troisième 23 opérations sont réitérées pour chaque message reçu durant l’intervalle de temps déterminé. Chaque compteur de l’ensemble de compteur est mis à jour au fur et à mesure de la réception des messages selon l’identifiant de chaque message reçu. Lorsque la durée de l’intervalle de temps déterminé est écoulée, c’est-à-dire que l’intervalle temporel arrive à son terme, le processus passe à la quatrième opération 24. Dans une quatrième opération 24, la valeur prise par chaque compteur à la fin de l’intervalle temporel déterminé est comparée à une valeur seuil de compteur associée à chaque compteur. A chaque compteur est ainsi associée une valeur seuil particulière déterminée en fonction de la périodicité de chaque message identifié par un deuxième identifiant appartenant au groupe auquel est associé ledit chaque compteur. Une valeur seuil est définie pour chaque groupe. Pour un groupe donné, la valeur seuil associée correspond au nombre de messages par seconde (lorsque l’intervalle de temps est égal à 1 s) pouvant être transmis sur le bus de données 100. Par exemple si dans le groupe donné 2 messages sur les 8 circulent réellement sur le bus de données, avec un message de période 10 ms (P10) et un message de période 50 ms (P50), la valeur seuil ‘V’ vaudra : V = (1000/ 10) + (1000 / 50) + 2 = 122 Le nombre ‘2’ a été ajouté pour tenir compteur des messages reçu à la limite des fenêtres ou intervalle temporel de 1 seconde. Selon le résultat de la comparaison entre chaque compteur et la valeur seuil qui lui est associée : - une intrusion malveillante est détectée lorsqu’au moins un compteur prend une valeur supérieure à la valeur seuil de compteur qui lui est associée : le processus se poursuit avec l’opération 25 ; et - aucune intrusion malveillante n’est détectée lorsqu’aucun des compteurs ne prend une valeur supérieure à la valeur seuil de compteur qui lui est associée : le processus prend fin avec l’opération 26. Dans une cinquième opération 25, une alerte est émise à destination d’un dispositif distant, par exemple via une liaison sans fil de type LTE ou LTE-Advanced. L’alerte correspond par exemple à un message ou une trame de données destinée à un serveur d’un centre de sécurité (par exemple un SOC (de l’anglais « Security Operation Center » ou en français « Centre d’opération de sécurité ») du constructeur du véhicule) indiquant qu’une intrusion malveillante a été détectée sur le bus de données 100. La sixième opération 26 correspond à la fin du processus de détermination de la qualité ou du type d’une intrusion (autorisée ou non autorisée / malveillante ou non malveillante). Les opérations 21 à 26 sont avantageusement réitérés de manière itérative : les opérations 21 à 26 sont mises en œuvre pour un intervalle de durée courant. A la fin de l’intervalle de durée courant, les valeurs des compteurs associés aux groupes sont remises à zéro et le processus reprend pour l’intervalle de durée suivante, et ainsi de suite. illustre de façon schématique un premier identifiant d’un message transmis sur le bus de données 100 de la , selon un premier exemple de réalisation particulier et non limitatif de la présente invention. La illustre le premier identifiant 31 codé sur 11 bits et la table 32 stockée en mémoire du dispositif 10 par exemple et comprenant la pluralité de deuxièmes identifiants, chaque deuxième identifiant étant associé à un message connu (légitime ou autorisé à circuler sur le bus de données 100). La première table 32 est une table à 2 dimensions, avec 256 lignes et 8 colonnes. Le codage associé à cette table permet de stocker 8*256 deuxièmes identifiants, soit 2048 deuxièmes identifiants en n’utilisant que 256 octets d’espace mémoire. Lors du décodage du premier identifiant 32, ce dernier est découpé en 2 parties, une première partie 311 comprenant les 3 bits LSB (bits de rang ‘0’, ‘1’ et ‘2’) et une deuxième partie 312 comprenant les 8 bits MSB (bits de rang ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘10’ et ‘11’). La première partie 311 peut prendre 8 valeurs et est utilisée pour identifier une des colonnes ‘0’ à ‘7’ de la table 32. La deuxième partie 312 peut prendre 256 valeurs et est utilisée pour identifier une des lignes ‘0’ à ‘255’ de la première table 32. Selon l’exemple particulier de la , la première partie 311 identifie la colonne ‘4’ et la deuxième partie 312 identifie la ligne ‘3’, tel qu’illustré par les flèches ayant pour origine la première partie 311 (respectivement la deuxième partie 312) et pour fin la colonne ‘4’ (respectivement la ligne ‘3’). Cette première table 32 est particulière et dépend du bus de données 100. Ainsi, une table est établie en fonction du bus de données auquel elle s’applique, en fonction des messages légitimes ou autorisés à circuler sur ce bus de données. Un traitement particulier est effectué sur le premier identifiant pour déterminer si le message associé est connu, c’est-à-dire pour déterminer si le premier identifiant 31 correspond à un deuxième identifiant de la première table 32. Selon un exemple particulier, le traitement correspond à : [ID >> 3] & [1 Avec ID correspondant au premier identifiant, ‘>>’ correspondant à un décalage à droite, & correspondant à l’opération logique ET (de l’anglais « AND »), ‘ Un tel traitement comprend ainsi 5 opérations élémentaires. En prenant pour exemple un premier identifiant égal à « 00000011100 », on obtient : [ID >> 3] & [1 Lorsque le résultat du traitement ci-dessus est différent de 0, alors le premier identifiant correspond à un deuxième identifiant de la première table 32 et le message identifié par le premier identifiant est reconnu comme étant un message périodique. Lorsque le résultat du traitement ci-dessus est égal à 0, alors le premier identifiant ne correspond pas à un deuxième identifiant de la table et le message identifié par le premier identifiant est illégitime, c’est-à-dire non reconnu comme étant un message périodique. Les deuxièmes identifiants de la première table 32 sont regroupés par 8 pour former 256 groupes, chaque groupe étant par exemple identifié par le numéro de ligne de la première table 32, de 0 à 255. Un compteur est avantageusement associé à chaque groupe, ces compteurs étant stockés dans une deuxième table 33 ayant une colonne et 256 lignes, 1 ligne par groupe. La valeur prise par le compteur est par exemple codée sur 8, 10 ou 12 bits. Une valeur seuil de compteur est avantageusement associé à chaque compteur, ces valeurs seuils de compteur étant stockées dans une troisième table 34 ayant une colonne et 256 lignes, 1 ligne par compteur. La valeur seuil de compteur associée à chaque compteur est par exemple codée sur 8, 10 ou 12 bits. 2 opérations sont par exemple mises en œuvre pour l’incrément d’un compteur, par exemple le compteur associé au groupe identifié par le numéro de ligne ‘3’, ce compteur étant identifié par ‘Tab_cpt[3]’ et la deuxième table 33 étant identifiée par ‘Tab_cpt’ : Tab_cpt [ID >> 3] ++ ≈ Tab_cpt[3] Au total 7 opérations élémentaires sont requises pour l’incrément d’un compteur, incluant les 5 opérations élémentaires effectués pour le traitement de comparaison du premier identifiant avec le contenu de la première table 32. En prenant pour exemple un bus CAN communicant avec un débit de 500 Kbits/s chargé à 50% (une charge de bus à 50% correspond à un débit de 250 Kbits/s) avec un message constitué de 110 bits brut, on obtient : 250000 / 110 = 2272, c’est-à-dire 2272 messages / seconde. Le dispositif 10 devra donc effectuer le traitement de 2272 messages toutes les secondes, c’est-à-dire 2272 x 7 opérations élémentaires par seconde. Avec un processeur 16 bits pouvant effectuer 20 MIPS (Millions d’instructions par secondes), la charge processeur obtenue pour le traitement réalisé par le dispositif 10 pour détecter des intrusions sur le bus CAN est d’environ 0,1%, ce qui représente une charge très faible du processeur pour cette tâche particulière. Le processus de détection d’intrusion décrit ci-dessus requiert peu de charge processeur. Une telle solution est ainsi parfaitement avantageuse et est adapté à tout calculateur embarqué dans un véhicule car elle ne requiert que peu d’espace mémoire (pour la première table 32, la deuxième table 33 et la troisième table 34) et elle ne charge que très peu le processeur du calculateur. illustre schématiquement un dispositif 4 configuré pour détection une intrusion sur le bus de données 100, selon un exemple de réalisation particulier et non limitatif de la présente invention. Le dispositif 4 correspond par exemple au dispositif 10. Le dispositif 4 est par exemple configuré pour la mise en œuvre des opérations décrites en regard des figures 1 à 3 et/ou des étapes du procédé décrit en regard de la . Les éléments du dispositif 4, individuellement ou en combinaison, peuvent être intégrés dans un unique circuit intégré, dans plusieurs circuits intégrés, et/ou dans des composants discrets. Le dispositif 4 peut être réalisé sous la forme de circuits électroniques ou de modules logiciels (ou informatiques) ou encore d’une combinaison de circuits électroniques et de modules logiciels. Selon différents modes de réalisation particuliers, le dispositif 4 est couplé en communication avec d’autres dispositifs ou systèmes similaires, par exemple par l’intermédiaire d’un bus de communication ou au travers de ports d’entrée / sortie dédiés. Le dispositif 4 comprend un (ou plusieurs) processeur(s) 40 configurés pour exécuter des instructions pour la réalisation des étapes du procédé et/ou pour l’exécution des instructions du ou des logiciels embarqués dans le dispositif 4. Le processeur 40 peut inclure de la mémoire intégrée, une interface d’entrée/sortie, et différents circuits connus de l’homme du métier. Le dispositif 4 comprend en outre au moins une mémoire 41 correspondant par exemple une mémoire volatile et/ou non volatile et/ou comprend un dispositif de stockage mémoire qui peut comprendre de la mémoire volatile et/ou non volatile, telle que EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, disque magnétique ou optique. Le code informatique du ou des logiciels embarqués comprenant les instructions à charger et exécuter par le processeur est par exemple stocké sur la première mémoire 41. Selon un mode de réalisation particulier, le dispositif 4 comprend une interface de communication 43 qui permet d’établir une communication avec d’autres dispositifs (tels que les calculateurs du système embarqué et connectés au bus de données) via un canal de communication 430. L’interface de communication 43 correspond par exemple à un transmetteur configuré pour transmettre et recevoir des informations et/ou des données via le canal de communication 430. L’interface de communication 43 correspond par exemple à un réseau filaire de type CAN (de l’anglais « Controller Area Network » ou en français « Réseau de contrôleurs ») ou CAN FD (de l’anglais « Controller Area Network Flexible Data-Rate » ou en français « Réseau de contrôleurs à débit de données flexible »). Selon un mode de réalisation particulier supplémentaire, le dispositif 4 peut fournir des signaux de sortie à un ou plusieurs dispositifs externes, tels qu’un écran d’affichage, un ou des haut-parleurs et/ou d’autres périphériques via respectivement des interfaces de sortie non représentées. illustre un organigramme des différentes étapes d’un procédé de détection d’une intrusion sur un bus de données d’un véhicule, selon un exemple de réalisation particulier et non limitatif de la présente invention. Le procédé est par exemple mis en œuvre par un ou plusieurs processeurs, par exemple un processeur embarqué dans le dispositif 10 de la et/ou par un processeur embarqué dans le dispositif 4 de la . Dans une première étape 51, un ensemble de messages transmis sur le bus de données 100 est reçu, l’ensemble de messages correspondant par exemple à l’ensemble de message reçus sur un intervalle de temps déterminé, par exemple sur un intervalle de temps égal à 1 seconde. Les étapes 52, 53 et 54 suivantes sont mises en œuvre pour chaque message de l’ensemble de messages reçus. Dans une deuxième étape 52, un premier identifiant du message est déterminé, le premier identifiant étant compris dans ledit chaque message de l’ensemble de messages reçus à la première étape 51. Dans une troisième étape 53, un deuxième identifiant correspondant au premier identifiant es déterminé par comparaison du premier identifiant avec une liste de deuxièmes identifiants compris dans une première table stockée dans une mémoire associée au processeur. Les deuxièmes identifiants de la liste sont avantageusement répartis dans une pluralité de groupes, à chaque groupe étant associée une pluralité de deuxièmes identifiants. Par ailleurs, un compteur est associé à chaque groupe et une valeur seuil de compteur est associée à chaque compteur, donc à chaque groupe. Dans une quatrième étape 54, le compteur associé au groupe de deuxièmes identifiants comprenant le deuxième identifiant correspondant au premier identifiant dudit chaque message est incrémenté. Dans une cinquième étape 55, chaque compteur est comparé avec la valeur seuil de compteur qui lui est associée à l’échéance de l’intervalle de temps déterminé. Dans une sixième étape 56, une intrusion sur le bus de données est détectée en fonction d’un résultat de la comparaison de la cinquième étape 55. Les étapes décrites ci-dessus sont avantageusement réitérées pour chaque nouvel intervalle temporel de durée déterminée. Selon une variante de réalisation, les variantes et exemples des opérations décrits en relation avec la , 2 ou 3 s’appliquent aux étapes du procédé de la . Bien entendu, l’invention ne se limite pas aux modes de réalisation décrits ci-avant mais s’étend à un procédé de surveillance et/ou de contrôle d’un bus de données et au dispositif configuré pour la mise en œuvre du procédé. L’invention concerne également un véhicule, par exemple automobile ou plus généralement un véhicule à moteur terrestre, comprenant le dispositif 4 de la ou le bus de données 100 de la . Procédé de détection d’une intrusion sur un bus de données (100) d’un véhicule, ledit procédé étant mis en œuvre par au moins un processeur embarqué dans ledit véhicule, ledit procédé comprenant les étapes suivantes : - réception (51) d’un ensemble de messages transmis sur ledit bus de données (100) ; - pour chaque message reçu au cours d’un intervalle de temps déterminé : ● détermination (52) d’un premier identifiant (31) dudit message, ledit premier identifiant (31) étant compris dans ledit message, ● détermination (53) d’un deuxième identifiant correspondant audit premier identifiant par comparaison dudit premier identifiant (31) avec une liste de deuxièmes identifiants compris dans une première table (32) stockée dans une mémoire associée audit au moins un processeur, les deuxièmes identifiants de ladite liste étant répartis dans une pluralité de groupes, à chaque groupe étant associée une pluralité de deuxièmes identifiants, à chaque groupe étant associés un compteur et une valeur seuil de compteur, ● incrémentation (54) du compteur associé au groupe de deuxièmes identifiants comprenant ledit deuxième identifiant correspondant audit premier identifiant ; - comparaison (55) de chaque compteur avec la valeur seuil de compteur associé audit chaque compteur à échéance dudit intervalle de temps déterminé ; - détection (56) d’une intrusion sur ledit bus de données (100) en fonction d’un résultat de ladite comparaison (55). Procédé selon la revendication 1, pour lequel une intrusion est détectée lorsqu’au moins un compteur de la pluralité de compteurs est supérieur à la valeur seuil de compteur associée audit au moins un compteur. Procédé selon la revendication 2, comprenant en outre une étape de transmission (25) d’une alerte à destination d’un dispositif distant via une liaison sans fil lorsqu’une intrusion est détectée. Procédé selon l’une des revendications 1 à 3, pour lequel la valeur seuil de compteur associée à un compteur est déterminée en fonction d’une périodicité des messages identifiés par les deuxièmes identifiants du groupe auquel est associé ledit compteur et en fonction d’une durée dudit intervalle de temps déterminé. Procédé selon l’une des revendications 1 à 4, pour lequel ledit premier identifiant (31) est codé sur 11 bits et ladite liste de deuxièmes identifiants est codée de manière déterminée dans ladite première table (32), ladite première table comprenant 256 éléments chacun codé sur 8 bits, ladite pluralité de groupes comprenant 256 groupes comprenant chacun 8 deuxièmes identifiants, lesdits compteurs étant stockés dans une deuxième table (33) de 256 éléments et lesdites valeurs seuil de compteur étant stockées dans une troisième table (34) de 256 éléments. Procédé selon la revendication 5, pour lequel ledit premier identifiant (31) comprend une première partie (311) formé des 3 bits de poids les plus faibles et d’une deuxième partie (312) formée des 8 bits de poids les plus forts, ladite première partie (311) étant utilisée pour identifier une colonne de ladite première table (32), ladite deuxième partie (312) étant utilisée pour identifier une ligne de ladite première table (32), un traitement déterminé étant appliqué audit premier identifiant (31) pour mettre en œuvre ladite comparaison (53) en utilisant ladite ligne identifiée dans ladite première table (32) et ladite colonne identifiée dans ladite première table (32). Procédé selon l’une des revendications 1 à 6, pour lequel ledit bus de données (100) est un bus de type réseau de contrôleurs, dit bus CAN. Dispositif (4) configuré pour détecter une intrusion sur un bus de données (100) d’un véhicule, ledit dispositif (4) comprenant une mémoire (41) associée à au moins un processeur (40) configuré pour la mise en œuvre des étapes du procédé selon l’une quelconque des revendications 1 à 7. Véhicule comprenant le dispositif (4) selon la revendication 8. Programme d’ordinateur comportant des instructions pour la mise en œuvre du procédé selon l’une des revendications 1 à 7, lorsque ces instructions sont exécutées par un processeur.