Blog

Pourquoi la sécurité de bout en bout est essentielle pour les systèmes embarqués

August 19, 2021
Secure Code Warrior
Gros plan sur l'objectif d'une caméra de surveillance circulaire reflétant des bâtiments et une personne tenant un appareil photo.

Les systèmes embarqués sont au cœur de nombreuses technologies modernes. Du régulateur de vitesse adaptatif de votre voiture au Wi-Fi de votre réfrigérateur intelligent, la multiplication des cyberattaques rend la sécurisation de ces systèmes indispensable.

Les appareils embarqués sont des cibles privilégiées pour le piratage, car une attaque réussie peut donner aux intrus accès aux données qu'ils produisent, reçoivent et traitent. Cela peut souvent avoir de graves répercussions sur le système global piloté par l'appareil embarqué. Par exemple, neutraliser un appareil embarqué au sein d'un avion de chasse F-15, qui collecte des données provenant de diverses caméras et capteurs, peut considérablement entraver les capacités de défense de l'appareil.

Nous avons rédigé cet article pour couvrir tout ce dont vous avez besoin pour commencer à développer des systèmes embarqués sécurisés. Voici ce qui est inclus :

  • Qu'est-ce que la sécurité embarquée ?
  • Les défis rencontrés lors de la mise en œuvre de la sécurité embarquée.
  • Qu'est-ce qui rend un système embarqué « sécurisé » ?
  • Pourquoi la sécurité de bout en bout est-elle importante dans un écosystème embarqué ?
  • Quelques outils de sécurité embarquée.
  • Que manque-t-il aux solutions embarquées classiques ?
  • L'avenir de la sécurité embarquée.

Qu'est-ce que la sécurité embarquée ?

La sécurité embarquée fournit les outils, les processus et les meilleures pratiques pour sécuriser les logiciels et le matériel des appareils embarqués.

En raison de la petite taille des modules matériels des systèmes embarqués, ils présentent diverses limitations en termes de mémoire et de stockage. Intégrer des mesures de sécurité devient donc un défi de conception majeur. Cependant, aussi complexe soit-il, c'est une nécessité absolue aujourd'hui.

Bon nombre des gadgets et machines pilotés par des appareils embarqués sont également connectés à Internet. Cela signifie que les pirates peuvent y accéder sans autorisation et exécuter du code malveillant.

Le piratage d'un appareil embarqué peut souvent se propager à d'autres composants connectés et/ou paralyser l'ensemble du système. Supposons, par exemple, qu'un attaquant parvienne à prendre le contrôle d'un appareil embarqué permettant le pilotage automatique d'une voiture. Le pirate pourrait alors dévier le véhicule de sa trajectoire ou le diriger vers la circulation, causant potentiellement des dégâts considérables.

Défis critiques de la sécurité des systèmes embarqués

La sécurité des systèmes embarqués ne reçoit pas l'attention qu'elle mérite. Voici quelques raisons :

  1. Manque de sensibilisation des développeurs :

Les développeurs ignorent généralement les meilleures pratiques pour concevoir des appareils embarqués sécurisés. Cela s'explique en partie par le point n°2, et en partie par le fait que les applications embarquées sont bien plus complexes que les applications logicielles traditionnelles. Comprendre leurs implications en matière de sécurité et écrire un code sûr et performant pour tous les cas d'utilisation, qui plus est dans un environnement de micro-ordinateur contraint, peut s'avérer difficile.

  1. Manque de normalisation :

Il existe un manque de normes de cybersécurité pour les systèmes embarqués, bien que l'industrie automobile tente lentement de changer la donne. Ces dernières années, des chercheurs ont publié plusieurs documents abordant les considérations de cybersécurité pour les véhicules intelligents. Parmi les plus notables, on peut citer la norme SAE J3061, « Cybersecurity Guidebook for Cyber-Physical Vehicle Systems » et le règlement CEE-ONU n° 29 sur la cybersécurité et les processus de mise à jour logicielle.

  1. Utilisation de composants tiers

De nombreux appareils embarqués nécessitent des composants matériels et logiciels tiers pour fonctionner. Ces composants sont souvent utilisés sans avoir été testés pour détecter d'éventuelles failles de sécurité ou vulnérabilités.

  1. Logiciels obsolètes

