Quand les micro-ondes fonctionnent mal : pourquoi la sécurité des systèmes embarqués est la prochaine bataille des développeurs

Il existe de nombreuses références à la culture pop à des IA et à des robots malhonnêtes, ainsi qu'à des appareils qui s'en prennent à leurs maîtres humains. Il est fortement imprégné de science-fiction et de fantasy, mais l'IoT et les appareils connectés étant de plus en plus répandus dans nos foyers, il devrait en être de même pour les discussions sur la cybersécurité et la sécurité. Les logiciels sont omniprésents et il est très facile d'oublier à quel point nous nous appuyons sur des lignes de code pour effectuer toutes ces tâches intelligentes qui nous apportent tant d'innovation et de commodité. Tout comme les logiciels Web, les API et les appareils mobiles, le code vulnérable des systèmes embarqués peut être exploité s'il est découvert dans la nature par un attaquant.
Bien qu'il soit peu probable qu'une armée de micro-ondes vienne asservir la race humaine (bien que le Robot Tesla est un peu préoccupant) car à la suite d'une cyberattaque, des cyberévénements malveillants sont toujours possibles. Certaines de nos voitures, avions et dispositifs médicaux s'appuient également sur un code de systèmes intégrés complexe pour effectuer des tâches clés, et la perspective que ces objets soient compromis est non seulement alarmante, mais potentiellement mortelle.
Comme tous les autres types de logiciels, les développeurs sont parmi les premiers à toucher au code, dès le début de la phase de création. Et comme tout autre type de logiciel, celui-ci peut être à l'origine de vulnérabilités insidieuses et courantes qui pourraient passer inaperçues avant la mise en service du produit.
Les développeurs ne sont pas des experts en sécurité et aucune entreprise ne devrait s'attendre à ce qu'ils jouent ce rôle, mais ils peuvent être dotés d'un arsenal bien plus puissant pour faire face au type de menaces qui les concernent. Les systèmes embarqués, généralement écrits en C et C++, seront utilisés de plus en plus fréquemment à mesure que nos besoins technologiques continuent d'évoluer, et une formation spécialisée en sécurité pour les développeurs sur les outils de cet environnement est essentielle.
Des friteuses à air qui explosent, des véhicules malhonnêtes... Sommes-nous des canards assis ?
Bien qu'il y ait quelques normes et réglementations relatives à tout développement sécurisé Pour assurer notre sécurité, nous devons faire des progrès bien plus précis et significatifs en matière de sécurité logicielle sous tous ses aspects. Il peut sembler exagéré de penser à un problème pouvant être causé par le piratage d'une friteuse à air, mais c'est arrivé sous la forme d'une attaque par exécution de code à distance (permettant à l'auteur de la menace d'élever la température à des niveaux dangereux), tout comme les vulnérabilités conduisant à des prises de contrôle de véhicules.
Les véhicules, en particulier, sont particulièrement complexes, car ils sont dotés de multiples systèmes intégrés, chacun prenant en charge des microfonctions, des essuie-glaces automatiques aux capacités du moteur et du freinage. Associé à un ensemble croissant de technologies de communication telles que le Wi-Fi, le Bluetooth et le GPS, le véhicule connecté représente une infrastructure numérique complexe exposée à de multiples vecteurs d'attaque. Et avec 76,3 millions de véhicules connectés devraient circuler dans le monde d'ici 2023, qui représente un monolithe de bases défensives à poser pour une véritable sécurité.
MISRA est une organisation clé qui lutte efficacement contre les menaces liées aux systèmes embarqués, ayant élaboré des directives visant à faciliter la sûreté, la sécurité, la portabilité et la fiabilité du code dans le contexte des systèmes embarqués. Ces directives constituent la pierre angulaire des normes que chaque entreprise doit respecter dans le cadre de ses projets de systèmes embarqués.
Cependant, pour créer et exécuter du code conforme à cette norme de référence, il faut des ingénieurs en systèmes embarqués qui ont confiance en ces outils, sans parler de leur niveau de sécurité.
Pourquoi le renforcement des compétences en matière de sécurité des systèmes embarqués est-il si spécifique ?
Les langages de programmation C et C++ sont gériatriques selon les normes actuelles, mais restent largement utilisés. Ils constituent le cœur fonctionnel de la base de code des systèmes embarqués, et Embedded C/C++ bénéficie d'une vie moderne et brillante dans le monde des appareils connectés.
Bien que ces langages aient des racines assez anciennes et présentent des comportements de vulnérabilité similaires en termes de problèmes courants tels que les failles d'injection et le dépassement de la mémoire tampon, pour que les développeurs réussissent réellement à atténuer les bogues de sécurité des systèmes embarqués, ils doivent se familiariser avec un code imitant les environnements dans lesquels ils travaillent. La formation générique en C sur les pratiques générales de sécurité ne sera tout simplement pas aussi efficace et mémorable que si vous consacriez plus de temps et de soin à travailler dans un contexte C intégré.
Avec une douzaine à plus d'une centaine de systèmes intégrés dans un véhicule moderne, il est impératif que les développeurs reçoivent une formation précise sur ce qu'il faut rechercher et comment y remédier, directement dans l'IDE.

La protection des systèmes embarqués depuis le rez-de-chaussée est la responsabilité de tous
Le statu quo dans de nombreuses organisations est que la rapidité du développement l'emporte sur la sécurité, du moins en ce qui concerne la responsabilité des développeurs. Leur capacité à produire du code sécurisé est rarement évaluée, mais le développement rapide de fonctionnalités géniales constitue la référence absolue. La demande de logiciels ne fera qu'augmenter, mais cette culture nous a préparés à une bataille perdue contre les vulnérabilités et les cyberattaques qu'elles permettent.
Si les développeurs ne sont pas formés, ce n'est pas de leur faute, et c'est une lacune qu'un membre de l'équipe AppSec doit aider à combler en recommandant des programmes de renforcement des compétences adaptés et accessibles (pour ne pas dire évaluables) à l'ensemble de la communauté des développeurs. Dès le début d'un projet de développement logiciel, la sécurité doit être une priorité, et chacun, en particulier les développeurs, doit avoir le rôle dont il a besoin pour jouer son rôle.
Résoudre les problèmes de sécurité des systèmes embarqués
Le dépassement de la mémoire tampon, les failles d'injection et les bogues de logique métier sont tous des pièges courants dans le développement de systèmes embarqués. Enfoui au plus profond d'un labyrinthe de microcontrôleurs dans un seul véhicule ou appareil, cela peut être catastrophique du point de vue de la sécurité.
Le débordement de mémoire tampon est particulièrement fréquent, et si vous souhaitez en savoir plus sur la façon dont cela a contribué à compromettre la friteuse à air dont nous avons parlé précédemment (permettant l'exécution de code à distance), consultez ce rapport sur CVE-2020-28592.
Il est maintenant temps de se familiariser avec une vulnérabilité de débordement de mémoire tampon, dans un véritable code C/C++ intégré. Relevez ce défi pour voir si vous pouvez localiser, identifier et corriger les mauvais modèles de codage à l'origine de ce bogue insidieux :
.png)
Comment t'es-tu débrouillé ? Visitez www.securecodewarrior.com pour une formation précise et efficace sur la sécurité des systèmes embarqués.
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.
%252520%252520(3).avif)
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.

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

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.



