SCW アイコン
ヒーロー背景(区切りなし)
ブログ

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

Secure Code Warrior
2021年8月19日 発行
最終更新日: 2026年3月8日

Les systèmes embarqués contribuent à fournir de nombreuses technologies modernes. Du régulateur de vitesse adaptatif de votre voiture au Wifi de votre réfrigérateur intelligent. Face à la recrudescence des cyberattaques, la sécurisation de ces systèmes est devenue essentielle.

Les appareils embarqués sont des cibles privilégiées pour le piratage, car une attaque réussie peut permettre aux intrus d'accéder aux données qu'ils produisent, reçoivent et traitent. Cela peut souvent avoir de graves conséquences pour l'ensemble du système alimenté par le périphérique intégré. Par exemple, arrêt un dispositif intégré à l'avion de chasse F-15, qui collecte des données à partir de diverses caméras et capteurs, peut considérablement entraver les défenses de l'avion.

Nous avons écrit 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é intégrée ?
  • Difficultés rencontrées lors de la mise en œuvre de la sécurité intégrée.
  • Qu'est-ce qui rend un système embarqué « sécurisé » ?
  • Pourquoi la sécurité de bout en bout est importante dans un écosystème intégré.
  • Certains outils de sécurité intégrés.
  • Qu'est-ce qui manque aux solutions embarquées classiques ?
  • L'avenir de la sécurité embarquée.

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

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

Les modules matériels des systèmes embarqués étant de petite taille, ils présentent diverses limites en matière de mémoire et de stockage. Leur intégration de mesures de sécurité devient donc un énorme défi de conception. Cependant, aussi difficile que cela puisse être, c'est un besoin du moment.

De nombreux gadgets et machines alimentés par des appareils intégrés sont également connectés à Internet. Cela signifie que les pirates peuvent y accéder sans autorisation et exécuter n'importe quel 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 soit capable de prendre le contrôle d'un périphérique intégré qui permet aux conducteurs de mettre leur voiture en mode pilote automatique. Le pirate informatique peut alors diriger la voiture hors route ou dans la circulation, ce qui peut causer de gros dégâts.

Défis critiques en matière de sécurité des systèmes embarqués

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

  1. Manque de sensibilisation des développeurs :

Les développeurs ne connaissent généralement pas les meilleures pratiques pour développer des appareils intégrés sécurisés. Cela est dû en partie au point #2, et en partie au fait que les applications embarquées sont beaucoup 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, y compris dans un environnement restreint de micro-ordinateurs, peut s'avérer difficile.

  1. Absence de standardisation :

Il n'existe pas de normes de cybersécurité pour les systèmes embarqués. Même si l'industrie automobile essaie lentement de changer cela. Au cours des dernières années, les chercheurs ont publié de nombreuses publications traitant des considérations de cybersécurité pour les véhicules intelligents. Parmi les plus remarquables, citons SAE J3061, « Guide de cybersécurité pour les systèmes cyberphysiques des véhicules : » et Règlement du WP.29 de la CEE-ONU sur la cybersécurité et les processus de mise à jour des logiciels.

  1. Utilisation de composants tiers

De nombreux appareils intégrés nécessitaient des composants matériels et logiciels tiers pour fonctionner. Souvent, ces composants sont utilisés sans avoir été testés pour détecter des failles de sécurité ou des vulnérabilités.

  1. Logiciel obsolète

Un microprogramme obsolète est généralement truffé de bogues et de vulnérabilités potentiellement exploitables. Même s'il peut être particulièrement difficile de mettre à jour périodiquement le firmware d'un petit appareil intégré, ce n'est pas quelque chose qui 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-feux d'entreprise, qui peuvent détecter et empêcher les attaques réseau. Les ressources étant limitées, il devient très difficile de mettre en œuvre des niveaux de sécurité rigoureux dans un environnement aussi restreint.

  1. Attaque à grande échelle

Les appareils intégrés sont généralement fabriqués à grande échelle. Cela signifie qu'une seule vulnérabilité ou faille peut affecter des millions d'appareils, parfois dans le monde entier. Contenir les impacts d'une attaque de système embarqué peut donc représenter un défi de taille.

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

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

Meilleures pratiques en matière de sécurité matérielle

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

  • Un environnement d'exécution fiable

Un environnement d'exécution sécurisé (TEE) permet d'isoler au niveau matériel les opérations critiques en matière de sécurité. Par exemple, l'authentification des utilisateurs peut être exécutée dans une zone séparée, ce qui permet de mieux protéger les informations sensibles.

  • Ressources matérielles partitionnées de manière appropriée

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 séparés de manière appropriée, afin de fournir leurs fonctions de la manière la plus indépendante possible. Cela permet d'éviter qu'une erreur dans un composant ne se propage à d'autres composants.

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

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

Meilleures pratiques en matière de sécurité logicielle

Les meilleures pratiques suivantes doivent être prises en compte lors de la création de logiciels embarqués :

  • Utilisez le démarrage sécurisé :

Lorsqu'un périphérique intégré démarre, 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 (microprogramme 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 petit qu'un système d'exploitation traditionnel et contient un sous-ensemble de ses fonctionnalités. L'espace du noyau est restreint et de nombreux services utilisateurs (tels que la gestion des systèmes de fichiers, etc.) sont conservés dans un espace séparé, appelé espace utilisateur. Comme il y a moins de code et d'opérations exécutées dans l'espace du noyau, 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 emballées. Par exemple, si une application nécessite une dépendance tierce, elle ne doit pas être installée globalement sur le système d'exploitation. Il devrait plutôt faire partie du dossier ou du contenant de la demande.

  • Validez toutes les entrées

Toutes les données reçues de sources externes et/ou non fiables doivent être correctement nettoyées et validées avant d'être transmises à des composants logiciels et/ou matériels critiques.

Si une application extrait des données à partir d'une intégration d'API externe et modifie certains paramètres en fonction de celle-ci, les données reçues doivent être rigoureusement validées avant de modifier le paramètre.

  • Protégez les données au repos :

Tous les logiciels, données, fichiers de configuration, clés sécurisées et mots de passe sensibles, etc. qui sont stockés sur un appareil intégré doivent être protégés. Cela se fait généralement par cryptage. Les clés privées utilisées pour chiffrer les données doivent être stockées dans un matériel de sécurité dédié et spécialement conçu.

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

L'époque où la sécurité n'était qu'une question secondaire est révolue. Une exigence non fonctionnelle. 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 intégré. Cela signifie : pensez à la sécurité lors du choix de votre matériel, lors de la définition de l'architecture de votre système, lors de la conception de votre système et, bien sûr, lors de l'écriture de code.

Commencez par le matériel