Un micrologiciel obsolète est généralement truffé de bugs et de vulnérabilités potentiellement exploitables. Bien qu'il puisse être particulièrement difficile de mettre à jour périodiquement le micrologiciel d'un petit appareil embarqué, c'est un aspect qui ne peut être ignoré.

  1. Connectivité internet directe

De nombreux systèmes et appareils embarqués sont directement connectés à internet. Cela signifie qu'ils ne bénéficient pas de la protection des pare-feu d'entreprise, capables de détecter et de prévenir les attaques réseau. Avec des ressources limitées, il devient très difficile de mettre en œuvre des niveaux de sécurité rigoureux dans un environnement aussi contraint.

  1. Attaque à grande échelle

Les appareils embarqués sont généralement produits à grande échelle. Cela signifie qu'une seule vulnérabilité ou faille peut affecter des millions d'appareils, parfois dans le monde entier. Maîtriser l'impact d'une attaque sur un système embarqué peut donc représenter un défi colossal.

Qu'est-ce qui rend un système embarqué sécurisé ?

Dans les sections suivantes, nous examinerons certaines caractéristiques matérielles et logicielles des systèmes embarqués sécurisés.

Bonnes pratiques de sécurité matérielle

Un système embarqué sécurisé dispose de :

  • Un environnement d'exécution sécurisé

Un environnement d'exécution sécurisé (TEE) permet une isolation au niveau matériel des opérations critiques pour la sécurité. Par exemple, l'authentification des utilisateurs peut être exécutée dans une zone isolée, ce qui permet une meilleure protection des informations sensibles.

  • Ressources matérielles correctement partitionnées

Les différents composants matériels tels que le ou les processeurs, le cache, la mémoire et les interfaces réseau, etc., doivent être correctement isolés afin d'assurer leurs fonctions de la manière la plus indépendante possible. Cela permet d'éviter qu'une erreur dans un composant ne se propage aux autres.

  • Protection de l'espace exécutable (ESP)

La protection de l'espace exécutable, ou ESP, consiste à marquer certaines zones de la mémoire comme non exécutables. Si quelqu'un tente d'exécuter du code dans ces zones marquées, une exception est déclenchée.

Bonnes pratiques de sécurité logicielle

Les bonnes pratiques suivantes doivent être gardées à l'esprit lors de la conception de logiciels embarqués :

  • Utiliser un démarrage sécurisé :

Lors du démarrage d'un appareil embarqué, l'image de démarrage est vérifiée à l'aide d'algorithmes cryptographiques. Cela garantit que la séquence de démarrage est correcte et que le logiciel (micrologiciel et toute autre donnée pertinente) n'a pas été altéré.

  • Utiliser un système d'exploitation à micro-noyau

Un système d'exploitation à micro-noyau est beaucoup plus compact qu'un système traditionnel, car il ne contient qu'un sous-ensemble de ses fonctionnalités. L'espace noyau est réduit au minimum, et de nombreux services utilisateur (comme la gestion du système de fichiers, etc.) sont conservés dans un espace distinct, appelé espace utilisateur. Comme le code et les opérations exécutés dans l'espace noyau sont moins nombreux, la surface d'attaque est considérablement réduite.

  • Utiliser des applications logicielles correctement packagées

Toutes les applications logicielles doivent être autonomes et correctement packagées. Par exemple, si une application nécessite une dépendance tierce, celle-ci ne doit pas être installée globalement sur le système d'exploitation, mais intégrée au package ou au conteneur de l'application.

  • Valider toutes les entrées

Toutes les données provenant de sources externes ou non fiables doivent être correctement assainies et validées avant d'être transmises aux composants logiciels ou matériels critiques.

Si une application récupère des données via une intégration API externe et modifie un paramètre en fonction de celles-ci, les données reçues doivent être rigoureusement validées avant que le paramètre ne soit modifié.

  • Protéger les données au repos :

Tous les logiciels sensibles, données, fichiers de configuration, clés sécurisées et mots de passe stockés sur un appareil embarqué doivent être protégés, généralement par chiffrement. Les clés privées utilisées pour chiffrer ces données doivent être conservées dans un matériel de sécurité dédié et conçu à cet effet.

La pyramide de sécurité : sécurité de bout en bout pour les systèmes embarqués

