JURY
Isabelle Chrisment LORIA Rapporteur
Ludovic Mé Centrale-Supélec Rennes Rapporteur
Mohamed Kaâniche LAAS-CNRS Examinateur
Philippe Quéré Renault Guyancourt Examinateur
Yves Roudier Eurécom Examinateur
Youssef Laarouchi EDF Directeur de thèse
Éric Alata INSA Toulouse - LAAS-CNRS Directeur de thèse
Vincent Nicomette INSA Toulouse - LAAS-CNRS Directeur de thèse
Remerciements
Les travaux présentés dans ce manuscrit résultent d’une coopération entre le
LAAS-CNRS à Toulouse et le Technocentre Renault à Guyancourt. Je remercie M.
Jean Arlat, directeur du LAAS-CNRS de m’avoir accueilli au sein du laboratoire
ainsi que M. Patrick Bastard et Mme Jacqueline Cucherat de m’avoir accueilli
dans leurs directions respectives chez Renault.
Roberto, Moussa, Thierry, Carla, Julien, William, Guillaume, Rui, Olivier, Anthony,
Kossi, Maxime, Amina, Nam, Miruna, Fernand et ceux que j’ai oubliés (désolé).
Parmi ceux-ci, des remerciements particuliers sont adressés à Pierre André pour
avoir toujours accepté de mettre à contribution ses nombreuses compétences tech-
niques ainsi que sa bonne humeur pour aider un collègue dans le besoin. Je remercie
aussi Yann Bachy, ses box et ses télés d’avoir investi et rénové un bureau (mention
spéciale à la déco), puis de l’avoir partagé avec moi. Merci à Hélène Martorell pour
m’avoir accompagné et grandement aidé lors cette expédition dans le grand Nord
francilien. Merci à Ludovic Pintard pour son soutien dans les périodes difficiles,
académiques comme cinématographiques.
Merci également aux doctorants rencontrés chez Renault – Sylvain Cotard,
Antoine Blin et Rim Moalla – pour leur soutien.
Je remercie bien entendu aussi mes amis de longue date pour m’avoir supporté
(et continuer de me supporter) de près ou de loin : Damien, Fabien, Valérian,
Pierre-Antoine, Arnaud, Guillaume, Toto, Mathieu, Pierre-Yves, Tanguy, Made-
leine, Romain, Vincent, Nikita, Anne-Céline et les autres.
Enfin, je tiens à remercier toute ma famille pour son soutien et ses encoura-
gements constants. Un gros merci à mes parents et mes grands-parents qui ont
contribué pour beaucoup à cette thèse. Pour conclure, tous mes encouragements
vont au futur Docteur Vincent pour la suite de ses travaux.
« Coming back to where you started is not the same as never leaving. »
— Terry Pratchett
Table des matières
Introduction 1
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5 Expérimentations 99
5.1 Protocole expérimental . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.1 Vue d’ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.2 Données expérimentales . . . . . . . . . . . . . . . . . . . . . 100
5.1.3 Évaluation du système . . . . . . . . . . . . . . . . . . . . . . 102
5.2 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2.1 Source des données . . . . . . . . . . . . . . . . . . . . . . . . 103
5.2.2 Règles de contrôle . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.3 Contrôles de cohérence . . . . . . . . . . . . . . . . . . . . . . 105
5.2.4 Corrélation des alertes . . . . . . . . . . . . . . . . . . . . . . 107
Table des matières vii
Bibliographie 127
Introduction
trisées par les industriels viennent désormais s’ajouter des problématiques liées à
la sécurité-immunité (security) des systèmes embarqués dans l’automobile qui ne
peuvent plus être négligées. Pour être le plus efficace possible au sein du système
complexe que représente une automobile moderne, une politique de sécurité doit
être mise en place avec une vision d’ensemble du système à protéger. En effet, se
contenter de moyens de sécurité préventifs laisse tout le réseau « interne » vulné-
rable si un attaquant parvient malgré tout à contourner ces protections. Ainsi, si
une telle intrusion se produit, il est nécessaire de pouvoir identifier les actions de
l’attaquant si celui-ci cherche à poursuivre son attaque sur le réseau interne. Ve-
nant en complément des systèmes de sécurité préventifs, la détection d’intrusion
vise ainsi à détecter les violations de la politique de sécurité qui surviennent sur le
système observé. Or, l’informatique embarquée dans une voiture n’est pas compa-
rable à un ordinateur personnel et la conception de mécanismes de sécurité pour
une automobile doit ainsi tenir compte de nombreuses contraintes. Par exemple, la
durée de vie d’une voiture est d’environ vingt ans. Un mécanisme de sécurité conçu
pour une automobile doit donc rester performant durant tout ce temps. De même
l’architecture réseau d’un véhicule est spécifique à celui-ci : deux modèles différents,
voire deux versions d’un même modèle, possèderont des calculateurs différents, des
réseaux différemment agencés. . . Pour réduire les coûts liés à son déploiement à
grande échelle, un mécanisme de sécurité doit donc être aisément portable d’une
architecture à une autre. Enfin, les systèmes embarqués doivent fonctionner de ma-
nière autonome et transparente pour l’utilisateur (le conducteur). Celui-ci ne doit
être mis à contribution qu’en cas d’urgence.
Cette thèse a été effectuée dans le cadre d’un partenariat CIFRE avec Renault
S.A.S, et s’inscrit dans une démarche de mise en place de moyens de sécurité-
immunité dans les réseaux automobiles. Elle concerne plus particulièrement la dé-
tection d’intrusion sur les réseaux embarqués en tenant compte des contraintes
spécifiques à de tels systèmes.
Ce manuscrit s’agence de la façon suivante. Le premier chapitre est consacré à la
présentation du contexte de nos travaux. Nous y présentons dans un premier temps
les caractéristiques des systèmes embarqués dans l’automobile, les contraintes liées
à leur développement, les tendances actuelles qui guident l’innovation puis nous
décrivons les principaux protocoles réseaux utilisés dans les automobiles actuelles
en nous focalisant principalement sur le plus employé d’entre eux : CAN. Dans une
deuxième partie, nous détaillons les problématiques de sécurité informatique liées à
ces systèmes puis concluons en présentant les orientations de nos travaux.
Dans le deuxième chapitre, nous décrivons les différents types d’attaques qui
peuvent cibler les système embarqués d’une voiture et introduisons une classification
de ces attaques selon quatre axes permettant de mettre en évidence la diversité des
menaces existant contre les automobiles modernes.
Le troisième chapitre présente un état de l’art des mécanismes de sécurité, exis-
tants ou en cours de développement, conçus pour les réseaux automobiles embar-
qués. Le domaine de la sécurité-immunité appliquée à l’automobile est relativement
récent et il n’existe pas encore de techniques de sécurisation standardisées pour
Introduction 3
une voiture. Notre objectif a donc été ici de présenter et de catégoriser une grande
diversité de moyens existants pour permettre d’élaborer une stratégie de défense
la plus complète possible à l’avenir. Nous y décrivons notamment plus en détail le
principe de la détection d’intrusion, qui constitue l’objet des chapitres suivants.
Le quatrième chapitre est consacré à la présentation de notre système de dé-
tection d’intrusion. En faisant l’hypothèse qu’un attaquant a réussi à obtenir un
accès au réseau interne et est capable d’émettre des messages sur un ou plusieurs
bus de communication de ce dernier, notre objectif est alors de déterminer, pour
chaque message transitant sur un bus, si celui-ci est légitime ou non vis-à-vis des
informations que l’on possède sur l’état de la voiture. Pour ce faire, notre système se
base sur les spécifications du réseau embarqué (calculateurs et protocoles de com-
munication) pour établir un langage régulier décrivant des séquences de messages
interdites. La détection d’intrusion s’effectue alors en analysant les messages ob-
servés sur le réseau via des automates finis reconnaissant ce langage. À cet effet,
nous présentons deux méthodes de détection basées sur deux automates différents
permettant d’obtenir un meilleur compromis en fonction de la puissance de calcul
et de la mémoire disponibles vis-à-vis de la complexité du système à surveiller.
Le cinquième chapitre présente une implémentation et une validation expéri-
mentale des méthodes de détection décrites dans le chapitre 4. Pour ce faire, nous
nous basons sur deux cas d’application simplifiés : un système de contrôle des feux
et un régulateur de vitesse dont les différents éléments communiquent via un bus
CAN.
Nous concluons finalement ce manuscrit en faisant une synthèse des travaux
réalisés et en présentant quelques perspectives de travaux futurs.
Chapitre 1
Sommaire
1.1 Systèmes embarqués dans l’automobile . . . . . . . . . . . . 6
1.1.1 Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 Architecture logicielle . . . . . . . . . . . . . . . . . . . . . . 8
1.1.3 Tendances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Les réseaux automobiles embarqués . . . . . . . . . . . . . . 10
1.2.1 Architecture d’un réseau embarqué . . . . . . . . . . . . . . . 11
1.2.2 CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.3 LIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.4 FlexRay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.5 MOST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.6 Évolutions futures . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.7 Agencement des données . . . . . . . . . . . . . . . . . . . . . 18
1.3 Terminologie de la sécurité informatique . . . . . . . . . . . 19
1.3.1 Sûreté de fonctionnement . . . . . . . . . . . . . . . . . . . . 20
1.3.2 Sécurité-immunité . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4 Problématiques de sécurité dans l’automobile . . . . . . . . 23
1.4.1 Sécurité-innocuité . . . . . . . . . . . . . . . . . . . . . . . . 23
1.4.2 Sécurité-immunité . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4.3 Contraintes liées à la sécurité-immunité . . . . . . . . . . . . 25
1.5 Conclusion : Objectifs de la thèse . . . . . . . . . . . . . . . . 26
contenir des vulnérabilités, qu’un attaquant peut alors exploiter. Jusqu’à récem-
ment, un réseau automobile embarqué pouvait être considéré comme un système
fermé, sans lien avec l’extérieur, ce qui réduisait fortement les risques d’une attaque
informatique. Or, les voitures modernes sont désormais équipées de moyens de com-
munication variés tels que de l’USB, du Bluetooth, ou encore des réseaux mobiles
(2,3,4G). Une voiture ne peut alors plus être considérée comme un système fermé,
et les risques d’attaques informatiques dirigées contre leurs systèmes embarqués de-
viennent réels. Ainsi, la complexité accrue de ces systèmes couplée à la connectivité
des automobiles modernes soulèvent des problématiques de sécurité informatique
(au sens security, ou sécurité-immunité) auxquelles il devient urgent de répondre.
Dans ce chapitre, nous présentons les systèmes embarqués dans l’automobile
ainsi que les problématiques de sécurité associées. Nous nous intéressons tout
d’abord aux calculateurs embarqués, en nous concentrant plus particulièrement sur
la partie logicielle. Ensuite, nous présentons les architectures réseaux déployées dans
les automobiles, qui permettent à ces calculateurs de communiquer entre eux. Par
la suite, nous définissons les concepts de sécurité informatique qui constituent la
base de nos travaux puis nous attirons l’attention sur les problématiques de sécu-
rité liées aux systèmes embarqués dans les automobiles. Enfin, nous concluons ce
chapitre en présentant nos contributions dans le domaine de la sécurité des réseaux
automobiles embarqués.
1.1.1 Contraintes
Les ECU sont conçus, comme tout système embarqué, pour répondre à des
besoins bien spécifiques. Lors de la conception de systèmes embarqués pour une
automobile, les contraintes suivantes sont ainsi à prendre en compte.
Gestion de la qualité
1. http://www.oica.net/wp-content/uploads//total-2014-Q4.pdf
1.1. Systèmes embarqués dans l’automobile 7
sur le marché de nouveaux modèles. Afin de rester compétitif dans un milieu haute-
ment concurrentiel, la mise en place de politiques de gestion de la qualité (Quality
Management) est essentielle. En effet, chercher simplement à proposer un produit de
la meilleure qualité possible ne suffit pas si celui-ci est jugé trop cher par les clients
ou si la durée du développement associé retarde trop la sortie du produit, faisant
alors perdre l’avance sur les concurrents que pouvait apporter une innovation. Lors
de la conception d’une automobile, l’enjeu pour un constructeur est ainsi de trouver
le compromis idéal entre qualité, délai et coût. La part des systèmes électroniques
(matériel et logiciel) embarqués dans le coût de conception d’une automobile est
en hausse permanente, et représente aujourd’hui jusqu’à 40% du coût d’un véhicule
haut-de-gamme [Cha09]. Par conséquent, ces systèmes embarqués font l’objet d’une
forte attention de la part des constructeurs afin d’optimiser leur conception. À cet
effet, la réutilisation de composants (matériels ou logiciels) développés lors de pro-
jets précédents (carry-over) ainsi que le recours aux composants sur étagère 2 sont
des pratiques très répandues.
Contraintes physiques
Une automobile ne constitue pas un environnement stable et homogène. En fonc-
tion de leur emplacement, certains ECU peuvent alors être soumis à des contraintes
physiques – telles que de fortes variations de température, de l’humidité ou encore
des chocs – dans lesquelles ils doivent pouvoir continuer à fonctionner.
Durée de vie
La durée de vie d’une automobile est d’environ vingt ans, soit beaucoup plus
qu’un ordinateur classique. La conception et le suivi des systèmes embarqués doivent
donc tenir compte de cette durée de vie étendue. Il faut donc être capable d’assurer
le suivi des systèmes embarqués durant toute cette période, aussi bien au niveau du
matériel (il faut être capable de remplacer un calculateur défaillant) que du logiciel.
Ressources limitées
En conséquence des contraintes précédemment évoquées, la puissance de calcul
et la mémoire d’un ECU sont généralement très limitées, comparées à un ordina-
teur (ou même un smartphone) actuel. Le logiciel embarqué doit donc être conçu
pour optimiser les ressources dont il a besoin pour ne pas requérir de matériel plus
performant, et donc plus cher.
Temps réel
Les systèmes embarqués doivent généralement se comporter en temps réel, c’est-
à-dire qu’ils doivent être capables de fonctionner selon des contraintes temporelles
2. ou COTS, pour Commercial Off The Shelf. Ces composants, produits et utilisés en très grand
nombre et dans des domaines potentiellement variés, ont ainsi l’avantage d’une maturité avancée
pour un coût de production réduit.
8 Chapitre 1. Contexte des travaux et problématique
précises. Certaines fonctions doivent ainsi s’exécuter dans un laps de temps donné
afin de garantir la sûreté du véhicule et de ses passagers. On parlera de systèmes
temps-réel stricts (hard real time) dans les cas où le non-respect de telles contraintes
entraînerait des conséquences catastrophiques (c’est le cas des systèmes critiques
d’une voiture, comme les freins par exemple). Par opposition, des systèmes dits
temps-réel mous (soft real time) peuvent tolérer ces dépassements dans une certaine
mesure (par exemple un service de streaming vidéo).
1.1.3 Tendances
Parmi les innovations récentes concernant les systèmes embarqués dans l’auto-
mobile, deux grandes tendances se dessinent : l’autonomie et la connectivité.
1.1.3.1 Autonomie
Les systèmes dits d’« aide à la conduite », assistent le conducteur de diverses
manières et peuvent parfois contrôler partiellement le véhicule afin d’améliorer la
conduite mais surtout la sécurité des passagers (et la sécurité routière en général).
Les systèmes d’aide au freinage (ABS), les systèmes de géolocalisation (GPS) et les
régulateurs de vitesse constituent des exemples très répandus de systèmes d’aide à la
conduite. Dans la continuité de cette démarche, les ADAS (Advanced Driver Assis-
tance Systems) proposent des fonctionnalités de plus en plus avancées, et permettent
1.1. Systèmes embarqués dans l’automobile 9
1.1.3.2 Connectivité
tures fixes en bord de route, dites V2I (Vehicle to Infrastructure) 3 . Ces communica-
tions, permettront par exemple à un véhicule arrivant à un croisement de signaler sa
présence et d’être par conséquent détecté malgré une mauvaise visibilité. De même,
une voiture freinant brusquement alertera les automobiles qui la suivent afin que
leurs conducteurs puissent réagir plus vite, ou que les véhicules eux-mêmes freinent
automatiquement s’ils sont équipés des dispositifs d’aide à la conduite adéquats.
Ainsi, avec l’intégration de plus en plus poussée de moyens de communication
dans les automobiles, la notion de réseaux automobiles englobe un ensemble bien
plus large que le réseau de calculateurs embarqués. Comme illustré en figure 1.2,
un véhicule est désormais à l’intersection de nombreux réseaux.
1. Tout d’abord, le réseau interne des calculateurs embarqués, (partiellement)
accessible via la prise OBD (voir section 1.2.7 pour plus de détails).
2. Le véhicule est également interconnecté avec des équipements mobiles, tels un
smartphone ou une tablette.
3. Le véhicule peut être connecté à Internet via les réseaux mobiles (2/3/4G) et
accéder à différents services.
4. Au niveau des communications V2X, on distingue deux niveaux :
(a) Localement, le véhicule communique avec d’autres automobiles.
(b) Le véhicule communique également avec une infrastructure débarquée
(bord de route) qui constitue elle-même un réseau à part entière.
5. Enfin, le véhicule reçoit des données par satellite (GPS).
Dans la section suivante, nous présentons les différents réseaux embarqués dans
une automobile.
Infrastructure V2X
Services constructeur
Internet
Telematics
OBD
GW
Communications locales
Communications V2X
GPS
Connexions distantes
Satnav
Diag Communication
3G
interface Unit
DSRC
Body
Powertrain Chassis Head Unit
Electronic
Engine control
Transmission
Telephone
1.2.2 CAN
Initialement développé pour un usage automobile par Bosch en 1983, CAN
(Controller Area Network) a été standardisé dans la norme ISO-11898 et est em-
ployé dans de nombreux autres domaines (comme l’aéronautique, par exemple). Il
est aujourd’hui le standard de facto pour les communications embarquées dans une
automobile. Principalement utilisé comme un réseau de classe C (généralement à
500kb/s), il est parfois également utilisé en classe B (à 125kb/s).
Il existe deux versions du protocole CAN, qui diffèrent par la taille de l’identi-
fiant : CAN 2.0A (le CAN « standard ») avec un identifiant de 11 bits et CAN 2.0B
(CAN étendu) avec un identifiant de 29 bits. Dans les automobiles, CAN 2.0A est
majoritairement utilisé, puisque suffisant (il n’y a pas besoin de plus de 211 identi-
fiants). Par suite, nous désignons simplement par CAN le protocole CAN 2.0A. La
couche physique du bus CAN utilise le « ET » logique : si un ECU émet un 0, le
bus passe dans l’état 0, même si un autre ECU émettait un 1. Ainsi, 0 est la valeur
dominante et 1 la valeur récessive. Les données peuvent être transmises de façon
périodique, apériodique ou à la demande (dans une optique client-serveur). Ces
données peuvent également être fragmentées sur plusieurs trames (la fragmentation
éventuelle est gérée dans les couches supérieures).
Une trame CAN (figure 1.5a) se décompose comme suit :
– L’en-tête (header) (cf. figure 1.5b) contient l’identifiant de la trame, un bit
RTR (Remote Transmission Request, qui définit une trame de données s’il est
mis à 0 et une trame de requête de données s’il est mis à 1) et un champ
DLC, pour Data Length Code qui indique la taille (en octets) des données
transmises.
– Les données, pouvant occuper jusqu’à 8 octets.
1.2. Les réseaux automobiles embarqués 15
– Un CRC (Cyclic Redundancy Check) de 15 bits qui permet de vérifier que les
données n’ont pas subi d’altération accidentelle lors de leur transport.
– Le champ Ack, qui permet d’accuser réception de la trame. Cela permet à
l’émetteur de savoir si son message a été reçu correctement par au moins un
autre ECU (mais ne garantit pas que ce soit nécessairement le destinataire
prévu initialement)
– Le champ EOF (End Of Frame, fin de trame) suivi d’une trame d’intermission,
qui désigne le nombre minimum de bits à laisser passer avant l’émission d’un
prochain message.
SOF
arbitration field
Node 1 1 1 0 0 1 0 0 0 0 0 0
Node 2 1 1 0 1 1 0 0 0 0 0 0
Bus 1 1 0 0 1 0 0 0 0 0 0
Level
t
the
arbitration
phase
starts only node
1 remains
Figure 1.6 – Arbitrage entre deux trames émises simultanément sur CAN
1.2.3 LIN
LIN (Local Interconnect Network) est une solution à bas coût, proposant un
faible débit (20kb/s maximum). LIN fonctionne selon un mode maître-esclave avec
un nœud maître et jusqu’à 16 nœuds esclaves partageant un même bus. Le maître
décide quelle trame doit être transmise en se basant sur une table de planification.
Celle-ci contient la liste des trames qui doivent être transmises ainsi que les inter-
valles de transmission correspondants, et permet de garantir le déterminisme de
l’ordre des transmissions. Lorsqu’une trame doit être transmise, le maître envoie
un en-tête (qui peut être vue comme une requête de données) contenant un identi-
fiant particulier (un réseau LIN peut posséder au plus 64 identifiants distincts) et
l’esclave dont l’identifiant correspond envoie alors les données requises en réponse.
Ce protocole a été conçu pour être utilisé dans les situations où les composants ne
requièrent pas un débit élevé et peut ainsi permettre de réaliser des économies dans
de tels cas. Il est généralement utilisé pour le contrôle des équipements de confort,
tels que les vitres électriques
1.2.4 FlexRay
FlexRay est un protocole déterministe et tolérant aux fautes dont les premières
spécifications ont été publiées en 2004 et aujourd’hui standardisé dans les normes
ISO 17458-1 à 17458-5. Ce protocole possède deux canaux indépendants offrant
chacun un débit allant jusqu’à 10Mb/s. Flexray définit des cycles de communication
périodiques qui sont la concaténation de deux segments (voir figure 1.7) :
– Un segment statique où l’accès se fait de manière synchrone, selon un proces-
sus TDMA (pour Time Division Multiple Acces ou accès multiple à réparti-
tion dans le temps) : chaque trame se voit ainsi affecter un intervalle de temps
1.2. Les réseaux automobiles embarqués 17
Une trame Flexray contient jusqu’à 254 octets de données. FlexRay propose
ainsi des débits plus élevés et des mécanismes de tolérance aux fautes plus impor-
tants que CAN, notamment grâce à son déterminisme plus fort mais aussi grâce
aux deux canaux de communication permettant de faire de la redondance. Ces ca-
pacités étendues permettent un déploiement plus sûr de fonctionnalités temps-réel
avancées, telles que les mécanismes relatifs au X-by-wire. Cependant, son coût en-
core élevé à l’heure actuelle ne lui permet pas de remplacer intégralement CAN
dans les automobiles modernes.
1.2.5 MOST
MOST (Media Oriented Systems Transport) est utilisé pour transporter des
données multimédia. Comme FlexRay, MOST possède un segment statique et un
segment dynamique permettant respectivement une transmission synchrone et asyn-
chrone des données, mais également un canal dit de contrôle permettant aux appa-
reils connectés de demander l’attribution de canaux aux segments précédemment
évoqués. Les canaux de transmission statiques sont typiquement utilisés pour le
transfert de son ou de vidéo et les canaux dynamiques permettent par exemple de
transférer des données téléchargées depuis Internet.
de données via CPL (Courant Porteur en Ligne) ou grâce à des protocoles de com-
munications sans fil. À l’heure actuelle, ces technologies ne sont pas assez matures
pour concrétiser ces deux scénarios à l’échelle d’une voiture. Il existe cependant une
fonctionnalité utilisant des communications sans-fil entre un ECU et ses capteurs :
le système de mesure de la pression des pneus, ou TPMS (Tire Pressure Monitoring
System).
Disponibilité
Fiabilité
Sécurité-innocuité Sécurité-immunité
Attributs
Confidentialité
Intégrité
Maintenabilité
Fautes
Sûreté de Entraves Erreurs
fonctionnement
Défaillances
Prévention de fautes
Tolérance aux fautes
Moyens
Élimination de fautes
Prévision des fautes
crée de nouvelles erreurs. Une défaillance survient lorsque, par propagation, une
erreur affecte le service délivré par le système. Cette défaillance peut alors apparaître
comme une faute du point de vue d’un autre composant. L’enchaînement de ces
entraves crée ainsi la chaîne fondamentale suivante :
1.3.2 Sécurité-immunité
La sécurité-immunité vise à protéger un système contre les fautes malveillantes
(ou malveillances) pouvant survenir lors de la conception ou de l’exploitation de
celui-ci. Les concepts de sûreté de fonctionnement présentés précédemment sont
génériques afin de pouvoir couvrir un grand nombre de concepts. Nous allons main-
tenant nous intéresser à leur application dans le contexte plus spécifique de la
sécurité-immunité. Dans le reste de ce manuscrit, le terme sécurité lorsque nous
employons l’expression sécurité informatique est à considérer au sens de sécurité-
immunité, sauf si explicitement précisé.
1.3.2.1 Attributs
1.3.2.2 Malveillances
Les attaques, vulnérabilités et intrusions étant des fautes, les moyens de la sûreté
de fonctionnement peuvent être appliqués pour améliorer la sécurité-immunité d’un
système.
Tolérance aux fautes La tolérance aux fautes est mise en œuvre en deux étapes :
la détection d’erreur, qui permet de détecter un état erroné du système et le réta-
blissement dont le but est de ramener le système dans un état de confiance. Concer-
nant les fautes malveillantes, un système tolérant aux intrusions est défini comme
un système capable de s’auto-diagnostiquer, se réparer et se reconfigurer tout en
continuant à fournir un service acceptable aux utilisateurs légitimes pendant une
attaque [DBF91]. Parmi ces mécanismes, les méthodes de détection d’intrusions,
dont il est question dans nos travaux, cherchent à détecter les atteintes à la po-
litique de sécurité d’un système. La détection d’intrusion peut se faire selon deux
approches : l’approche comportementale et l’approche par scénarios. La première
se base sur une comparaison entre le comportement du système observé et une ré-
1.4. Problématiques de sécurité dans l’automobile 23
férence et détecte les déviations par rapport à cette référence. La seconde utilise
une base de signatures de scénarios anormaux et détecte les comportements dont
la signature est présente dans la base.
Parmi les autres mécanismes courants de la tolérance aux intrusions nous pou-
vons citer l’authentification, l’autorisation ou encore le chiffrement.
Prévision des fautes Enfin, la prévision des fautes a pour but d’identifier les
vulnérabilités, fautes, erreurs et modes de défaillances potentiels du système et
d’analyser leur impact sur son comportement, vis-à-vis des propriétés attendues.
1.4.1 Sécurité-innocuité
Les ECU peuvent être responsables de fonctionnalités critiques du véhicule. En
fonction de leur criticité, de tels systèmes font l’objet de contraintes de sécurité-
innocuité plus ou moins poussées afin de garantir leur bon fonctionnement. En effet,
une défaillance du système multimédia, même si ennuyeuse pour les passagers, aura
des conséquences bien moins dramatiques qu’une défaillance du système de freinage.
Dans l’automobile, la norme ISO 26262 [ISO11] est la référence pour la sécurité-
innocuité. Celle-ci définit notamment plusieurs niveaux de criticité, appelés ASIL
(Automotive Security Integrity Level), pour chaque élément d’un système embarqué.
Ces niveaux vont de A à D, A étant le moins critique et D le plus critique et sont
déterminés suite à une analyse de risques. Pour chacun de ces niveaux, la norme
propose différentes approches de conception possibles et de mécanismes à ajouter
pour garantir un système sûr de fonctionnement.
24 Chapitre 1. Contexte des travaux et problématique
1.4.2 Sécurité-immunité
Les motivations pour lancer une attaque contre les systèmes embarqués d’une
automobile sont nombreuses. De plus, le véhicule, s’il est la cible de l’intrusion, peut
ne pas être la cible finale de l’attaque, par exemple si l’objectif final est de nuire au
propriétaire – ou au constructeur – d’une voiture.
Une analyse des risques liés aux incidents de sécurité-immunité dans les automo-
biles permet de définir une stratégie de défense plus efficace en fonction des besoins
exprimés. À cet effet, [NPL08] propose par exemple une classification des ECU
combinant les aspects safety et security via l’introduction des SEL (Safety Effect
Levels of security threats), qui servent à évaluer l’impact d’un type d’attaque sur
la safety du système embarqué. Cependant, si l’impact sur la sécurité-innocuité du
véhicule est le plus important car des vies peuvent en dépendre, il ne représente
pas la seule conséquence possible d’une attaque. En effet, les conséquences possibles
d’une intrusion réussie varient en fonction des objectifs initiaux. Une intrusion peut
certes déboucher sur une dégradation des aspects relatifs à la safety du véhicule,
mais aussi provoquer une divulgation des données stockées dans les calculateurs (ces
aspects ne sont pas mutuellement exclusifs). De plus, ces attaques peuvent égale-
ment avoir un impact économique, pouvant concerner le propriétaire du véhicule
comme le constructeur.
À l’heure actuelle, il n’existe pas encore de standard décrivant une classification
équivalente aux ASIL (définis par l’ISO 26262) qui prenne en compte les incidents
liés à la sécurité-immunité.
Compatibilité
La contrainte de compatibilité couvre en fait deux aspects : la rétrocompatibilité
et l’interopérabilité.
Concernant la rétrocompatibilité, un mécanisme de sécurité conçu pour une au-
tomobile doit idéalement pouvoir être compatible avec les technologies présentes
4. http://www.networkworld.com/article/2895535/microsoft-subnet/
ford-gm-and-toyota-are-being-sued-for-dangerous-defects-in-their-hackable-cars.
html
26 Chapitre 1. Contexte des travaux et problématique
Autonomie
Dans une voiture, il est important que le conducteur puisse concentrer toute son
attention sur la conduite en elle-même. Par conséquent, les mécanismes de sécurité
doivent être le plus autonomes possible et ne requérir l’attention du conducteur que
lorsque la situation l’exige réellement.
conçues pour les automobiles existant actuellement. Notre manuscrit s’agence au-
tour des thèmes suivants :
– Les besoins en termes de sécurité-immunité des automobiles sont encore rela-
tivement récents, et relativement peu de données sont disponibles sur le sujet.
Il n’existe ainsi pas, à l’heure actuelle, de standard décrivant l’application de
politiques de sécurité dans l’automobile, ni de certifications correspondantes.
Concernant les menaces, plusieurs publications ou preuves de concepts se
concentrant sur certaines menaces en particulier sont apparues dans les der-
nières années. Cependant, à notre connaissance, aucune classification officielle
n’existe. La première partie de nos travaux a donc consisté en une prise de
connaissance des spécificités du monde de l’automobile vis-à-vis de la sécu-
rité informatique [SNA+ 13b]. Nous avons ainsi établi une classification des
menaces pouvant affecter les systèmes embarqués dans les automobiles, que
nous présentons dans le chapitre 2.
– Par ailleurs, il n’existe pas encore de standards concernant le déploiement de
moyens de sécurité-immunité pour les systèmes embarqués dans le domaine
automobile. Ainsi, le chapitre 3 est consacré à un état de l’art du domaine
de la sécurité-immunité pour les systèmes embarqués dans une automobile.
Nous y présentons notamment les projets européens ayant trait à la sécurité-
immunité dans les automobiles et introduisons la notion de défense en profon-
deur. Celle-ci nous permet d’illustrer la nécessité d’employer des mécanismes
de défense complémentaires afin de protéger au mieux un système complexe
tel qu’une automobile moderne contre les intrusions. Nous y présentons enfin
les différents types de mécanismes de défense adaptés à l’automobile présents
dans la littérature.
– Comme nous l’avons vu dans ce chapitre, il existe une très grande diver-
sité d’implémentations des systèmes embarqués dans les automobiles : chaque
modèle de voiture possède ses spécificités. Pour pouvoir être adopté par l’in-
dustrie, un mécanisme de défense doit donc pouvoir s’adapter relativement
aisément à ces diverses architectures. Les chapitres 4 et 5 de ce manuscrit
concernent ainsi la conception et l’évaluation d’un système de détection d’in-
trusions pour les réseaux automobiles embarqués qui ne nécessite pas de mo-
difier le système à surveiller [SNA+ 13a, SAN+ 15]. Notre objectif est ainsi
d’obtenir une solution pouvant s’adapter aisément sur diverses architectures,
existantes ou futures.
Chapitre 2
Sommaire
2.1 Décomposition d’une attaque . . . . . . . . . . . . . . . . . . 30
2.1.1 Objectifs de l’attaquant . . . . . . . . . . . . . . . . . . . . . 30
2.1.2 Interactions avec un réseau . . . . . . . . . . . . . . . . . . . 32
2.1.3 Modélisation des attaques . . . . . . . . . . . . . . . . . . . . 33
2.1.4 Conséquences étendues d’une attaque . . . . . . . . . . . . . 35
2.2 Attaques locales . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.2.1 Découverte de la cible . . . . . . . . . . . . . . . . . . . . . . 36
2.2.2 Prise de contrôle temporaire . . . . . . . . . . . . . . . . . . . 37
2.2.3 Prise de contrôle persistante . . . . . . . . . . . . . . . . . . . 38
2.3 Attaques à distance . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.1 Accès physique indirect . . . . . . . . . . . . . . . . . . . . . 39
2.3.2 Attaques de courte portée . . . . . . . . . . . . . . . . . . . . 42
2.3.3 Attaques de longue portée . . . . . . . . . . . . . . . . . . . . 44
2.3.4 Attaques indirectes à longue portée . . . . . . . . . . . . . . . 44
2.4 Classification des attaques . . . . . . . . . . . . . . . . . . . . 45
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Dans ce chapitre, nous analysons en détail les différents types d’attaques sus-
ceptibles de cibler les calculateurs embarqués dans une automobile moderne. Nous
nous intéressons ainsi à tous les éléments prenant part à de telles attaques pouvant
permettre de classifier les actions d’un attaquant.
Le chapitre s’agence comme suit. Dans la section 2.1, nous nous intéressons aux
différentes étapes d’une attaque, depuis les motivations de l’attaquant jusqu’aux
conséquences de l’attaque, souhaitées ou non, qui peuvent découler de leurs actions.
Dans la section 2.2, nous présentons et catégorisons les attaques que nous qua-
lifierons d’internes, c’est à dire des attaques réalisables contre le réseau embarqué
d’une voiture lorsqu’on est directement connecté à celui-ci.
La section 2.3 se concentre sur la description et la classification des attaques
lancées à distance contre le véhicule, illustrées lorsqu’il y en a par des exemples
tirés de la littérature.
Chapitre 2. Attaques ciblant les architectures automobiles embarquées
30
Finalement, dans la section 2.4, nous faisons la synthèse des différents scénarios
d’attaques présentés dans les sections précédentes en proposant une caractérisation
de ces attaques selon quatre axes principaux.
Vol
La motivation au premier abord la plus évidente est peut être le vol. Plusieurs
possibilités sont envisageables pour voler un véhicule (ou son contenu) en s’ap-
puyant sur l’électronique qu’il embarque. Tout d’abord, une attaque réussie contre
2.1. Décomposition d’une attaque 31
Sabotage du véhicule
Défi intellectuel
Enfin, de nombreux exemples parsemant l’histoire de l’informatique nous rap-
pellent qu’il ne faut pas exclure l’attaquant motivé simplement par le défi que
représente la prise de contrôle d’un véhicule.
Confidentialité Par construction, tout message envoyé sur le CAN est diffusé
(physiquement et logiquement) en clair à tous les nœuds. De fait, un nœud malicieux
peut écouter tout le trafic du bus auquel il est connecté.
Disponibilité Les règles d’arbitrage de CAN (voir 1.2.2) font qu’il est aisé pour
un attaquant de provoquer un déni de service sur le bus en envoyant en permanence
des trames prioritaires, forçant ainsi tous les autres ECU à arrêter leurs émissions.
Authenticité Une trame CAN (voir figure 1.5a) ne contient pas de champ pour
l’identification de son expéditeur. Par conséquent, n’importe quel nœud peut en
contrôler d’autres sur le même bus en émettant les messages appropriés.
Non répudiation Il n’est pas possible de prouver qu’un nœud a bel et bien émis
ou reçu un message, et donc s’il peut être à l’origine d’une attaque sur le réseau.
Ces propriétés de sécurité n’étant pas garanties par les réseaux automobiles ac-
tuels (des remarques similaires ont ainsi été émises à propos de FlexRay [NLPJ09]),
la prochaine étape est alors de savoir s’il est possible d’exploiter ces lacunes afin de
parvenir à prendre le contrôle d’un ECU, voire du réseau dans son ensemble.
Incident
Attack
Event
Unauthorized
Attackers Tool Vulnerability Action Target Objectives
Result
ont été reportés. Pour l’instant, il semble donc difficile de déterminer avec si peu
de données si de telles classifications permettent bien de représenter l’ensemble des
menaces réelles.
Pour obtenir davantage d’informations au sujet des attaquants, l’utilisation d’un
pot de miel adapté à l’automobile a été proposée dans [VNLJ08] (voir la section 3.4.2
pour plus de détails). En faisant circuler des voitures équipées de ces pots de miel
pendant une certaine période, cela pourrait permettre de confirmer l’existence d’at-
taquants ciblant les réseaux automobiles, et le cas échéant donner de plus amples
informations sur leurs comportements, leurs moyens, leurs objectifs. Si un déploie-
ment (a fortiori à grande échelle) d’une telle expérience peut sembler irréaliste
aujourd’hui, un tel projet pourra devenir réellement intéressant dans un futur à
plus ou moins long terme, si les tendances vers l’autonomie et l’interconnexion des
véhicules se poursuivent et que de tels véhicules se démocratisent.
possédant un identifiant bas, les règles d’arbitrage (cf 1.2.2) font que ses mes-
sages sont prioritaires sur le bus et retardent donc l’émission d’autres mes-
sages, entraînant potentiellement des délais dans l’exécution de fonctions cri-
tiques. Ici, les conséquences fonctionnelles seront les réactions provoquées par
les trames émises par l’attaquant. Les conséquences structurelles concernent
l’impact de la congestion réseau sur le reste des calculateurs du bus (passage
en mode dégradé, réactions décalées . . . ).
Figure 2.2 – Tableau de bord affichant une information vitesse erronée ainsi qu’un
message personnalisé [KCR+ 10]
Ainsi, selon le bus concerné par les attaques, les conséquences peuvent avoir des
impacts variables quant à la sécurité des passagers, allant d’une inconvenance mi-
neure (par exemple les vitres électriques qui ne fonctionnent plus ou le volume de la
radio bloqué) à des risques mortels (coupure de l’airbag, des freins. . .) . Cependant,
il est à noter que le moindre incident de cet ordre, même en apparence minime,
peut causer de forts dommages à l’image de marque d’un constructeur s’il vient à
se répéter suffisamment.
qui n’agit que lorsque certaines conditions sont remplies (par exemple en forçant
une ouverture des fenêtres lorsque la vitesse lue via le bus dépasse les 100km/h).
La reprogrammation d’un ECU est également utilisée pour propager une attaque
sur un autre bus. En effet, comme les architectures réseau actuelles consistent en
plusieurs bus reliés entre eux par des ECU passerelles, la compromission d’une pas-
serelle va permettre à l’attaquant d’accéder à une nouvelle portion du réseau. Par
conséquent, si un attaquant parvient à obtenir un accès sur le réseau, les architec-
tures actuelles font qu’il peut à terme obtenir un contrôle total sur les ECU du
véhicule.
Cependant, il peut être objecté que les attaques mentionnées précédemment
impliquent qu’un attaquant ait déjà obtenu un accès physique au réseau interne du
véhicule. Il existait donc déjà une faille de sécurité en amont puisque l’attaquant a
pu pénétrer dans la voiture pour se connecter sur son réseau. De plus, il est dans ce
cas également possible de nuire en effectuant plus simplement et plus rapidement
des attaques mécaniques sur le véhicule (par exemple en déconnectant les freins au
lieu d’attaquer électroniquement les calculateurs correspondants).
si un accès physique au réseau interne est toujours requis pour finaliser l’attaque (il
reste nécessaire de pénétrer dans le véhicule), cette étape n’est plus réalisée par l’at-
taquant mais par un tiers à son insu. En se plaçant du point de vue de l’attaquant,
nous considérons de telles attaques comme des attaques à distance.
Outils de diagnostic
1. https://www.automatic.com
2.3. Attaques à distance 41
des réductions à leurs adhérents si ceux-ci acceptent d’enregistrer leur trafic CAN
à l’aide d’un dispositif équivalent pour prouver qu’ils conduisent prudemment 2 . Il
suffit alors qu’une vulnérabilité soit découverte 3 sur de tels dispositifs pour ouvrir
la porte à des attaques de ce genre.
Lecteur CD
Dans [CMK+ 11], deux exemples d’attaques mettant en jeu le lecteur CD d’un
véhicule ont été présentés. Tout d’abord, l’équipe a identifié une fonctionnalité per-
mettant de mettre à jour cet ECU par CD-ROM. Si le CD contient un fichier nommé
d’une certaine manière (non décrite), un message est alors brièvement affiché sur
l’écran et si le conducteur n’appuie pas rapidement sur le bon bouton, une repro-
grammation de l’ECU se déclenche. Il est par ailleurs à noter que cette technique de
mise à jour n’est pas celle employée par le constructeur et que sa présence témoigne
probablement d’une réutilisation de code d’un projet précédent par le fournisseur.
Une autre vulnérabilité a été identifiée dans le décodage des fichiers WMA par le
lecteur. Une analyse approfondie a permis la création d’un fichier audio en appa-
rence normal (et parfaitement lisible sur un ordinateur) mais qui, en exploitant
un dépassement de tampon, provoque l’émission de trames CAN par le système
multimédia de la voiture lorsque celui-ci le joue.
Si la probabilité d’une attaque correspondant au premier exemple reste faible (il
faut que le conducteur introduise un CD inconnu dans son lecteur sans avoir au préa-
lable cherché à identifier son contenu), celui-ci illustre en revanche les risques liés à
la réutilisation de composants (matériels ou logiciels) sans vérification poussée. En
revanche, il est tout à fait possible d’imaginer un scénario d’attaque correspondant
au deuxième exemple, où un attaquant va chercher à compromettre indistincte-
ment le plus grand nombre possible de véhicules utilisant ce système multimédia en
mettant à disposition des fichiers malveillants sur les réseaux de partage en ligne.
Prise USB
2. http://www.progressive.com/auto/snapshot/
3. http://www.forbes.com/sites/thomasbrewster/2015/01/15/
researcher-says-progressive-insurance-dongle-totally-insecure/
4. http://trifinite.org/trifinite_stuff_bluebug.html
Chapitre 2. Attaques ciblant les architectures automobiles embarquées
42
Communications Car2Car
TPMS
Ouverture à distance
exemples d’attaques via bluetooth 5 ont été réalisés depuis des distances dépassant
le kilomètre grâce à l’utilisation d’antennes possédant un gain élevé.
Téléphonie
Navigation web
Boutique en ligne
Dans une tendance équivalente à ce qui s’est produit sur les smartphones, plu-
sieurs constructeurs automobiles souhaitent mettre à disposition de leurs usagers
via une unique boutique en ligne (similaire à l’Appstore d’Apple ou au Google Play
Store) un choix d’applications installables dans leur véhicule. Une attaque réussie
contre la boutique en ligne, ou plus probablement la mise à disposition d’une ap-
plication malveillante (de type cheval de Troie) sur une telle boutique, que ce soit à
cause d’une faille de sécurité dans une application légitime ou car un développeur
a réussi à contourner les vérifications nécessaires à la mise sur le marché (de tels
5. http://trifinite.org/trifinite_stuff_lds.html
2.4. Classification des attaques 45
exemples se sont produits sur l’Appstore comme sur le playstore 6 ) pourraient avoir
un impact sévère et à grande échelle.
Matériel
Interaction Logiciel
Réseau
Physique
Portée Courte
Longue
Attaques
Direct
Lien
Indirect
Passif
Compromission durable
Figure 2.4 – Classification des attaques ciblant les calculateurs embarqués dans
une automobile
un dispositif qui communiquera avec le véhicule et servira donc de relais pour fina-
liser l’attaque.
2.5 Conclusion
Dans ce chapitre, nous nous sommes intéressés aux attaques pouvant cibler les
calculateurs embarqués des automobiles modernes. Nous nous sommes tout d’abord
attachés à analyser la structure de telles attaques. Nous avons ainsi énuméré les pos-
sibles objectifs pouvant motiver une attaque contre le réseau embarqué, Puis, après
avoir présenté les lacunes en terme de sécurité des protocoles de communication ac-
tuellement utilisés, nous avons décrit les actions élémentaires effectuées lors d’une
attaque sur le réseau embarqué. A partir de ces informations, il est alors possible
de modéliser un scénario d’attaque, comme illustré par un exemple inspiré par le
modèle utilisé par les CERT. Finalement, nous avons montré qu’une attaque menée
contre un système cyber-physique comme une voiture peut avoir des conséquences
qui s’étendent au delà du scénario initialement prévu par l’attaquant, affectant po-
tentiellement la sûreté du véhicule à plus ou moins long terme. Si un attaquant peut
choisir de les ignorer, elles ne sont pas à négliger lors de l’évaluation des risques liés
à une attaque.
Par suite, nous avons présenté les différentes attaques possibles, illustrées par
des exemples de la littérature. Nous nous sommes d’abord intéressés à ce qu’il était
possible de faire avec un accès au réseau embarqué, en opérant une distinction
entre les attaques visant à acquérir des informations sur le réseau, les attaques
visant à une prise de contrôle temporaire du véhicule, puis celles débouchant sur
une compromission durable du réseau. Enfin, nous avons décrit différentes attaques
pouvant permettre d’obtenir un accès au réseau interne d’une automobile à distance,
classées en fonction de leur portée.
Finalement, nous avons présenté une classification des scénarios d’attaque contre
les systèmes embarqués d’une automobile selon quatre axes. Les attaques ciblant les
calculateurs embarqués peuvent ainsi être catégorisées en fonction de leur niveau
d’interaction avec le réseau, de leur portée, du lien entre l’attaquant et le réseau
(attaque directe ou indirecte), et enfin de leur impact sur le réseau interne. La
conception de politiques de sécurité pour les réseaux automobiles doit ainsi tenir
compte de cette diversité de menaces afin de proposer des mécanismes de défense
adaptés.
Chapitre 3
Sommaire
3.1 Projets européens . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2 Défense en profondeur . . . . . . . . . . . . . . . . . . . . . . 51
3.3 Techniques de sécurité préventives . . . . . . . . . . . . . . . 53
3.3.1 Sécurité des communications . . . . . . . . . . . . . . . . . . 53
3.3.2 Sécurité des données . . . . . . . . . . . . . . . . . . . . . . . 58
3.3.3 Gestion du réseau . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4 Techniques de sécurité réactives . . . . . . . . . . . . . . . . 62
3.4.1 Détection d’intrusion . . . . . . . . . . . . . . . . . . . . . . . 64
3.4.2 Pots de miel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.4.3 Analyses forensics . . . . . . . . . . . . . . . . . . . . . . . . 69
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Certaines des attaques décrites dans le chapitre précédent sont possibles à cause
de mauvaises implémentations des protocoles ciblés, de vulnérabilités présentes
dans le code des applications concernées (permettant des débordement de tam-
pon) voire à cause du non-respect des spécifications du système. Par conséquent,
de telles attaques peuvent être théoriquement évitées en respectant strictement
de bonnes pratiques de programmation ainsi qu’en suivant les recommandations
de sécurité existantes quant à l’implémentation de certains protocoles (voir par
exemple [SP08]). Cependant, la complexité croissante des systèmes embarqués cou-
plée aux contraintes de la conception automobile (que nous avons évoquées en 1.1.1)
rendent potentiellement impossible la vérification stricte de l’intégralité du code
présent dans un véhicule. Par conséquent, l’intégration de mécanismes de sécurité
supplémentaires est nécessaire pour garantir la sécurité des communications au sein
d’une automobile.
Dans ce chapitre, nous présentons un tour d’horizon des implémentations de mé-
canismes de sécurité dans l’automobile. Nous évoquerons tout d’abord les stratégies
globales guidant le développement et l’implémentation de mécanismes de sécurité
dans les réseaux automobiles. Nous présentons tout d’abord les projets européens,
Chapitre 3. Mécanismes de sécurité pour les architectures automobiles
50 embarquées : état de l’art
ayant trait à la sécurité informatique pour les automobiles. Faisant coopérer in-
dustriels et académiques sur des sujets porteurs, notamment les communications
V2X, ils visent à proposer des standards de conception tenant compte des problé-
matiques de sécurité-immunité pour les véhicules futurs. Nous présenterons ensuite
les différentes techniques de sécurité informatique appliquées (ou applicables) à
l’automobile, illustrées par des exemples de la littérature. Nous nous intéresserons
tout d’abord aux mécanismes dits préventifs, puis décrirons enfin les mécanismes
réactifs.
Sevecom
Le projet Sevecom 1 (Secure Vehicular Communication), de janvier 2006 à
décembre 2008, se concentrait sur les communications V2X. Il a permis d’établir des
spécifications concernant la sécurité de telles communications pour éviter l’envoi,
l’écoute ou la modification de messages par un attaquant.
PRECIOSA
PRECIOSA 2 (PRivacy Enabled Capability In Co-Operative Systems and
Safety Applications), de mars 2008 à mars 2010, s’est concentré sur les problé-
matiques liées au respect de la vie privée des conducteurs dans le cadre des commu-
nications V2X. En effet, ces communications nécessitent à la fois un suivi spatial et
temporel des véhicules concernés. Les objectifs du projet consistaient donc à définir
des méthodes permettant de garantir la confidentialité de ces données privées lors
de leur utilisation ou de leur stockage.
EVITA
EVITA 3 (E-Safety Vehicle Intrusion Protected Applications), de juillet 2008
à décembre 2011, portait sur la conception d’une base (matérielle et logicielle) de
1. http://www.sevecom.org, désormais inaccessible, mais visionnable sur http://web.
archive.org/web/20130603042821/http://www.sevecom.org/
2. http://www.preciosa-project.org
3. http://www.evita-project.org
3.2. Défense en profondeur 51
OVERSEE
L’objectif d’OVERSEE 4 (Open Vehicular Secure platform), de janvier 2010 à
juin 2012, avait pour objectif de concevoir une plate-forme logicielle standardisée
et ouverte permettant l’exécution sécurisée de plusieurs applications d’origine et de
criticités différentes au sein d’un même système multimédia. La solution retenue est
présentée plus en détail en 3.3.2.2.
PRESERVE
L’objectif de PRESERVE 5 (Preparing Secure Vehicle-to-X Communication Sys-
tems) est de poursuivre les avancées des projets précédents et de les combiner afin
de proposer une implémentation concrète d’une architecture (protocoles et système
embarqué) de sécurité pour les communications V2X, adaptée aux contraintes du
marché et utilisable directement pour de futures expérimentations. Ce projet a
commencé en janvier 2011 et sa fin est prévue pour juin 2015.
Préemption
Prévention externe
Périmètre du système
Dissuasion externe Ressources du système
Prévention interne
Dissuasion interne
Détection
Diversion
Contre-mesures
Tentatives d'intrusions
Forensics
et al. ont proposé un modèle de défense en profondeur dans [NL09] appliqué aux
communications V2X. Dans ce cas, leur modèle ne reprend pas l’intégralité des
moyens décrits dans [HB95] mais n’inclut que des moyens de prévention, détection
et diversion ainsi que des analyses forensics.
La suite de ce chapitre est dédiée à la présentation des techniques de sécurité,
existantes ou en cours de développement, adaptées aux réseaux automobiles ou pour
lesquelles une adaptation a été envisagée. Dans le chapitre 2, nous nous sommes
focalisés sur les attaques informatiques. De même, ici, nous nous concentrons sur les
mécanismes de défense concernant les attaques ciblant les logiciels et/ou les réseaux
embarqués. Nous les groupons en deux grands ensembles :
– Les mécanismes de sécurité préventifs, qui se visent à empêcher une attaque
de pénétrer dans le système ou dans un sous-système
– Les mécanismes réactifs, qui vont analyser le comportement d’un attaquant
afin de pouvoir riposter, immédiatement ou lors d’une intrusion future.
chiffrer ou signer les informations échangées via ces canaux, afin de garantir l’au-
thenticité, l’intégrité et la confidentialité de celles-ci. Les moyens de sécurisation des
communications visent à se prémunir contre des attaques intégrant une interaction
directe avec le réseau. Si l’attaquant ne peut pas déjouer les mécanismes de chiffre-
ment, il ne pourra ni lire, ni modifier les données du système. En revanche, dans
le cadre d’attaques indirectes, de tels mécanismes peuvent s’avérer insuffisant si le
vecteur utilisé pour finaliser l’attaque possède déjà les capacités de communication
nécessaires avec le véhicule.
ceux-ci peuvent avoir un impact sur le comportement du véhicule qui en est le des-
tinataire. De même, les communications entre véhicules étant nécessairement sans
fil, la confidentialité des échanges doit être également assurée. Par conséquent, le
système responsable des communications V2X sera nativement capable d’effectuer
des opérations cryptographiques complexes.
L’extension de ce type de mécanismes à l’ensemble (ou à des sous-systèmes) du
réseau interne permettrait ainsi de sécuriser les communications entre calculateurs
d’une manière équivalente aux communications entre véhicules. En effet, l’ajout
de méthodes sécurisées d’authentification peut permettre de garantir l’authenticité
des messages, la possibilité de les signer garantit également l’intégrité et l’envoi
de messages chiffrés permet la confidentialité. Cependant, l’implémentation de tels
mécanismes dans une automobile doit tenir compte des contraintes suivantes :
1. Certains réseaux embarqués offrent des débits relativement faibles et pos-
sèdent déjà un fort taux d’encombrement. Or, il faut que l’utilisation de pro-
tocoles d’authentification ou l’ajout d’une signature aux messages ne provoque
pas une trop forte augmentation du trafic, car les délais induits dans la récep-
tion d’un message nuiraient alors au bon fonctionnement du véhicule. En effet,
un message CAN contient au plus 8 octets de données. Or une signature cryp-
tographique de moins de 8 octets n’est plus considérée suffisante en termes
de sécurité aujourd’hui. Par conséquent, une implémentation d’un système de
signature des messages sur CAN implique nécessairement une fragmentation
des données sur plusieurs trames, et donc une augmentation du trafic.
2. De plus, un ECU dispose d’une puissance de calcul limitée. La puissance de
calcul requise pour les opérations cryptographiques ne doit pas impacter né-
gativement le temps de traitement des autres tâches (contrainte de temps
réel, cf. §1.1.1). Cependant, utiliser des algorithmes de chiffrement trop sim-
plistes rendrait ces mécanismes caducs car un attaquant pourrait les casser
très rapidement.
3. Il faut être capable de garantir une gestion sécurisée des clés de chiffrement,
pour leur distribution ainsi que pour leur stockage (il faut envisager qu’un
attaquant ait pu obtenir un accès physique au calculateur et possède du ma-
tériel permettant d’en lire le contenu). La mise en place d’une infrastructure
à clés publiques (ou PKI, pour Public Key Infrastructure) permettant le re-
nouvellement et la révocation de clés compromises s’avère ainsi nécessaire.
4. Enfin, la durée de vie d’une automobile peut être supérieure à la durée de vie
des techniques de chiffrement qu’elle emploie. En effet, l’évolution constante
du matériel informatique réduit le temps nécessaire pour casser un code, jus-
qu’à le rendre inefficace. Il faut alors pouvoir utiliser une clé plus longue, ou
un algorithme de chiffrement différent.
La première contrainte sera en grande partie levée lorsque les réseaux embar-
qués utiliseront massivement des technologies plus récentes. Une trame FlexRay
contient par exemple 254 octets de données, une trame Ethernet jusqu’à 1500. De
Chapitre 3. Mécanismes de sécurité pour les architectures automobiles
56 embarquées : état de l’art
Comme illustré en figure 3.2, le HSM de EVITA est constitué d’un processeur,
de la mémoire volatile (RAM) et non-volatile (NVM), des blocs fonctionnels pour la
sécurité et une interface avec le module applicatif (i.e. le cœur dédié aux opérations
standards de l’ECU). Par ailleurs, afin de minimiser les coûts, il existe 3 niveaux
de spécifications du HSM, full, medium et light, en fonction des besoins en termes
de fonctionnalités de sécurité de l’ECU concerné.
6. http://www.trustedcomputinggroup.org/resources/tcg_tpm_20_library_profile_for_
automotivethin
3.3. Techniques de sécurité préventives 57
Figure 3.3 – Exemple de déploiement des différents modules HSM dans une voiture
– Le module full possède tous les blocs présents en figure 3.2. Il permet d’assurer
la sécurisation des communications V2X (qui requièrent des algorithmes de
cryptographie asymétrique performants) ainsi que des communications entre
le réseau interne et les interfaces avec l’extérieur.
– Le module medium est dédié aux communications entre les ECU. Il possède
un processeur moins puissant que le full, il ne conserve que l’accélération
matérielle pour le chiffrement à clé symétrique mais est néanmoins capable
de faire des opérations à clé asymétrique logiciellement (ce qui suffit s’il n’y
a pas de contrainte de temps trop forte associées aux messages utilisant ce
chiffrement).
– Le module light est à son tour une version allégée du module medium et ne
permet de faire que des opérations à clé symétrique. Il est conçu pour sécuriser
les communications entre un ECU et des capteurs.
La figure 3.3 illustre une disposition suggérée des différents modules dans une
automobile : le module full est ainsi uniquement utilisé pour l’ECU responsable des
communications avec l’extérieur, des modules medium sont présents dans les ECU
contrôlant des sous-systèmes de la voiture et les modules light sont utilisés pour les
capteurs et actionneurs eux-mêmes.
Cependant, les améliorations apportées par un HSM ne permettent pas néces-
sairement d’employer n’importe quel algorithme de chiffrement selon la situation
(et l’impact sur le prix du système). En effet, comme mentionné précédemment, cer-
tains systèmes sont soumis à des contraintes de temps réels plus fortes que d’autres,
et doivent donc rendre leur service en un temps borné. Dans ce genre de situation,
l’ajout d’un chiffrement symétrique permet de réduire l’impact sur le temps d’exé-
cution, voire un coût inférieur, mais la gestion d’un grand nombre de clés secrètes
implique des contraintes plus fortes quant à leur stockage (à ce sujet, [SRW+ 11]
propose une architecture de sécurité pour fournir des protocoles de partage de clé
secrète sécurisés et de signature de messages via un ECU dédié à la gestion des
clés). Des approches combinant les deux modes de chiffrement sont à envisager,
où les messages sont chiffrés grâce à des clés symétriques préalablement échangées
Chapitre 3. Mécanismes de sécurité pour les architectures automobiles
58 embarquées : état de l’art
3.3.2.2 Virtualisation
Figure 3.4 – Architecture virtualisée proposée dans le projet Oversee [GHR+ 09]
sens : du système le plus critique vers un système de criticité inférieure (sens des
flèches sur la figure). Ainsi, si un attaquant réussit à exploiter une vulnérabilité
d’un protocole de communication sans fil, tel que présenté en 2.3, son pouvoir de
nuisance sera restreint : il ne pourra pas contaminer les fonctionnalités les plus
critiques de l’ECU concerné (en supposant bien sûr que l’hyperviseur parvient à
garantir une isolation stricte).
Au delà d’un renfort de la sécurité d’un ECU existant, la virtualisation offre
d’autres avantages. Tout d’abord, comme il devient possible de regrouper de manière
sécurisée des tâches de criticités différentes au sein d’un unique ECU, cela peut
permettre de réduire les coûts matériels sans impacter négativement la sécurité du
système. De plus, le recours à un hyperviseur peut aussi permettre d’effectuer une
surveillance en profondeur d’un système invité « depuis l’extérieur », sans altération
de celui-ci.
En revanche, il conviendra de s’assurer que l’hyperviseur en lui-même ne com-
porte pas de vulnérabilités, car cela ne reviendrait alors qu’à ouvrir de nouvelles
possibilités d’attaque (certes plus complexes). À ce sujet, le recours à des hypervi-
seurs de petite taille permet d’effectuer des vérifications en profondeur de leur code
et ainsi de garantir leur sécurité.
d’accéder (utiliser une ressource, lire ou écrire des données) à un objet particulier.
Dans le cadre de l’automobile, de telles politiques ne sont pour l’instant pas
déployées (à notre connaissance) sur le réseau embarqué de véhicules actuellement
en circulation. En revanche, nous pouvons trouver des travaux sur le sujet dont
l’objectif est d’intégrer de telles techniques dans les architectures existantes. Ainsi,
[SR12] et [BSWE13] ont proposé des mécanismes basés sur le contrôle des flux
d’informations (Information Flow Monitoring), dans lesquels certaines données et
ressources possèdent un marqueur qui permet de suivre la propagation de ces don-
nées (qui les a générées, qui les a utilisées). La figure 3.5 illustre ce principe. Dans
cette illustration, le modèle de voiture est capable de sauvegarder dans un fichier
les profils de plusieurs conducteurs contenant l’ensemble des réglages (position du
fauteuil, inclinaisons des rétroviseurs . . .) et de les restaurer lorsque ceux-ci sont
au volant. Pour ce faire, les différents conducteurs sont identifiés grâce à leurs clés
(chaque clé possédant un identifiant unique). Ainsi, lorsqu’un conducteur ouvre la
voiture, au sein de l’ECU Head Unit, l’application responsable du réglage des fau-
teuils doit accéder à l’identifiant de la clé, fourni par un lecteur RFID ainsi qu’à
l’ensemble des profils sauvegardés. L’application doit ensuite envoyer des instruc-
tions à deux applications de l’ECU responsable des réglages du fauteuil pour qu’il
s’adapte au profil du conducteur détecté. Les données sont marquées dès leur ori-
gine (marqueur t1 pour le profil du conducteur, t2 pour l’identifiant de la clé). Les
nouvelles données générées (à destination de l’ECU de contrôle du fauteuil) suite à
leur utilisation par l’application sont alors marquées avec t1 et t2. Dans [BSWE13],
il y a par exemple 4 valeurs de marqueurs, de 0 à 3, correspondant à 4 niveaux
de confidentialité (3 représentant le niveau le plus fort). Les politiques de contrôle
d’accès vont ainsi déterminer à partir des marqueurs présents sur les données si les
requêtes émises par des sujets souhaitant y accéder sont légitimes. Si ce n’est pas le
cas, le système en refuse l’accès au sujet, préservant la confidentialité de ces don-
nées. Le scénario de la figure 3.5 implique ainsi quatre règles : deux pour autoriser
la récupération des données provenant des deux sources, et deux pour les deux flux
de données sortant de l’application à destination des contrôles du fauteuil.
Une autre approche a été proposée dans [SPS+ 09], avec l’introduction d’un sys-
tème de gestion de données (DMS, pour Data Management System). Le principe
est qu’au lieu de laisser les ECU gérer les échanges d’information entre eux, les don-
nées sont regroupées dans des nœuds spécifiques du réseau. Dès lors, des mécanismes
3.3. Techniques de sécurité préventives 61
de contrôle d’accès peuvent être facilement inclus dans le DMS pour préserver la
confidentialité des données.
3.3.3.1 Architecture
Une séparation complète n’étant donc pas envisageable, la prise en compte des
problématiques de sécurité lors de la conception de l’architecture réseau est néces-
saire. Il est en effet possible de diminuer la sévérité d’une attaque contre un véhicule
en jouant sur l’architecture du réseau et la disposition des ECU dans celle-ci. L’im-
pact d’une attaque lancée contre le réseau embarqué variera notamment en fonction
du nombre et la variété de points d’entrée disponibles, de la présence de systèmes
pouvant contrôler automatiquement des éléments critiques du véhicule, ainsi que
de la topologie du réseau, qui contribuent à augmenter la difficulté qu’aura un at-
taquant à atteindre sa cible (si celle-ci diffère d’un point d’entrée). L’étude menée
par Miller et Valasek [MV14] illustre bien ce fait en tentant d’évaluer la difficulté
qu’un attaquant aura à contrôler des véhicules en fonction de la topologie de leur
réseau. Considérons les deux exemples de la figure 3.6, tirés de cette étude. Dans
l’architecture présentée à gauche, le système multimédia (« radio ») regroupe de
nombreux points d’entrée pour une attaque (téléphonie, bluetooth, internet). Or
cet ECU est directement connecté (la ligne colorée en rouge) au bus contenant les
Chapitre 3. Mécanismes de sécurité pour les architectures automobiles
62 embarquées : état de l’art
3.3.3.2 Pare-feux
(a)
(b)
3.4.1.1 Définitions
Un système de détection d’intrusion (ou IDS, pourIntrusion Detection System)
est installé au cœur du système à surveiller, et non à ses entrées (contrairement à un
pare-feu, par exemple). Désormais courants dans l’informatique moderne, ceux-ci
couvrent une grande variété [LKS05] de situations. Pour exprimer cette diversité,
nous reprenons ici la classification présentée dans [Mic03], illustrée par la figure 3.7.
Les IDS peuvent ainsi être caractérisés de plusieurs façons :
1. En fonction de la source des données utilisées pour la détection d’intrusion.
Historiquement, on distinguait entre les données fournies par un système d’ex-
ploitation et celles provenant du trafic réseau. On parle ainsi d’IDS host-based,
dans le premier cas et network-based dans le second. Il existe également des
IDS utilisant des données provenant d’applications ou encore d’autres IDS.
Dans ce dernier cas, l’idée est de corréler plusieurs alertes pour identifier des
attaques de plus haut niveau.
2. En fonction de leur méthode de détection. Historiquement, une distinction est
faite entre les IDS utilisant une approche par scénarios et ceux utilisant une
approche comportementale.
(a) Dans le cas d’une approche par scénarios, l’IDS possède une base de scé-
narios décrivant des attaques. Une alerte est levée quand l’IDS reconnaît
un des ces scénarios au cours de son observation. Les attaques à détec-
ter étant préalablement connues, une approche par scénarios permet de
déterminer précisément l’attaque qui a été détectée ainsi que de limiter
fortement l’apparition de faux positifs (une alerte est levée alors qu’il
n’y a pas d’attaque). La contrepartie est que toute attaque inconnue ne
pourra pas être détectée (faux négatif) tant que le système n’aura pas
été mis à jour.
(b) Une approche comportementale consiste à modéliser le comportement
attendu du système à un instant donné. Les données collectées sont en-
suite confrontées à ce modèle, toute déviation par rapport à celui-ci étant
considérée comme suspecte. Contrairement à l’approche par scénarios,
3.4. Techniques de sécurité réactives 65
système
réseau
source des
données
applications
IDS
approche
comportementale
méthode de
détection
approche
par scénarios
Systèmes de centralisée
détection
d’intrusions analyse des
données
locale
périodique
fréquence de
l’analyse continue
passif
comportement
après détection
actif
Capteur Description
Formalité Bon format : taille du message, de l’en-tête, de chaque champ,
checksum correct, etc.
Emplacement Le message circule bien sur un bus autorisé
Étendue des données Les données transmises sont comprises dans un certain intervalle
Fréquence Le timing des messages est correct
Corrélation La corrélation des messages à travers différents bus correspond
aux spécifications
Protocole Les protocoles de type challenge-réponse se déroulent bien dans
le bon ordre, au bon moment, etc.
Plausibilité Le contenu des données est plausible, il n’y a pas de conflit avec
les valeurs précédemment observées
Cohérence Les données provenant de sources redondantes sont cohérentes
entre elles
[MA11] définit une entropie du bus CAN, qui est calculée en observant le trafic
lors d’une activité « normale » de référence sur un bus CAN. Une alerte est alors
levée lorsque des déviations de l’entropie sont constatées comparativement à des
valeurs de référence.
De même, le système présenté dans [MV14], connecté au port OBD, observe le
trafic réseau pendant une phase d’apprentissage. Puis, si une anomalie est détectée,
il court-circuite le bus afin d’empêcher toute émission future de message.
Dans [MHT+ 12], la solution présentée repose sur la surveillance du trafic réseau
par chacun des ECU présents. Lorsqu’un ECU observe un message circulant sur le
bus dont il est censé être l’émetteur (en se basant sur l’identifiant de ce message)
alors que ce n’est pas le cas, cet ECU envoie immédiatement une trame d’alerte sur
le bus afin d’écraser le message (jugé illicite) en cours d’émission.
Le tableau 3.2 résume les exemples précédents, présentés selon la classification
énoncée précédemment.
Une autre approche, proposée dans [MG14] décrit une méthode pour identifier
la source d’un message en se basant sur les caractéristiques physiques du signal
émis. L’idée est de se placer non pas au niveau du protocole mais sur la couche
physique afin de définir une empreinte de chaque nœud du réseau. Les spécifica-
tions CAN laissant une grande liberté dans l’implémentation de la couche phy-
sique, il devient alors possible de distinguer les produits provenant de différents
fournisseurs. Les composants électroniques eux-mêmes possédant chacun des ca-
ractéristiques uniques, il peut même être possible d’opérer une distinction entre
des émetteurs provenant du même fournisseur. S’il semble illusoire d’utiliser une
telle méthode pour proposer une méthode d’authentification en raison des marges
d’erreurs parfois non négligeables, son application dans le domaine de la détection
d’intrusion parait envisageable en complément d’autres approches, afin de détecter
le rajout ou le remplacement d’un nœud du réseau par un attaquant.
outils du type de CANoe. Ce véhicule est alors censé circuler normalement pendant
que le réseau simulé enregistre toute tentative d’attaque.
Tenant compte de la nécessité d’un compromis entre réalisme de la simulation
et sécurité du système, les auteurs décrivent trois modèles proposant des degrés de
réalisme différents.
1. Dans le premier cas, les instructions correspondant aux actions du conduc-
teur et aux données de l’environnement sont pré-enregistrées et jouées lors
de l’expérimentation. Celles-ci sont donc entièrement décorrélées de ce que
fait réellement le véhicule. N’offrant aucune interaction avec le véhicule réel,
ce modèle est le plus sûr et le plus aisé à implémenter, au détriment d’un
réalisme moindre.
2. Dans le deuxième cas, les actions du conducteur sont générées via un modèle
comportemental, réagissant ainsi en direct aux stimuli lus sur le réseau si-
mulé. Bien plus complexe à mettre en place, ce modèle présente un réalisme
accru pour le même niveau de sécurité que le précédent. En revanche, un at-
taquant pourra peut être se rendre compte que les informations qu’il lit ne
correspondent pas aux actions réelles du véhicule attaqué.
3. Dans le dernier cas, le réseau simulé reçoit les véritables données correspon-
dant aux actions du conducteur ainsi qu’à l’environnement. Dans ce cas, les
informations vues par l’attaquant correspondent vraiment à ce qui reçu par
le véhicule réel (du moins tant que l’attaquant ne cherche pas à perturber son
fonctionnement). En revanche, des risques de sécurité apparaissent puisque
des interfaces relayant les données reçues par le réseau réel vers le réseau
virtuel deviennent nécessaires.
À l’heure actuelle, il n’existe pas à notre connaissance d’implémentation concrète
de pots de miel dans une automobile. En l’état, des recherches supplémentaires
visant à assurer un déploiement sécurisé de pots de miel automobiles de type haute
interaction nous semblent nécessaires si de tels dispositifs sont envisagés dans le
futur.
a) b)
Simulated in-vehicle Simulated in-vehicle
network network
Attacker Attacker
data data
Driver Driver
input input
BDM
Environment Environment
input input
c)
Attacker
data
Driver
input
Driver Environment
input
Figure 3.8 – Modèle de déploiement de pot de miel dans une automobile proposé
par [VNLJ08]
3.4. Techniques de sécurité réactives 71
peuvent également relever de la vie privée du conducteur. Leur stockage doit donc
a minima se conformer à la législation en vigueur.
3.5 Conclusion
Nos travaux concernant les problématiques de sécurité dans les réseaux automo-
biles embarqués, nous avons présenté dans ce chapitre les différents mécanismes de
sécurité informatique existants ou envisagés pour protéger les réseaux automobiles
embarqués.
Du point de vue de l’informatique embarquée, une voiture moderne constitue
un système complexe. Afin d’en proposer une sécurisation véritablement efficace,
une stratégie de sécurité, prenant en compte tous les aspects de cette complexité
doit être mise en place. Nous avons ainsi vu que les constructeurs automobiles
ont désormais pris conscience des enjeux que représente la sécurité informatique
pour les réseaux automobiles (embarqués et débarqués), comme en témoignent par
exemple les divers projets européens que nous avons présentés. De plus, une auto-
mobile étant un système (de plus en plus) complexe, la mise en place de politiques
de sécurité nécessite une vision d’ensemble du (ou des) système(s) concerné(s) pour
être véritablement efficace. À cet effet, nous avons présenté le concept de défense
en profondeur, qui est une tendance guidant actuellement le développement et l’in-
tégration de mécanismes de sécurité pour les automobiles.
Nous avons ensuite fait un tour d’horizon des mécanismes de sécurité, selon le
rôle qu’ils jouent dans la mise en place d’une stratégie de défense.
– Tout d’abord, les mécanismes dits préventifs, dont le but est d’empêcher un
attaquant de pénétrer en certains points du système. Ceux-ci opèrent aussi
bien à l’échelle des protocoles de communication, des données contenues dans
les calculateurs, ou encore de l’architecture du réseau.
– Ensuite, les mécanismes qui entrent en jeu dans les cas où un attaquant a
réussi à déjouer ou contourner les mesures préventives mises en place. Ceux-
ci visent alors à détecter sa présence, à contrer ou à dévier ses attaques, mais
peuvent également servir à en apprendre plus sur le comportement de tels
attaquants, afin de renforcer la sécurité du système (ou des systèmes suivants)
par la suite.
Cependant, les problématiques de sécurité étant apparues relativement récem-
ment avec l’émergence de la voiture en tant qu’objet connecté, les solutions exis-
tantes actuellement sont encore amenées à évoluer dans les années à venir, guidées
par les axes de développement définis par les constructeurs. De plus, comme vu
dans le chapitre 1, la conception d’une automobile impose diverses contraintes aux
équipements embarqués. Les solutions de sécurité déployées dans les automobiles
futures devront donc trouver le compromis idéal entre le niveau de sécurité maximal
et (notamment) le coût de déploiement.
Enfin, il nous semble important de mentionner que certains paramètres parfois
ignorés peuvent permettre de passer outre les protections mises en place par un
3.5. Conclusion 73
dispositif de sécurité jugé pourtant idéal par ailleurs. Ainsi, l’impact du facteur
humain n’est jamais à négliger lors de la conception d’un système : un utilisateur
peut être victime d’ingénierie sociale visant à lui faire effectuer une manipulation
dangereuse pour lui ou pour le système avec lequel il interagit (on pensera ainsi aux
nombreuses tentatives d’hameçonnage reçues par courriel). [HKD11] illustre bien
ce fait avec un fichier MP3 dont les métadonnées ont été éditées pour contenir un
(faux) message d’alerte (figure 3.9), au lieu du titre du morceau et de l’interprète,
qui s’affichera sur le lecteur multimédia durant sa lecture. Cette « attaque » ne
viole ainsi aucune règle de sécurité, mais peut néanmoins fonctionner contre un
conducteur non averti.
Chapitre 4
Sommaire
4.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.1.1 Hypothèses d’attaque . . . . . . . . . . . . . . . . . . . . . . 76
4.1.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.2 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 80
4.2.1 Emplacement de l’IDS . . . . . . . . . . . . . . . . . . . . . . 80
4.2.2 Fonctionnement général . . . . . . . . . . . . . . . . . . . . . 81
4.2.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.3 Formalisation d’une méthode de corrélation . . . . . . . . . 85
4.3.1 Automates finis . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3.2 Génération d’un langage d’attaques . . . . . . . . . . . . . . 87
4.4 Évaluation de la complexité . . . . . . . . . . . . . . . . . . . 89
4.4.1 Méthode « naïve » basée sur les AFD . . . . . . . . . . . . . 89
4.4.2 Réduction de la complexité spatiale . . . . . . . . . . . . . . 92
4.4.3 Passage à l’échelle . . . . . . . . . . . . . . . . . . . . . . . . 94
4.5 Énumération des séquences d’attaque minimales . . . . . . 96
4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Comme nous l’avons vu dans le chapitre 2, les réseaux automobiles actuels sont
vulnérables aux attaques. En effet, un attaquant ayant obtenu un accès sur un
réseau embarqué peut alors effectuer des actions de type lecture, interruption, mo-
dification ou fabrication de trames pour atteindre ses objectifs. Comme vu dans le
chapitre 3, la sécurisation des systèmes embarqués est devenue une priorité pour les
constructeurs ; nécessitant la mise en place de politiques de sécurité tenant compte
des spécificités des systèmes embarqués dans les automobiles, tout en considérant
les réseaux automobiles dans leur ensemble. Ainsi, en plus des techniques préven-
tives visant à empêcher un attaquant de pénétrer le réseau, il apparaît également
nécessaire de mettre en place des mécanismes surveillant le réseau « depuis l’inté-
rieur », tels que des systèmes de détection d’intrusion. Or, comme nous l’avons vu
dans le chapitre 1, les solutions de sécurité pour l’automobile doivent tenir compte
des contraintes de compatibilité et d’autonomie, en plus des contraintes générales
liées à la conception de systèmes embarqués.
Chapitre 4. Détection d’intrusion pour les réseaux automobiles
76 embarqués
4.1 Problématique
Comme nous l’avons vu dans le chapitre 2, la littérature comprend désormais
plusieurs exemples documentés d’attaques ciblant les réseaux automobiles embar-
qués (et plus spécifiquement CAN). De telles attaques vont d’une approche en
« boîte noire » [HKD09], visant à découvrir le réseau embarqué et identifier les
trames susceptibles d’être utilisées pour contrôler les ECU ciblés par de futures at-
taques [MV13], à des reprogrammations d’ECU via le réseau [KCR+ 10]. De plus, en
2011, Checkoway et al. [CMK+ 11] ont prouvé qu’il était possible d’obtenir un accès
sur le réseau embarqué à distance en exploitant des vulnérabilités présentes dans
les ECU responsables des communications avec l’extérieur. Ce faisant, ils furent
alors capables de reproduire des attaques contre le réseau embarqué décrites dans
[KCR+ 10], prenant ainsi le contrôle à distance sur les calculateurs embarqués.
4.1.2 Objectifs
Nous décrivons ici les objectifs que l’on souhaite atteindre vis-à-vis des hypo-
thèses d’attaque que nous venons d’établir, et en tenant compte des contraintes
présentées dans le chapitre 1. Pour ce faire, nous nous concentrons sur quatre as-
pects en particulier : la source des données, la méthode de détection, les types
d’attaques que l’on souhaite détecter et le comportement après détection.
Méthode de détection
Concernant la méthode de détection, la grande diversité des architectures au-
tomobiles (cf 1.2.1) couplée au relativement faible nombre d’attaques documentées
contre les réseaux véhiculaires embarqués rend complexe une approche par scéna-
rios. En effet, pour pouvoir être adaptable à un grand nombre de systèmes, une
telle méthode doit être aisément généralisable. De plus, les mises à jour potentielle-
ment requises par de telles approches ne sont pas (à l’heure actuelle) aussi aisées à
faire dans une automobile que dans un ordinateur. En revanche, s’ils ont peu d’in-
formations concernant des attaques avérées contre leurs systèmes embarqués, les
1. http://www.can-cia.org/index.php?id=canopen
4.1. Problématique 79
Couverture
Revenons sur les quatre types de comportements suspects décrits dans la sec-
tion 4.1.1. Dans le cadre d’une approche comportementale, les deux premiers cas
se révèlent simples à détecter grâce à un ensemble de règles. En effet, ces deux cas
correspondent à un non-respect des spécifications du réseau :
– Une liste de spécifications peut permettre de détecter les trames erronées.
– De même, des trames malveillantes émises périodiquement en plus du trafic
légitime peuvent être détectées grâce à l’augmentation de la fréquence d’ap-
parition de celles-ci.
En revanche, dans les deux derniers cas, les messages envoyés par un attaquant
peuvent être parfaitement conformes aux spécifications et respecter les contraintes
temporelles. L’identification de telles trames parmi le trafic standard implique la
mise en place de mécanismes permettant de confronter les informations fournies
par une trame aux données précédemment observées. Nous désignons par la suite
de tels mécanismes comme des mécanismes de corrélation.
Ces deux aspects (règles et corrélation) de la détection sont pris en compte
dans [MGF10], via la description de 8 catégories de capteurs détectant différents
types d’anomalies, dont certaines nécessitent une vérification de la cohérence du
contenu des trames. Cependant, le fonctionnement des capteurs proprement dits
n’est pas précisé.
Par ailleurs, [MA11] et [MV14] utilisent des approches basées sur un apprentis-
sage du comportement du réseau. Dans ces cas, la corrélation se fait par rapport à ce
qui a été observé lors de l’apprentissage, et non par rapport à ce qui a été vu depuis
le début de l’observation. De plus, de telles méthodes sont plus propices aux faux-
positifs vu qu’il n’est pas garanti que tous les cas d’utilisation possibles aient été
pris en compte. À cet effet, [MA11] mentionne qu’une telle méthode pourrait être
enrichie par la prise en compte de différents états du véhicule (à l’arrêt, démarrage,
en train de rouler. . . ) auxquels correspondraient différentes entropies. Cet aspect
peut être considéré comme un mécanisme permettant d’établir une corrélation, mais
aucune approche concrète n’a été proposée dans ce papier.
Nous nous plaçons dans les cas où un attaquant cherche à utiliser le réseau em-
barqué pour interagir avec des systèmes embarqués d’une voiture. Par conséquent,
idéalement, un IDS surveillant le réseau doit pouvoir permettre d’intercepter une
Chapitre 4. Détection d’intrusion pour les réseaux automobiles
80 embarqués
attaque en cours afin que l’attaquant ne puisse pas atteindre ses objectifs. Cepen-
dant, comme nous considérons un système ne modifiant pas les ECU déjà présents
sur le réseau, les moyens de réaction sont alors limités. Ainsi, en cas d’attaque dé-
tectée, il peut être possible de saturer le bus afin d’empêcher l’émission d’autres
messages, comme envisagé dans [MV14]. Cela aura pour conséquence secondaire
de faire passer de nombreux ECU du réseau dans un mode dégradé, ceux-ci ne
pouvant plus obtenir d’informations via le bus. Cette contrepartie, certes toujours
déplaisante pour le conducteur, peut dans certains cas s’avérer préférable à l’issue
de l’attaque. La mise en place de mécanismes de réaction adaptés à l’intensité de
l’attaque détectée devra faire l’objet de développements futurs (tout en s’assurant
que de tels mécanismes ne peuvent à leur tour pas être utilisés par un attaquant).
En l’état, nous nous concentrons ici sur la partie détection et considérons donc notre
système comme passif vis-à-vis des attaques détectées.
A. Sur un bus reliant plusieurs passerelles. Dans un tel cas, cela permet de sur-
veiller les échanges entre les différents domaines (notamment entre les domaines
multimédia/télécommunications, qui contiennent la majorité des points d’entrée
pour une attaque, et le reste du véhicule). En revanche, cela ne donne pas accès
aux messages transmis au sein des sous-réseaux placés derrière une passerelle.
B. Au sein d’une passerelle déjà existante. Ici, cela permet d’avoir accès aux mes-
sages circulant sur plusieurs bus. Cependant, une passerelle constituant une
cible privilégiée lors d’une attaque (surtout si, comme dans notre figure, celle-ci
sert également d’interface avec l’extérieur), une attention supplémentaire doit
être apportée à la sécurisation de l’IDS au sein de cette passerelle afin qu’il ne
soit pas corrompu lors d’une attaque (par exemple en assurant une isolation
logicielle via des mécanismes de virtualisation).
C. Un ou plusieurs modules répartis dans tout le réseau. Ceux-ci peuvent opérer
indépendamment ou communiquer entre eux.
Satnav
Diag Communication
3G
A interface Unit
DSRC
Body
Powertrain Chassis Head Unit
Electronic B
Engine control
Transmission
C
Telephone
C C
Figure 4.1 – Emplacements possibles d’un IDS dans une architecture automobile
moderne type
Lecture d'une
trame CAN
Extraction
des signaux
Seuil
Règles NON NON
critique
validées ?
atteint ?
OUI OUI
Analyse de la
cohérence avec l'état
Intrusion détectée :
du système Alerte
Séquences NON
valides ?
OUI
Analyse de
la trame suivante
Règles de contrôle
Comme nous l’avons vu précédemment, les attaques ne respectant pas les spéci-
fications du réseau peuvent être détectées via un ensemble de règles de contrôle.
Un exemple de génération de telles règles à partir de spécifications est donné
dans [LNJ08]. Dans un premier temps, nous nous restreignons aux cas suivants :
– Identifiant inconnu : l’identifiant d’une trame ne fait pas partie d’une liste
déterminée.
– Bus d’émission incorrect : une trame est émise sur un bus où elle n’est pas
censée se trouver.
– Taille du champ de données incorrecte : le champ de données ne correspond
pas à ce qui est spécifié.
– Fréquence incorrecte : dans le cadre d’une trame périodique, le temps qui s’est
écoulé entre deux observations de cette trame doit respecter les spécifications.
Déclenchements d’alertes
Une apparition ponctuelle de telles anomalies ne témoigne pas nécessairement
d’une attaque. En effet, des perturbations électromagnétiques peuvent altérer le
contenu d’une trame, un capteur peut se tromper ponctuellement ou l’émission
d’une trame peut être retardée. Il devient alors plus pertinent de s’intéresser à la
fréquence d’apparition de telles anomalies avant de lever une alerte. Pour affiner la
détection, nous envisageons une approche similaire à celle proposée par Müter et
al.[MGF10], reposant sur une fenêtre glissante et 3 seuils correspondant à des ni-
veaux de criticité croissants (important, critical, severe). La condition représentant
le dépassement d’un seuil à un instant t est la suivante :
n
n X
n Xit wi > T ′
wi
P
i=1
i=1
où :
t
– Xit = Sij décrit la somme des incidents identifiés par un capteur Si
P
j=t−SLW
durant une fenêtre de temps de longueur SLW .
– wi représente la pondération attribuée au capteur Si .
– T ′ est la valeur (normalisée) du seuil correspondant à un des 3 niveaux de
criticité.
La figure 4.3 illustre ce principe. Dans ce cas, un seuil est fixé à 4 anomalies
(toutes pondérées de la même manière) minimum détectées durant une fenêtre
de taille SLW. Avant t2, aucun alerte n’est ainsi levée malgré la détection d’une
anomalie à t1 car la fenêtre glissante ne contient jamais 4 alertes. En revanche, à
t2, ce seuil est atteint et une alerte est levée.
t0 t1 t2
bus 1
bus 2
t
trame correcte
anomalie SLW
Figure 4.3 – Principe de la fenêtre glissante décrite par [MGF10]
La taille de SLW , les valeurs des seuils et les pondérations wi ne sont pas fixées.
Elles dépendront des exigences du constructeur (en termes de sécurité immunité et
4.3. Formalisation d’une méthode de corrélation 85
4.2.3 Synthèse
En résumé, si nous reprenons la classification des systèmes de détection d’intru-
sions présentée en §3.4.1, les caractéristiques de notre système sont les suivantes :
– Source des données : Comme détaillé en 4.2.1, notre IDS récupère ses
données sur le réseau.
– Méthode de détection : Comme justifié en 4.1.2, l’approche utilisée pour
la détection est comportementale.
– Analyse des données : Dans un premier temps, nous ne considérons pas
de cas où l’IDS est distribué sur le réseau, l’analyse des données se fait donc
localement.
– Fréquence de l’analyse : L’objectif est de pouvoir effectuer une analyse
continue. En effet, comme nous nous intéressons particulièrement aux attaques
visant à modifier le comportement des ECU à travers le réseau, il peut être
crucial de réagir au plus vite afin de préserver l’intégrité du véhicule et de ses
passagers si le système ciblé par l’attaque est critique.
– Comportement après détection : Dans un premier temps, nous nous
contentons d’un système passif levant une alerte en cas d’intrusion détec-
tée. La mise en place de mécanismes visant à contrer une attaque en cours
est envisagée à plus long terme.
Par conséquent, nous avons choisi d’employer une méthode de détection ne né-
cessitant pas une forte synchronisation avec le système observé. Celle-ci repose sur
la définition d’un langage décrivant des séquences de messages interdites, qui corres-
pondent aux comportements non désirés du système surveillé. Nous utilisons alors
des automates pour détecter ces séquences lors de l’observation du système.
Dans le reste de cette section, un système désignera l’ensemble des ECU im-
pliqués dans la réalisation d’une tâche donnée. Par exemple, le système « freinage »
(fictif) comprend les ECU contrôlant les pédales, le frein à main, les freins eux-
mêmes et les feux de freinage. Un ECU peut être impliqué dans plusieurs tâches,
et donc faire partie de plusieurs systèmes.
où
δ(qA , s).δ(qB , s) si s ∈ ΣA ∩ ΣB
δ(q , s).q si s ∈ Σ ∧ s ∈
/ ΣB
A B A
δ(qA .qB , s) =
qA .δ(qB , s) si s ∈
/ Σ A ∧ s ∈ ΣB
qA .qB sinon
Nous rappelons que notre objectif est de détecter une attaque en cours sur
le réseau en vérifiant si une trame transmise sur un bus est cohérente vis-à-vis du
comportement précédemment observé du système. En d’autres termes, nous voulons
détecter les cas où une trame génère un symbole faisant partie d’une séquence qui
ne constitue pas une séquence valide de Lsys . Une séquence invalide (ou interdite)
peut être définie comme une séquence qui est valide jusqu’à un certain point où un
symbole inattendu invalide celle-ci. Formellement, si w est un mot invalide de Lsys
et w = s0 s1 ..sn où tous les si représentent des symboles de Σsys , alors :
1. Nous construisons l’ensemble de tous les mots qui commencent comme des
mots de Lsys (or, Lsys étant préfixe-clos, cet ensemble est égal à Lsys ) conca-
ténés avec un symbole supplémentaire de Σsys .
2. Appelons alors Lsys le complémentaire Lsys . Lsys contient ainsi tous les mots
sur Σsys n’étant pas dans Lsys et par conséquent toutes les séquences invalides
pour le système concerné.
2. Il est aisé de rendre complet un automate fini en créant un état supplémentaire, non final,
vers lequel pointeront toutes les transitions manquantes de chaque état de l’automate original.
Chapitre 4. Détection d’intrusion pour les réseaux automobiles
88 embarqués
Cet ensemble correspond à (Lsys .Σsys ) ∩ Lsys et contient toutes les séquences
invalides tronquées après la première déviation par rapport à un comporte-
ment normal. Nous avons alors créé un langage pouvant théoriquement être
utilisé pour détecter toute déviation par rapport au fonctionnement normal du
système, tant qu’il est en mesure de connaître tout l’historique des messages
émis et reçus depuis son initialisation.
4. Cependant, nous voulons pouvoir reprendre l’observation suite à une détec-
tion (sans avoir à réinitialiser le système, ni à redémarrer la voiture). Par
conséquent, nous souhaitons pouvoir détecter une attaque dès que possible
sans pour autant nécessairement posséder l’intégralité de la séquence décrite
par le système depuis son initialisation. En d’autres termes, nous voulons pou-
voir détecter une attaque en ne possédant qu’un suffixe de la séquence totale.
Formellement, cela revient à vouloir identifier des séquences interdites appar-
tenant à l’ensemble Suf (Lsys .Σsys ∩ Lsys ), où Suf (L) est l’ensemble de tous
les suffixes des mots du langage L.
5. En revanche, cet ensemble contient également des mots qui constituent des
portions de séquences valides de Lsys (c’est-à-dire que ces mots appartiennent
à l’ensemble des radicaux (factors) de Lsys , noté F act(Lsys )). Lever une alerte
lorsque ces mots sont identifiés générerait alors un faux-positif. Pour éviter
cela, nous devons donc retirer de cet ensemble tous les mots appartenant à
F act(Lsys ). Or, notons que F act(Lsys ) = Suf (P ref (Lsys )) = Suf (Lsys ) car
Lsys est préfixe-clos. Nous obtenons finalement l’ensemble suivant :
Ce dernier ensemble, que nous appelons Sattacks , correspond au langage des ano-
malies possibles observables sur le réseau pour un système donné. De plus, Sattacks
est créé à partir du langage rationnel Lsys et les langages rationnels sont fermés
pour les opérations utilisées lors de cette génération. Par conséquent, Sattacks est
également un langage rationnel, noté Lattacks .
Exemple
Dans les figures suivantes, les états grisés sont des états initiaux et les états
possédant une double bordure sont des états finals. Considérons les automates de
la figure 4.4, qui représentent 3 ECU fictifs, constituant un système. Les transitions
correspondent à des signaux transmis sur le réseau (comme il n’y a pas de notion
de source ou de destination dans une trame CAN, ces deux cas sont identiques du
point de vue d’un observateur placé sur le réseau). L’automate minimal résultant
4.4. Évaluation de la complexité 89
de leur composition parallèle synchronisée est donné en figure 4.5. Cet automate
reconnaît le langage Lsys . Nous présentons en figure 4.6 l’automate déterministe
Aattacks qui reconnaît Lattacks . Dans cette figure, nous avons mis en évidence la
séquence interdite acd.
a
b
b 3
a c,d
a,d a,b,c,d
c 2 c,d
1 b 4
b
0
a,c,d
(a)
d d,e
1 d
0 e
e 2
(b)
d d c
c c
0 1 2
d
(c)
b,e
b
a c,d,e
c 4 a
1 a
d a b e 6
a e c,d,e
e a,b,c,d,e
b 2 b c,d
c 5
a 7
c,d
3
0
b,d
a,c,d,e
d
c,
c,d
b a
b
a e
3 4
a
c b
b,c c a
c e
12
a
c,d,e
5
b
b
a d
a
d
a 2 b e e
13
a
d d b,e
b a
0 1
c
e 9 a
b c,d a,b,c,d,e
e
c
d d b 11 a,b,c,d,e
a 15 16
b c,d,e
d 10 e
14
a c,d
a
e
a 8 c
7
b
d b,d
6
b,c
Table 4.1 – Complexité spatiale pour des opérations basiques sur des automates
finis
Exemple
b,e
b
a c,d,e
c 5 a
1 a
d a b e 6
a e c,d,e
e a,b,c,d,e
b 2 b
c c,d
a 4 7
c,d
3
0
b,d
a,c,d,e
’d’ est lu
OK 7 5 3
Alert ! 7
100
Size of Sright
10
1
0 1 2 3 4 5 6 7 8 9
Step
Figure 4.9 – Évolution de la taille de Sright durant une observation pour différentes
tailles de Asys
Les mots du langage Lattacks sont caractérisés par le fait qu’ils représentent tous
des séquences dont le dernier symbole entraîne une déviation par rapport à toute
séquence de Suf (Lsys ). Cependant, ces mots ne constituent pas nécessairement des
séquences minimales. Par exemple, si abc est un mot de Lattacks et que ababa est
un mot de Suf (Lsys ), alors abababc sera également un mot de Lattacks . Lors d’une
détection en ligne, ce fait n’a pas d’importance. En effet, c’est bien la première
déviation par rapport à un comportement normal qui nous intéresse et il peut être
intéressant de garder une trace de la séquence entière afin de voir a posteriori dans
quelle situation l’attaque s’est déroulée. Définir l’ensemble des séquences d’attaque
minimales peut en revanche avoir de l’intérêt dans le cadre d’analyses forensics. Par
exemple, suite à un accident ou un dysfonctionnement d’un système donné dont on
ne connaît pas la cause, il sera plus rapide de parcourir les logs à la recherche
de séquences d’attaques minimales pour confirmer ou infirmer l’hypothèse d’une
attaque informatique. Le principe est le suivant : Un mot w = a1 a2 a3 . . . an de Lsys
est un mot interdit minimal si et seulement si :
w est interdit : w ∈
/ F act(Lsys )
les radicaux non-triviaux de w (ni le mot vide, ni w lui-même) ne sont pas interdits :
a1 a2 . . . an−1 ∈ F act(Lsys ) et a2 . . . an ∈ F act(Lsys )
M F (L) = ΣL ∩ LΣ ∩ L
c,d
c,d
b
a
a
b b,d
5
a 6
c e
a b
c,d,e
c
a 3 4 e
a
b,c c,d,e
e
2
a
c
b
9
1 b a
a e
b b,e
10 d
c
8
e
e a,b,c,d,e
c e
a,b,c,d,e
21 22
a b,d
c,d
7
c,d
d e
c e
0 11 12
c,d
a,b a,b
c,d b,e
a a
e b
13 14
b b b
b
e 16
15
a,c,d,e
e
b a
a c,d,e
e 20
18
b b c,d
a,c,d
a
17 e
19
a,c,d,e
a,c,d
4.6 Conclusion
Dans ce chapitre, nous avons présenté un système de détection d’intrusions pour
les réseaux automobiles embarqués. Comme il semble difficile aujourd’hui de définir
et généraliser des signatures d’attaques contre les réseaux automobiles, notamment
en raison de leur grande diversité, nous avons opté pour une approche comporte-
mentale partant des spécifications d’un véhicule. Nous avons identifié quatre types
de comportements suspects que nous souhaitons pouvoir détecter. À cette fin, nous
proposons une détection reposant sur deux mécanismes distincts. Tout d’abord un
ensemble de règles visant à contrôler que chaque trame respecte bien les spécifica-
tions du système. Par suite, notamment pour les cas où l’attaquant a un contrôle
plus avancé du système et peut remplacer intégralement des messages légitimes par
les siens, nous avons proposé une approche basée sur les langages formels dont l’ob-
jectif est de déterminer si un message fait partie d’une séquence interdite ou doit
encore être potentiellement considéré comme légitime. Ces séquences d’attaques
constituent un langage formé à partir des automates modélisant le comportement
d’un point de vue du réseau des ECU constituant les systèmes surveillés. Par suite,
pour éviter une possible explosion du nombre d’états des automates permettant
d’identifier ces séquences, nous avons proposé un algorithme reposant sur un au-
tomate de taille bornée. Cette méthode est cependant plus coûteuse en terme de
complexité temporelle. Enfin, nous avons montré comment il était également pos-
sible de générer l’ensemble des séquences d’attaques minimales d’un langage régulier
tel que ceux que nous manipulons. Cela peut s’avérer utile lors d’analyses forensics
d’enregistrements réseaux à la recherche d’éventuels signes d’une attaque.
L’évaluation expérimentale de notre IDS dans le cadre d’un réseau CAN ainsi
que les limites de cette approche font l’objet du chapitre suivant.
Chapitre 5
Expérimentations
Sommaire
5.1 Protocole expérimental . . . . . . . . . . . . . . . . . . . . . . 100
5.1.1 Vue d’ensemble . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.2 Données expérimentales . . . . . . . . . . . . . . . . . . . . . 100
5.1.3 Évaluation du système . . . . . . . . . . . . . . . . . . . . . . 102
5.2 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2.1 Source des données . . . . . . . . . . . . . . . . . . . . . . . . 103
5.2.2 Règles de contrôle . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2.3 Contrôles de cohérence . . . . . . . . . . . . . . . . . . . . . . 105
5.2.4 Corrélation des alertes . . . . . . . . . . . . . . . . . . . . . . 107
5.3 Cas d’étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.3.1 Contrôle des feux . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.3.2 Régulateur de vitesse . . . . . . . . . . . . . . . . . . . . . . 110
5.3.3 Remarque : cas du diagnostic . . . . . . . . . . . . . . . . . . 114
5.4 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.4.1 Performances . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.4.2 Couverture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Afin d’obtenir une validation très poussée de notre système, il faut pouvoir
disposer pendant plusieurs semaines, voire plusieurs mois du même véhicule de
façon à intégrer notre IDS dans son architecture embarquée, mener une campagne
d’attaques et tester les réactions de cet IDS. Comme il était difficile de rassembler
de telles conditions dans le cadre d’une thèse, réaliser une telle évaluation dans
le temps imparti n’a pas été possible. Néanmoins, nous avons pu enregistrer en
amont le trafic réseau d’une voiture correspondant à des utilisations « standard »
(c’est-à-dire sans aucune injection de messages malveillants sur le réseau) de celle-ci.
Nous avons alors simulé l’occurrence d’attaques en modifiant ces enregistrements
(en insérant de nouvelles trames, pour simuler les cas où l’attaquant injecte du
trafic supplémentaire dans le réseau, ou en modifiant des trames existantes pour
simuler les cas où l’attaquant contrôle les émissions d’un ou plusieurs ECU). Ces
enregistrements modifiés peuvent ensuite être utilisés pour tester notre système
de détection. Le système que nous évaluons lors de nos expérimentations est ainsi
présenté en figure 5.1. À partir des spécifications décrivant l’architecture du réseau
embarqué dans la voiture, nous générons les automates nécessaires aux analyses de
cohérence ainsi que les règles de contrôle pour les trames impliquées dans l’évolution
de ces automates. En ce qui concerne les autres trames enregistrées, comme nous ne
possédons pas nécessairement les spécifications décrivant leur utilisation, nous nous
basons sur les enregistrements pour déterminer leurs caractéristiques. Les règles
et automates ainsi créés sont passés à notre système de détection d’intrusion qui
les utilise alors pour analyser les enregistrements que nous avons modifiés pour y
inclure des attaques et signale alors toutes les anomalies qu’il y détecte.
Les essais ont été menés sur un ordinateur de bureau équipé d’un processeur
Core i7-3720QM 2.60GHz de Intel. Afin de nous rapprocher au plus d’un matériel
pouvant être embarqué dans un véhicule récent, nous utilisons pour nos mesures un
seul cœur du processeur que nous cadençons à 1,2GHz.
Nous possédons 102 fichiers contenant des enregistrements correspondant à des
scénarios d’utilisations standards d’une voiture. Le nombre de trames contenues
dans ces enregistrements varie de 3000 à 400000 trames environ, pour des durées
d’enregistrement allant de 2 secondes à 3 minutes. Au total, ces fichiers représentent
39 minutes d’enregistrement cumulées.
5.1. Protocole expérimental 101
Décrivent GW
Specs l'architecture
ECU ECU ECU
Insertions d'attaques
Traces
attaquées
analysées par
utilisés par
IDS
lève
Alertes
Figure 5.1 – Présentation du dispositif expérimental
102 Chapitre 5. Expérimentations
8C 03 5F
8 C 0 3 5 F
100011000000001101011111
S1 S2 S3 S4 S5
– l’horodatage ;
– le bus sur lequel la trame a été transmise ;
– le champ de données brut ;
– la liste des différents signaux qu’elle contient et leurs valeurs respectives.
1 def learn(liste_trames):
2 identifiers={} # dictionnaire dont les clés sont les identifiants
3 # des trames et les valeurs sont les paramètres a vérifier
4 freqs={} # utilisé pour calculer les fréquences d’émission de chaque
5 # trame
6 for trame in liste_trames:
7 if trame.ident not in identifiers.keys():
8 identifiers[trame.ident]={
9 "rules":{"size":datasize, "bus":bus,"freq":0}
10 }
11 freqs[trame.ident]=[]
12 freqs[trame.ident].append(timestamp)
13
14 for i in freqs.keys():
15 meanfreq=0
16 if len(freqs[i]) > 1:
17 # calcul de la fréquence moyenne d’une trame
18 # arrondie a la milliseconde
19 for k in range(len(freqs[i])-1):
20 meanfreq = (meanfreq*k + freqs[i][k+1] - freqs[i][k])/(k+1)
21 identifiers[i]["rules"]["freq"]=round(meanfreq,3)
22 return identifiers
Ces symboles sont générés par des fonctions qui prennent une trame en entrée,
analysent les informations qu’elle contient (identifiant, valeurs des signaux) et ren-
voient un symbole en sortie. On considère ainsi que pour un système, une trame
donnée ne génère qu’un symbole à la fois. Cependant, si plusieurs systèmes sont
concernés par cette trame, celle-ci peut alors être à l’origine de symboles différents
pour chacun de ces systèmes.
La génération d’un symbole peut parfois nécessiter de comparer les informations
106 Chapitre 5. Expérimentations
contenues dans la trame avec une ou plusieurs variables d’état du système. Par
variable d’état, nous entendons une valeur caractérisant un paramètre commun à
différents éléments du système. La vitesse du véhicule constitue ainsi un exemple
de variable d’état. Ces variables sont mises à jour lors de l’analyse d’une trame par
certaines fonctions, en parallèle avec la génération de symbole.
La fonction présentée en figure 5.5, tirée de l’exemple du régulateur de vitesse
détaillé en 5.3.2 peut ainsi générer quatre symboles différents, CCoff, CCon, CCon-
Vinf ou CConVsup à partir d’une trame contenant les signaux nommés EtatCC
et VitRequise. Celle-ci utilise également une variable d’état nommée curspeed qui
contient la vitesse actuelle du véhicule (mise à jour lors de l’analyse d’une autre
trame). Dans cet exemple, nous envisageons également le cas où la vitesse à réguler
demandée par le conducteur est jugée incohérente (supérieure 200km/h), ce qui se
traduit par la levée d’une alerte.
Méthodes d’analyse
Nous définissons une classe appelée Analyseur, qui possède les attributs sui-
vants :
– Un automate qui sera utilisé lors de l’analyse.
– Un dictionnaire dictSymboles où chaque clé est un identifiant d’une trame
concernée par l’automate et dont la valeur associée pointe vers la fonction à
appeler pour générer le symbole correspondant aux informations contenues
dans cette trame.
– Une liste contenant les variables d’état dont peuvent avoir besoin les fonctions
générant les symboles.
– Une liste contenant l’ensemble des symboles lus par l’automate jusqu’à pré-
sent.
5.2. Mise en œuvre 107
Pour effectuer les deux méthodes de détection décrites dans le chapitre 4 (avec
un AFD décrivant les séquences interdites ou en reprenant l’automate des préfixes),
nous avons créé deux classes, AnalyseurAFD et AnalyseurRad, qui héritent de Ana-
lyseur.
– Un AnalyseurAFD possède ainsi un attribut supplémentaire : l’état dans le-
quel se trouve actuellement l’AFD qui est utilisé pour la détection d’intrusion.
Il possède une méthode analyse qui prend une trame en entrée, met à jour
l’état actuel de l’automate. Si ce dernier est un état terminal, une alerte est
levée et l’état de l’analyseur redevient l’état initial de l’automate afin de com-
mencer une nouvelle analyse.
– Un AnalyseurRad, possède lui une liste qui contient l’ensemble des états pos-
sibles dans lesquels l’automate correspondant à Lsys peut se trouver (cf Al-
gorithme 1). Sa méthode analyse reprend ainsi l’algorithme 1 décrit en 4.4.2.
Là aussi, si une alerte est levée, on remet l’automate dans son état initial en
réinitialisant la liste des états à l’ensemble des états de l’automate.
Ainsi, lorsqu’une trame a été jugée valide suite aux premiers contrôles, celle-ci
est alors transmise aux analyseurs concernés. La liste des analyseurs concernés par
une trame donnée est préalablement déterminée. Pour notre prototype en Python,
celle-ci est stockée sous la forme d’un dictionnaire où les clés sont les identifiants des
trames et les valeurs sont des listes d’analyseurs. Chaque analyseur recevant la trame
détermine alors quelle fonction appeler pour générer le symbole correspondant grâce
à son dictionnaire dictSymboles. Ensuite, l’analyseur tire la transition correspondant
à l’état actuel de l’automate et au symbole ainsi généré pour en déduire le nouvel
état du système qu’il observe.
Si, lors de chacune des analyses menées, une anomalie est détectée, il est possible
de ne pas lever directement une alerte si l’on juge que cette anomalie est mineure.
Pour prendre cette décision, un module est chargé de recueillir les anomalies iden-
tifiées par les modules d’analyse et de les corréler selon la méthode décrite en 4.2.2.
Cependant, établir des pondérations et définir les valeurs de seuils correspondantes
constitue une tâche très complexe et devra faire l’objet de travaux ultérieurs. En
effet, cela nécessite de mener des analyses de risques pour chaque système surveillé
puis d’établir des campagnes d’attaques et de test de l’IDS afin de pouvoir déter-
miner précisément quelles valeurs permettront de minimiser les occurrences de faux
positifs et faux négatifs. Ainsi, l’évaluation d’un système de corrélation des alertes
levées par ces mécanismes ne sera pas présentée ici. Notre objectif dans la suite de ce
chapitre sera donc de déterminer l’efficacité des différents mécanismes de détection
introduits dans le chapitre 4.
Nous allons désormais illustrer le fonctionnement de cette implémentation avec
deux cas d’application que nous utilisons par la suite pour évaluer les performances
de notre système.
108 Chapitre 5. Expérimentations
phare
crois
crois,phare
Le système étant simple, les possibilités d’attaque sont ici limitées. Sur un tel
système, un attaquant peut donc uniquement tenter de forcer un mode d’éclairage
donné. Le cas le plus dangereux, une extinction des feux alors que l’automobile roule
la nuit, menace la safety du véhicule. Nous envisageons ici deux types d’attaques.
Dans le premier cas, l’attaquant envoie des trames alors que la commande des feux
continue d’émettre périodiquement des données. Dans ce cas, les feux changeront
d’état à chaque fois qu’ils recevront une trame provenant du système légitime ou de
l’attaquant. Si l’attaquant n’émet pas de trames avec une fréquence suffisamment
élevée, il y aura alors un clignotement rapide des feux. Dans le second cas, l’at-
taquant peut interrompre à tout moment la transmission de données légitimes et
émettre seulement les messages de son choix. Ici, les feux seront donc entièrement
contrôlés par l’attaquant.
Nous présentons ici les possibilités de détection de notre système vis-à-vis des
scénarios d’attaque décrits précédemment.
Test de cohérence Le système étant très simple, l’utilisation d’un AFD permet
d’effectuer ces tests en un minimum de temps sans pour autant demander trop de
mémoire. L’AFD Aattacks correspondant au système est représenté en figure 5.7. La
110 Chapitre 5. Expérimentations
fréquence d’apparition des trames n’entre plus en jeu ici, seul l’ordre d’apparition
sert de base à la détection. Les attaques alors détectables sont celles qui forcent une
transition du contrôle des feux entre deux états non adjacents. Ici, cela correspond
à un passage de off à croisement, de off à route, de position à route ainsi que
les transitions inverses. En revanche, si un attaquant force une transition entre
deux états consécutifs, celle-ci ne sera pas détectée par l’automate. Dans le cas
où l’attaquant contrôle l’émission de toutes les trames Tf eux à partir d’un instant
donné, cette méthode peut détecter certaines de ses actions si celles-ci correspondent
aux cas décrits ci-dessus.
crois,phare
off
crois,off,phare,pos
pos pos
1
phare
crois,off,phare,pos
off off 5 6
2 crois crois off
pos
pos off,pos
0 crois 3 phare
phare
crois
4
phare
CCoff,fc
CConVinf
CConVinf,Vok
CCoff,Vok CCon
CCon,Vok CConVinf
CConVsup,Vok 4
1 CCoff,fc
Vok
CConVsup ralent accel
2 3
CCoff,Vnok,fc CConVsup
Vnok
CCoff,fc
0
Vnok
Vnok
f0 fa
1
f0 fa
f0 fc
0
2 fc
f0
3
changements de valeurs de celle-ci. Nous ne considérons donc ici que des valeurs
paliers : vitesse nulle (V0 ), vitesse trop basse pour le régulateur de vitesse (Vnok),
vitesse autorisée pour le régulateur de vitesse (V ok). L’automate décrivant l’évolu-
tion de la vitesse est présenté en figure 5.10. Initialement, le véhicule est à l’arrêt,
la vitesse est donc nulle et le levier est en position parking. Pour commencer à se
déplacer, le conducteur place le levier en position drive et accélère. La vitesse peut
alors passer de V0 à Vnok, puis de Vnok à Vok ou inversement.
La composition de ces trois systèmes, présentée en figure 5.11, nous donne alors
une description des évolutions possibles de l’ensemble des systèmes impliqués dans
la régulation de la vitesse.
Règles de contrôle Tout d’abord, précisons que toutes les trames impliquées
dans le fonctionnement de ces systèmes sont purement périodiques. Ainsi, dans
le cas où un attaquant ne peut pas interrompre le trafic légitime avant d’émettre
ses messages, toute augmentation de la fréquence d’apparition d’un message peut
être considérée comme suspecte et permet donc de détecter une attaque en cours.
Cependant, si l’on ne souhaite pas établir des règles de corrélation d’alertes trop
spécifiques (ce qui irait à l’encontre de la contrainte de compatibilité) et donc at-
tendre de constater une augmentation de la fréquence sur une durée de temps plus
étendue avant de lever une alerte, il peut être possible de détecter une intrusion
plus tôt grâce aux tests de cohérence.
CCon,CConVinf,CConVsup,Vnok,Vok,accel,fc,ralent
CCon,CConVinf,CConVsup,Vok,accel,fc,ralent
CCoff,V0,parking CCon,CConVinf,CConVsup,accel,fc,parking,ralent
fa
V0,accel,fc,parking,ralent
f0 1 f0
5.3. Cas d’étude
fa V0,accel,fa,fc,parking,ralent
parking
CCoff,V0,fc,parking
fa
CCoff,V0,drive,fc
drive 8 CCon,CConVinf,CConVsup,Vnok,Vok,accel,fa,ralent
drive V0 parking CCon,CConVinf,CConVsup,Vok,accel,fa,ralent
7
Vnok
CCon,CConVinf,CConVsup,accel,fa,parking,ralent
CCoff,Vnok,drive,fc
Vnok
f0 Vnok
Vnok6
Vnok CCon,CConVinf,V0,accel,fa,parking
Vok
fa CCon CCon,CConVinf,V0,accel,fc,parking CCoff,CCon,CConVinf,CConVsup,V0,Vnok,Vok,accel,drive,f0,fa,fc,parking,ralent
CCoff,V0,drive CCoff,fc
CCoff,Vok,drive CConVsup,Vok,drive CCon,Vok,drive V0,accel,fa,parking,ralent
21
CCoff,fc CConVinf CCon,CConVsup,V0,fa,parking,ralent
2 5 CConVsup CConVinf,Vok,drive
CConVsup 14 15 accel
f0 ralent
CConVinf 19
CCoff,fc f0
fa
CCoff,V0,f0,parking V0 fa
fa
CCoff f0
f0 CCon,CConVinf,V0,accel,fc,parking V0,accel,fc,parking,ralent
0 Vnok CConVinf f0
CCoff,Vok,drive fa
CCoff,Vnok,drive CCon CConVinf,Vok,drive
CCoff CCon,Vok,drive
Vok 4 CCon,CConVsup,V0,fc,parking,ralent
CCon,CConVsup,V0,fc,parking,ralent
Vnok CConVinf 18
CConVsup CConVsup,Vok,drive
3 CCoff accel f0
CConVsup 17
Vnok ralent fa
CConVsup,Vok,drive,f0 f0 13
Vnok fa
f0 Vnok
CConVsup fa
12
CCoff ralent CConVinf,Vok,drive,f0
CCon,Vok,drive,f0
fa Vnok CConVsup f0
accel 20
f0 CCoff,Vok,drive,f0 16
CCoff CConVinf
CCoff,Vnok,drive,f0
fa CCon
Vnok 11
f0 CCoff,V0,drive,f0Vok CConVinf
Vnok10 V0,accel,fc,parking,ralent
fa V0 CCoff
9 V0,accel,fc,parking,ralent
drive Vnok
parking Vnok
CCon,CConVinf,CConVsup,accel,fc,parking,ralent
CCon,CConVinf,CConVsup,Vok,accel,fc,ralent
CCon,CConVinf,CConVsup,Vnok,Vok,accel,fc,ralent
fc
V0,fc,parking
fa
Vnok
Vnok
V0,fc,parking
V0,fa,parking
V0
CConVinf CCon,accel,ralent
accel,fa,ralent
parking
CConVsup
parking V0
CConVsup
Vok,drive V0,parking
42
Vok
drive accel,fc,ralent
fa parking
fa 45 CCon,accel,ralent
Vnok
f0
CConVsup
CConVsup
5.3. Cas d’étude
f0
fa fa
Vok Vnok
CCoff
Vok,drive,f0
CConVinf
V0 V0,accel,fc,parking,ralent
41
CConVinf
f0 f0
CConVinf
CCon,accel,ralent
Vok,drive
drive
Vok Vnok
43
52 f0
CCon,accel,ralent
Vnok
CCoff CCon,accel,ralent
CConVinf
f0
CConVsup
drive,f0 CConVinf
CCon,CConVinf,V0,accel,fc,parking
44
parking
CCoff,fc
CCon
Vnok
f0 V0
f0
fa f0
CConVsup
CCon,accel,ralent
V0,accel,fc,parking,ralent
fa
CConVsup
ralent
CConVsup,Vok,drive,f0
fa CCon,CConVsup,V0,fc,parking,ralent
fc CConVinf CConVsup CConVsup
12
CCon,CConVsup,V0,fc,parking,ralent
CCoff f0
CConVsup
CCoff,drive
CCoff
48
CConVsup
13
CCoff CCoff
ralent
CConVinf V0,accel,fc,parking,ralent
CCon,Vok,drive
fc
9 Vnok
CConVsup
f0
fa f0
CConVsup Vnok
CConVinf CCoff,Vok,drive
CConVinf,Vok,drive CCoff V0,accel,fc,parking,ralent
Vok fa CCon
accel CConVinf 8 Vnok
26 fa
f0 CCoff
CConVinf,Vok,drive,f0
Vok fc
CConVinf f0
CCon,Vok,drive,f0 CConVinf 27
CCoff,Vok,drive,f0 Vok
6 CCoff CCoff
f0
CCon 7 Vnok
CCon
accel CCoff,Vnok,drive
CConVinf Vok
CCoff,drive,f0 CCon,CConVinf,CConVsup,accel,fc,parking,ralent
CConVsup 14
fa Vnok
fc
46
fa
fa
Vnok f0
Vok fa CCon,CConVinf,CConVsup,accel,fc,parking,ralent
f0
CCon,CConVinf,V0,accel,fa,parking
CCoff,Vnok,drive,f0
f0 Vnok CCon
fa CConVinf,Vok,drive CCon,CConVsup,V0,fa,parking,ralent
15
CCoff,drive
Vnok fa
fa CConVinf 25 fa
47
Vnok
f0 f0 accel V0,accel,fa,parking,ralent
CCon,Vok,drive
Vnok
24
f0 ralent
CConVsup,Vok,drive Vnok
CConVsup
Vnok
CConVsup
CConVinf 28
fa
V0
Vok,drive f0
Vnok f0 CCoff,Vnok,drive,fc
drive
40 CConVsup Vnok
Vok V0 CCon,CConVinf,CConVsup,accel,fa,parking,ralent
f0 parking 22
3 V0
fa
fa CCoff,fc
f0 f0 f0
CCoff Vnok
CCon
f0 Vnok
Vok CConVinf
CConVsup
parking
CCoff,fc
Vnok
accel,fc,ralent
ralent fa
V0
CConVinf V0
CCon,accel,ralent CCoff,V0,drive
CCon,CConVinf,CConVsup,Vnok,Vok,accel,fc,ralent
f0
fa
fc
Vok
Vnok
V0,accel,fc,parking,ralent
fa parking
fa,fc
fa f0 f0
fc fa,fc CCon,CConVinf,CConVsup,Vnok,Vok,accel,fc,ralent
fc
V0
V0
V0
fa
CCoff,V0,drive
fc
35 parking
parking CCon,CConVinf,V0,accel,parking
fa,fc
Vnok
V0,accel,fa,fc,parking,ralent
fc fa drive
CCoff,V0,parking f0 CCon,CConVinf,CConVsup,accel,parking,ralent
f0
CCoff,drive,f0
CCoff,drive,fc 37
f0 50
f0 CCoff,drive
49
fa
parking CCon,CConVsup,V0,parking,ralent
fa 51
fa parking
CCon,accel,ralent f0
fc CCon,CConVinf,CConVsup,Vnok,Vok,accel,ralent
CConVsup
fa Vnok
CConVsup fc
drive Vok,drive
CConVsup,Vok,drive
CCon,Vok,drive CCon,CConVinf,CConVsup,Vok,accel,ralent
Vok ralent
1 39 CCon,accel,ralent
CConVsup 29
4 CCoff CCoff,Vok,drive V0
CCon,CConVinf,CConVsup,accel,fc,ralent
CCoff Vnok fc
CCoff CCon
11
CCoff
CConVinf
CCon Vnok CCon,CConVinf,CConVsup,accel,fc,ralent
53 CCoff,Vnok,drive
CConVsup Vnok
34 fc
Vnok Vnok V0,accel,fc,parking,ralent
CConVinf CCoff,V0,drive
V0
36 drive CCon,CConVinf,CConVsup,accel,parking,ralent
CCoff,V0,parking
Vnok
parking CCon,CConVinf,CConVsup,Vnok,Vok,accel,ralent
38
CCon,CConVinf,CConVsup,Vok,accel,ralent
V0
CCon,CConVsup,V0,parking,ralent
CConVinf
Vnok
V0,accel,parking,ralent
parking
V0,parking
V0
parking accel,ralent
crois,diag,endD,phare
Vnok,crois,phare,startD
Vnok,phare,startD
Vnok,off,startD
V0,crois,diag
startD
V0,off phare
endD
pos
0 crois
V0,crois
phare
V0
9
Vnok
crois diag,endD,off
off
V0,pos
pos
V0,diag,phare V0,phare Vnok,phare diag,endD,off,pos,startD
V0,Vnok,crois,diag,endD,off,phare,pos,startD
10 diag,endD,phare
V0
endD Vnok phare Vnok,crois Vnok,pos
4 5 6 12
startD V0 crois
crois Vnok
7 pos 8 diag,endD,phare,startD
off diag,endD,off,startD
pos
diag,endD,off,pos Vnok,off
Vnok,off,pos,startD crois,diag,endD,phare,startD
11
V0
Vnok
Vnok
Vnok 1
diag,endD,startD
V0 V0
V0,diag V0,Vnok,diag,endD,startD
0 startD
Vnok,startD
endD 2 3
diag,endD
5.4 Évaluation
Cette section est consacrée à l’évaluation de notre système. Nous nous intéres-
sons tout d’abord aux performances des méthodes que nous avons décrites dans le
chapitre précédent, puis discutons de la couverture de notre système.
5.4. Évaluation 117
5.4.1 Performances
Pour chacun des cas présentés par la suite, les résultats ont été obtenus en
analysant 100 fois un fichier d’enregistrement qui contient 310440 trames, corres-
pondant à 205 secondes de trafic CAN. En moyenne, nous avons donc 1514 trames
par seconde à analyser. Le système considéré ici est le régulateur de vitesse pré-
senté précédemment. Ainsi, seules les trames impliquées dans le fonctionnement de
ce système subissent des contrôles de cohérence.
En revanche, toutes les trames sont soumises aux deux étapes précédentes, à
savoir l’interprétation des données et l’application des règles de contrôle. Concernant
ces deux étapes, les résultats obtenus sont présentés en table 5.1.
Les fortes variations observées dans l’interprétation sont dues à la diversité des
informations pouvant être contenues dans une trame. En effet, le nombre d’opéra-
tions à effectuer sur le champ de données d’une trame peut varier en fonction de la
taille du champ de données, du nombre de signaux qu’il contient et des éventuelles
opérations à effectuer sur les signaux binaires pour en déduire leur valeur réelle. En
effet, le champ de données d’une trame peut être de petite taille (8 ou 16 bits) et ne
contenir qu’un unique signal, ce qui entraîne un traitement très rapide. À l’opposé,
certaines trames peuvent contenir plusieurs dizaines de signaux stockés sur la to-
talité des 64 bits que peut occuper le champ de données (dans les enregistrements
que nous utilisons, un type de trame contient ainsi plus de 30 signaux). Concernant
les règles, chaque trame subit ici le même nombre de vérifications. Les variations
entre minimum et maximum sont dues aux cas où une anomalie est détectée, ce qui
entraîne la remontée d’une alerte.
Intéressons-nous maintenant aux contrôles de cohérence. Si nous considérons
que notre IDS ne surveille que le régulateur de vitesse, nous obtenons les résultats
présentés en table 5.2, respectivement pour les méthodes utilisant Aattacks et Aright
décrites dans le chapitre 4.
Nous retrouvons bien le fait que la méthode utilisant l’AFD Aattacks effectue
le contrôle de cohérence en temps constant : la moyenne et le minimum sont très
proches, le maximum correspondant aux cas où une anomalie a été détectée. La
118 Chapitre 5. Expérimentations
méthode se basant sur Aright nécessite bien un automate plus petit mais requiert
plus de temps (même si à cette échelle les gains sont négligeables).
Le trafic CAN que nous observons correspondant environ à 1514 trames par
seconde, il s’écoule donc en moyenne 660µs entre chaque trame transmise. Par
conséquent, les durées mesurées lors de l’analyse nous permettent bien de surveiller
le trafic en temps réel puisqu’aussi bien les vérifications de règles que les tests de
cohérence se font respectivement en 110 et 176µs dans le pire des cas. En revanche,
des durées proches de ce seuil ont été observées lorsque l’on considère la durée
totale de traitement d’une trame. Celles-ci sont majoritairement dues à l’interpré-
tation des signaux d’une trame. Des optimisations de cette procédure permettraient
certainement de réduire sa durée.
Pour représenter un système plus important, nous avons calculé le produit syn-
chronisé de tous les systèmes présentés dans ce chapitre (régulateur de vitesse,
contrôle des feux et diagnostic). L’automate réduit résultant de l’opération Aglobal
possède 108 états. L’automate Aattacks correspondant en possède 366. Les analyses
utilisant Aattacks se faisant en temps constant, nous ne présentons dans le tableau 5.3
que les durées observées en utilisant Aright . Rappelons qu’avec cette méthode, la du-
rée maximale de l’analyse de cohérence correspond au début de cette analyse, c’est-
à-dire lorsque l’ensemble Sright contient tous les états de Aright . Or, comme nous
l’avons vu en section 4.4.3, ce nombre d’états diminue fortement dès les premières
trames analysées. Nous retrouvons ce fait ici avec une durée moyenne d’analyse de
49µs qui contraste fortement avec le maximum observé de 779µs.
Table 5.3 – Temps nécessaire à l’IDS pour traiter 310440 trames en utilisant Aglobal
Ici, le pire cas mesuré pour une analyse de cohérence est donc supérieur au
seuil des 660µs. Il est alors probable que des retards se produisent ponctuellement
lors de l’analyse. Cependant le temps moyen mesuré reste lui bien inférieur. La
majeure partie des analyses n’est donc pas fortement impactée par l’utilisation
d’un automate plus complexe.
Ainsi, lors de la modélisation de l’intégralité des calculateurs présents sur un
réseau embarqué, il sera intéressant d’établir précisément quels systèmes doivent
être synchronisés entre eux. En effet, si deux systèmes de taille importante ne sont
pas corrélés, il devient peut-être plus avantageux d’effectuer deux analyses séparées
avec deux automates de taille inférieure plutôt qu’une seule analyse utilisant un
automate plus complexe. En effet, cette dernière nécessiterait d’utiliser un ensemble
Sright beaucoup plus grand et allongerait fortement la durée d’analyse dans les pires
cas.
Les expérimentations ayant été menées sur un prototype développé en python et
exécuté sur ordinateur de bureau, les résultats obtenus ne sont pas directement re-
présentatifs d’un calculateur embarqué en situation réelle. Cependant, les tendances
5.4. Évaluation 119
observées permettent de valider notre démarche, d’autant plus qu’une meilleure op-
timisation peut permettre d’obtenir des gains de temps non négligeables. Ainsi,
une simple compilation de notre prototype effectuée par l’intermédiaire du langage
Cython 1 , qui nous permet de générer automatiquement du code C correspondant à
notre implémentation en Python, offre déjà des gains de performance de l’ordre de
30%.
5.4.2 Couverture
Les automates utilisés par notre solution sont basés sur les spécifications du
réseau et des ECU. Ainsi, lorsque nous avons effectué une analyse sur les enre-
gistrements d’origine, nos tests de cohérence n’ont renvoyé aucun faux positif. En
revanche, si les règles de contrôle ne définissent pas assez précisément les paramètres
à vérifier, des faux positifs peuvent se produire lors de leur vérification. C’est par
exemple ce que nous avons constaté sur le cas du contrôle des feux où des trames
intermédiaires légitimes pouvaient être émises en plus des trames périodiques. Les
solutions pour éviter ce problème consistent en une implémentation d’un mécanisme
de corrélation des alertes tenant compte des spécificités de certaines trames, ce qui
peut néanmoins laisser une certaine marge de manœuvre à un attaquant ou en s’as-
surant qu’un test de cohérence appliqué par la suite sera capable de détecter une
anomalie dans la séquence de trames observée.
Cependant, il peut arriver qu’une partie du système réel ne respecte pas stric-
tement les spécifications (comme cela a été observé dans [KCR+ 10]), par exemple
en incluant des fonctionnalités non documentées. Des déviations par rapport au
modèle peuvent se produire. Dans de tels cas, notre système peut alors considérer
qu’une attaque est en cours alors qu’il observe en réalité l’une de ces déviations.
Une solution possible à ce problème serait de générer (ou d’assister la génération de)
l’automate Asys via des algorithmes d’apprentissage. Cependant, cela nous ramène
alors aux problématiques liées à la détection d’anomalie via des modèles statistiques
(cf. 3.4.1).
De plus, certaines attaques peuvent n’être jamais détectées si notre observation
n’a pas pu analyser certaines trames. Par exemple, considérons les deux séquences
suivantes (chaque lettre est un symbole) : la première, a(xyz)*o est légitime, alors
que la seconde, b(xyz)*o est interdite. Si notre système a commencé son analyse
après que le premier symbole de la séquence a été transmis, il ne pourra pas détecter
l’attaque correspondant à la deuxième séquence. Par conséquent, si un attaquant
est capable de forcer notre IDS à recommencer une analyse à zéro, il peut alors
échapper à la détection. Une telle situation est envisageable si, par exemple, notre
IDS est intégré à un autre ECU pouvant être redémarré via une trame donnée,
ou encore si l’attaquant choisit délibérément de faire détecter par notre IDS une
séquence interdite (mais aux conséquences minimes) sur le même système, lui faisant
reprendre son analyse à zéro.
1. http://cython.org/
120 Chapitre 5. Expérimentations
Par ailleurs, nous n’avons ici travaillé qu’avec des AFD « basiques ». En effet,
nous dérivons nos automates des spécifications des systèmes à surveiller. Or, ceux-ci
sont souvent eux-mêmes décrits sous la forme de machines à états. Ainsi, l’utilisa-
tion d’AFD permettait une mise en œuvre aisée d’une première implémentation et
convenait aux scénarios que nous devions analyser. Cependant, il n’est pas à ex-
clure que la complexité croissante des systèmes embarqués dans l’automobile mène
à une diversité de scénarios ne pouvant pas être détectés par des AFD à l’expressi-
vité limitée. Par exemple, le temps n’est pas directement pris en compte dans nos
automates (nous utilisons le premier niveau de contrôles pour vérifier la fréquence
d’émission de chaque trame), ceux-ci nous servant seulement à vérifier l’ordre dans
lequel les données sont transmises sur le réseau. Cependant, il pourrait exister des
attaques où non seulement l’ordre, mais également les intervalles de temps entre
des trames distinctes importent. En l’état, nous ne sommes pas aptes à détecter de
telles attaques. En fonction des scénarios envisagés, une évolution possible de notre
système pourrait inclure des automates plus expressifs (voir par exemple [SEJ08])
afin d’améliorer ses capacités de détection.
Malgré les limites que nous venons d’identifier, notre IDS s’avère efficace et
performant dans une majorité des cas d’attaques identifiés, c’est-à-dire les les cas
où l’attaquant ne possède pas à la fois 1) une connaissance précise du comportement
attendu des différents ECU qui composent le système qu’il cible, et 2) la capacité
d’empêcher l’émission de certains messages légitimes pour lesquels nous ne sommes
pas en mesure d’effectuer des tests de corrélation.
5.5 Conclusion
Dans ce chapitre, nous avons présenté et évalué une première implémentation de
notre système de détection d’intrusion. N’ayant pu tester la détection d’intrusion en
situation réelle, nous avons choisi de mener nos évaluations sur des enregistrements
de trafic CAN que nous modifions afin d’intégrer les scénarios d’attaques que nous
cherchons à détecter. Ne possédant pas de nombreux exemples de scénarios d’at-
taques contre des réseaux embarqués, a fortiori transposables au véhicule sur lequel
nous avons pris nos enregistrements, nous avons dû utiliser une même source (les
spécifications du système) pour générer les attaques et les mécanismes de défense.
Il nous est donc malaisé de déterminer avec précision la couverture de notre sys-
tème. Cependant, nous pouvons noter que les mécanismes implémentant des tests
de cohérence n’ont comme prévu pas levé de faux positifs lors de nos analyses.
Concernant les performances de notre système, là aussi, les résultats de nos expé-
riences correspondent à la théorie présentée dans le chapitre précédent. La méthode
utilisant un AFD AAttacks effectue bien ses analyses en temps constant alors que la
méthode utilisant Aright utilise un automate plus petit mais nécessite plus de temps
pour analyser une trame en moyenne. Sur des systèmes de petite et moyenne taille,
les performances obtenues avec les deux méthodes sont satisfaisantes et permettent
d’analyser l’intégralité du trafic CAN d’une automobile en temps réel. En revanche,
5.5. Conclusion 121
pour des systèmes de très grande taille, pour lesquels il deviendrait trop coûteux de
stocker un automate Aattacks , il est possible que le temps nécessaire pour analyser
une trame avec Aright devienne trop grand (de l’ordre de la milliseconde), ce qui
risque d’entraîner des retards dans l’analyse. Cependant, comme nous l’avons vu
dans le chapitre précédent, l’efficacité de cette méthode augmente avec le nombre
de trames déjà analysées puisque la taille de Sright diminue exponentiellement avec
la durée de l’observation.
Par ailleurs, nous ne nous sommes concentrés ici que sur l’évaluation des diffé-
rents mécanismes de détection, particulièrement les tests de cohérence qui consti-
tuent notre principale contribution. Cependant, comme nous l’avons déjà men-
tionné, il n’est peut être pas nécessaire d’alerter le conducteur à la première ano-
malie détectée, surtout si celle-ci concerne un système peu critique. La conception
d’un mécanisme qui corrèle les différentes alertes levées par notre système afin de
prendre une décision adaptée doit être la prochaine étape dans la conception d’un
IDS véritablement autonome. Nous avons mentionné à ce sujet les travaux présentés
dans [MGF10] qui nous semblent constituer une piste de réflexion intéressante.
Conclusion générale
L’augmentation constante du nombre de fonctionnalités dévolues aux calcula-
teurs embarqués et les multiples capacités de communication dont sont désormais
équipées les automobiles ont fait émerger de nombreuses problématiques de sécurité-
immunité auxquelles les constructeurs se doivent de répondre. Afin de protéger au
mieux le système complexe que représente une voiture, la mise en place des poli-
tiques de sécurité doit se faire en ayant une vision d’ensemble des systèmes concernés
et de la diversité des attaques qui peuvent les cibler. Ainsi, le déploiement de méca-
nismes de sécurité préventifs, visant à empêcher un attaquant de s’introduire dans
le système, est une solution nécessaire mais pas suffisante. En effet, un moyen de
protection, même très bien conçu, peut parfois être contourné, par exemple grâce
à de nouvelles techniques encore inconnues au moment de sa conception. Ainsi, la
mise en place de mécanismes dont le but est de détecter la présence d’un attaquant
au sein même du système permet d’établir une ligne de défense supplémentaire
lorsqu’une intrusion a réussi. Au vu de la grande diversité d’architectures réseaux
embarquées dans les véhicules actuels, des contraintes spécifiques à la conception
de systèmes embarqués dans l’automobile et du caractère relativement récent des
problématiques de sécurité-immunité liées aux systèmes embarqués dans les auto-
mobiles, l’objectif principal de cette thèse était de proposer une première implémen-
tation d’un système de détection d’intrusions adapté à des architectures de réseaux
embarqués actuelles (utilisant CAN) et dont les principes pourront être adaptés aux
véhicules de demain.
Dans ce manuscrit, nous avons tout d’abord présenté les caractéristiques des
systèmes embarqués dans l’automobile, en nous intéressant particulièrement aux
protocoles de communication employés sur leurs réseaux et plus spécifiquement au
plus employé d’entre eux (et standard de facto) à l’heure actuelle : CAN. Nous avons
ensuite étudié les vulnérabilités de ces réseaux ainsi que les différents scénarios d’at-
taques possible contre un véhicule moderne, pour lesquels nous avons proposé une
classification. Après avoir établi un état de l’art des différents mécanismes de sé-
curité pouvant être appliqués aux systèmes embarqués dans une automobile, nous
avons présenté le fonctionnement de notre système de détection d’intrusions. Celui-
ci fait actuellement l’objet d’une demande de brevet 1 . Notre principale contribution
dans ce domaine est la description d’une méthode permettant d’effectuer une cor-
rélation entre les trames observées sur le réseau :
1. À partir de spécifications décrivant le fonctionnement des systèmes embarqués
sous la forme de machines à état, nous générons un langage régulier décrivant
un ensemble de séquences interdites.
2. Ce langage est représenté par un automate fini déterministe qui est alors
parcouru lors de l’analyse en ligne des trames circulant sur le réseau.
1. demande FR1459640 déposée le 8 octobre 2014
124 Conclusion générale
Enfin, des premières expérimentations menées sur des cas d’utilisation relativement
simples nous ont permis de démontrer la faisabilité de nos méthodes. Ces expéri-
mentations nous ont également permis d’exprimer les avantages et les limites de
notre approche. Ces analyses doivent être confirmées par des essais à l’échelle d’un
véhicule complet.
Au delà de la nécessité d’effectuer des essais à plus grande échelle avant d’envi-
sager un déploiement au sein d’un véhicule pouvant être commercialisé, la conduite
de ces travaux nous permet d’envisager d’autres perspectives de recherche.
Tout d’abord, suite aux différents scénarios d’attaques et aux vulnérabilités
identifiées dans le chapitre 2, la mise en place de recommandations et de standards
concernant la sécurité-immunité des systèmes embarqués dans les automobiles nous
semble nécessaire, similairement à ce qui a été fait concernant la sécurité-innocuité
de ces systèmes (ISO 26262). Une coopération entre constructeurs et experts en
sécurité, comme ce fut le cas pour les projets de sécurisation des communications
Car2X présentés dans le chapitre 3, permettrait ainsi d’établir de tels standards (et
d’éventuelles certifications associées), afin de concevoir des véhicules plus sûrs en
limitant les surcoûts et de rassurer une clientèle de plus en plus préoccupée par les
questions de sécurité informatique.
Par ailleurs, lors de nos travaux, nous nous sommes concentrés exclusivement
sur le protocole CAN car les systèmes sur lesquels nous pouvions expérimenter com-
muniquaient via des bus CAN. Or, comme nous l’avons vu dans le chapitre 1, il
existe de nombreux autres protocoles de communication utilisables dans les auto-
mobiles et CAN est amené à perdre son statut de standard de facto à plus ou moins
long terme. Ainsi, si dans le cas de CAN, nous pouvons nous permettre d’analyser
en temps réel et en profondeur toutes les trames circulant sur le réseau, l’utilisation
de protocoles présentant des débits plus élevés et transportant des données plus
complexes pourrait remettre en question ce principe. Dans les cas où de telles tech-
nologies sont employées, il convient alors de vérifier la faisabilité de notre méthode,
ou du moins d’adapter celle-ci pour tenir compte des spécificités de ces réseaux. De
même, une éventuelle mise en place de mécanismes de chiffrement ou de signature
des messages sur les réseaux internes impliquera aussi d’adapter notre IDS pour la
prendre en compte. Cependant, au delà du temps traitement supplémentaire cor-
respondant au déchiffrement des messages ou à la vérification d’une signature (dans
les cas où cela s’avérerait nécessaire), les principes que nous avons employés pour la
détection d’intrusion en tant que telle (règles de contrôle et utilisation d’automates
finis) ne devraient pas être impactés.
De plus, les architectures réseaux des véhicules évoluent avec chaque nouveau
modèle. La conception d’une version distribuée de notre système de détection d’in-
trusion, consistant en différents modules répartis sur les différents domaines du
Conclusion générale 125
[Cha09] Robert N Charette : This car runs on code. IEEE Spectr., 46(3):3,
2009. (Cité en pages 5 et 7.)
[CMK+ 11] Stephen Checkoway, Damon McCoy, Brian Kantor, Danny An-
derson, Hovav Shacham, Stefan Savage, Karl Koscher, Alexei
Czeskis, Franziska Roesner, Tadayoshi Kohno et al. : Compre-
hensive experimental analyses of automotive attack surfaces. In Proc.
20th USENIX Security, San Francisco, CA, 2011. (Cité en pages 39,
40, 41, 42, 44, 45 et 76.)
[DBF91] Yves Deswarte, Laurent Blain et J-C Fabre : Intrusion tolerance
in distributed computing systems. In Research in Security and Pri-
vacy, 1991. Proceedings., 1991 IEEE Computer Society Symposium
on, pages 110–121. IEEE, 1991. (Cité en page 22.)
[DVD11] Leandro D’Orazio, Filippo Visintainer et Marco Darin : Sensor
networks on the car : State of the art and future challenges. In De-
sign, Automation & Test in Europe Conference & Exhibition (DATE),
pages 1–6, Grenoble, France, 2011. (Cité en page 17.)
[EKM+ 08] Thomas Eisenbarth, Timo Kasper, Amir Moradi, Christof Paar,
Mahmoud Salmasizadeh et Mohammad Shalmani : On the power
of power analysis in the real world : A complete break of the keeloq
code hopping scheme. Advances in Cryptology, pages 203–220, 2008.
(Cité en page 43.)
[EM13] Christopher E. Everett et Damon McCoy : Octane (open car
testbed and network experiments) : Bringing cyber-physical security
research to researchers and students. In Presented as part of the 6th
Workshop on Cyber Security Experimentation and Test, Washington,
D.C., 2013. USENIX. (Cité en page 37.)
[FDC10] Aurélien Francillon, Boris Danev et Srdjan Capkun : Relay at-
tacks on passive keyless entry and start systems in modern cars. IACR
ePrint Report, 2010/332, 2010. (Cité en page 43.)
[GHR+ 09] André Groll, Jan Holle, Christoph Ruland, Marko Wolf, Tho-
mas Wollinger et Frank Zweers : Oversee a secure and open
communication and runtime platform for innovative automotive ap-
plications. In 7th Embedded Security in Cars Conference (ESCAR),
Düsseldorf, Germany, 2009. (Cité en pages 58 et 59.)
[GMVHV12] Bogdan Groza, Stefan Murvay, Anthony Van Herrewege et In-
grid Verbauwhede : Libra-can : a lightweight broadcast authentica-
tion protocol for controller area networks. In Proc. 11th Int. Confe-
rence Cryptology and Network Security, CANS, Darmstadt, Germany,
2012. (Cité en page 56.)
[HB95] L. R. Halme et K. R. Bauer : AINT misbehaving : A taxonomy of
anti-intrusion techniques. Computers and Security, 14:606–606, 1995.
(Cité en pages 52 et 53.)
Bibliographie 129
[SEJ08] Randy Smith, Cristian Estan et Somesh Jha : Xfa : Faster signature
matching with extended automata. In IEEE Symposium on Security
and Privacy, pages 187–201. IEEE, 2008. (Cité en page 120.)
[SNA+ 13a] Ivan Studnia, Vincent Nicomette, Éric Alata, Yves Deswarte,
Mohamed Kaâniche et Youssef Laarouchi : Security of embedded
automotive networks : state of the art and a research proposal. In
SAFECOMP 2013-Workshop CARS (2nd Workshop on Critical Au-
tomotive applications : Robustness & Safety) of the 32nd International
Conference on Computer Safety, Reliability and Security, 2013. (Cité
en page 27.)
[SNA+ 13b] Ivan Studnia, Vincent Nicomette, Eric Alata, Yves Deswarte,
Mohamed Kaâniche et Youssef Laarouchi : Survey on security
threats and protection mechanisms in embedded automotive net-
works. In 2nd Workshop on Open Resilient Human-aware Cyber-
Physical Systems, Budapest, Hungary, 2013. (Cité en page 27.)
[SNAK12] Ivan Studnia, Vincent Nicomette, Éric Alata et Mohamed Kaâ-
niche : Plateforme distribuée de pots de miel haute-interaction et
résultats expérimentaux. In 7eme Conférence sur la Sécurité des Ar-
chitectures Réseaux et Systèmes d’Information (SARSSI), 2012. (Cité
en page 68.)
[SP08] Karen Scarfone et John Padgette : Guide to bluetooth security.
NIST Special Publication, 800:121, 2008. (Cité en page 49.)
[SPS+ 09] Sandro Schulze, Mario Pukall, Gunter Saake, Tobias Hoppe et
Jana Dittmann : On the need of data management in automo-
tive systems. In BTW, volume 144, pages 217–226, 2009. (Cité en
page 60.)
[SR12] Hendrik Schweppe et Yves Roudier : Security and privacy for in-
vehicle networks. In Vehicular Communications, Sensing, and Com-
puting (VCSC), pages 12–17, Seoul, Korea, 2012. IEEE. (Cité en
page 60.)
[SRW+ 11] Hendrik Schweppe, Yves Roudier, Benjamin Weyl, Ludovic Ap-
vrille et Dirk Scheuermann : Car2x communication : securing
the last meter-a cost-effective approach for ensuring trust in car2x
applications using in-vehicle symmetric cryptography. In Vehicular
Technology Conference (VTC Fall), pages 1–5, San Francisco, CA,
2011. IEEE. (Cité en page 57.)
[TCG11] TPM main specification. http://www.trustedcomputinggroup.
org/resources/tpm_main_specification, 2011. [Online ; accessed
February-2013]. (Cité en page 56.)
[VHSV11] Anthony Van Herrewege, Dave Singelee et Ingrid Verbauw-
hede : Canauth-a simple, backward compatible broadcast authenti-
Bibliographie 133
cation protocol for can bus. In 9th Embedded Security in Cars Confe-
rence, Dresden, Germany, 2011. (Cité en page 56.)
[VNLJ08] Vilhelm Verendel, Dennis K Nilsson, Ulf E Larson et Erland
Jonsson : An approach to using honeypots in in-vehicle networks. In
68th Vehicular Technology Conference, pages 1–5, Calgary, Canada,
2008. IEEE. (Cité en pages 35, 68 et 70.)
[WWP04] Marko Wolf, André Weimerskirch et Christof Paar : Security in
automotive bus systems. In 2nd Embedded Security in Cars Work-
shop (ESCAR 2004), pages 11–12, Bochum, Germany, 2004. (Cité en
page 32.)
[WWW07] Marko Wolf, André Weimerskirch et Thomas Wollinger : State
of the art : Embedding security in vehicles. EURASIP Journal on
Embedded Systems, 2007. (Cité en page 34.)
[Yu01] S Yu : State complexity of regular languages. Journal of Automata,
Languages and Combinatorics, 6(2):221–234, 2001. (Cité en page 91.)
[ZWT09] Tobias Ziermann, Stefan Wildermann et Jürgen Teich : Can+ :
A new backward-compatible controller area network (can) protocol
with up to 16× higher data rates. In Design, Automation & Test in
Europe Conference & Exhibition, 2009. DATE’09., pages 1088–1093.
IEEE, 2009. (Cité en page 56.)
Résumé
Les calculateurs embarqués dans les automobiles, ou ECU (Electronic Control Unit)
sont responsables d’un nombre croissant de fonctionnalités au sein du véhicule. Pour
pouvoir coordonner leurs actions, ces calculateurs s’échangent des données via des
bus de communication et forment ainsi un véritable réseau embarqué. Si histori-
quement ce réseau pouvait être considéré comme un système fermé, l’apparition de
nombreux moyens de communication dans les automobiles a ouvert ce réseau au
monde extérieur et fait émerger de nombreuses problématiques de sécurité dans ce
domaine.
Nos travaux s’inscrivent dans une démarche de mise en place de moyens de
sécurité-immunité dans les réseaux automobiles. La thématique de la sécurité-
immunité dans l’automobile étant un sujet relativement récent, un effort particulier
a été apporté à la définition du contexte. Ainsi, dans ce manuscrit, nous décrivons
les menaces qui peuvent cibler ces systèmes embarqués, proposons une classifica-
tion des scénarios d’attaques puis présentons les différents mécanismes de sécurité
pouvant être appliqués aux systèmes embarqués d’une automobile.
Ensuite, afin de compléter les mesures de sécurité préventives mises en place
pour empêcher un attaquant de pénétrer au cœur du réseau embarqué, nous
proposons dans cette thèse un système de détection d’intrusion pour les ré-
seaux automobiles embarqués. Celui-ci, conçu à partir des spécifications du ou
des systèmes à surveiller, intègre notamment des mécanismes permettant d’ef-
fectuer une corrélation des messages observés sur le réseau afin d’identifier
des séquences de messages suspectes. Après avoir décrit formellement le fonc-
tionnement de notre système de détection, nous présentons de premières ex-
périmentations visant à valider notre méthode et à évaluer ses performances.