Quelle que soit la robustesse de votre sécurité logicielle, si votre matériel fait défaut, vous serez vulnérable aux attaques. Les techniques de sécurité intégrées peuvent permettre un démarrage sécurisé et une gestion efficace des fonctions cryptographiques et des secrets. Certains composants matériels peuvent également permettre au système d'exploitation de proposer diverses fonctionnalités de sécurité, telles que la détection des anomalies liées aux appels système, le cryptage 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 des défauts n'est que l'une d'entre elles. Lors d'une telle attaque, un pirate informatique potentiel peut utiliser des techniques d'injection de défauts pour tenter de générer des erreurs dans un périphérique intégré. Cependant, il existe plusieurs moyens de détecter de tels défauts et de s'en protéger :

  • Répliquez les opérations les plus critiques afin de pouvoir comparer différentes sorties, à tout moment, afin de détecter l'injection d'un défaut.
  • Échec par défaut : lorsque vous gérez plusieurs conditions (dans une condition If ou un bloc de commutation), échouez toujours dans le cas par défaut, c'est-à-dire lorsque rien d'autre ne correspond.
  • Introduisez un comportement aléatoire : l'ajout de petits délais aléatoires avant les opérations cruciales garantit que leur calendrier n'est jamais prévisible. C'est un élément essentiel de la détection des intrusions, car il est très difficile pour les pirates de déterminer les modes de fonctionnement et d'effectuer des attaques temporelles.
  • Écrans de protection : les fabricants doivent utiliser des écrans pour recouvrir les composants les plus cruciaux, afin de les protéger des manipulations externes.
  • Détectez les fluctuations anormales : détectez les fluctuations anormales de tension, de courant ou d'autres valeurs et déclenchez les exceptions en conséquence.

Sécurisez votre application... et votre système d'exploitation

Le renforcement de la défense de votre appareil au niveau de l'application implique :

  • Choisir des composants logiciels et matériels tiers testés et réputés qui peuvent être régulièrement mis à jour.
  • Former les développeurs aux meilleures pratiques en matière de sécurité des systèmes embarqués.
  • Utilisez un système d'exploitation à micro-noyau pour vous assurer qu'un nombre minimal d'opérations sont exécutées dans l'espace du noyau.
  • Surveillez et protégez-vous contre les attaques logicielles, notamment les virus, les chevaux de Troie et les malwares.
  • Supprimez tous les services inutiles. Votre firmware ne doit contenir que ce dont vous avez absolument besoin. Par exemple, il se peut que vous n'ayez pas besoin de transférer des fichiers ou de capturer des paquets. Vous pouvez donc désactiver les protocoles de transfert de fichiers et les packages réseau tels que telnet.
  • Utilisez 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 qui peuvent vous aider à sécuriser les systèmes embarqués :

  • Blaster de bus: plateforme de débogage à haut débit qui peut interagir avec les ports de débogage matériels.
  • Salade: Décodez divers protocoles tels que Serial, SPI et I2C, etc. Vous pouvez utiliser des analyseurs de protocoles créés par la communauté ou créer les vôtres.
  • Hydrabus: matériel multi-outils open source qui peut être utilisé pour le débogage, le piratage et/ou les tests d'intrusion du matériel embarqué.
  • Exploiter: Un cadre de test et d'exploitation de la sécurité de l'Internet des objets (IoT) open source.
  • FACT (L'outil d'analyse et de comparaison des micrologiciels): Framework utilisé pour automatiser l'analyse de la sécurité du microprogramme.
  • Routeurs Sploit: Un framework d'exploitation open source pour les appareils embarqués.
  • Firmadyne: Système open source pour l'émulation et l'analyse dynamique de microprogrammes intégrés basés sur Linux.

Quelles sont les lacunes des solutions de sécurité intégrées modernes ?

Bien qu'il existe différentes solutions disponibles pour le débogage, l'exploitation et le test de solutions intégrées, elles ne sont pas facilement utilisées. L'accent reste mis sur la sécurisation physique de l'appareil, mais les efforts déployés pour se protéger contre les attaques liées aux logiciels sont insuffisants. Même les risques et vulnérabilités de sécurité des applications les plus simples et facilement évitables sont encore courants sur les appareils embarqués modernes.

Cela s'explique en grande partie par le manque de sensibilisation des développeurs à la sécurité intégrée. Selon une enquête menée par Tripwire, 68 % des professionnels de l'informatique estiment que leur personnel n'est pas suffisamment conscient des vulnérabilités potentielles.

Les développeurs ne savent pas quels protocoles de sécurité choisir, quels frameworks éviter, quels composants matériels séparer, comment traiter les données sensibles et comment déterminer quel algorithme de cryptage est le plus sûr. Ce manque général de connaissances et ce mépris des meilleures pratiques rendent les applications exécutées sur des appareils intégrés susceptibles d'être compromises.

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

Beaucoup de travail est en cours sur le marché de la sécurité intégrée. Les experts estiment que le taux de croissance annuel composé (CAGR) du marché peut atteindre chiffre de 5,5 % au cours de la période 2021-2026. Avec le lancement de plus en plus d'appareils IoT, nous pouvons nous attendre à ce que de nouvelles normes de sécurité intégrées soient établies.

L'adoption croissante de dispositifs médicaux portables va également augmenter la demande de solutions de sécurité intégrées fiables. Pour que les appareils contiennent et traitent des données médicales sensibles, ils doivent satisfaire à certaines listes de sécurité, et nous espérons que cela incitera les fournisseurs et les ingénieurs à se concentrer davantage sur la sécurité.

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

En fin de compte, les signatures numériques, le chiffrement des données, l'ajout de pare-feux, la mise en œuvre du contrôle d'accès et la randomisation des opérations ne peuvent pas vous mener loin. Pour créer des appareils réellement sécurisés, les développeurs doivent être formés à l'écriture de code sécurisé. L'identification des risques de sécurité potentiels et leur atténuation lors de la phase de conception des applications contribuent grandement à la création de systèmes intrinsèquement sécurisé.

Secure Code Warrior どのようにSecure Code Warrior

Le produit phare de Secure Code Warrior, la plateforme d'apprentissage, propose de nombreux défis, cours et évaluations interactifs qui peuvent aider à former les développeurs à écrire du code C/C++ sécurisé. Le contenu de la plateforme est spécifique au framework et très engageant. Nos défis de codage C/C++:Embed se sont inspirés de MISRA C, AUTOSAR C++ (MISRA C++) et IEC.

Les développeurs peuvent se lancer dans des parcours d'apprentissage personnalisés, au cours desquels ils identifient les vulnérabilités spécifiques au C/C++ et, surtout, apprennent à corriger ces bogues. Au cours de ce processus, les développeurs peuvent suivre leurs progrès pour identifier leurs faiblesses et même participer à des compétitions de codage amicales avec leurs pairs. En savoir plus sur comment nous aidons les industries de l'automobile et des transports grâce à nos solutions.

Vous voulez découvrir dans quelle mesure nos défis sont interactifs et intégrés ? Essayez quelques défis liés à C/C++:Embed sur la plateforme d'apprentissage dès aujourd'hui !

リソースを表示する
リソースを表示する

Cet article donne un aperçu de la sécurisation des systèmes embarqués. Nous commencerons par une définition de base, puis aborderons les défis liés à la sécurité intégrée, certaines solutions typiques et les énigmes manquantes.

さらに詳しく知りたいですか?

Secure Code Warrior fait du codage sécurisé une expérience positive et engageante pour les développeurs à mesure qu'ils améliorent leurs compétences. Nous guidons chaque codeur le long de son parcours d'apprentissage préféré, afin que les développeurs doués pour la sécurité deviennent les super-héros du quotidien de notre monde connecté.

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
作者
Secure Code Warrior
2021年8月19日発行

