Brevet FR3152904A1 — publié le 20250314

Titre : Systèmes et procédés pour la détection séquentielle d’anomalies dans les réseaux IVN à l’aide d’une approche de l’espace d’état basée sur un graphe Le procédé d'exploitation d'un système de détection d'anomalies consiste à recevoir des séquences de messages d'entraînement transmis dans un réseau embarqué (IVN), construire, un modèle qui comprend un ensemble d'états correspondant à des valeurs de signaux observées dans les séquences de messages d'entraînement et des transitions d’états et entraîner le modèle avec les éléments des premières séquences de messages correspondant aux séquences de messages d'apprentissage et des secondes séquences de messages ne figurant pas dans les séquences de messages d'apprentissage et, exécuter le modèle pour identifier les séquences anormales de messages transmises dans le réseau IVN. Figure 1 Systèmes et procédés pour la détection séquentielle d’anomalies dans les réseaux IVN à l’aide d’une approche de l’espace d’état basée sur un graphe La présente invention concerne la détection d'anomalies dans les réseaux embarqués (IVN). ETAT DE LA TECHNIQUE La description de l’état de la technique a pour but de présenter de manière générale le contexte de l’invention. Les travaux des inventeurs actuellement nommés, dans la mesure où ils sont décrits dans cette section, ainsi que les aspects de la description qui pourraient ne pas être qualifiés d'antériorité au moment du dépôt, ne sont ni expressément ni implicitement admis comme antériorité par rapport à la présente invention. Les véhicules, tels que les voitures, les camions, les véhicules utilitaires, véhicules de sport, les véhicules multisegments, les mini-fourgonnettes ou autres véhicules, ont un système de propulsion, un système de freinage, un système de direction, etc. Les systèmes de ces véhicules peuvent être commandés manuellement (par exemple, par le conducteur) et/ou de manière autonome ou semi-autonome (par exemple, par une ou plusieurs commandes de véhicules autonomes ou semi-autonomes). Dans certains exemples, les commandes de véhicules autonomes ou semi-autonomes s'appuient sur divers modèles d'apprentissage automatique pour la prise de décision concernant le contrôle du véhicule on les utilisent. Un bus CAN (Controller Area Network) est le réseau de communication central de nombreux systèmes modernes tels que les systèmes automobiles, les systèmes aérospatiaux, les systèmes industriels, etc. Par exemple, les unités de contrôle électronique (ECU) commandent plusieurs sous-systèmes des véhicules et peuvent communiquer entre elles par le bus CAN pour assurer le bon fonctionnement d'un ou de plusieurs des sous-systèmes. Certains nœuds du bus CAN, et plus généralement du réseau interne du véhicule, sont équipés d'interfaces distantes. Ces interfaces sont souvent utilisées pour des mises à jour en direct, offrir des services supplémentaires, mesurer l'utilisation des applications et mesurer l'utilisation de certaines fonctions dans les unités de contrôle électronique (ECU) pour les services de maintenance, etc. Le procédé d'exploitation d'un système de détection d'anomalies comprend la réception de séquences de messages d'entraînement correspondant à des messages transmis dans un réseau embarqué (IVN), la construction, sur la base des séquences de messages d'entraînement, d'un modèle qui comprend un ensemble d'états correspondant à des valeurs de signal dans les séquences de messages d'entraînement et des transitions d’états entre des états respectifs de l’ensemble d'états, l'entraînement du modèle en fournissant au modèle, les éléments suivants des premières séquences de messages correspondant aux séquences de messages d'apprentissage et des secondes séquences de messages ne figurant pas dans les séquences de messages d'apprentissage et, à l'aide du système de détection des anomalies, l'exécution du modèle pour identifier les séquences anormales de messages transmises dans le réseau IVN en recevant une séquence de messages IVN, en émettant, à partir du modèle, une valeur basée sur les transitions d’états entre les états des signaux contenus dans la séquence de messages IVN et en émettant, sur la base de la valeur, une indication que la séquence de messages IVN comprend une séquence anormale de messages. Selon d'autres caractéristiques, le procédé comprend le décodage des séquences de messages d'apprentissage et la construction du modèle sur la base des séquences décodées de messages d'apprentissage. Chacun des états du modèle correspond aux valeurs d'au moins deux signaux corrélés contenus dans les séquences de messages d'apprentissage. Chacun des états comprend au moins deux valeurs pour chacun des deux ou plus de signaux corrélés. Le modèle identifie les probabilités de chacune des transitions d’états entre les états respectifs de l’ensemble d'états. La sortie de la valeur du modèle comprend le calcul d'une distance entre un premier état de l’ensemble d'états correspondant à un premier message de la séquence de messages IVN et un deuxième état correspondant à un deuxième message de la séquence de messages IVN et le calcul de la valeur sur la base de la distance, à l'aide d'un procédé heuristique de probabilité. La distance correspond au nombre de transitions d’états dans le modèle, nécessaires pour passer du premier au second état. Le deuxième état ne correspond à aucun message contenu dans les séquences de messages d'apprentissage. Le système de détection d'anomalies comprend un circuit de construction de modèle pour recevoir des séquences de messages d'entraînement correspondant à des messages transmis dans un réseau embarqué (IVN) et construire, sur la base des séquences de messages d'entraînement, un modèle comprenant un ensemble d'états correspondant à des valeurs de signaux observées dans les séquences de messages d'entraînement et des transitions d’états entre des états respectifs de l’ensemble d'états, un circuit de génération de séquences pour entraîner le modèle en lui fournissant, des premières séquences de messages correspondant aux séquences de messages d'apprentissage et des secondes séquences de messages non contenues dans les séquences de messages d'apprentissage, un circuit de modèle pour exécuter le modèle afin d'identifier les séquences anormales de messages transmises dans le réseau IVN en recevant une séquence de messages IVN et en émettant, à partir du modèle, une valeur basée sur les transitions d’états entre les états des signaux contenus dans la séquence de messages IVN, et un circuit de classificateur de sortie de modèle pour émettre, sur la base de la valeur, une indication que la séquence de messages IVN comprend une séquence anormale de messages. Selon d'autres caractéristiques, le système de détection d'anomalies comprend un décodeur configuré pour décoder les séquences de messages d'apprentissage. Le circuit de construction du modèle est configuré pour construire le modèle sur la base des séquences décodées de messages d'apprentissage. Chacun des états du modèle correspond aux valeurs d'au moins deux signaux corrélés contenus dans les séquences de messages d'apprentissage. Chacun des états comprend au moins deux valeurs pour chacun des deux ou plus signaux corrélés. Le circuit du modèle met en œuvre le modèle afin d'identifier les probabilités de chacune des transitions d’états entre les états respectifs de l’ensemble d'états. Le circuit de modélisation met en œuvre le modèle afin de calculer la distance entre un premier état de l’ensemble d'états correspondant à un premier message de la séquence de messages IVN et un deuxième état correspondant à un deuxième message de la séquence de messages IVN, et de calculer la valeur sur la base de la distance, à l'aide d'un procédé heuristique probabiliste. La distance correspond au nombre de transitions d’états dans le modèle, nécessaires pour passer du premier état au second état. Le deuxième état ne correspond à aucun message contenu dans les séquences de messages d'apprentissage. Le dispositif informatique configuré pour mettre en œuvre le système de détection d'anomalies d’un véhicule comprend un dispositif de traitement pour exécuter des instructions stockées dans la mémoire afin que le système de détection d'anomalies reçoive une séquence de messages du réseau embarqué (IVN) correspondant à des messages échangés entre des unités de contrôle électronique (ECU) du véhicule, fournir la séquence de messages IVN à un modèle qui comprend un ensemble d'états correspondant à des valeurs de signaux, observées dans des séquences de messages IVN antérieures et des transitions d’états entre des états respectifs de l’ensemble d'états, émettre, à partir du modèle, une valeur basée sur les transitions d’états entre les états des signaux contenus dans la séquence de messages IVN, et émettre, sur la base de la valeur, une indication que la séquence de messages IVN comprend une séquence anormale de messages. Selon d'autres caractéristiques, le dispositif de traitement exécute des instructions stockées dans la mémoire afin que le système de détection des anomalies décode la séquence de messages IVN et fournisse la séquence décodée de messages IVN au modèle. Chacun des états du modèle correspond aux valeurs d'au moins deux signaux corrélés contenus dans la séquence de messages IVN décodée, chacun des états comprend au moins deux valeurs pour chacun des deux signaux corrélés ou plus, et le modèle identifie les probabilités de chacune des transitions d’états entre les états respectifs de l’ensemble d'états. Le dispositif de traitement exécute des instructions stockées dans la mémoire afin que le système de détection des anomalies puisse au moins calculer la distance entre un premier état de l’ensemble d'états correspondant à un premier message de la séquence de messages IVN et un deuxième état correspondant à un deuxième message de la séquence de messages IVN, et calculer la valeur sur la base de la distance, correspondant au nombre de transitions d’états dans le modèle requis pour passer du premier état au deuxième état, et calculer la valeur d’un procédé heuristique fondé sur les probabilités. FIG. 1 exemple de dispositif informatique selon la présente invention, FIG. 2 exemple de système de détection d'anomalies selon la présente invention, FIG. 3 exemple de modèle d'état basé sur l'espace mis en œuvre par un système de détection d'anomalies selon la présente invention, FIG. 3 exemple de processus de classification configuré pour classer les séquences de signaux IVN sur la base d'une sortie d'un modèle selon la présente invention, FIG. 3 tableaux illustrant un exemple de détection d'anomalies à l'aide de mesures de distance entre les états précédent (source) et suivant (cible) dans un modèle pour une séquence de messages, normale et une séquence de messages, anormale selon la présente invention, FIG. 3 exemple de procédé heuristique de distance appliqué à une partie d'un modèle selon la présente invention, FIG. 4 étapes d'un exemple de procédé de construction et de mise en œuvre d'un modèle de système de détection d'anomalies selon la présente invention, FIG. 5 diagramme schématique d'une interaction entre une machine commandée par ordinateur et un système de contrôle selon la présente invention, FIG. 6 schéma du système de commande de la FIG. 5 configuré pour commander un véhicule, un véhicule partiellement autonome, un véhicule entièrement autonome, un robot partiellement autonome ou un robot entièrement autonome, selon la présente invention, FIG. 7 diagramme schématique du système de commande de la FIG. 5 pour commander une machine de fabrication, telle qu'une poinçonneuse, une fraise ou une perceuse à main, un système de fabrication, tel qu'une partie d'une chaîne de production, FIG. 8 schéma du système de commande de la FIG. 5 pour commander un outil électrique, tel qu'une perceuse ou une visseuse, à mode au moins partiellement autonome, FIG. 9 schéma du système de commande de la FIG. 5 pour commander un assistant personnel automatisé, FIG. 10 schéma du système de commande de la FIG. 5 pour contrôler un système de surveillance, tel qu'un système de contrôle d'accès ou un système de surveillance, FIG. 11 représente un schéma du système de commande de la FIG. 5 configuré pour commander un système d'imagerie, par exemple un appareil IRM, un appareil d'imagerie à rayons X ou un appareil à ultrasons. Dans les dessins, les références identifient des éléments similaires et/ou identiques. DESCRIPTION DÉTAILLÉE Des exemples de la présente description sont donnés dans le présent document. Il est toutefois entendu que les réalisations divulguées ne sont que des exemples et que d'autres réalisations peuvent prendre des formes diverses et alternatives. Les figures ne sont pas nécessairement à l'échelle ; certaines caractéristiques peuvent être augmentées ou diminuées pour montrer des détails de composants particuliers. Par conséquent, les détails structurels et fonctionnels spécifiques décrits ne sont pas limitatifs, mais sont simplement un exemple pour l’homme du métier en utilisant les modes de réalisation de manière variée. Les diverses caractéristiques illustrées et décrites en référence aux figures peuvent être combinées avec des caractéristiques d’autres figures pour obtenir des réalisations qui ne sont pas explicitement illustrées ou décrites. Les combinaisons de caractéristiques illustrées correspondent à des réalisations données à titre d’exemple. Diverses combinaisons et modifications des caractéristiques de la présente description peuvent être envisagées pour des applications ou des mises en œuvre particulières. Les systèmes des véhicules peuvent être vulnérables à des attaques externes à plusieurs niveaux ou couches, comme une couche physique (par exemple, des capteurs, actionneurs, etc.), une couche de réseau embarqué (IVN), une couche d'application, etc. par diverses interfaces de réseaux externes (par exemple, cellulaire, Bluetooth, Wi-Fi, etc.). Les réseaux IVN automobiles (par exemple, les réseaux de contrôleurs (CAN)) relient diverses unités de commande électronique ECU d’un véhicule. Les calculateurs diffusent des messages sur les réseaux IVN pour se communiquer des informations sur divers paramètres du système, tels que les données des capteurs (par exemple, le régime moteur, la position du papillon des gaz, etc. Les réseaux IVN sont vulnérables aux attaques/intrusions malveillantes en raison du grand nombre d'unités de contrôle électrique (UCE), de la connectivité des unités UCE avec le réseau externe, de la dépendance accrue des unités UCE des logiciels, etc. Un attaquant peut compromettre une unité UCE par les interfaces externes, injecter des valeurs de signaux parasites, empêcher la transmission de signaux critiques sur le réseau IVN, etc. Les systèmes de détection des anomalies qui fonctionnent sur la base des signaux de réseau IVN observent le trafic sur le réseau et tentent de distinguer le trafic normal par rapport à des modèles de trafic anormaux qui apparaissent lorsqu'une ou plusieurs unités UCE ont été compromises. En conséquence, la détection des intrusions dans les réseaux fait partie intégrante de la sécurité automobile afin de prévenir ou au moins de réduire l'impact de ces intrusions. Diverses méthodes peuvent être mises en œuvre pour améliorer la sécurité automobile, notamment, mais pas exclusivement, des pare-feu, des listes blanches, des listes noires de messages et des systèmes de détection d'intrusion (IDS) dédiés mis en œuvre sur un ou plusieurs calculateurs (par exemple, sur les calculateurs de passerelle). Un système de détection d'intrusion est un système qui surveille des systèmes et/ou des réseaux prédéfinis et identifie les tentatives d'intrusion par la détection d'un comportement suspect, malveillant ou non défini du système. Le fonctionnement du système IDS repose sur une condition préalable : la tentative d'intrusion doit être détectée comme étant différente du comportement normal du système. Par exemple, le système IDS met en œuvre des techniques et des procédés d'empreintes digitales pour comparer des caractéristiques électriques ou d'autres caractéristiques de fonctionnement uniques d'une unité ECU à un comportement détecté. Toutefois, les méthodes d'empreinte digitale ne permettent pas de détecter les attaques à des niveaux d'exploitation plus élevés dans les systèmes automobiles. Autre exemple, les procédés utilisant l'entropie qui surveillent des paramètres tels que la fréquence des messages de l'unité ECU peuvent détecter des attaques par injection ou par déni de service (DoS), mais ne sont pas efficaces contre les attaques dont les signatures sont inconnues. Autre exemple encore, les méthodes basées sur l'apprentissage automatique (ML) et l'apprentissage profond (DL) reposent sur l'entraînement du système avec un grand nombre d'exemples de trafic de réseau IVN normal ; ils signalent les écarts par rapport aux schémas normaux. Les procédés ci-dessus peuvent utiliser les données brutes des messages IVN sans tenir compte du contenu des messages. Ils mettent également en œuvre des modèles qui analysent les flux de messages individuels de l'unité ECU. Toutefois, les contextes respectifs des flux de messages émis simultanément par d'autres calculateurs peuvent ne pas être disponibles pour une analyse qui peut utiliser les effets de corrélation inter-signaux pour détecter des comportements anormaux. Les systèmes et procédés de détection d'anomalies selon la présente invention détectent les attaques au niveau de la couche IVN, telles que l'injection de trames, la modification de trames, la suppression de trames et les attaques DoS causées par une ou plusieurs unités ECU compromises et utilisées comme points d'appui pour de telles attaques. Par exemple, un système de détection des anomalies met en œuvre une représentation de l'espace d'état du réseau IVN basée sur les signaux de l'unité ECU et un ou plusieurs procédés heuristiques pour distinguer le trafic IVN normal du trafic anormal. Alors que d'autres procédés utilisant des techniques ML/DL et des modèles de Markov cachés, fonctionnent sur des signaux/messages IVN bruts (c'est-à-dire codés) provenant d'une seule unité UCE et d'états de système opaques, le système de détection d'anomalies selon la présente invention fonctionne sur le contenu réel (c'est-à-dire décodé) des messages IVN provenant de plusieurs unités UCE, sur la base de corrélations entre les signaux. Avec le modèle d'espace d'état et l'heuristique, le système de détection d'anomalies réduit considérablement l'apparition de faux positifs tout en maintenant une grande précision (c'est-à-dire la détection de vrais positifs). En conséquence, le système de détection des anomalies est configuré pour accéder aux messages IVN décodés (par exemple, en utilisant une base de données du fournisseur (fichier DBC) pour les messages CAN) en temps réel. Le système de détection des anomalies peut comprendre et/ou mettre en œuvre, entre autres, le modèle d'espace d'état, un ensemble de méthodes heuristiques et un classificateur (par exemple, mis en œuvre ou exécuté par des circuits tels qu'un ou plusieurs dispositifs de traitement ou processeurs). Le modèle d'espace d'état peut être basé sur un espace d'état basé sur le signal (par exemple, représenté dans une structure de données graphiques) généré à l'aide d'un ensemble d'apprentissage de séquences de messages IVN. Avec le modèle d'espace d'états et de l'ensemble des procédés heuristiques, on note les transitions d’états induites par les signaux de l'unité ECU, émis pendant le fonctionnement du véhicule. En d'autres termes, les transitions entre les états du modèle sont notées à l'aide de scores de transition d'état. Les scores de transition d'état indiquent si les séquences de messages IVN sont normales ou anormales. Le modèle d'espace d'état est configuré pour utiliser les mesures calculées par les méthodes heuristiques afin de mieux distinguer les séquences réellement anormales et les séquences peuvent-être non observées lors de la construction du modèle mais qui néanmoins sont "normales". En conséquence, on améliore le taux de faux positifs (c'est-à-dire que ce taux est diminué) tout en conservant une grande précision. Les exemples de procédés heuristiques comprennent, de manière non limitatif, - (i) une mesure de distance qui calcule une "distance" entre deux états dans une transition d'état, et - (ii) des limites de probabilité d’un changement de la valeur du signal ou le taux de changement de la valeur du signal associé à une transition d'état. Le classificateur du système de détection des anomalies classer les séquences de messages IVN (par exemple, de longueur fixe) comme normales ou anormales. Le classificateur peut être entraîné à l'aide d'un ensemble de scores (par exemple, produits par le modèle d'espace d'état et les divers procédés heuristiques) associés aux séquences de messages (par exemple, dans l'ensemble d'entraînement), ainsi que des étiquettes de classification (par exemple, des étiquettes de vérité de base) pour les séquences de messages. Divers procédés ML ou DL peuvent être utilisées pour construire le classificateur, telles qu'une machine à vecteurs de support (SVM), des forêts aléatoires, des réseaux neuronaux, etc. En conséquence, les systèmes et procédés de détection d'anomalies selon la présente invention mettent en œuvre une représentation de l'espace d'état d'un système d'unité UCE, modélisé comme un graphe, sur la base des signaux observables transmis par les unités UCE sur le réseau IVN. L'utilisation de signaux corrélés et l'incorporation de la mémoire des signaux récents dans le modèle de l'espace d'état, fournissent un meilleur contexte pour la détection des anomalies, et l'utilisation de diverses heuristiques, ainsi que du modèle de l'espace d'état, pour produire des scores pour les séquences de signaux, permet au classificateur de mieux distinguer entre les séquences normales et les séquences anormales. Le modèle peut être mis à jour/amélioré en apprenant de manière incrémentale (par exemple, via l'apprentissage en ligne) à partir de nouvelles données, ce qui est plus efficace que les modèles de formation qui utilisent des procédés ML/DL qui doivent être réappris lorsque de nouvelles données sont disponibles. Les tâches de classification de ces systèmes et procédés sont plus efficaces que les procédés ML ou DL qui nécessitent une accélération matérielle coûteuse pour répondre aux contraintes de temps réel. En outre, par rapport à divers procédés tels que les modèles DL et les modèles de Markov cachés, le modèle basé sur les graphes décrit ici facilite la représentation des prédictions d'anomalies pour l'analyse. La FIG. 1 montre un schéma fonctionnel d'un exemple de dispositif informatique 100 et de circuits associés, configurés pour mettre en œuvre les systèmes et procédés de détection d'anomalies selon des modes de réalisation de la présente invention. Le dispositif informatique 100 comprend un contrôleur 105, par exemple, un processeur d'unité centrale (CPU), une puce ou tout autre dispositif informatique ou de calcul approprié, un système d'exploitation 115, une mémoire 120, un code exécutable 125, un système de serveur de stockage 130, des dispositifs d'entrée 135 et des dispositifs de sortie 140. Le contrôleur 105 (ou un ou plusieurs contrôleurs ou processeurs, éventuellement répartis sur plusieurs unités ou dispositifs) peut être configuré pour exécuter les procédés décrits, et/ou pour exécuter ou fonctionner comme les différents modules, unités, etc. Plusieurs dispositifs informatiques 100 peuvent être inclus, et un ou plusieurs dispositifs informatiques 100 peuvent agir comme composants d'un système selon l’invention. Le système d'exploitation 115 peut être ou inclure tout segment de code (par exemple, un segment similaire au code exécutable 125) conçu et/ou configuré pour effectuer des tâches impliquant la coordination, la programmation, l'arbitrage, la supervision, le contrôle ou la gestion du fonctionnement du dispositif informatique 100, par exemple, la programmation de l'exécution de programmes logiciels ou de tâches ou l'activation de programmes logiciels ou d'autres modules ou unités matérielles pour communiquer. Le système d'exploitation 115 peut être un système d'exploitation commercial ou un composant optionnel ; par exemple, dans certains modes de réalisation, le système comprend un dispositif informatique qui ne nécessite pas ou n'inclut pas le système d'exploitation 115. Par exemple, un système informatique est, ou inclut, un microcontrôleur, un circuit spécifique d'application (ASIC), un réseau programmable (FPGA), un contrôleur de réseau (par exemple, un contrôleur de bus CAN), un émetteur-récepteur associé, un système sur puce (SOC), et/ou toute combinaison de ceux-ci utilisée sans système d'exploitation. La mémoire 120 est ou comprend, par exemple, une mémoire vive RAM, une mémoire morte ROM, une mémoire vive RAM dynamique (DRAM), une mémoire vive synchrone (SD-RAM), une puce mémoire à double débit (DDR), une mémoire flash, une mémoire volatile, une mémoire non volatile, une mémoire cache, un tampon, une unité de mémoire à court terme, une unité de mémoire à long terme, ou d'autres unités de mémoire ou de stockage appropriées. La mémoire 120 est ou comprend un ensemble d'unités de mémoire, éventuellement différentes. La mémoire 120 peut être un support lisible non transitoire par un ordinateur ou un processeur ou un support de stockage non transitoire pour ordinateur, par exemple une RAM. Le code exécutable 125 est n'importe quel code exécutable, par exemple une application, un programme, un processus, une tâche ou un script. Le code exécutable 125 est exécuté par le contrôleur 105, éventuellement sous le contrôle du système d'exploitation 115. Par exemple, le code exécutable 125 est une application renforçant la sécurité dans un véhicule, et qui, par exemple, détecte ou prévient les cyber-attaques des réseaux embarqués. Bien que, par souci de clarté, un seul élément du code exécutable 125 soit représenté dans la FIG. 1 , un système selon certains modes de réalisation de l’invention inclut un ensemble de segments de code exécutable, similaires au code exécutable 125 qui peuvent être chargés dans la mémoire 120 et faire exécuter par le contrôleur 105 les procédés décrits. Le cas échéant, les termes "processus" et "code exécutable" peuvent avoir la même signification et être utilisés indifféremment dans la présente description. Par exemple, la vérification, la validation et/ou l'authentification d'un processus peut signifier la vérification, la validation et/ou l'authentification d'un code exécutable. Le système de stockage 130 est ou inclut, par exemple, une mémoire flash, une mémoire interne ou intégrée à un microcontrôleur ou à une puce, un disque dur, un lecteur de disque CD-R, un disque Blue-ray (BD), un dispositif de bus série universel (USB) ou toute autre unité de stockage amovible et/ou fixe appropriée. Le contenu peut être stocké dans le système de stockage 130 et être chargé depuis le système de stockage 130 dans la mémoire 120 pour être traité par le contrôleur 105. Dans certains cas, certains des composants de la FIG. 1 sont supprimés. Par exemple, la mémoire 120 peut être une mémoire non volatile ayant la capacité de stockage du système de stockage 130. Par conséquent, bien qu'il soit représenté comme un composant séparé, le système de stockage 130 peut être intégré ou inclus dans la mémoire 120. Les dispositifs d'entrée 135 sont ou incluent tout dispositif, composant ou système d'entrée approprié, par exemple des capteurs physiques tels que accéléromètres, tachymètres, thermomètres, microphones, convertisseurs analogiques-numériques, etc. Les dispositifs de sortie 140 comprennent un ou plusieurs écrans ou moniteurs (éventuellement détachables), moteurs, servomoteurs, haut-parleurs et/ou tout autre dispositif de sortie approprié. Tous les dispositifs d'entrée/sortie (E/S) applicables peuvent être connectés au dispositif informatique 100 comme indiqué par les blocs 135 et 140. Par exemple, une carte d'interface réseau (NIC) avec ou sans fil, un dispositif de bus série universel (USB), une interface JTAG ou un disque dur externe peuvent être inclus dans les dispositifs d'entrée 135 et/ou les dispositifs de sortie 140. N’importe quel nombre de dispositifs d'entrée 135 et de dispositifs de sortie 140 peut être connecté pour coopérer avec le dispositif informatique 100, (voir les blocs 135 et 140). Par exemple, les dispositifs d'entrée 135 et les dispositifs de sortie 140 sont utilisés par un technicien ou un ingénieur pour se connecter au dispositif informatique 100, mettre à jour le logiciel, etc. Les dispositifs ou composants d'entrée et/ou de sortie 135 et 140 sont adaptés pour interfacer ou communiquer avec des unités de contrôle ou d'autres unités d’un véhicule, par exemple, les dispositifs ou composants d'entrée et/ou de sortie 135 et 140 peuvent inclure des ports permettant au dispositif informatique 100 de communiquer avec une unité ou un module de contrôle du moteur, une unité ou un module de contrôle de la suspension, une unité ou un module de contrôle de la traction. Les modes de réalisation peuvent comprendre un article tel qu'un support lisible par un ordinateur ou un processeur, ou un support de stockage non transmissible par un ordinateur ou un processeur, comme par exemple une mémoire, un lecteur de disque ou une mémoire flash USB, codant, incluant ou stockant des instructions (par exemple des instructions exécutables par ordinateur qui, lorsqu'elles sont exécutées par un processeur ou un contrôleur, mettent en œuvre les méthodes décrites dans le présent document), un support de stockage tel que la mémoire 120, des instructions exécutables par ordinateur telles que le code exécutable 125, et un contrôleur tel que le contrôleur 105. Le support de stockage comprend de manière non limitative, tout type de disque, y compris les disques magnéto-optiques, les dispositifs semi-conducteurs tels que les mémoires mortes (ROM), les mémoires vives (RAM), telles que les mémoires dynamiques (DRAM), les mémoires mortes programmables effaçables (EPROM), les mémoires flash, les mémoires mortes programmables effaçables électriquement (EEPROM), les cartes magnétiques ou optiques, ou tout type de support adapté au stockage d'instructions électroniques, y compris les dispositifs de stockage programmables. Les modes de réalisation de l'invention incluent de manière non limitative des composants tels que, ensemble d'unités centrales de traitement (CPU) ou tout processeur ou contrôleur polyvalent ou spécifique (par exemple, des contrôleurs similaires au contrôleur 105), un ensemble d'unités d'entrée, un ensemble d'unités de sortie, un ensemble d'unités de mémoire, et un ensemble d'unités de stockage, etc. Un système peut également comprendre d'autres composants matériels et/ou logiciels appropriés. Dans certains modes de réalisation, le système comprend ou est, par exemple, un ordinateur personnel, un ordinateur de bureau, un ordinateur mobile, un ordinateur portable, un ordinateur bloc-notes, un terminal, un poste de travail, un ordinateur serveur, un assistant numérique personnel (PDA), un ordinateur-tablette, un dispositif réseau ou tout autre dispositif informatique approprié. Dans certains modes de réalisation, le système inclut ou est, par exemple, un ensemble de composants de circuits avec un ensemble respectif d'unités centrales de traitement, par exemple, un ensemble d'unités centrales de traitement, un ensemble d'unités centrales de traitement, intégrées dans un système ou un réseau embarqué ou dans un véhicule, un ensemble de puces, de réseaux de portes FPGA ou de SOC, de microprocesseurs, d'émetteurs-récepteurs, de microcontrôleurs, un ensemble d'ordinateurs ou de dispositifs de réseau, tout autre dispositif informatique approprié, et/ou toute combinaison de ces éléments. Par exemple, un système comprend un ou plusieurs dispositifs tels que le dispositif informatique 100. La FIG. 2 montre un exemple de système de détection d'anomalies 200 et un véhicule 204 mettant en œuvre un système IDS 208 selon la présente invention. Certaines parties du système IDS 208 sont mises en œuvre dans le véhicule 204 tandis que d'autres parties du système IDS 208 sont mises en œuvre sur un ou plusieurs serveurs distants (qui peuvent être mises en œuvre dans un système informatique en nuage ou d'un serveur en nuage, d'un centre opérationnel de sécurité des véhicules (VSOC), etc.). Le système de détection d'anomalies 200 selon la présente invention comprend et/ou met en œuvre à l'aide de circuits tels qu'un dispositif informatique, un ou plusieurs dispositifs de traitement, etc. tels que décrits dans le présent document. Par exemple, le système de détection d'anomalies 200 comprend des circuits configurés pour stocker et/ou mettre en œuvre un ou plusieurs modèles d'espace d'état (modèle 212) et comprend en outre un classificateur de sortie de modèle 216 configuré pour classer les sorties du modèle 212 comme normales ou anormales, comme décrit plus en détail ci-dessous. Par exemple seulement, le classificateur de sortie de modèle 216 peut être mis en œuvre à l'aide d'un circuit de classification, tel qu'un dispositif informatique, un dispositif de traitement configuré pour exécuter des instructions afin de classifier les sorties du modèle 212. Dans certains exemples de mise en œuvre, un dispositif tel qu'un enregistreur de bus CAN 220 communique avec les systèmes du véhicule par un port de diagnostic embarqué 224 (par exemple, un port OBD-II) du véhicule 204 et enregistre et/ou émet des messages CAN (par exemple, des signaux IVN fournis sous forme de traces 228), y compris des messages CAN liés à la sécurité et au contrôle du véhicule. Par exemple, le dispositif communique avec un ou plusieurs calculateurs 232 du véhicule 204 via un bus CAN 236. Une ou plusieurs unités UCE 232 correspondent à une unité UCE passerelle. Les messages CAN stockés sont disponibles pour visualiser et traiter ultérieurement et ils peuvent être accessibles pour des services externes, tels que la construction de modèles et l'entraînement effectués à l'aide du système de détection d'anomalies 200. Par exemple, les traces 228 peuvent être fournies à un ou plusieurs constructeurs de modèles 240 configurés pour construire les modèles 224 sur la base des données contenues dans les traces 228, comme décrit plus en détail ci-dessous. Par exemple, le constructeur de modèle 224 peut être mis en œuvre à l'aide de circuits d'un dispositif informatique comme ceux décrits dans la présente description. Les traces 228 sont fournies à un générateur de séquences 240. Le générateur de séquences 240 (par exemple, le circuit du générateur de séquences, tel que le circuit mis en œuvre par un dispositif informatique, un dispositif de traitement, etc. et configuré pour générer/sortir des séquences de messages CAN) fournit des séquences de messages CAN aux modèles 224. Par exemple, le générateur de séquences 240 fournit (par exemple, sans modification) une séquence normale de messages CAN construite sur la base des traces 228 et génère une séquence anormale de messages CAN synthétique. En d'autres termes, la séquence normale de messages CAN correspond aux séquences de messages CAN réelles observées sur le bus CAN 236 et enregistrées par l'enregistreur de bus CAN 220. Inversement, la séquence anormale de messages CAN de synthèse est générée par le générateur de séquences 240. Par exemple, la séquence anormale de messages CAN de synthèse comprend des séquences de messages qui ne sont pas observées sur le bus CAN 236 mais qui peuvent se produire pendant le fonctionnement (par exemple, à la suite d'une intrusion dans le réseau IVN). Le générateur de séquences 240 met en œuvre un ou plusieurs algorithmes qui modifient les séquences normales de messages CAN afin de simuler les effets de diverses attaques connues sur les réseaux IVN. En d'autres termes, la séquence anormale de messages CAN de synthèse représente un éventuel comportement normal du bus CAN que le système de détection d'anomalies 200, les composants du système IDS 208, etc. n'ont néanmoins pas vu ou observé pendant le fonctionnement normal. De cette manière, le modèle 212 est construit et entraîné pour différencier : - (i) les séquences "normales" de messages CAN, nouvelles ou non encore vues, qui ne correspondent pas à une attaque ou à une intrusion, et - (ii) les séquences de messages CAN qui correspondent à une attaque ou à une intrusion. Par exemple, le modèle 212 est construit sur la base de traces non modifiées (par exemple, les traces 228) fournies au constructeur de modèle 240, puis entraîné sur la base des séquences normales de messages CAN et des séquences anormales de messages CAN de synthèse reçues du générateur de séquences 244. Les séquences normales de messages CAN servent de séquences d'apprentissage utilisées pour identifier les états (nœuds) et les transitions (arêtes) entre les états qui composent le modèle d'espace d'état basé sur un graphe décrit ci-dessous. Une fois le modèle construit à partir des séquences d'apprentissage, le classificateur de sortie de modèle 216 est entraîné pour distinguer les séquences normales et les séquences anormales sur la base de la sortie du modèle. Une fois le modèle 212 et le classificateur de sortie de modèle 216 entraînés, un ensemble de séquences de test est appliqué par le modèle 212 et le classificateur de sortie de modèle 216 pour déterminer les mesures de précision et de rappel du système de détection d'anomalies 200. En règle générale, les signaux/messages IVN communiqués sur le bus CAN 236 sont codés. En conséquence, le système de détection d'anomalies 200 selon la présente invention communique avec ou, dans certains exemples, comprend un décodeur ou un circuit de décodage 248 configuré pour décoder les signaux/messages IVN (par exemple, à l'aide d'un fichier de base de données CAN (DBC)). Le décodeur 248 fournit, en tant que traces 228, le contenu réel (c'est-à-dire décodé) des signaux des messages IVN provenant des multiples calculateurs 232 aux composants pertinents du système de détection d'anomalies 200. Par exemple, le générateur de séquences 244 génère des séquences plus courtes de signaux IVN décodés (par exemple, des séquences ayant une longueur prédéterminée ou réglable) en utilisant des séquences plus longues de signaux IVN décodés reçus du décodeur 248. Les messages IVN décodés indiquent les valeurs réelles des signaux (par exemple, les signaux de commande ou de contrôle, les valeurs détectées ou mesurées, etc.) communiquées par les calculateurs 232 et qui peuvent comprendre des chaînes ou des séquences de valeurs de signaux, chacune avec un horodatage correspondant. En conséquence, les corrélations entre les valeurs réelles de signal peuvent être observées par le constructeur de modèle 240 et d'autres composants du système de détection d'anomalies 200. En règle générale, les calculateurs 232 sont connectés à divers capteurs et actionneurs et ils diffusent des signaux sur le réseau (par exemple, le bus CAN 236). Ces signaux peuvent avoir des domaines continus dans certains intervalles (par exemple, le régime moteur, la position du papillon des gaz, la vitesse du véhicule, etc.) ou des valeurs discrètes (par exemple, la position du rapport de transmission (neutre, marche arrière, 1ère, 2ème, 3ème, 4ème, 5ème, etc.), l'état de la pédale de frein (enfoncée, non enfoncée, etc.). Les valeurs de chaque type de signal sur le réseau correspondent à une série temporelle. Les séries temporelles sont examinées et analysées isolément ou ensemble pour détecter les anomalies (c'est-à-dire les écarts par rapport aux schémas normaux). Le modèle basé sur l'espace d'état de la présente invention est configuré pour évaluer les caractéristiques des signaux IVN afin de mieux prédire les anomalies, comme décrit plus en détail ci-après. Par exemple, certains signaux tels que la vitesse du véhicule et les signaux de l'accélérateur (par exemple, la vitesse mesurée du véhicule et la position commandée ou détectée de l'accélérateur) peuvent être directement ou indirectement corrélés puisque la position de l'accélérateur contrôle la vitesse. Toutefois, les signaux codés correspondant à la vitesse du véhicule et au papillon des gaz, tels qu'ils sont communiqués sur le bus CAN 236, peuvent ne pas être corrélés. Les messages IVN décodés selon la présente invention facilitent la détection d'un comportement anormal par le système de détection d'anomalies 200. Par exemple, si les messages IVN décodés correspondant à deux signaux corrélés ne sont pas corrélés comme prévu (par exemple, la vitesse du véhicule augmente alors que la position de l'accélérateur diminue), le système de détection des anomalies 200 peut déterminer que des valeurs de signaux parasites sont injectées dans le système. Plus précisément, le modèle 212 est construit en partie sur la base des corrélations attendues entre les signaux IVN. Autre exemple, l'historique récent d'un signal et les corrélations avec d'autres valeurs de signal peuvent fournir au système de détection d'anomalies 200 un contexte supplémentaire pour le traitement des séquences de messages. Par exemple, si les valeurs les plus récentes d'un signal de vitesse du véhicule ont augmenté en même temps que les valeurs correspondantes d'un signal de position de la pédale d'accélérateur, on peut s'attendre à ce que les valeurs futures du signal de vitesse du véhicule continuent d'augmenter lorsque le véhicule accélère. Un écart par rapport à ce schéma (par exemple, la vitesse du véhicule diminue lorsque l'accélération augmente) peut indiquer une anomalie. En conséquence, le système de détection d'anomalies 200 de la présente invention incorpore la "mémoire" des valeurs récentes du signal dans les états du modèle basés sur l'espace d'états. Chaque état encode non seulement les valeurs observées les plus récentes des signaux, mais aussi les valeurs de l’historique récent des signaux, afin de faciliter l'identification des schémas de signaux. La FIG. 3 montre un exemple de modèle 300 basé sur le signal, le graphique et l'espace d'état mis en œuvre par le système de détection d'anomalies 200 selon la présente invention. Le modèle 300 est représenté sous la forme d'un graphe G = (V, E) dans lequel V, est un ensemble de nœuds dans le graphe représentant les états du système, et E, est un ensemble d'arêtes orientées, représentant les transitions entre les états. Chaque état S, correspondant à un nœud du graphe, code les valeurs des signaux d'un ensemble de signaux corrélés (par exemple, sous forme d'instantanés de signaux). Un instantané de signal est un n-uplet de valeurs de signaux. Chaque instantané de signal indique les valeurs de signal qui caractérisent l'état du système à un instant donné. Chaque état peut avoir plus d'un instantané de signal. Par exemple, un ensemble d'instantanés de signaux dans un état codifie les valeurs de signaux les plus récentes (par exemple, dans l'ordre chronologique). À titre d'exemple uniquement, le modèle 300 illustré correspond à un système ne comportant que deux signaux : Position de l'accélérateur et Vitesse du véhicule. Comme ces signaux ont des domaines continus, les valeurs peuvent être séparées en domaines selon des critères associés. Dans cet exemple, les domaines sont subdivisés en intervalles d'une longueur de cinq unités. Chaque état codifie deux instantanés du signal. Par exemple, l'état comporte deux instantanés de signaux : - ((Position de l'accélérateur=(5,10), Vitesse du véhicule=(20,25)), et - (Position de l'accélérateur=(5,10), Vitesse du véhicule=(20,25)). Chaque instantané de signal incorpore les valeurs des deux signaux à un instant donné. Comme le montre la FIG. 3 , l’instantané de signal le plus récent pour chacun des états est listé en haut (par exemple, comme indiqué à 302) tandis que l'instantané précédent est listé en bas (par exemple, comme indiqué à 304). Ensemble, les deux instantanés de signaux représentent une capacité de mémoire de deux pour chaque état du modèle 300. Les arêtes (c'est-à-dire les transitions) entre les états représentent les transitions d’états induites par les observations d'un signal sur le réseau IVN. Par exemple, une arête 306 entre les états et représente une transition induite par l'observation sur le réseau d'une valeur de signal de (25,30) pour vitesse du véhicule. Cette transition fait passer le système à l'état dans lequel l'instantané le plus récent du signal (Position de l'accélérateur=(5,10), Vitesse du véhicule=(25,30)) reflète un changement de la vitesse du véhicule par rapport à l'instantané précédent du signal. L'instantané de signal le plus récent dans l'état devient l'instantané de signal précédent (plus ancien) dans l'état . En outre, une probabilité de transition est attribuée à chaque arête/transition. Par exemple, une probabilité de transition est attribuée à l'arête 306 reliant les états et . Les probabilités de transition peuvent être estimées empiriquement à partir des traces 228. Par exemple seulement, la probabilité de transition associée à la transition de à est de = 0,8. En d'autres termes, sur l'ensemble des transitions sortantes de Si 80 % des transitions correspondent à des transitions de à (par exemple), et les 20 % restants correspondent à des transitions de à . Ainsi, chaque probabilité de transition attribuée à un état correspond à une probabilité de transition entre les deux états. De cette manière, le modèle 300 est construit (par exemple, par le constructeur de modèle 240, en réponse aux signaux IVN décodés reçus du décodeur 248) sur la base du comportement réel observé (c'est-à-dire "normal") sur le bus CAN 236. Par exemple, lorsque des séquences de messages CAN sont reçues, les états correspondants (par exemple, chacun correspondant à deux instantanés de signaux corrélés) sont ajoutés au modèle 300. De même, lorsque les signaux passent d'un état à l'autre, des arêtes/transitions entre les états sont ajoutées au modèle 300. Toutes les transitions entre les états sont comptées dans le temps pour calculer les probabilités respectives des transitions entre deux états quelconques. Ainsi, à mesure que les séquences de messages CAN sont reçues, le constructeur de modèle 240, - (i) ajoute des états au modèle 300, - (ii) ajoute des transitions entre les états au modèle 300, et - (iii) compte et met à jour les transitions entre les états du modèle 300 afin de calculer les probabilités de transition pour chaque transition. La FIG. 3 montre un exemple de processus de classification 310 (par exemple, mis en œuvre par le classificateur de sortie de modèle 216) configuré pour classer les séquences de signaux IVN sur la base d'une sortie 312 du modèle 212/300. Par exemple, la sortie 312 du modèle 300 comprend des valeurs basées sur les probabilités de transition attribuées pour les transitions entre divers états pour un ou plusieurs signaux comme décrit ci-dessus. Le classificateur de sortie du modèle 216 analyse les séquences de messages pour prédire si les séquences sont normales ou anormales (c'est-à-dire qu'elles ont des anomalies indiquant des attaques ou des tentatives d'intrusion). Par exemple, chaque signal transmis au modèle 300 (par exemple, par le générateur de séquences 244) correspond à une transition d'états. Certaines des transitions d’états peuvent déjà exister dans le modèle 300 (c'est-à-dire qu'elles ont déjà été observées par le constructeur de modèle 240) tandis que d'autres peuvent ne pas être incluses dans le modèle 300 parce que, par exemple, - (i) les données d'apprentissage utilisées pour construire le modèle 300 ne comprenaient pas la transition d'état manquante, ou - (ii) la transition d'état est illégale et constitue potentiellement une anomalie. Comme le montre la figure 3B, la sortie 312 du modèle 300 associe une valeur v à chaque transition d'état associée à une séquence de signaux d'entrée. La sortie 312 représente n transitions d’états associées à n signaux observés sur le réseau IVN. La transition de chaque état à un état suivant ou successeur correspondant est associée à une valeur . Par conséquent, la sortie 312 du modèle 300 pour la séquence est un vecteur des valeurs associées aux transitions d’états. Le classificateur de sortie du modèle 216 reçoit le vecteur de valeurs pour les transitions d’états et émet la valeur 0 en réponse à la détermination que les valeurs correspondent à une séquence de messages normale et émet la valeur 1 en réponse à la détermination que les valeurs correspondent à une séquence anormale de messages. Différents types de techniques de classification peuvent être mis en œuvre par le classificateur de sortie de modèle, y compris, de manière non limitative, un classificateur à seuil, un classificateur ML (par exemple, la mise en œuvre d'un algorithme de machine à vecteur de support (SVM), d'un algorithme de forêt aléatoire, etc. Divers procédés peuvent être utilisés pour attribuer des valeurs aux transitions d’états (c'est-à-dire les noter), y compris divers procédés heuristiques. Par exemple, chaque valeur associée à une transition d'état correspond à la probabilité de transition associée à l'arête correspondante dans le modèle 300. Autre exemple : chaque valeur associée à une transition d'état est une mesure de la distance entre l'état suivant et l'état précédent dans une transition. Par exemple, si l'état précédent et l'état suivant forment une arête dans le modèle 300 (c'est-à-dire qu'ils sont directement reliés par une arête/transition), la distance est de 1. Inversement, si l'état précédent et l'état suivant ne sont pas directement reliés, la distance est supérieure à 1 (par exemple, estimée à l'aide d'un procédé heuristique ou autre, décrit plus en détail ci-dessous). Autre exemple : chaque valeur associée à une transition d'état est une mesure de la probabilité d'observer un changement de signal spécifique associé à la transition d'état (par exemple, une probabilité que la transition spécifique a pu se produire). La FIG. 3 illustre un exemple de détection d'anomalie réalisée à l'aide de mesures de distance entre les états précédent (source) et suivant (cible) dans le modèle 300 pour une séquence normale de messages (dans un premier tableau 320) et une séquence anormale de messages (dans un second tableau 324). Dans cet exemple, deux signaux sont pris en compte : Position du papillon (par exemple, reçu d'une première unité ECU (ECU1) des unités ECU 232) et vitesse du véhicule (par exemple, reçu d'une deuxième unité ECU (ECU2) des unités ECU 232). Chaque état d'un modèle correspondant (tel qu'un modèle similaire au modèle 300) code les deux instantanés de signaux les plus récents contenant des valeurs de signaux pour les deux signaux. Dans les tableaux 320, 324, la colonne de signal contient la valeur de signal la plus récente de chaque signal, et la colonne d'état source et la colonne d'état cible contiennent respectivement l’état source (précédent) et l’état cible (suivant) associés à une transition induite par la valeur de signal dans la colonne de signal. La colonne de mesure de distance contient la mesure ou la valeur de distance associée à la transition d'états (par exemple, une mesure heuristique de distance). En conséquence, chaque ligne illustre une transition (par exemple, repérée de 1 à 6) d'un état source à un état cible. Le premier tableau 320 représente les valeurs des signaux et les transitions d'une séquence normale de messages. Par exemple, les transitions 1 2, 3 et 6 correspondent à des transitions incluses dans le modèle (c'est-à-dire correspondant directement à des transitions connues et observées précédemment entre des états du modèle) et elles ont donc une mesure de distance de 0 (c'est-à-dire "normale"). Inversement, les transitions 4 et 5 sont associées à des valeurs non nulles. Par exemple, les transitions 4 et 5 n’ont pas été observées précédemment et ont été ajoutées au modèle (par exemple, en réponse à des séquences d'entraînement), mais elles ne sont pas nécessairement révélatrices d'une anomalie. Au contraire, les valeurs de distance relativement faibles (2 et 1, respectivement, pour les transitions 2 et 1) peuvent indiquer que les transitions correspondent à un comportement non observé précédemment, mais néanmoins normal. Par exemple, la sortie du modèle pour la séquence de messages correspondant aux transitions 1-6 du premier tableau 320 est un vecteur [0, 0, 0, 2, 1, 0]. Par exemple, un procédé de classification mis en œuvre par le classificateur de sortie de modèle 216 (par exemple, un classificateur à seuil) peut être configuré pour comparer une norme L2 ou euclidienne ou une autre valeur calculée (par exemple, une mesure de distance moyenne des transitions) du vecteur à un seuil prédéterminé (par exemple, un seuil sélectionné lors de l'entraînement/construction du classificateur de sortie de modèle 216). Si la valeur calculée du vecteur est inférieure (ou, dans certains exemples, inférieure ou égale) au seuil prédéterminé, la séquence de messages peut être classée comme normale (par exemple, se voir attribuer la valeur 0). Inversement, le deuxième tableau 324 est un exemple de représentation d'une séquence de messages anormaux. Dans cet exemple, une troisième unité ECU (ECU3) des unités ECU 232 représente une unité ECU qui a été compromise et utilisée pour falsifier les valeurs de signal de vitesse du véhicule (c'est-à-dire transmettre les valeurs de la vitesse du véhicule comme si elles provenaient de l'unité ECU2). Par exemple, les transitions illustrées aux lignes 3 et 4 incluent des valeurs parasites injectées par l'unité ECU3. En conséquence, en réponse à la réception de la séquence de messages présentée dans le deuxième tableau 324, le modèle produit un vecteur [0, 0, 4, 5, 5, 6] comportant des mesures de distance plus importantes correspondant aux transitions 3, 4, 5 et 6. En d'autres termes, les mesures de distance associées aux transitions d’états résultant des signaux parasites injectés par l'unité ECU3 ont des valeurs plus élevées. Par conséquent, le classificateur de sortie de modèle 216 (par exemple, le même classificateur de seuil décrit ci-dessus) prédit que la séquence de messages est anormale. Par exemple, la valeur calculée du vecteur (par exemple, la norme L2 ou euclidienne) est supérieure au seuil prédéterminé. De cette manière, le système de détection d'anomalies 200 met en œuvre un modèle configuré pour produire des vecteurs qui peuvent être identifiés comme normaux ou anormaux (par exemple, à l'aide du classificateur de sortie de modèle 216). Le système de détection d'anomalies 200 met en œuvre diverses techniques ou procédés heuristiques pour distinguer les séquences normales de messages et les séquences anormales, telles qu'un procédé heuristique de distance (décrit ci-dessus) ou un procédé heuristique de probabilité de changement de signal. Les procédés heuristiques sont configurés pour associer des scores plus élevés (par exemple, les valeurs des vecteurs produits par le modèle) aux transitions d’états qui ne sont pas incorporées dans le modèle. De cette manière, le classificateur de sortie de modèle 216 peut mieux distinguer les séquences de messages normales et anormales, ce qui réduit l'incidence des faux positifs et améliore la précision de la classification. La figure 3D illustre un exemple de procédé heuristique de distance appliquée à une partie d'un modèle 340. Dans cet exemple, A, B et C correspondent aux signaux reçus dans chaque instantané de signal. La transition d'état la plus récente est représentée entre les états S et S' . L’arête 344 entre les états et est représentée par une ligne pointillée pour indiquer que l'arête 344 ne correspond pas à une arête ajoutée pendant l'apprentissage du modèle 340 (c'est-à-dire à partir de messages d'apprentissage/séquences de messages d'apprentissage). En conséquence, le système de détection d'anomalies 300 analyse le bord 344 pour déterminer si la séquence de messages correspondante est normale (mais non observée pendant la formation) ou anormale. Pour attribuer une valeur à la transition d'état correspondant à l'arête 344, on effectue une première recherche d'étendue (BFS) des nœuds (c'est-à-dire des états) du modèle 340 (par exemple, à partir de l'état S et jusqu'à une distance prédéterminée ou fixe). Au cours de la traversée BFS, on identifie l’état du modèle 340 qui est le plus similaire à l'état S' parmi les nœuds (par exemple, en fonction d'une mesure de similarité définie comme ci-dessous). Par exemple, tous les états candidats pour être l'état le plus similaire à l'état S' doivent correspondre à une valeur de signal pivot, telle que la valeur du signal qui a provoqué la transition de l'état S à S' (par exemple, comme indiqué, une valeur de A=(10,15) pour le signal A). Lorsque l'état le plus similaire est identifié (par ex, ), on calcule une première distance entre l'état S et l'état S'' dans le modèle 340 et on soustrait une deuxième distance entre S et S'' de la première distance. La différence entre la première et la deuxième distance correspond à une distance "supplémentaire" à parcourir pour passer de l'état S à l'état S'' le plus proche du dernier état S' observé. Par exemple, on suppose qu'une distance supplémentaire plus importante est plus susceptible de correspondre à une séquence anormale de messages. En d'autres termes, une valeur de distance supplémentaire de 0 correspond à des transitions entre des états déjà observés et contenus dans le modèle 340, tandis que des distances de 1 ou plus correspondent à des transitions vers un état suivant qui n'a pas été observé précédemment. Le classificateur de sortie de modèle 216 est entraîné avec les vecteurs de sortie du modèle 340 pour plusieurs séquences de messages normales et anormales pour apprendre à la distinguer entre les séquences normales et anormales de messages sur la base des valeurs de mesure de distance. Comme le montre la figure 3D, parmi tous les états rencontrés au cours de la traversée BFS à partir de l'état S on détermine l'état S’’ comme étant l'état le plus similaire à . Seul un autre état ( ), est en accord avec le signal pivot . Cependant, selon une mesure de similarité décrite plus en détail ci-dessous, l'état S'' a un score de similarité plus élevé sim=2 (puisque est également en accord avec le signal ) par rapport à l'état qui a un score de similarité sim=1. Par conséquent, la mesure de distance ( ) associée à la transition de à est donnée par une distance de à moins une distance de à (c'est-à-dire d( , ) = dist( , , ) - dist( , , ) = 2 - 1 = 1). Inversement, si au lieu de l'état l'état suivant après est la mesure de distance associée à la transition serait d( , ) = dist( , , ) - dist( , , ) = 0. La similarité (par exemple, un score de similarité) entre deux états peut être déterminée à l'aide de divers procédés. Pour deux états et qui codent des instantanés de signaux ( , ...) et ( , ...), respectivement, les variables dans les instantanés de signal représentent une valeur de signal n th dans le mème instantané de signal. Par exemple, un score de similarité entre et peut être calculé à l'aide d'une norme L1 ou de Manhattan du vecteur ( - , - , ...). Par exemple, des normes L1 plus petites peuvent correspondre à des états dont les valeurs de signal (par exemple, les valeurs de signal mises à l'échelle telles qu'elles sont capturées dans les instantanés de signal respectifs) sont similaires les unes aux autres. Dans un exemple, chaque itération d'une traversée BFS renvoie un nœud suivant du modèle 340 à partir d'un nœud correspondant à l'état précédent. Le parcours BFS peut être limité par une distance de recherche fixe (par exemple, 3 nœuds en avant, 4 nœuds en avant, etc.) Si la distance de recherche est dépassée, le parcours BFS ne renvoie pas d'état valide (par exemple, il renvoie une valeur NIL). Le signal pivot utilisé pour la traversée BFS est le signal le plus récent vu dans la séquence de messages reçus (c'est-à-dire la valeur du signal qui a provoqué la transition d'état). À chaque itération, l'état correspondant au nœud suivant dans le parcours BFS est extrait et on détermine un score de similarité de cet état par rapport à l'état suivant. Si le score dépasse le score de similarité précédent le plus élevé, la mesure de distance correspondante est mise à jour. Une fois que tous les nœuds à l'intérieur de la distance de recherche autorisée ont été traités et évalués en fonction des scores de similarité et des mesures de distance respectifs, on sélectionne la valeur de la mesure de distance correspondant à l'état présentant le score de similarité le plus élevé. Si aucun nœud similaire n'est trouvé à l'intérieur de la distance de recherche du parcours BFS, on attribue une valeur constante importante à la transition (par exemple, une valeur de distance de 10 ou plus). Avec l'algorithme heuristique de distance décrit ci-dessus, chaque transition d'état associée à une valeur de signal dans une séquence de messages est associée à un score et le vecteur de sortie résultant pour l'ensemble de la séquence de signaux est ensuite entré dans le classificateur de sortie de modèle 216. Selon un autre exemple, le système de détection des anomalies applique un procédé heuristique de probabilité de changement de signal, configuré pour évaluer le changement de la valeur du signal à l'origine de la transition. À l'aide des échantillons d'entraînement, on calcule la moyenne (µ) et la variance ( ) de la distribution de la différence entre deux valeurs successives d'un signal. Pour une variable aléatoire X qui représente le changement de la valeur d'un signal dans une séquence, la valeur correspond à la différence entre X et la moyenne µ. À partir de l'inégalité de Chebyshev, on définit une inégalité probabiliste comme suit . La valeur représente la limite supérieure à la probabilité que la variation réelle de la valeur du signal s'écarte de la moyenne (variation du signal) de plus de k. Chaque transition d'états correspondant à une variation du signal dans une séquence de signaux peut alors être associée à cette mesure de probabilité. Une valeur faible de la mesure indique que l'ampleur du changement de signal est improbable et suggère donc une anomalie. Inversement, une valeur élevée indique que le changement de signal est très probable et donc normal. De cette manière, le système de détection d'anomalies 200 peut être configuré pour mettre en œuvre un ou plusieurs procédés heuristiques pour évaluer les transitions d’états correspondant aux séquences de messages reçues. La FIG. 4 illustre les étapes d'un exemple de procédé 400 pour construire et mettre en œuvre un modèle de système de détection d'anomalies selon la présente invention. Par exemple, le procédé 400 est mis en œuvre par un ou plusieurs dispositifs ou systèmes informatiques et/ou circuits associés, tels que le système de détection d'anomalies 200, un dispositif informatique (par exemple, le dispositif informatique 100) configuré pour mettre en œuvre le système de détection d'anomalies 200, etc. À l'étape 404, le procédé 400 (à l'aide d'un enregistreur de bus CAN, ou d'un décodeur) reçoit des messages de bus CAN décodés, associés à des messages échangés entre les calculateurs d'un véhicule par exemple, des messages de formation. Les messages du bus CAN sont reçus d'un réseau IVN c'est-à-dire d'un port de diagnostic de véhicule, d'un dispositif d'essai, etc. À l'étape 408, un modèle basé sur les signaux, les graphes et l'espace d'états, tel que le modèle 212, 300, 340, etc., est composé de divers états de signaux observés et de transitions/chemins, observés entre les états de signaux. Chaque nœud ou état comprend une séquence d'une ou plusieurs valeurs de signal pour un ou plusieurs signaux (par exemple, n valeurs différentes de m signaux différents, n et m étant chacun des nombres entiers de valeur égale ou supérieure à 1. À l'étape 412, le procédé 400 avec le générateur de séquences 244 entraîne le modèle en lui fournissant des séquences normales de messages et des séquences anormales de synthèse. Les séquences normales de messages correspondent aux séquences de messages contenues dans les messages d'apprentissage. Inversement, les séquences anormales de messages de synthèse comprennent des séquences de messages qui ne sont pas contenues dans les messages d'apprentissage mais qui peuvent quand même se produire pendant le fonctionnement décrit ci-dessus. En d'autres termes, le modèle est entraîné à reconnaître comme "normaux" des messages qui n'étaient pas inclus dans les messages d'entraînement mais qui ne sont pas une intrusion ou une attaque. Le modèle est testé et/ou mis à jour en continuant à fournir des séquences anormales de messages de synthèse pour évaluer la précision des résultats du modèle. A l’étape 416, le modèle entraîné est mis en œuvre dans un système, tel que le réseau IVN d'un véhicule. À l'étape 420, le modèle entraîné reçoit des séquences de messages décodés ; par exemple, une séquence de messages IVN. À l'étape 424, le modèle produit un vecteur correspondant à une valeur attribuée à une transition d'états entre les états d'un ou de plusieurs signaux. Par exemple, le modèle calcule le vecteur à l'aide d'un procédé heuristique de distance. Au point 428, la méthode 400 classe la sortie du modèle comme normale, par exemple, émission d'une valeur "1" ou anormale, par exemple, émission d'une valeur "0" sur la base du vecteur. À l'étape 432, le procédé 400, par exemple, le système de détection d'anomalies 200, l'IDS 208, prend une ou plusieurs mesures correctives en réponse à la détermination d’une séquence anormale de messages. Les actions correctives comprennent, de manière non limitative : la désactivation d'un ou de plusieurs systèmes ou fonctions du véhicule, une alerte au conducteur, une instruction au conducteur pour se ranger ou arrêter le véhicule, le fonctionnement en mode limité, etc. Inversement, s'il est déterminé de séquence normale de messages, le procédé 400 passe à étape 420 pour continuer à surveiller les messages décodés. Les figures 5-11 décrivent des exemples de systèmes et de dispositifs mettant en œuvre des systèmes et des procédés de détection d'anomalies selon la présente invention. La FIG. 5 représente un diagramme schématique d'une interaction entre une machine commandée par ordinateur 500 et le système de contrôle 502. La machine commandée par ordinateur 500 comprend un actionneur 504 et un capteur 506. L'actionneur 504 comprend un ou plusieurs actionneurs et le capteur 506 comprend un ou plusieurs capteurs. Le capteur 506 est configuré pour détecter l’état de la machine commandée par ordinateur 500. Le capteur 506 est configuré pour coder l'état détecté en signaux de capteur 508 et pour transmettre les signaux de capteur 508 au système de commande 502. Des exemples non limitatifs de capteurs 506 sont : les capteurs vidéo, radar, lidar, capteurs à ultrasons et capteurs de mouvement. Dans certains cas, le capteur 506 est un capteur optique configuré pour détecter les images optiques d'un environnement proche de la machine commandée par ordinateur 500. Le système de commande 502 est configuré pour recevoir des signaux de capteur 508 de la machine commandée par ordinateur 500. Le système de commande 502 est configuré pour calculer les commandes d'actionneur 510 en fonction des signaux du capteur et pour transmettre les commandes 510 à l'actionneur 504 de la machine commandée par ordinateur 500. Selon la FIG. 5 , le système de commande 502 comprend une unité de réception 512. L'unité de réception 512 est configurée pour recevoir les signaux 508 du capteur 506 et pour transformer ces signaux de capteur 508 en signaux d'entrée (x). Dans un autre mode de réalisation, les signaux de capteur 508 sont reçus directement comme signaux d'entrée x sans l'unité de réception 512. Chaque signal d'entrée (x) est une partie de chaque signal de capteur 508. L'unité de réception 512 est configurée pour traiter chaque signal de capteur 508 afin de produire le signal d'entrée (x) respectif. Le signal d'entrée x inclut des données correspondant à une image enregistrée par le capteur 506. Le système de contrôle 502 comprend un classificateur 514. Le classificateur 514 est configuré pour classer les signaux d'entrée (x) en une ou plusieurs étiquettes à l'aide d'un algorithme d'apprentissage automatique (ML), tel qu'un réseau neuronal. Le classificateur 514 est configuré et paramétré par des paramètres, tels que ceux décrits ci-dessus, par exemple, le paramètre θ. Les paramètres θ sont stockés et fournis par la mémoire non volatile 516. Le classificateur 514 est configuré pour déterminer les signaux de sortie (y) à partir des signaux d'entrée (x). Chaque signal de sortie (y) comprend des informations qui attribuent une ou plusieurs étiquettes à chaque signal d'entrée (x). Le classificateur 514 transmet les signaux de sortie (y) à l'unité de conversion 518. L'unité de conversion 518 est configurée pour transformer les signaux de sortie (y) en commandes de contrôle des actionneurs 510. Le système de contrôle 502 transmet les commandes de contrôle 510 à l'actionneur 504, configuré pour activer la machine contrôlée par ordinateur 500 en réponse aux commandes de contrôle d'actionneur 510. Dans certains modes de réalisation, l'actionneur 504 est configuré pour activer la machine commandée par ordinateur 500 en se basant directement sur les signaux de sortie (y). À la réception des commandes de contrôle d'actionneur 510 par l'actionneur 504, ce dernier exécute une action correspondant à la commande de contrôle d'actionneur 510. L'actionneur 504 a une logique de contrôle pour transformer les commandes de contrôle de l'actionneur 510 en une deuxième commande de contrôle de l'actionneur, utilisée pour contrôler l'actionneur 504. Dans un ou plusieurs modes de réalisation, les commandes de contrôle de l'actionneur 510 sont utilisées pour contrôler un écran à la place ou en plus d'un actionneur. Dans certains modes de réalisation, le système de commande 502 comprend le capteur 506 à la place ou en plus de la machine commandée par ordinateur 500 comprenant le capteur 506. Le système de commande 502 peut également avoir l'actionneur 504 à la place ou en plus de la machine commandée par ordinateur 500 avec l'actionneur 504. Comme le montre la FIG. 5 , le système de contrôle 502 comprend également un processeur 520 et une mémoire 522. Le processeur 520 peut être un ou plusieurs processeurs. La mémoire 522 peut être un ou plusieurs dispositifs de mémoire. Le classificateur 514 par exemple, les algorithmes ML ; d'un ou plusieurs modes de réalisation peut être mis en œuvre par le système de contrôle 502, comprenant la mémoire non volatile 516, le processeur 520 et la mémoire 522. La mémoire non volatile 516 comprend un ou plusieurs dispositifs de mémoire de données non fugitives tels qu'un disque dur, un lecteur optique, un lecteur de bande, un dispositif à semi-conducteurs non volatile, un stockage en nuage ou tout autre dispositif capable de stocker des informations de manière persistante. Le processeur 520 comprend un ou plusieurs dispositifs choisis parmi les systèmes de calcul haute performance (HPC), y compris les cœurs haute performance, les microprocesseurs, les microcontrôleurs, les processeurs de signaux numériques, les micro-ordinateurs, les unités centrales de traitement, les réseaux de portes programmables, les dispositifs logiques programmables, les machines à états, les circuits logiques, les circuits analogiques, les circuits numériques ou tout autre dispositif qui traitent des signaux analogiques ou numériques avec des instructions exécutables par ordinateur, résidant dans la mémoire 522. La mémoire 522 comprend un seul dispositif de mémoire ou un certain nombre de dispositifs de mémoire, y compris, de manière non limitative, une mémoire vive (RAM), une mémoire volatile, une mémoire non volatile, une mémoire statique à accès aléatoire (SRAM), une mémoire dynamique à accès aléatoire (DRAM), une mémoire flash, une mémoire-cache ou tout autre dispositif capable de stocker des informations. Le processeur 520 est configuré pour lire la mémoire 522 et exécuter des instructions exécutables par ordinateur résidant dans la mémoire non volatile 516 et incorporant une ou plusieurs méthodologies de détection d'anomalies d'un ou plusieurs modes de réalisation. La mémoire non volatile 516 comprend un ou plusieurs systèmes d'exploitation et applications. La mémoire non volatile 516 peut stocker des programmes informatiques compilés et/ou interprétés, créés avec divers langages de programmation et/ou technologies, y compris, de manière non limitative, seuls ou en combinaison, les langages : Java, C, C++, C#, Objective C, Fortran, Pascal, Java Script, Python, Perl et PL/SQL. Lors de l'exécution par le processeur 520, les instructions exécutables par ordinateur de la mémoire non volatile 516 mettent le système de contrôle 502 en œuvre avec une ou plusieurs méthodologies de détection d'anomalies telles que décrites ci-dessus. La mémoire non volatile 516 peut également comprendre des données à l'appui des fonctions, des caractéristiques et des processus d'un ou de plusieurs modes de réalisation décrits. Le code de programme incorporant les algorithmes et/ou les méthodologies décrits peut être distribué individuellement ou collectivement comme produit de programme sous une variété de formes différentes. Le code de programme est distribué à l'aide d'un support de stockage lisible par ordinateur contenant des instructions de programme lisibles par ordinateur et permettant à un processeur d'exécuter certains aspects d'une ou de plusieurs réalisations. Les supports de stockage lisibles par ordinateur, qui sont intrinsèquement non transitoires, sont des supports tangibles, volatils et non volatils, amovibles et non amovibles, mis en œuvre avec toute méthode ou technologie de stockage d'informations, telles que des instructions lisibles par ordinateur, des structures de données, des modules de programme ou d'autres données. Les supports de stockage lisibles par ordinateur englobent également : RAM, ROM, mémoire morte programmable effaçable (EPROM), mémoire morte programmable effaçable électriquement (EEPROM), mémoire flash ou toute autre technologie de mémoire à semi-conducteurs, mémoire morte de disque compact portable (CD-ROM) ou tout autre stockage optique, cassettes magnétiques, bandes magnétiques, stockage sur disque magnétique ou tout autre dispositif de stockage magnétique, ou tout autre support pouvant être utilisé pour stocker les informations souhaitées et pouvant être lu par un ordinateur. Les instructions de programme lisibles par ordinateur sont téléchargées vers un ordinateur, un autre type d'appareil de traitement de données programmable ou un autre dispositif à partir d'un support de stockage lisible par ordinateur ou vers un ordinateur externe ou un dispositif de stockage externe par l'intermédiaire d'un réseau. Les instructions de programme lisibles par ordinateur stockées sur un support lisible par ordinateur sont utilisées pour commander un ordinateur, d'autres types d'appareils de traitement de données programmables ou d'autres dispositifs, de fonctionner d'une manière particulière, de sorte que les instructions stockées sur le support lisible par ordinateur produisent un article manufacturé, comprenant des instructions qui mettent en œuvre les fonctions, les actes et/ou les opérations spécifiés dans les organigrammes ou les diagrammes. Dans certains autres modes de réalisation, les fonctions, actes et/ou opérations spécifiés dans les organigrammes et les diagrammes peuvent être réordonnés, traités en série et/ou traités simultanément, conformément à un ou plusieurs modes de réalisation. En outre, les organigrammes et/ou les diagrammes comprennent plus ou moins de nœuds ou de blocs selon un ou plusieurs modes de réalisation. Les processus, procédés ou algorithmes sont réalisés en tout ou en partie à l'aide de composants matériels appropriés, tels que des circuits intégrés à application spécifique (ASIC), des réseaux de portes programmables (FPGA), des machines à états, des contrôleurs ou d'autres composants ou dispositifs matériels, ou une combinaison de composants matériels, logiciels et microprogrammés. La FIG. 6 représente un diagramme schématique du système de contrôle 502 pour contrôler le véhicule 600, qui est un véhicule au moins partiellement autonome ou un robot au moins partiellement autonome. Le véhicule 600 comprend l'actionneur 504 et le capteur 506. Le capteur 506 représente un ou plusieurs capteurs vidéo, des caméras, des capteurs radar, des capteurs à ultrasons, des capteurs lidar et/ou des capteurs de position, par exemple, des capteurs GPS. Un ou plusieurs capteurs spécifiques sont intégrés au véhicule 600. Alternativement ou en plus d'un ou plusieurs capteurs spécifiques identifiés ci-dessus, le capteur 506 inclut un module logiciel pour, lors de l'exécution, déterminer l’état de l'actionneur 504. Un exemple non limitatif de module logiciel comprend un module logiciel d'informations météorologiques pour déterminer l’état présent ou futur de la météo à proximité du véhicule 600 ou d'un autre emplacement. Le classificateur 514 du système de commande 502 du véhicule 600 est configuré pour détecter des objets à proximité du véhicule 600 en fonction des signaux d'entrée (x). Dans un tel mode de réalisation, le signal de sortie (y) inclut des informations caractérisant la proximité des objets par rapport au véhicule 600. La commande de contrôle de l'actionneur 510 est déterminée en fonction de ces informations. La commande de contrôle de l'actionneur 510 est utilisée pour éviter les collisions avec les objets détectés. Dans certains modes de réalisation, le véhicule 600 est un véhicule au moins partiellement autonomes ; l'actionneur 504 est incorporé dans un frein, un système de propulsion, un moteur, un groupe motopropulseur ou la direction du véhicule 600. Les commandes de contrôle de l'actionneur 510 sont déterminées pour contrôler l'actionneur 504 de façon à ce que le véhicule 600 évite les collisions avec les objets détectés. Les objets détectés sont également classés en fonction de ce que le classificateur 514 estime qu'ils sont le plus susceptibles d'être ; des piétons ou des arbres. Les commandes de contrôle des actionneurs 510 sont déterminées en fonction de la classification. Dans un scénario d’une attaque adverse, le système décrit ci-dessus est entraîné davantage pour mieux détecter les objets ou identifier un changement dans les conditions d'éclairage ou un angle pour un capteur ou une caméra sur le véhicule 600. Dans certains modes de réalisation le véhicule 600 est un robot au moins partiellement autonome ; le véhicule 600 peut être un robot mobile, configuré pour exécuter une ou plusieurs fonctions, telles que voler, nager, plonger et marcher. Le robot mobile peut être une tondeuse à gazon au moins partiellement autonome ou un robot de nettoyage au moins partiellement autonome. Dans de tels modes de réalisation, la commande de contrôle de l'actionneur 510 est déterminée pour commander une unité de propulsion, une unité de direction et/ou une unité de freinage du robot mobile de manière à ce que le robot mobile éviter les collisions avec des objets identifiés. Dans certains cas, le véhicule 600 est un robot au moins partiellement autonome sous la forme d'un robot de jardinage. Dans ce mode de réalisation, le véhicule 600 utilise un capteur optique comme capteur 506 pour déterminer l'état des plantes dans un environnement proche du véhicule 600. L'actionneur 504 peut être une buse configurée pour pulvériser des produits chimiques. En fonction d'une espèce identifiée et/ou d'un état identifié des plantes, la commande de contrôle de l'actionneur 510 commande l’actionneur 504 pour pulvériser sur les plantes une quantité appropriée de produits chimiques appropriés. Le véhicule 600 peut être un robot au moins partiellement autonome sous la forme d'un appareil ménager. Des exemples non limitatifs d'appareils ménagers, sont le lave-linge, la cuisinière, le four, un four à micro-ondes ou un lave-vaisselle. Dans un tel véhicule 600, le capteur 506 est un capteur optique pour détecter l'état d'un objet à traiter par l'appareil ménager. Par exemple, dans le cas où l'appareil domestique est un lave-linge, le capteur 506 détecte l’état du linge à l'intérieur du lave-linge. L'ordre de commande de l'actionneur 510 se détermine sur la base de l'état détecté du linge. La FIG. 7 représente un diagramme schématique du système de contrôle 502 configuré pour contrôler le système 700, par exemple, une machine de fabrication, tel qu'un poinçon, une fraise ou une perceuse à pistolet, du système de fabrication 702, tel qu'une partie d'une chaîne de production. Le système de commande 502 contrôle l'actionneur 504, qui active le système 700 par exemple, la machine de fabrication. Le capteur 506 du système 700, par exemple, la machine de fabrication, peut être un capteur optique configuré pour capturer une ou plusieurs propriétés du produit fabriqué 704. Le classificateur 514 détermine l'état du produit fabriqué 704 à partir d'une ou plusieurs des propriétés capturées. L'actionneur 504 est configuré pour contrôler le système 700, par exemple, la machine de fabrication, en fonction de l'état déterminé du produit manufacturé 704 pour une étape de fabrication ultérieure du produit manufacturé 704. L'actionneur 504 peut être configuré pour contrôler les fonctions du système 700, par exemple, la machine de fabrication, par le produit fabriqué 706 du système 700, par exemple la machine de fabrication, en fonction de l'état déterminé du produit fabriqué 704. La FIG. 8 représente le schéma du système de commande 502 configuré pour commander l'outil électrique 800, tel qu'une perceuse ou une visseuse électrique, qui a un mode au moins partiellement autonome. Le système de commande 502 est configuré pour contrôler l'actionneur 504, qui commande l'outil électrique 800. Le capteur 506 de l'outil 800 est un capteur optique pour saisir une ou plusieurs propriétés de la surface de travail 802 et/ou de la fixation 804 engagée dans la surface de travail 802. Le classificateur 514 est configuré pour déterminer l’état de la surface de travail 802 et/ou de la fixation 804 par rapport à la surface de travail 802 à partir d'une ou plusieurs des propriétés saisies. L'état est l'affleurement de la fixation 804 avec la surface de travail 802. L'état peut également être la dureté de la surface de travail 802. L'actionneur 504 est configuré pour contrôler l'outil électrique 800 pour ajuster la fonction d'entraînement de l'outil électrique 800 selon l'état déterminé de la fixation 804 par rapport à la surface de travail 802 ou d'une ou de plusieurs propriétés capturées de la surface de travail 802. Par exemple, l'actionneur 504 interrompt l'entraînement si l'état de la fixation 804 est affleurant à la surface de travail 802. Autre exemple non limitatif : l'actionneur 504 applique un couple plus ou moins important en fonction de la dureté de la surface de travail 802. La FIG. 9 représente un schéma du système de contrôle 502 pour contrôler un assistant personnel automatisé 900. Le système de commande 502 peut être configuré pour contrôler l'actionneur 504, qui est configuré pour commander l'assistant personnel automatisé 900. L'assistant personnel automatisé 900 est configuré pour commander un appareil domestique, tel que machine à laver, cuisinière, four, micro-ondes ou lave-vaisselle. Le capteur 506 est un capteur optique et/ou un capteur audio. Le capteur optique est configuré pour recevoir des images vidéo des gestes 904 de l'utilisateur 902. Le capteur audio peut être configuré pour recevoir une commande vocale de l'utilisateur 902. Le système de contrôle 502 de l'assistant personnel automatisé 900 détermine les commandes de contrôle de l'actionneur 510 configurées pour le système de contrôle 502. Le système de contrôle 502 peut être configuré pour déterminer les commandes de contrôle de l'actionneur 510 en fonction des signaux 508 du capteur 506. L'assistant personnel automatisé 900 transmet les signaux de capteur 508 au système de commande 502. Le classificateur 514 du système de commande 502 exécute un algorithme de reconnaissance de geste pour identifier le geste 904 effectué par l'utilisateur 902, déterminer les commandes de contrôle de l'actionneur 510, et transmettre les commandes de contrôle 510 à l'actionneur 504. Le classificateur 514 est configuré pour extraire des informations d'une mémoire non volatile en réponse au geste 904 et pour restituer les informations extraites sous une forme adaptée à la réception par l'utilisateur 902. La FIG. 10 représente un schéma du système de contrôle 502 configuré pour commander le système de surveillance 1000. Le système de surveillance 1000 peut être configuré pour commander physiquement l'accès par la porte 1002. Le capteur 506 peut être configuré pour détecter une scène pertinente pour décider si l'accès est autorisé. Le capteur 506 est un capteur optique pour générer et transmettre des données d'image et/ou vidéo. Ces données sont utilisées par le système de contrôle 502 pour détecter le visage d'une personne. Le classificateur 514 du système de contrôle 502 du système de surveillance 1000 est configuré pour interpréter l'image et/ou les données vidéo en faisant correspondre les identités de personnes connues enregistrés dans la mémoire non volatile 516, déterminant ainsi l'identité d'une personne. Le classificateur 514 peut être configuré pour générer une commande d'actionneur 510 en réponse à l'interprétation de l'image et/ou des données vidéo. Le système de contrôle 502 est configuré pour transmettre la commande de contrôle de l'actionneur 510 à l'actionneur 504. Dans ce mode de réalisation, l'actionneur 504 peut être configuré pour verrouiller ou déverrouiller la porte 1002 en réponse à la commande de contrôle de l'actionneur 510. Dans certains modes de réalisation, un contrôle d'accès logique, non physique, est également possible. Le système de surveillance 1000 peut également être un système de surveillance avec un capteur 506 optique pour détecter une scène sous surveillance et le système de contrôle 502 est configuré pour commander l'écran 1004. Le classificateur 514 détermine la classification d'une scène, par exemple si la scène détectée par le capteur 506 est suspecte. Le système de commande 502 est configuré pour transmettre une commande d'actionneur 510 à l'écran 1004 en réponse à la classification. L'écran 1004 peut être configuré pour ajuster le contenu affiché en réponse à la commande d'actionnement 510. Par exemple, l'écran 1004 peut mettre en évidence un objet jugé suspect par le classificateur 514. En utilisant un mode de réalisation du système décrit, le système de surveillance prédit l'apparition d'objets à certains moments. La FIG. 11 représente le schéma du système de commande 502 configuré pour commander le système d'imagerie 1100, par exemple un appareil IRM, un appareil d'imagerie à rayons X ou un appareil à ultrasons. Le capteur 506 peut, par exemple, être un capteur d'imagerie. Le classificateur 514 peut être configuré pour déterminer une classification de tout ou partie de l'image captée. Le classificateur 514 est configuré pour déterminer ou sélectionner une commande de contrôle de l'actionneur 510 en réponse à la classification obtenue par le réseau neuronal entraîné. Par exemple, le classificateur 514 interprète une région d'une image détectée comme étant potentiellement anormale. Dans ce cas, la commande de contrôle de l'actionneur 510 est déterminée ou sélectionnée pour que l'écran 1102 affiche l'imagerie et mette en évidence la région potentiellement anormale. Bien que des exemples de réalisations soient décrits ci-dessus, il n'est pas prévu que ces réalisations décrivent toutes les formes possibles couvertes par les revendications. Les termes utilisés dans la description sont des termes de description plutôt que de limitation, et diverses modifications peuvent être apportées sans s'écarter de l'esprit et de la portée de l’invention. Comme décrit précédemment, les caractéristiques des différents modes de réalisation peuvent être combinées pour former d'autres modes de réalisation de l'invention qui peuvent ne pas être explicitement décrits ou illustrés. Bien que diverses réalisations aient pu être décrites comme offrant des avantages ou comme étant préférables à d'autres réalisations ou à des mises en œuvre antérieures en ce qui concerne une ou plusieurs caractéristiques souhaitées, les personnes ayant des compétences ordinaires dans l'art reconnaissent qu'une ou plusieurs caractéristiques peuvent être compromises pour obtenir les attributs globaux souhaités du système, qui dépendent de l'application et de la mise en œuvre spécifiques. Ces attributs peuvent inclure, sans s'y limiter, le coût, la résistance, la durabilité, le coût du cycle de vie, la commercialisation, l'apparence, l'emballage, la taille, la facilité d'entretien, le poids, la fabricabilité, la facilité d'assemblage, etc. Ainsi, dans la mesure où certaines réalisations sont décrites comme étant moins souhaitables que d'autres réalisations ou que des mises en œuvre de l'art antérieur en ce qui concerne une ou plusieurs caractéristiques, ces réalisations ne sortent pas du cadre de l’invention et peuvent être souhaitables pour des applications particulières. Procédé d'exploitation d'un système de détection d'anomalies, comprenant des étapes consistant à : - recevoir des séquences de messages d'apprentissage correspondant à des messages transmis dans un réseau embarqué (IVN), - construire un modèle basé sur les séquences de messages d'apprentissage, * le modèle comprenant un ensemble d'états correspondant aux valeurs de signaux, observées dans les séquences de messages d'apprentissage et aux transitions d’états entre les états respectifs de l’ensemble d'états, - entraîner le modèle en lui fournissant, * (i) des premières séquences de messages correspondant aux séquences de messages d'entraînement, et * (ii) des secondes séquences de messages non contenues dans les séquences de messages d'entraînement, et - exécuter à l'aide du système de détection des anomalies, le modèle pour identifier les séquences anormales de messages, transmises dans le réseau IVN, en * (i) recevant une séquence de messages IVN, * (ii) émettant, à partir du modèle, une valeur basée sur les transitions entre les états des signaux contenus dans la séquence de messages IVN, et en * (iii) émettant, sur la base de cette valeur, une indication que la séquence de messages IVN comprend une séquence anormale de messages. Procédé selon la revendication 1, comprenant en outre le décodage des séquences de messages d'apprentissage et la construction du modèle sur la base des séquences décodées de messages d'apprentissage. Procédé selon la revendication 1, dans lequel chacun des états du modèle correspond aux valeurs d’au moins deux signaux corrélés, contenus dans les séquences de messages d'apprentissage. Procédé selon la revendication 3, dans lequel chaque état de l’ensemble d'états comprend au moins deux valeurs pour chaque état d’au moins deux signaux corrélés. Procédé selon la revendication 4, dans lequel le modèle identifie les probabilités de chacune des transitions d’états entre les états respectifs de l’ensemble d'états. Procédé selon la revendication 1, dans lequel sortir la valeur du modèle consiste à : (i) calculer la distance entre un premier état de l’ensemble d'états correspondant à un premier message de la séquence de messages IVN et un second état correspondant à un second message de la séquence de messages IVN et calculer la valeur avec cette distance, et (ii) calculer la valeur par une méthode heuristique fondée sur les probabilités. Procédé selon la revendication 6, dans lequel la distance correspond à un nombre de transitions d’états dans le modèle, nécessaires pour passer du premier état au second état. Procédé selon la revendication 7, dans lequel le deuxième état ne correspond à aucun message contenu dans les séquences de messages d'apprentissage. Système de détection d’anomalies comprenant : un circuit de construction de modèle configuré pour, * (i) recevoir des séquences de messages d'apprentissage correspondant à des messages transmis dans un réseau embarqué (IVN), et * (ii) construire un modèle basé sur les séquences de messages d'apprentissage, - le modèle comprenant un ensemble d'états correspondant à des valeurs de signal observées dans les séquences de messages d'apprentissage et des transitions d’états entre des états respectifs de l’ensemble d'états, - un circuit générateur de séquences pour entraîner le modèle en lui fournissant, * (i) des séquences de premiers messages correspondant aux séquences de messages d'entraînement, et * (ii) des séquences de seconds messages non contenus dans les séquences de messages d'entraînement, - un circuit de modélisation pour exécuter le modèle pour identifier les séquences anormales de messages transmises dans le réseau RVI, en * (i) recevant une séquence de messages RVI, et * (ii) émettant, à partir du modèle, une valeur basée sur les transitions entre les états des signaux contenus dans la séquence de messages RVI, et - un circuit de classification de sortie de modèle pour indiquer, en fonction de la valeur, si la séquence de messages IVN comprend une séquence anormale de messages. Système de détection d'anomalies selon la revendication 9, comprenant en outre : un décodeur pour décoder les séquences de messages d'entraînement, * ce circuit de construction du modèle étant configuré pour construire le modèle sur la base des séquences décodées de messages d'entraînement. Système de détection d'anomalies selon la revendication 9, dans lequel chacun des états du modèle correspond aux valeurs d’au moins deux signaux corrélés contenus dans les séquences de messages d'apprentissage. Système de détection d'anomalies selon la revendication 11, dans lequel chaque état de l’ensemble d'états comprend au moins deux valeurs pour chaque état d’au moins deux signaux corrélés. Système de détection d'anomalies selon la revendication 12, dans lequel le circuit de modélisation met en œuvre le modèle pour identifier les probabilités de chacune des transitions d’états entre les états respectifs de l’ensemble d'états. Système de détection d'anomalies selon la revendication 9, dans lequel le circuit de modélisation applique le modèle par au moins l'une des étapes suivantes consistant à : * (i) calculer la distance entre un premier état de l’ensemble d'états correspondant à un premier message de la séquence de messages IVN et un second état correspondant à un second message de la séquence de messages IVN et calcul de la valeur avec cette distance, et * (ii) calculer la valeur avec un procédé heuristique de probabilité. Système de détection d'anomalies selon la revendication 14, dans lequel la distance correspond au nombre de transitions d’états dans le modèle, nécessaires pour passer du premier état au second état. Système de détection d'anomalies selon la revendication 15, dans lequel le deuxième état ne correspond à aucun message contenu dans les séquences de messages d'apprentissage. Dispositif informatique pour mettre en œuvre un système de détection d'anomalies d’un véhicule, comprenant : - un dispositif de traitement pour exécuter des instructions enregistrées dans la mémoire pour que le système de détection d'anomalies, - reçoit une séquence de messages du réseau embarqué (IVN) correspondant à des messages échangés entre les unités de commande électronique (ECU) du véhicule, - fournit la séquence de messages IVN à un modèle, * le modèle comprenant : ** (i) un ensemble d'états correspondant aux valeurs de signal observées dans les séquences de messages IVN précédentes, et ** (ii) des transitions d’états entre les états respectifs de l’ensemble d'états, - produit, à partir du modèle, une valeur basée sur les transitions entre les états des signaux de cette séquence de messages IVN, et - produit, en fonction de cette valeur, une indication que la séquence de messages IVN comprend une séquence anormale de messages. Dispositif informatique selon la revendication 17, dans lequel le dispositif de traitement en outre exécute des instructions enregistrées dans la mémoire pour que le système de détection des anomalies décode la séquence de messages IVN et fournisse au modèle la séquence décodée de messages IVN. Dispositif informatique selon la revendication 18, dans lequel chaque état de l’ensemble d'états du modèle correspond aux valeurs d’au moins deux signaux corrélés contenus dans la séquence décodée de messages IVN, * chaque état de l’ensemble d'états comprend au moins deux valeurs pour chaque signal d’au moins deux signaux corrélés, et * le modèle identifie les probabilités de chacune des transitions d’états entre les états respectifs de l’ensemble d'états. Dispositif informatique selon la revendication 17, dans lequel - le dispositif de traitement en outre exécute des instructions enregistrées dans la mémoire pour que le système de détection des anomalies effectue au moins l'une des étapes suivantes consistant à : * (i) calculer une distance entre un premier état de l’ensemble d'états correspondant à un premier message de la séquence de messages IVN et un deuxième état correspondant à un deuxième message de la séquence de messages IVN, avec calcul de la valeur avec cette distance, correspondant au nombre de transitions d’états dans le modèle, nécessaires pour passer du premier état au deuxième état, et * (ii) calculer la valeur par un procédé heuristique de probabilité.