L'époque où la sécurité était une réflexion après coup, une exigence non fonctionnelle, est révolue. Aujourd'hui, la sécurité doit être intrinsèque. Les appareils doivent être sécurisés dès leur conception. À cette fin, il est essentiel de mettre en œuvre des exigences de sécurité de bout en bout dans un environnement embarqué. Cela signifie qu'il faut penser à la sécurité lors du choix du matériel, de la définition de l'architecture système, de la conception du système et, bien entendu, lors de l'écriture du code.

Commencer par le matériel

Quelle que soit la robustesse de votre sécurité logicielle, si votre matériel est défaillant, vous serez vulnérable aux attaques. Les techniques de sécurité sur puce permettent un démarrage sécurisé ainsi qu'une gestion efficace des fonctions cryptographiques et des secrets. Certains composants matériels permettent également au système d'exploitation d'offrir diverses fonctionnalités de sécurité, telles que la détection d'anomalies dans les appels système, le chiffrement du système de fichiers et les politiques de contrôle d'accès.

Un système tolérant aux pannes

Il existe de nombreuses raisons de concevoir un système tolérant aux pannes, et éviter les attaques par analyse différentielle de fautes n'en est qu'une. Dans ce type d'attaque, un pirate peut utiliser des techniques d'injection de fautes pour tenter de provoquer des erreurs dans un appareil embarqué. Il existe toutefois plusieurs moyens de détecter ces fautes et de s'en protéger :

  • Répliquer les opérations les plus critiques afin de comparer les sorties à tout moment et détecter l'injection d'une faute.
  • Échouer par défaut : lors du traitement de conditions multiples (dans un bloc If ou switch), prévoyez toujours un cas par défaut qui échoue si aucune autre condition n'est remplie.
  • Introduire un comportement aléatoire : l'ajout de petits délais aléatoires avant les opérations cruciales rend leur timing imprévisible. C'est essentiel pour la détection d'intrusions, car cela empêche les pirates d'identifier des modèles d'opération et de mener des attaques temporelles.
  • Boucliers de protection : les fabricants doivent utiliser des blindages pour couvrir les composants les plus critiques et les protéger contre toute manipulation externe.
  • Détecter les fluctuations anormales : surveillez les fluctuations anormales de tension, de courant ou d'autres valeurs, et levez des exceptions en conséquence.

Sécuriser votre application… et votre système d'exploitation

Renforcer la défense de votre appareil au niveau applicatif implique :

  • Choisir des composants logiciels et matériels tiers réputés et testés, pouvant être mis à jour régulièrement.
  • Former les développeurs aux meilleures pratiques en matière de sécurité des systèmes embarqués.
  • Utiliser un système d'exploitation à micro-noyau pour garantir qu'un nombre minimal d'opérations soit exécuté dans l'espace noyau.
  • Surveiller et se protéger contre les attaques logicielles, notamment les virus, chevaux de Troie et logiciels malveillants.
  • Supprimer tous les services inutiles. Votre micrologiciel ne doit contenir que le strict nécessaire. Par exemple, si vous n'avez pas besoin de transférer des fichiers ou de capturer des paquets, désactivez les protocoles de transfert de fichiers et les paquets réseau comme telnet.
  • Utiliser des protocoles sécurisés tels que SFTP, IPsec, SSL, TLS, SSH et DNSSEC.

Outils pour la sécurité des systèmes embarqués

Voici une liste non exhaustive d'outils pouvant contribuer à la sécurisation des systèmes embarqués :

  • Bus Blaster : Une plateforme de débogage haute vitesse capable d'interagir avec les ports de débogage matériel.
  • Saleae : Permet de décoder divers protocoles tels que Serial, SPI, I2C, etc. Vous pouvez utiliser des analyseurs de protocole créés par la communauté ou concevoir les vôtres.
  • HydraBus : Un outil matériel open source polyvalent utilisable pour le débogage, le piratage et/ou les tests d'intrusion sur du matériel embarqué.
  • Exploit : Un framework open source dédié aux tests de sécurité et à l'exploitation des objets connectés (IoT).
  • FACT (The Firmware Analysis and Comparison Tool) : Un framework utilisé pour automatiser l'analyse de sécurité des firmwares.
  • Routersploit : Un framework d'exploitation open source pour les appareils embarqués.
  • Firmadyne : Un système open source pour l'émulation et l'analyse dynamique des firmwares embarqués basés sur Linux.