Secure Code Warrior fait du codage sécurisé une expérience positive et engageante pour les développeurs à mesure qu'ils améliorent leurs compétences. Nous guidons chaque codeur le long de son parcours d'apprentissage préféré, afin que les développeurs doués pour la sécurité deviennent les super-héros du quotidien de notre monde connecté.

Cet article a été rédigé par l'équipe d'experts du secteur de Secure Code Warrior, qui s'est engagée à donner aux développeurs les connaissances et les compétences nécessaires pour créer des logiciels sécurisés dès le départ. S'appuyant sur une expertise approfondie en matière de pratiques de codage sécurisé, de tendances du secteur et de connaissances du monde réel.

共有する:
リンクトインのブランドソーシャルx ロゴ

Les systèmes embarqués contribuent à fournir de nombreuses technologies modernes. Du régulateur de vitesse adaptatif de votre voiture au Wifi de votre réfrigérateur intelligent. Face à la recrudescence des cyberattaques, la sécurisation de ces systèmes est devenue essentielle.

Les appareils embarqués sont des cibles privilégiées pour le piratage, car une attaque réussie peut permettre aux intrus d'accéder aux données qu'ils produisent, reçoivent et traitent. Cela peut souvent avoir de graves conséquences pour l'ensemble du système alimenté par le périphérique intégré. Par exemple, arrêt un dispositif intégré à l'avion de chasse F-15, qui collecte des données à partir de diverses caméras et capteurs, peut considérablement entraver les défenses de l'avion.

Nous avons écrit 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é intégrée ?
  • Difficultés rencontrées lors de la mise en œuvre de la sécurité intégrée.
  • Qu'est-ce qui rend un système embarqué « sécurisé » ?
  • Pourquoi la sécurité de bout en bout est importante dans un écosystème intégré.
  • Certains outils de sécurité intégrés.
  • Qu'est-ce qui manque aux solutions embarquées classiques ?
  • L'avenir de la sécurité embarquée.

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

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

Les modules matériels des systèmes embarqués étant de petite taille, ils présentent diverses limites en matière de mémoire et de stockage. Leur intégration de mesures de sécurité devient donc un énorme défi de conception. Cependant, aussi difficile que cela puisse être, c'est un besoin du moment.

De nombreux gadgets et machines alimentés par des appareils intégrés sont également connectés à Internet. Cela signifie que les pirates peuvent y accéder sans autorisation et exécuter n'importe quel 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 soit capable de prendre le contrôle d'un périphérique intégré qui permet aux conducteurs de mettre leur voiture en mode pilote automatique. Le pirate informatique peut alors diriger la voiture hors route ou dans la circulation, ce qui peut causer de gros dégâts.

Défis critiques en matière de sécurité des systèmes embarqués

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

  1. Manque de sensibilisation des développeurs :

Les développeurs ne connaissent généralement pas les meilleures pratiques pour développer des appareils intégrés sécurisés. Cela est dû en partie au point #2, et en partie au fait que les applications embarquées sont beaucoup 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, y compris dans un environnement restreint de micro-ordinateurs, peut s'avérer difficile.

  1. Absence de standardisation :

Il n'existe pas de normes de cybersécurité pour les systèmes embarqués. Même si l'industrie automobile essaie lentement de changer cela. Au cours des dernières années, les chercheurs ont publié de nombreuses publications traitant des considérations de cybersécurité pour les véhicules intelligents. Parmi les plus remarquables, citons SAE J3061, « Guide de cybersécurité pour les systèmes cyberphysiques des véhicules : » et Règlement du WP.29 de la CEE-ONU sur la cybersécurité et les processus de mise à jour des logiciels.

  1. Utilisation de composants tiers

De nombreux appareils intégrés nécessitaient des composants matériels et logiciels tiers pour fonctionner. Souvent, ces composants sont utilisés sans avoir été testés pour détecter des failles de sécurité ou des vulnérabilités.

  1. Logiciel obsolète

Un microprogramme obsolète est généralement truffé de bogues et de vulnérabilités potentiellement exploitables. Même s'il peut être particulièrement difficile de mettre à jour périodiquement le firmware d'un petit appareil intégré, ce n'est pas quelque chose qui 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-feux d'entreprise, qui peuvent détecter et empêcher les attaques réseau. Les ressources étant limitées, il devient très difficile de mettre en œuvre des niveaux de sécurité rigoureux dans un environnement aussi restreint.

  1. Attaque à grande échelle

Les appareils intégrés sont généralement fabriqués à grande échelle. Cela signifie qu'une seule vulnérabilité ou faille peut affecter des millions d'appareils, parfois dans le monde entier. Contenir les impacts d'une attaque de système embarqué peut donc représenter un défi de taille.

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

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

Meilleures pratiques en matière de sécurité matérielle

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

  • Un environnement d'exécution fiable

Un environnement d'exécution sécurisé (TEE) permet d'isoler au niveau matériel les opérations critiques en matière de sécurité. Par exemple, l'authentification des utilisateurs peut être exécutée dans une zone séparée, ce qui permet de mieux protéger les informations sensibles.

  • Ressources matérielles partitionnées de manière appropriée

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 séparés de manière appropriée, afin de fournir leurs fonctions de la manière la plus indépendante possible. Cela permet d'éviter qu'une erreur dans un composant ne se propage à d'autres composants.

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

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

Meilleures pratiques en matière de sécurité logicielle

Les meilleures pratiques suivantes doivent être prises en compte lors de la création de logiciels embarqués :

  • Utilisez le démarrage sécurisé :

Lorsqu'un périphérique intégré démarre, 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 (microprogramme 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 petit qu'un système d'exploitation traditionnel et contient un sous-ensemble de ses fonctionnalités. L'espace du noyau est restreint et de nombreux services utilisateurs (tels que la gestion des systèmes de fichiers, etc.) sont conservés dans un espace séparé, appelé espace utilisateur. Comme il y a moins de code et d'opérations exécutées dans l'espace du noyau, 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 emballées. Par exemple, si une application nécessite une dépendance tierce, elle ne doit pas être installée globalement sur le système d'exploitation. Il devrait plutôt faire partie du dossier ou du contenant de la demande.

  • Validez toutes les entrées

Toutes les données reçues de sources externes et/ou non fiables doivent être correctement nettoyées et validées avant d'être transmises à des composants logiciels et/ou matériels critiques.

Si une application extrait des données à partir d'une intégration d'API externe et modifie certains paramètres en fonction de celle-ci, les données reçues doivent être rigoureusement validées avant de modifier le paramètre.

  • Protégez les données au repos :

Tous les logiciels, données, fichiers de configuration, clés sécurisées et mots de passe sensibles, etc. qui sont stockés sur un appareil intégré doivent être protégés. Cela se fait généralement par cryptage. Les clés privées utilisées pour chiffrer les données doivent être stockées dans un matériel de sécurité dédié et spécialement conçu.

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

L'époque où la sécurité n'était qu'une question secondaire est révolue. Une exigence non fonctionnelle. 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 intégré. Cela signifie : pensez à la sécurité lors du choix de votre matériel, lors de la définition de l'architecture de votre système, lors de la conception de votre système et, bien sûr, lors de l'écriture de code.

Commencez par le matériel

