Académique Documents
Professionnel Documents
Culture Documents
Faculté de Technologie
Département Ingénierie des Systèmes Electriques
Exposé
Présenté par :
Thème :
1 Introduction
Les systèmes embarqués prennent un rôle et une place chaque jour de plus en plus importants
dans tous les aspects des activités humaines. Ils sont utilisés pour de nombreuses applications,
aussi bien dans les domaines de la défense, de l'aérospatiale, du nucléaire que dans le secteur
automobile.
L’avancée technologique que les systèmes embarqués ont connue lors de ces dernières années les
rend de plus en plus complexes. Ils sont non seulement responsables de la commande des
différents composants mais aussi de leur surveillance. A l’occurrence d’événements pouvant
mettre en danger la vie des utilisateurs, une certaine configuration du système est exécutée afin de
maintenir le système dans un état dégradé mais sûr. Malheureusement, il est fort probable que la
configuration échoue conduisant le système dans un état appelé « état redouté » avec des
conséquences dramatiques pour le système et l’utilisateur.
L'évolution rapide de ces systèmes qui ne cesse de s’arrêter et la sensibilité des informations
manipulées par ces systèmes font l'objet de plusieurs menaces, notamment dans les systèmes
critiques et/ou complexes, tels que les centrales nucléaires, les avions et engins spatiaux, les
véhicules et les infrastructures des systèmes de transport routiers et ferroviaires. Les besoins de
sécurité sont donc devenus de plus en plus intenses, ce qui a fait de la sécurité des systèmes
embarqués un domaine critique qu’il faut prendre en charge.
Dans cet article, nous commencerons dans un premier temps par faire une
présentation des systèmes embarqués ainsi les concepts de base de la sécurité. Puis on
exposera les différentes sources d’attaques qui peuvent menacer un système embarqué,
la classification de ces attaques et contre-attaques les plus connues de la littérature.
Par la suite, on présentera la carte à puce, puis nous donnons un aperçu des grandes
classes d’attaques physiques, de leurs principes et des contre-mesures destinées à les
rendre difficiles ou à les contrer.
2 Les systèmes embarqués
2.1 Définition
Les systèmes embarqués sont des composants électroniques issus de la combinaison de
matériel, de logiciel qui interagissent avec l’environnement. Ils sont modélisés pour
résoudre un problème ou effectuer des tâches spécifiques plutôt que des tâches
multiples d’usage général comme c’est le cas pour les systèmes traditionnels tel que
l’ordinateur [4].
Cette architecture peut varier selon les systèmes : on peut par exemple, ne pas trouver de
systèmes auxiliaires dans de nombreux systèmes embarqués autonome et indépendants. En
revanche, l'architecture de base est la plupart du temps composée d'une unité centrale de
traitement (CPU), d'un système d'exploitation qui réside parfois uniquement en un logiciel
spécifique (routeur). De même l'interface IHM1 n'est pas souvent existante, mais est souvent
utile pour reconfigurer le système ou vérifier son comportement.
Le fonctionnement du système se résume ainsi :
1. Il reçoit des informations de l'environnement extérieur qu'il converti en signal
numérique.
2. L'unité de traitement composée du CPU, de la mémoire, du logiciel, de l'ASIC2 et
éventuellement de système externes traite l'information.
3. Le traitement génère éventuellement une sortie qui est envoyée vers la sortie, les
systèmes auxiliaire, les ports de monitoring ou l'IHM.
3.1 La confidentialité
La confidentialité consiste à arrêter les utilisateurs non autorisés d'accéder aux informations
sensibles stockées ou communiqué par le système. La majeure partie de la recherche en sécurité
informatique a été centrée sur la confidentialité.
3.2 L’intégrité
L'intégrité des données garantit que les données dans le système embarqué n'ont pas
été supprimées ou modifiée sans autorisation, que ce soit par une erreur, un utilisateur
malveillant ou un virus.
3.3 La disponibilité
La disponibilité fait référence que le système embarqué soit accessible en cas de
besoin par une entité autorisée, et sans retard non justifié. Par exemple, la disponibilité
est de s'assurer que les dénis de service ne réussissent pas.
Cependant, l'accessibilité d'un système ne signifie pas qu'il est disponible car le
système doit aussi remplir sa fonction correctement.
La [Figure 2] montre une classification générale des attaques sur les systèmes
embarqués, dont le 1er niveau montre la classification selon l'objectif fonctionnel.
Dans ce niveau on peut distinguer 3 types d’attaques :
Figure 3. Classification des attaques dans les systèmes embarqués selon les méthodes
utilisées.
Programmes simples qui exécutent un programme en tâche de fond. Ils ne peuvent pas se
reproduire, ils servent souvent à ouvrir une brèche cachée dans le système pour y faire pénétrer
un pirate [4], par exemple : Cheval de Troie et Bombe Logique (dans le cas de la bombe logique
le départ du programme est retardé).
Programmes autoreproducteurs par exemple : Un ver est un virus très virulent qui se diffuse de
façon planétaire.
La plus part des systèmes embarqués ont une zone mémoire extérieure au SoC 3principal. Des
données et des instructions sont échangés entre le processeur et la mémoire sur un ou plusieurs
bus (adresse, instruction, donnée)
1. Attaques passives : écoute du bus (bus probing) par analyse hors ligne du code est
la reconstitution d'une clé de chiffrement, qui permet de faire une reconstitution de
message, ce qui constitue une matière première pour préparer une attaque active.
4. attaques par perturbation (Bien que ce dernier type d'attaque n'utilise pas
directement les informations disponibles par canaux auxiliaires, il est très
souvent classé comme tel dans la littérature) : Les attaques à base d'injection
de faute s'appuyé sur la variation et le changement des paramètres externes d'un
système embarqué afin d'inciter des fautes dans ses composants .Les fautes injectées
peuvent être transitoire ou permanant, et peuvent compromettre la sécurité d'un système
dans plusieurs points :
Les fautes peuvent être injectées afin de perturber le fonctionnement normal d'un
système afin d’attaquer sa disponibilité. Par exemple : le bus dans un système embarqué
(ex : carte à puce) peut être rendu indisponible pour effectuer des communications, ceci
est possible par le biais de mettre une valeur constante sur le bus.
L'injection des fautes peuvent être utilisé aussi afin d’attaquer un système embarqué par
le fait de changer ou altérer les valeurs stockés dans les composants du système
(introduit des bruits).
La [Figure 7], schématise la classification des contres attaques selon le moment d'intervention.
La majorité des attaques sur les systèmes embarqués sont à base des canaux cachés
(Analyse du temps, analyse d'énergie, rayonnement électromagnétique, etc.…).
Diverses techniques de protection contre ces attaques ont été proposées afin d'éliminer les
symptômes qui rendent un système embarqué vulnérable.
L'une de ces techniques est la randomisation qui permet de donner des faut mesures à l'attaquant.
L'utilisation d'un signal d'horloge aléatoire est proposée dans comme un moyen efficace
d'introduire le non déterminisme dans les processeurs des cartes à puce [5].
Ainsi, l'utilisation des données supplémentaire (donnée de masquage) et l'introduction des bruits
permettent de perturber les mesures dans les attaques à base d'analyse d'énergie.
Figure 8. Les contacts d'un module de carte à puce Elle se compose de 8 zones
[3] :
Conclusion
En conclusion, nous tenons à souligner l’énorme défi technique et conceptuel que représente
la création d’un mécanisme de sécurisation des systèmes embarqués. Dans ce travail, nous
avons examiné les différentes formes d’attaques d’un système embarqué.
Pour ces scénarios, nous avons également vu comment une panoplie de contres attaques a été
élaborée par les chercheurs pour fournir des systèmes embarqués sûrs.
Il faut noter que même dans les cas où la sécurité a été prise en compte depuis le début, le
développeur doit faire face à des contraintes matérielles. Enfin nous tenons à souligner la très
grande activité des recherches dans le domaine qui est un sujet d’actualité.