Quelles sont les lacunes des solutions de sécurité embarquée actuelles ?

Bien qu'il existe diverses solutions pour le débogage, l'exploitation et les tests d'intrusion, elles ne sont pas systématiquement utilisées. L'accent est largement mis sur la sécurité physique des appareils, mais les efforts pour contrer les attaques logicielles restent insuffisants. Même les risques de sécurité applicative les plus simples et facilement évitables demeurent courants sur les appareils embarqués modernes.

Cela s'explique en grande partie par le manque de sensibilisation des développeurs à la sécurité embarquée. Selon une étude menée par Tripwire, 68 % des professionnels de l'informatique estiment que leurs équipes ne sont pas suffisamment conscientes des vulnérabilités potentielles.

Les développeurs ignorent souvent quels protocoles de sécurité choisir, quels frameworks éviter, quels composants matériels isoler, comment traiter les données sensibles ou déterminer l'algorithme de chiffrement le plus sûr. Ce manque général de connaissances et le non-respect des bonnes pratiques rendent les applications exécutées sur des appareils embarqués vulnérables aux compromissions.

L'avenir de la sécurité embarquée

Le marché de la sécurité embarquée est en pleine effervescence. Les experts estiment que le taux de croissance annuel composé (TCAC) du marché pourrait atteindre 5,5 % sur la période 2021-2026. Avec le lancement croissant d'appareils IoT, nous pouvons nous attendre à l'établissement de nouvelles normes de sécurité embarquée.

L'adoption croissante des dispositifs médicaux portables va également accroître la demande en solutions de sécurité embarquée fiables. Pour que ces appareils puissent contenir et traiter des données médicales sensibles, ils doivent répondre à certaines exigences de sécurité, ce qui, nous l'espérons, incitera les fournisseurs et les ingénieurs à accorder une priorité accrue à la sécurité.

À l'avenir, nous pourrions disposer de solutions permettant une visibilité, une surveillance et un contrôle à distance des principaux composants logiciels et matériels des appareils embarqués. Cela changera véritablement la donne dans le domaine de la sécurité des systèmes embarqués.

En fin de compte, les signatures numériques, le chiffrement des données, les pare-feu, le contrôle d'accès et la randomisation des opérations ne suffisent pas. Pour concevoir des appareils réellement sécurisés, les développeurs doivent être formés à l'écriture de code sécurisé. Identifier les risques potentiels et les atténuer dès la phase de conception contribue grandement à rendre les systèmes intrinsèquement sécurisés.

Comment Secure Code Warrior peut vous aider

Le produit phare de Secure Code Warrior, sa plateforme d'apprentissage, propose de nombreux défis interactifs, cours et évaluations pour aider les développeurs à écrire du code C/C++ sécurisé. Le contenu est spécifique aux frameworks et hautement engageant. Nos défis de codage C/C++:Embed s'inspirent des normes MISRA C, AUTOSAR C++ (MISRA C++) et IEC.

Les développeurs peuvent suivre des parcours d'apprentissage personnalisés pour identifier les vulnérabilités spécifiques au C/C++ et, surtout, apprendre à corriger ces bugs. Ils peuvent suivre leur progression, identifier leurs points faibles et même participer à des compétitions amicales avec leurs pairs. Découvrez comment nous aidons les secteurs de l'automobile et du transport grâce à nos solutions.

Vous voulez découvrir à quel point nos défis sont interactifs et axés sur l'embarqué ? Essayez quelques défis C/C++:Embed sur notre plateforme dès aujourd'hui !

Slogan

Gouvernez le développement assisté par IA avant la mise en production

Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.

Réserver une démo
Bibliothèque de ressources

Explorer plus d'articles

Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.

tout parcourir
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Une culture de la sécurité : comment Sage a bâti son programme de champions

Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise

Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Levier 8 : Valoriser votre programme

Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Chaque employé est désormais en première ligne de la cybersécurité IA

Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.

En savoir plus

Sécurisez le développement piloté par l'IA avant le déploiement

Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.

Réserver une démo
trust score
Aucun élément trouvé.