Quelle que soit la robustesse de votre sécurité logicielle, si votre matériel fait défaut, vous serez vulnérable aux attaques. Les techniques de sécurité intégrées peuvent permettre un démarrage sécurisé et une gestion efficace des fonctions cryptographiques et des secrets. Certains composants matériels peuvent également permettre au système d'exploitation de proposer diverses fonctionnalités de sécurité, telles que la détection des anomalies liées aux appels système, le cryptage 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 des défauts n'est que l'une d'entre elles. Lors d'une telle attaque, un pirate informatique potentiel peut utiliser des techniques d'injection de défauts pour tenter de générer des erreurs dans un périphérique intégré. Cependant, il existe plusieurs moyens de détecter de tels défauts et de s'en protéger :

  • Répliquez les opérations les plus critiques afin de pouvoir comparer différentes sorties, à tout moment, afin de détecter l'injection d'un défaut.
  • Échec par défaut : lorsque vous gérez plusieurs conditions (dans une condition If ou un bloc de commutation), échouez toujours dans le cas par défaut, c'est-à-dire lorsque rien d'autre ne correspond.
  • Introduisez un comportement aléatoire : l'ajout de petits délais aléatoires avant les opérations cruciales garantit que leur calendrier n'est jamais prévisible. C'est un élément essentiel de la détection des intrusions, car il est très difficile pour les pirates de déterminer les modes de fonctionnement et d'effectuer des attaques temporelles.
  • Écrans de protection : les fabricants doivent utiliser des écrans pour recouvrir les composants les plus cruciaux, afin de les protéger des manipulations externes.
  • Détectez les fluctuations anormales : détectez les fluctuations anormales de tension, de courant ou d'autres valeurs et déclenchez les exceptions en conséquence.

Sécurisez votre application... et votre système d'exploitation

Le renforcement de la défense de votre appareil au niveau de l'application implique :

  • Choisir des composants logiciels et matériels tiers testés et réputés qui peuvent être régulièrement mis à jour.
  • Former les développeurs aux meilleures pratiques en matière de sécurité des systèmes embarqués.
  • Utilisez un système d'exploitation à micro-noyau pour vous assurer qu'un nombre minimal d'opérations sont exécutées dans l'espace du noyau.
  • Surveillez et protégez-vous contre les attaques logicielles, notamment les virus, les chevaux de Troie et les malwares.
  • Supprimez tous les services inutiles. Votre firmware ne doit contenir que ce dont vous avez absolument besoin. Par exemple, il se peut que vous n'ayez pas besoin de transférer des fichiers ou de capturer des paquets. Vous pouvez donc désactiver les protocoles de transfert de fichiers et les packages réseau tels que telnet.
  • Utilisez 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 qui peuvent vous aider à sécuriser les systèmes embarqués :

  • Blaster de bus: plateforme de débogage à haut débit qui peut interagir avec les ports de débogage matériels.
  • Salade: Décodez divers protocoles tels que Serial, SPI et I2C, etc. Vous pouvez utiliser des analyseurs de protocoles créés par la communauté ou créer les vôtres.
  • Hydrabus: matériel multi-outils open source qui peut être utilisé pour le débogage, le piratage et/ou les tests d'intrusion du matériel embarqué.
  • Exploiter: Un cadre de test et d'exploitation de la sécurité de l'Internet des objets (IoT) open source.
  • FACT (L'outil d'analyse et de comparaison des micrologiciels): Framework utilisé pour automatiser l'analyse de la sécurité du microprogramme.
  • Routeurs Sploit: Un framework d'exploitation open source pour les appareils embarqués.
  • Firmadyne: Système open source pour l'émulation et l'analyse dynamique de microprogrammes intégrés basés sur Linux.

Quelles sont les lacunes des solutions de sécurité intégrées modernes ?

Bien qu'il existe différentes solutions disponibles pour le débogage, l'exploitation et le test de solutions intégrées, elles ne sont pas facilement utilisées. L'accent reste mis sur la sécurisation physique de l'appareil, mais les efforts déployés pour se protéger contre les attaques liées aux logiciels sont insuffisants. Même les risques et vulnérabilités de sécurité des applications les plus simples et facilement évitables sont encore courants sur les appareils embarqués modernes.

Cela s'explique en grande partie par le manque de sensibilisation des développeurs à la sécurité intégrée. Selon une enquête menée par Tripwire, 68 % des professionnels de l'informatique estiment que leur personnel n'est pas suffisamment conscient des vulnérabilités potentielles.

Les développeurs ne savent pas quels protocoles de sécurité choisir, quels frameworks éviter, quels composants matériels séparer, comment traiter les données sensibles et comment déterminer quel algorithme de cryptage est le plus sûr. Ce manque général de connaissances et ce mépris des meilleures pratiques rendent les applications exécutées sur des appareils intégrés susceptibles d'être compromises.

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

Beaucoup de travail est en cours sur le marché de la sécurité intégrée. Les experts estiment que le taux de croissance annuel composé (CAGR) du marché peut atteindre chiffre de 5,5 % au cours de la période 2021-2026. Avec le lancement de plus en plus d'appareils IoT, nous pouvons nous attendre à ce que de nouvelles normes de sécurité intégrées soient établies.

L'adoption croissante de dispositifs médicaux portables va également augmenter la demande de solutions de sécurité intégrées fiables. Pour que les appareils contiennent et traitent des données médicales sensibles, ils doivent satisfaire à certaines listes de sécurité, et nous espérons que cela incitera les fournisseurs et les ingénieurs à se concentrer davantage sur la sécurité.

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

En fin de compte, les signatures numériques, le chiffrement des données, l'ajout de pare-feux, la mise en œuvre du contrôle d'accès et la randomisation des opérations ne peuvent pas vous mener loin. Pour créer des appareils réellement sécurisés, les développeurs doivent être formés à l'écriture de code sécurisé. L'identification des risques de sécurité potentiels et leur atténuation lors de la phase de conception des applications contribuent grandement à la création de systèmes intrinsèquement sécurisé.

Secure Code Warrior どのようにSecure Code Warrior

Le produit phare de Secure Code Warrior, la plateforme d'apprentissage, propose de nombreux défis, cours et évaluations interactifs qui peuvent aider à former les développeurs à écrire du code C/C++ sécurisé. Le contenu de la plateforme est spécifique au framework et très engageant. Nos défis de codage C/C++:Embed se sont inspirés de MISRA C, AUTOSAR C++ (MISRA C++) et IEC.

Les développeurs peuvent se lancer dans des parcours d'apprentissage personnalisés, au cours desquels ils identifient les vulnérabilités spécifiques au C/C++ et, surtout, apprennent à corriger ces bogues. Au cours de ce processus, les développeurs peuvent suivre leurs progrès pour identifier leurs faiblesses et même participer à des compétitions de codage amicales avec leurs pairs. En savoir plus sur comment nous aidons les industries de l'automobile et des transports grâce à nos solutions.

Vous voulez découvrir dans quelle mesure nos défis sont interactifs et intégrés ? Essayez quelques défis liés à C/C++:Embed sur la plateforme d'apprentissage dès aujourd'hui !

リソースを表示する
リソースを表示する

以下のフォームに記入してレポートをダウンロードしてください

当社製品および/またはセキュアコーディング関連の情報をお送りするにあたり、ご承諾を頂戴できれば幸いです。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ございません。

提出する
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、Analyticsクッキーを有効にしてください。完了後は再度無効化しても構いません。

Les systèmes embarqués contribuent à fournir de nombreuses technologies modernes. Du régulateur de vitesse adaptatif de votre voiture au Wifi de votre réfrigérateur intelligent. Face à la recrudescence des cyberattaques, la sécurisation de ces systèmes est devenue essentielle.

Les appareils embarqués sont des cibles privilégiées pour le piratage, car une attaque réussie peut permettre aux intrus d'accéder aux données qu'ils produisent, reçoivent et traitent. Cela peut souvent avoir de graves conséquences pour l'ensemble du système alimenté par le périphérique intégré. Par exemple, arrêt un dispositif intégré à l'avion de chasse F-15, qui collecte des données à partir de diverses caméras et capteurs, peut considérablement entraver les défenses de l'avion.

Nous avons écrit 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é intégrée ?
  • Difficultés rencontrées lors de la mise en œuvre de la sécurité intégrée.
  • Qu'est-ce qui rend un système embarqué « sécurisé » ?
  • Pourquoi la sécurité de bout en bout est importante dans un écosystème intégré.
  • Certains outils de sécurité intégrés.
  • Qu'est-ce qui manque aux solutions embarquées classiques ?
  • L'avenir de la sécurité embarquée.

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

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

Les modules matériels des systèmes embarqués étant de petite taille, ils présentent diverses limites en matière de mémoire et de stockage. Leur intégration de mesures de sécurité devient donc un énorme défi de conception. Cependant, aussi difficile que cela puisse être, c'est un besoin du moment.

De nombreux gadgets et machines alimentés par des appareils intégrés sont également connectés à Internet. Cela signifie que les pirates peuvent y accéder sans autorisation et exécuter n'importe quel 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 soit capable de prendre le contrôle d'un périphérique intégré qui permet aux conducteurs de mettre leur voiture en mode pilote automatique. Le pirate informatique peut alors diriger la voiture hors route ou dans la circulation, ce qui peut causer de gros dégâts.

Défis critiques en matière de sécurité des systèmes embarqués

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

  1. Manque de sensibilisation des développeurs :

Les développeurs ne connaissent généralement pas les meilleures pratiques pour développer des appareils intégrés sécurisés. Cela est dû en partie au point #2, et en partie au fait que les applications embarquées sont beaucoup 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, y compris dans un environnement restreint de micro-ordinateurs, peut s'avérer difficile.

  1. Absence de standardisation :

Il n'existe pas de normes de cybersécurité pour les systèmes embarqués. Même si l'industrie automobile essaie lentement de changer cela. Au cours des dernières années, les chercheurs ont publié de nombreuses publications traitant des considérations de cybersécurité pour les véhicules intelligents. Parmi les plus remarquables, citons SAE J3061, « Guide de cybersécurité pour les systèmes cyberphysiques des véhicules : » et Règlement du WP.29 de la CEE-ONU sur la cybersécurité et les processus de mise à jour des logiciels.

  1. Utilisation de composants tiers

De nombreux appareils intégrés nécessitaient des composants matériels et logiciels tiers pour fonctionner. Souvent, ces composants sont utilisés sans avoir été testés pour détecter des failles de sécurité ou des vulnérabilités.

  1. Logiciel obsolète

Un microprogramme obsolète est généralement truffé de bogues et de vulnérabilités potentiellement exploitables. Même s'il peut être particulièrement difficile de mettre à jour périodiquement le firmware d'un petit appareil intégré, ce n'est pas quelque chose qui 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-feux d'entreprise, qui peuvent détecter et empêcher les attaques réseau. Les ressources étant limitées, il devient très difficile de mettre en œuvre des niveaux de sécurité rigoureux dans un environnement aussi restreint.

  1. Attaque à grande échelle

Les appareils intégrés sont généralement fabriqués à grande échelle. Cela signifie qu'une seule vulnérabilité ou faille peut affecter des millions d'appareils, parfois dans le monde entier. Contenir les impacts d'une attaque de système embarqué peut donc représenter un défi de taille.

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

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

Meilleures pratiques en matière de sécurité matérielle

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

  • Un environnement d'exécution fiable

Un environnement d'exécution sécurisé (TEE) permet d'isoler au niveau matériel les opérations critiques en matière de sécurité. Par exemple, l'authentification des utilisateurs peut être exécutée dans une zone séparée, ce qui permet de mieux protéger les informations sensibles.

  • Ressources matérielles partitionnées de manière appropriée

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 séparés de manière appropriée, afin de fournir leurs fonctions de la manière la plus indépendante possible. Cela permet d'éviter qu'une erreur dans un composant ne se propage à d'autres composants.

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

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

Meilleures pratiques en matière de sécurité logicielle

Les meilleures pratiques suivantes doivent être prises en compte lors de la création de logiciels embarqués :

  • Utilisez le démarrage sécurisé :

Lorsqu'un périphérique intégré démarre, 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 (microprogramme 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 petit qu'un système d'exploitation traditionnel et contient un sous-ensemble de ses fonctionnalités. L'espace du noyau est restreint et de nombreux services utilisateurs (tels que la gestion des systèmes de fichiers, etc.) sont conservés dans un espace séparé, appelé espace utilisateur. Comme il y a moins de code et d'opérations exécutées dans l'espace du noyau, 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 emballées. Par exemple, si une application nécessite une dépendance tierce, elle ne doit pas être installée globalement sur le système d'exploitation. Il devrait plutôt faire partie du dossier ou du contenant de la demande.

  • Validez toutes les entrées

Toutes les données reçues de sources externes et/ou non fiables doivent être correctement nettoyées et validées avant d'être transmises à des composants logiciels et/ou matériels critiques.

Si une application extrait des données à partir d'une intégration d'API externe et modifie certains paramètres en fonction de celle-ci, les données reçues doivent être rigoureusement validées avant de modifier le paramètre.

  • Protégez les données au repos :

Tous les logiciels, données, fichiers de configuration, clés sécurisées et mots de passe sensibles, etc. qui sont stockés sur un appareil intégré doivent être protégés. Cela se fait généralement par cryptage. Les clés privées utilisées pour chiffrer les données doivent être stockées dans un matériel de sécurité dédié et spécialement conçu.

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

L'époque où la sécurité n'était qu'une question secondaire est révolue. Une exigence non fonctionnelle. 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 intégré. Cela signifie : pensez à la sécurité lors du choix de votre matériel, lors de la définition de l'architecture de votre système, lors de la conception de votre système et, bien sûr, lors de l'écriture de code.

Commencez par le matériel

Quelle que soit la robustesse de votre sécurité logicielle, si votre matériel fait défaut, vous serez vulnérable aux attaques. Les techniques de sécurité intégrées peuvent permettre un démarrage sécurisé et une gestion efficace des fonctions cryptographiques et des secrets. Certains composants matériels peuvent également permettre au système d'exploitation de proposer diverses fonctionnalités de sécurité, telles que la détection des anomalies liées aux appels système, le cryptage 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 des défauts n'est que l'une d'entre elles. Lors d'une telle attaque, un pirate informatique potentiel peut utiliser des techniques d'injection de défauts pour tenter de générer des erreurs dans un périphérique intégré. Cependant, il existe plusieurs moyens de détecter de tels défauts et de s'en protéger :

  • Répliquez les opérations les plus critiques afin de pouvoir comparer différentes sorties, à tout moment, afin de détecter l'injection d'un défaut.
  • Échec par défaut : lorsque vous gérez plusieurs conditions (dans une condition If ou un bloc de commutation), échouez toujours dans le cas par défaut, c'est-à-dire lorsque rien d'autre ne correspond.
  • Introduisez un comportement aléatoire : l'ajout de petits délais aléatoires avant les opérations cruciales garantit que leur calendrier n'est jamais prévisible. C'est un élément essentiel de la détection des intrusions, car il est très difficile pour les pirates de déterminer les modes de fonctionnement et d'effectuer des attaques temporelles.
  • Écrans de protection : les fabricants doivent utiliser des écrans pour recouvrir les composants les plus cruciaux, afin de les protéger des manipulations externes.
  • Détectez les fluctuations anormales : détectez les fluctuations anormales de tension, de courant ou d'autres valeurs et déclenchez les exceptions en conséquence.

Sécurisez votre application... et votre système d'exploitation

Le renforcement de la défense de votre appareil au niveau de l'application implique :

  • Choisir des composants logiciels et matériels tiers testés et réputés qui peuvent être régulièrement mis à jour.
  • Former les développeurs aux meilleures pratiques en matière de sécurité des systèmes embarqués.
  • Utilisez un système d'exploitation à micro-noyau pour vous assurer qu'un nombre minimal d'opérations sont exécutées dans l'espace du noyau.
  • Surveillez et protégez-vous contre les attaques logicielles, notamment les virus, les chevaux de Troie et les malwares.
  • Supprimez tous les services inutiles. Votre firmware ne doit contenir que ce dont vous avez absolument besoin. Par exemple, il se peut que vous n'ayez pas besoin de transférer des fichiers ou de capturer des paquets. Vous pouvez donc désactiver les protocoles de transfert de fichiers et les packages réseau tels que telnet.
  • Utilisez 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 qui peuvent vous aider à sécuriser les systèmes embarqués :

  • Blaster de bus: plateforme de débogage à haut débit qui peut interagir avec les ports de débogage matériels.
  • Salade: Décodez divers protocoles tels que Serial, SPI et I2C, etc. Vous pouvez utiliser des analyseurs de protocoles créés par la communauté ou créer les vôtres.
  • Hydrabus: matériel multi-outils open source qui peut être utilisé pour le débogage, le piratage et/ou les tests d'intrusion du matériel embarqué.
  • Exploiter: Un cadre de test et d'exploitation de la sécurité de l'Internet des objets (IoT) open source.
  • FACT (L'outil d'analyse et de comparaison des micrologiciels): Framework utilisé pour automatiser l'analyse de la sécurité du microprogramme.
  • Routeurs Sploit: Un framework d'exploitation open source pour les appareils embarqués.
  • Firmadyne: Système open source pour l'émulation et l'analyse dynamique de microprogrammes intégrés basés sur Linux.

Quelles sont les lacunes des solutions de sécurité intégrées modernes ?

Bien qu'il existe différentes solutions disponibles pour le débogage, l'exploitation et le test de solutions intégrées, elles ne sont pas facilement utilisées. L'accent reste mis sur la sécurisation physique de l'appareil, mais les efforts déployés pour se protéger contre les attaques liées aux logiciels sont insuffisants. Même les risques et vulnérabilités de sécurité des applications les plus simples et facilement évitables sont encore courants sur les appareils embarqués modernes.

Cela s'explique en grande partie par le manque de sensibilisation des développeurs à la sécurité intégrée. Selon une enquête menée par Tripwire, 68 % des professionnels de l'informatique estiment que leur personnel n'est pas suffisamment conscient des vulnérabilités potentielles.

Les développeurs ne savent pas quels protocoles de sécurité choisir, quels frameworks éviter, quels composants matériels séparer, comment traiter les données sensibles et comment déterminer quel algorithme de cryptage est le plus sûr. Ce manque général de connaissances et ce mépris des meilleures pratiques rendent les applications exécutées sur des appareils intégrés susceptibles d'être compromises.

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

Beaucoup de travail est en cours sur le marché de la sécurité intégrée. Les experts estiment que le taux de croissance annuel composé (CAGR) du marché peut atteindre chiffre de 5,5 % au cours de la période 2021-2026. Avec le lancement de plus en plus d'appareils IoT, nous pouvons nous attendre à ce que de nouvelles normes de sécurité intégrées soient établies.

L'adoption croissante de dispositifs médicaux portables va également augmenter la demande de solutions de sécurité intégrées fiables. Pour que les appareils contiennent et traitent des données médicales sensibles, ils doivent satisfaire à certaines listes de sécurité, et nous espérons que cela incitera les fournisseurs et les ingénieurs à se concentrer davantage sur la sécurité.

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

En fin de compte, les signatures numériques, le chiffrement des données, l'ajout de pare-feux, la mise en œuvre du contrôle d'accès et la randomisation des opérations ne peuvent pas vous mener loin. Pour créer des appareils réellement sécurisés, les développeurs doivent être formés à l'écriture de code sécurisé. L'identification des risques de sécurité potentiels et leur atténuation lors de la phase de conception des applications contribuent grandement à la création de systèmes intrinsèquement sécurisé.

Secure Code Warrior どのようにSecure Code Warrior

Le produit phare de Secure Code Warrior, la plateforme d'apprentissage, propose de nombreux défis, cours et évaluations interactifs qui peuvent aider à former les développeurs à écrire du code C/C++ sécurisé. Le contenu de la plateforme est spécifique au framework et très engageant. Nos défis de codage C/C++:Embed se sont inspirés de MISRA C, AUTOSAR C++ (MISRA C++) et IEC.

Les développeurs peuvent se lancer dans des parcours d'apprentissage personnalisés, au cours desquels ils identifient les vulnérabilités spécifiques au C/C++ et, surtout, apprennent à corriger ces bogues. Au cours de ce processus, les développeurs peuvent suivre leurs progrès pour identifier leurs faiblesses et même participer à des compétitions de codage amicales avec leurs pairs. En savoir plus sur comment nous aidons les industries de l'automobile et des transports grâce à nos solutions.

Vous voulez découvrir dans quelle mesure nos défis sont interactifs et intégrés ? Essayez quelques défis liés à C/C++:Embed sur la plateforme d'apprentissage dès aujourd'hui !

ウェビナーを表示する
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

レポートを表示するデモを予約する
PDFをダウンロード
リソースを表示する
共有する:
リンクトインのブランドソーシャルx ロゴ
さらに詳しく知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
作者
Secure Code Warrior
2021年8月19日発行

Secure Code Warrior fait du codage sécurisé une expérience positive et engageante pour les développeurs à mesure qu'ils améliorent leurs compétences. Nous guidons chaque codeur le long de son parcours d'apprentissage préféré, afin que les développeurs doués pour la sécurité deviennent les super-héros du quotidien de notre monde connecté.

Cet article a été rédigé par l'équipe d'experts du secteur de Secure Code Warrior, qui s'est engagée à donner aux développeurs les connaissances et les compétences nécessaires pour créer des logiciels sécurisés dès le départ. S'appuyant sur une expertise approfondie en matière de pratiques de codage sécurisé, de tendances du secteur et de connaissances du monde réel.

共有する:
リンクトインのブランドソーシャルx ロゴ

Les systèmes embarqués contribuent à fournir de nombreuses technologies modernes. Du régulateur de vitesse adaptatif de votre voiture au Wifi de votre réfrigérateur intelligent. Face à la recrudescence des cyberattaques, la sécurisation de ces systèmes est devenue essentielle.

Les appareils embarqués sont des cibles privilégiées pour le piratage, car une attaque réussie peut permettre aux intrus d'accéder aux données qu'ils produisent, reçoivent et traitent. Cela peut souvent avoir de graves conséquences pour l'ensemble du système alimenté par le périphérique intégré. Par exemple, arrêt un dispositif intégré à l'avion de chasse F-15, qui collecte des données à partir de diverses caméras et capteurs, peut considérablement entraver les défenses de l'avion.

Nous avons écrit 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é intégrée ?
  • Difficultés rencontrées lors de la mise en œuvre de la sécurité intégrée.
  • Qu'est-ce qui rend un système embarqué « sécurisé » ?
  • Pourquoi la sécurité de bout en bout est importante dans un écosystème intégré.
  • Certains outils de sécurité intégrés.
  • Qu'est-ce qui manque aux solutions embarquées classiques ?
  • L'avenir de la sécurité embarquée.

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

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

Les modules matériels des systèmes embarqués étant de petite taille, ils présentent diverses limites en matière de mémoire et de stockage. Leur intégration de mesures de sécurité devient donc un énorme défi de conception. Cependant, aussi difficile que cela puisse être, c'est un besoin du moment.

De nombreux gadgets et machines alimentés par des appareils intégrés sont également connectés à Internet. Cela signifie que les pirates peuvent y accéder sans autorisation et exécuter n'importe quel 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 soit capable de prendre le contrôle d'un périphérique intégré qui permet aux conducteurs de mettre leur voiture en mode pilote automatique. Le pirate informatique peut alors diriger la voiture hors route ou dans la circulation, ce qui peut causer de gros dégâts.

Défis critiques en matière de sécurité des systèmes embarqués

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

  1. Manque de sensibilisation des développeurs :

Les développeurs ne connaissent généralement pas les meilleures pratiques pour développer des appareils intégrés sécurisés. Cela est dû en partie au point #2, et en partie au fait que les applications embarquées sont beaucoup 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, y compris dans un environnement restreint de micro-ordinateurs, peut s'avérer difficile.

  1. Absence de standardisation :

Il n'existe pas de normes de cybersécurité pour les systèmes embarqués. Même si l'industrie automobile essaie lentement de changer cela. Au cours des dernières années, les chercheurs ont publié de nombreuses publications traitant des considérations de cybersécurité pour les véhicules intelligents. Parmi les plus remarquables, citons SAE J3061, « Guide de cybersécurité pour les systèmes cyberphysiques des véhicules : » et Règlement du WP.29 de la CEE-ONU sur la cybersécurité et les processus de mise à jour des logiciels.

  1. Utilisation de composants tiers

De nombreux appareils intégrés nécessitaient des composants matériels et logiciels tiers pour fonctionner. Souvent, ces composants sont utilisés sans avoir été testés pour détecter des failles de sécurité ou des vulnérabilités.

  1. Logiciel obsolète

Un microprogramme obsolète est généralement truffé de bogues et de vulnérabilités potentiellement exploitables. Même s'il peut être particulièrement difficile de mettre à jour périodiquement le firmware d'un petit appareil intégré, ce n'est pas quelque chose qui 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-feux d'entreprise, qui peuvent détecter et empêcher les attaques réseau. Les ressources étant limitées, il devient très difficile de mettre en œuvre des niveaux de sécurité rigoureux dans un environnement aussi restreint.

  1. Attaque à grande échelle

Les appareils intégrés sont généralement fabriqués à grande échelle. Cela signifie qu'une seule vulnérabilité ou faille peut affecter des millions d'appareils, parfois dans le monde entier. Contenir les impacts d'une attaque de système embarqué peut donc représenter un défi de taille.

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

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

Meilleures pratiques en matière de sécurité matérielle

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

  • Un environnement d'exécution fiable

Un environnement d'exécution sécurisé (TEE) permet d'isoler au niveau matériel les opérations critiques en matière de sécurité. Par exemple, l'authentification des utilisateurs peut être exécutée dans une zone séparée, ce qui permet de mieux protéger les informations sensibles.

  • Ressources matérielles partitionnées de manière appropriée

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 séparés de manière appropriée, afin de fournir leurs fonctions de la manière la plus indépendante possible. Cela permet d'éviter qu'une erreur dans un composant ne se propage à d'autres composants.

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

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

Meilleures pratiques en matière de sécurité logicielle

Les meilleures pratiques suivantes doivent être prises en compte lors de la création de logiciels embarqués :

  • Utilisez le démarrage sécurisé :

Lorsqu'un périphérique intégré démarre, 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 (microprogramme 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 petit qu'un système d'exploitation traditionnel et contient un sous-ensemble de ses fonctionnalités. L'espace du noyau est restreint et de nombreux services utilisateurs (tels que la gestion des systèmes de fichiers, etc.) sont conservés dans un espace séparé, appelé espace utilisateur. Comme il y a moins de code et d'opérations exécutées dans l'espace du noyau, 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 emballées. Par exemple, si une application nécessite une dépendance tierce, elle ne doit pas être installée globalement sur le système d'exploitation. Il devrait plutôt faire partie du dossier ou du contenant de la demande.

  • Validez toutes les entrées

Toutes les données reçues de sources externes et/ou non fiables doivent être correctement nettoyées et validées avant d'être transmises à des composants logiciels et/ou matériels critiques.

Si une application extrait des données à partir d'une intégration d'API externe et modifie certains paramètres en fonction de celle-ci, les données reçues doivent être rigoureusement validées avant de modifier le paramètre.

  • Protégez les données au repos :

Tous les logiciels, données, fichiers de configuration, clés sécurisées et mots de passe sensibles, etc. qui sont stockés sur un appareil intégré doivent être protégés. Cela se fait généralement par cryptage. Les clés privées utilisées pour chiffrer les données doivent être stockées dans un matériel de sécurité dédié et spécialement conçu.

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

L'époque où la sécurité n'était qu'une question secondaire est révolue. Une exigence non fonctionnelle. 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 intégré. Cela signifie : pensez à la sécurité lors du choix de votre matériel, lors de la définition de l'architecture de votre système, lors de la conception de votre système et, bien sûr, lors de l'écriture de code.

Commencez par le matériel

Quelle que soit la robustesse de votre sécurité logicielle, si votre matériel fait défaut, vous serez vulnérable aux attaques. Les techniques de sécurité intégrées peuvent permettre un démarrage sécurisé et une gestion efficace des fonctions cryptographiques et des secrets. Certains composants matériels peuvent également permettre au système d'exploitation de proposer diverses fonctionnalités de sécurité, telles que la détection des anomalies liées aux appels système, le cryptage 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 des défauts n'est que l'une d'entre elles. Lors d'une telle attaque, un pirate informatique potentiel peut utiliser des techniques d'injection de défauts pour tenter de générer des erreurs dans un périphérique intégré. Cependant, il existe plusieurs moyens de détecter de tels défauts et de s'en protéger :

  • Répliquez les opérations les plus critiques afin de pouvoir comparer différentes sorties, à tout moment, afin de détecter l'injection d'un défaut.
  • Échec par défaut : lorsque vous gérez plusieurs conditions (dans une condition If ou un bloc de commutation), échouez toujours dans le cas par défaut, c'est-à-dire lorsque rien d'autre ne correspond.
  • Introduisez un comportement aléatoire : l'ajout de petits délais aléatoires avant les opérations cruciales garantit que leur calendrier n'est jamais prévisible. C'est un élément essentiel de la détection des intrusions, car il est très difficile pour les pirates de déterminer les modes de fonctionnement et d'effectuer des attaques temporelles.
  • Écrans de protection : les fabricants doivent utiliser des écrans pour recouvrir les composants les plus cruciaux, afin de les protéger des manipulations externes.
  • Détectez les fluctuations anormales : détectez les fluctuations anormales de tension, de courant ou d'autres valeurs et déclenchez les exceptions en conséquence.

Sécurisez votre application... et votre système d'exploitation

Le renforcement de la défense de votre appareil au niveau de l'application implique :

  • Choisir des composants logiciels et matériels tiers testés et réputés qui peuvent être régulièrement mis à jour.
  • Former les développeurs aux meilleures pratiques en matière de sécurité des systèmes embarqués.
  • Utilisez un système d'exploitation à micro-noyau pour vous assurer qu'un nombre minimal d'opérations sont exécutées dans l'espace du noyau.
  • Surveillez et protégez-vous contre les attaques logicielles, notamment les virus, les chevaux de Troie et les malwares.
  • Supprimez tous les services inutiles. Votre firmware ne doit contenir que ce dont vous avez absolument besoin. Par exemple, il se peut que vous n'ayez pas besoin de transférer des fichiers ou de capturer des paquets. Vous pouvez donc désactiver les protocoles de transfert de fichiers et les packages réseau tels que telnet.
  • Utilisez 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 qui peuvent vous aider à sécuriser les systèmes embarqués :

  • Blaster de bus: plateforme de débogage à haut débit qui peut interagir avec les ports de débogage matériels.
  • Salade: Décodez divers protocoles tels que Serial, SPI et I2C, etc. Vous pouvez utiliser des analyseurs de protocoles créés par la communauté ou créer les vôtres.
  • Hydrabus: matériel multi-outils open source qui peut être utilisé pour le débogage, le piratage et/ou les tests d'intrusion du matériel embarqué.
  • Exploiter: Un cadre de test et d'exploitation de la sécurité de l'Internet des objets (IoT) open source.
  • FACT (L'outil d'analyse et de comparaison des micrologiciels): Framework utilisé pour automatiser l'analyse de la sécurité du microprogramme.
  • Routeurs Sploit: Un framework d'exploitation open source pour les appareils embarqués.
  • Firmadyne: Système open source pour l'émulation et l'analyse dynamique de microprogrammes intégrés basés sur Linux.

Quelles sont les lacunes des solutions de sécurité intégrées modernes ?

Bien qu'il existe différentes solutions disponibles pour le débogage, l'exploitation et le test de solutions intégrées, elles ne sont pas facilement utilisées. L'accent reste mis sur la sécurisation physique de l'appareil, mais les efforts déployés pour se protéger contre les attaques liées aux logiciels sont insuffisants. Même les risques et vulnérabilités de sécurité des applications les plus simples et facilement évitables sont encore courants sur les appareils embarqués modernes.

Cela s'explique en grande partie par le manque de sensibilisation des développeurs à la sécurité intégrée. Selon une enquête menée par Tripwire, 68 % des professionnels de l'informatique estiment que leur personnel n'est pas suffisamment conscient des vulnérabilités potentielles.

Les développeurs ne savent pas quels protocoles de sécurité choisir, quels frameworks éviter, quels composants matériels séparer, comment traiter les données sensibles et comment déterminer quel algorithme de cryptage est le plus sûr. Ce manque général de connaissances et ce mépris des meilleures pratiques rendent les applications exécutées sur des appareils intégrés susceptibles d'être compromises.

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

Beaucoup de travail est en cours sur le marché de la sécurité intégrée. Les experts estiment que le taux de croissance annuel composé (CAGR) du marché peut atteindre chiffre de 5,5 % au cours de la période 2021-2026. Avec le lancement de plus en plus d'appareils IoT, nous pouvons nous attendre à ce que de nouvelles normes de sécurité intégrées soient établies.

L'adoption croissante de dispositifs médicaux portables va également augmenter la demande de solutions de sécurité intégrées fiables. Pour que les appareils contiennent et traitent des données médicales sensibles, ils doivent satisfaire à certaines listes de sécurité, et nous espérons que cela incitera les fournisseurs et les ingénieurs à se concentrer davantage sur la sécurité.

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

En fin de compte, les signatures numériques, le chiffrement des données, l'ajout de pare-feux, la mise en œuvre du contrôle d'accès et la randomisation des opérations ne peuvent pas vous mener loin. Pour créer des appareils réellement sécurisés, les développeurs doivent être formés à l'écriture de code sécurisé. L'identification des risques de sécurité potentiels et leur atténuation lors de la phase de conception des applications contribuent grandement à la création de systèmes intrinsèquement sécurisé.

Secure Code Warrior どのようにSecure Code Warrior

Le produit phare de Secure Code Warrior, la plateforme d'apprentissage, propose de nombreux défis, cours et évaluations interactifs qui peuvent aider à former les développeurs à écrire du code C/C++ sécurisé. Le contenu de la plateforme est spécifique au framework et très engageant. Nos défis de codage C/C++:Embed se sont inspirés de MISRA C, AUTOSAR C++ (MISRA C++) et IEC.

Les développeurs peuvent se lancer dans des parcours d'apprentissage personnalisés, au cours desquels ils identifient les vulnérabilités spécifiques au C/C++ et, surtout, apprennent à corriger ces bogues. Au cours de ce processus, les développeurs peuvent suivre leurs progrès pour identifier leurs faiblesses et même participer à des compétitions de codage amicales avec leurs pairs. En savoir plus sur comment nous aidons les industries de l'automobile et des transports grâce à nos solutions.

Vous voulez découvrir dans quelle mesure nos défis sont interactifs et intégrés ? Essayez quelques défis liés à C/C++:Embed sur la plateforme d'apprentissage dès aujourd'hui !

目次

PDFをダウンロード
リソースを表示する
さらに詳しく知りたいですか?

Secure Code Warrior fait du codage sécurisé une expérience positive et engageante pour les développeurs à mesure qu'ils améliorent leurs compétences. Nous guidons chaque codeur le long de son parcours d'apprentissage préféré, afin que les développeurs doués pour la sécurité deviennent les super-héros du quotidien de notre monde connecté.

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません