Rate this post


Armée de grille-pain voyous

Il existe de nombreuses références de la culture pop à l’IA et aux robots voyous, ainsi qu’aux appareils qui allument leurs maîtres humains. C’est de la science-fiction, du plaisir et de la fantaisie, mais avec l’IoT et les appareils connectés de plus en plus répandus dans nos maisons, nous avons besoin de plus de discussions sur la cybersécurité et la sécurité.

Le logiciel est partout autour de nous, et il est très facile d’oublier à quel point nous comptons sur des lignes de code pour faire toutes ces choses intelligentes qui nous offrent tant d’innovation et de commodité.

Tout comme les logiciels Web, les API et les appareils mobiles, le code vulnérable dans les systèmes embarqués peut être exploité s’il est découvert par un attaquant.

Bien qu’il soit peu probable qu’une armée de grille-pain vienne asservir la race humaine (bien que le Robot Tesla est un peu préoccupant) à la suite d’une cyberattaque, des cyber-événements malveillants sont toujours possibles. Certaines de nos voitures, avions et dispositifs médicaux reposent également sur un code de systèmes embarqués complexe pour effectuer des tâches clés, et la perspective que ces objets soient compromis est potentiellement mortelle.

Comme pour tous les autres types de logiciels, les développeurs sont parmi les premiers à mettre la main sur le code, dès le début de la phase de création. Et tout comme tout autre type de logiciel, cela peut être le terreau de vulnérabilités insidieuses et courantes qui pourraient ne pas être détectées avant que le produit ne soit mis en ligne.

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 équipés d’un arsenal bien plus puissant pour lutter contre le type de menaces qui les concernent. Les systèmes embarqués – généralement écrits en C et C++ – seront de plus en plus utilisés à mesure que nos besoins technologiques continuent de croître et d’évoluer, et une formation spécialisée en sécurité pour les développeurs sur les outils de cet environnement est une stratégie défensive essentielle contre les cyberattaques.

Friteuses à air explosif, véhicules capricieux… sommes-nous vraiment en danger ?

Alors qu’il y a certains normes et réglementations concernant les meilleures pratiques de développement sécurisé pour assurer notre sécurité, nous devons faire des progrès beaucoup plus précis et significatifs vers tous les types de sécurité logicielle. Il peut sembler exagéré de penser à un problème qui peut être causé par quelqu’un qui pirate une friteuse à air, mais c’est arrivé sous la forme d’une attaque par exécution de code à distance (permettant à l’acteur menaçant d’élever la température à des niveaux dangereux), de même que des vulnérabilités conduisant à des prises de contrôle de véhicules.

Les véhicules sont particulièrement complexes, avec de multiples systèmes embarqués à bord, chacun prenant en charge des micro-fonctions ; tout, des essuie-glaces automatiques aux capacités du moteur et du freinage. Entremêlé à une pile sans cesse croissante de technologies de communication comme le WI-Fi, le Bluetooth et le GPS, le véhicule connecté représente une infrastructure numérique complexe qui est exposée à de multiples vecteurs d’attaque. Et avec 76,3 millions de véhicules connectés devraient circuler sur les routes dans le monde d’ici 2023, qui représente un monolithe de fondations défensives à poser pour une véritable sécurité.

MISRA est une organisation clé qui lutte efficacement contre les menaces des systèmes embarqués, ayant développé des lignes directrices pour faciliter la sûreté, la sécurité, la portabilité et la fiabilité du code dans le contexte des systèmes embarqués. Ces directives sont une étoile du nord dans les normes que chaque entreprise doit s’efforcer d’atteindre dans ses projets de systèmes embarqués.

Cependant, pour créer et exécuter du code qui adhère à cette norme d’or, il faut des ingénieurs de systèmes embarqués qui sont confiants – sans parler de la sécurité – sur les outils.

Pourquoi la montée en compétence en sécurité des systèmes embarqués est-elle si spécifique ?

Les langages de programmation C et C++ sont gériatriques selon les normes d’aujourd’hui, mais restent largement utilisés. Ils forment le noyau fonctionnel de la base de code des systèmes embarqués, et Embedded C/C++ profite d’une vie brillante et moderne dans le cadre du monde des appareils connectés.

Bien que ces langages aient des racines assez anciennes – et affichent des comportements de vulnérabilité similaires en termes de problèmes courants tels que les défauts d’injection et le débordement de tampon – pour que les développeurs réussissent vraiment à atténuer les bogues de sécurité dans les systèmes embarqués, ils doivent se familiariser avec un code qui imite le environnements dans lesquels ils travaillent. La formation C générique sur les pratiques de sécurité générales ne sera tout simplement pas aussi puissante et mémorable que si du temps et des soins supplémentaires étaient consacrés à travailler dans un contexte C Embedded.

Avec une douzaine à plus d’une centaine de systèmes embarqué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 le réparer, directement dans l’IDE.

Protéger les systèmes embarqués dès le départ est la responsabilité de tous

Le statu quo dans de nombreuses organisations est que la vitesse de développement prime sur la sécurité, du moins en ce qui concerne la responsabilité du développeur. Ils sont rarement évalués sur leur capacité à produire du code sécurisé, mais le développement rapide de fonctionnalités impressionnantes est le signe du succès. La demande de logiciels ne fera qu’augmenter, mais c’est une culture qui nous a mis en place pour une bataille perdue d’avance 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 un vide qu’un membre de l’équipe AppSec doit aider à combler en recommandant les bons programmes de perfectionnement accessibles (pour ne pas dire évaluables) pour l’ensemble de leur communauté de développement. Dès le début d’un projet de développement logiciel, la sécurité doit être une considération primordiale, avec tout le monde – en particulier les développeurs – étant donné ce dont ils ont besoin pour jouer leur rôle.

Se familiariser avec les problèmes de sécurité des systèmes embarqués

Le débordement de tampon, les défauts d’injection et les bogues de logique métier sont tous des pièges courants dans le développement de systèmes embarqués. Lorsqu’il est enfoui profondément dans un labyrinthe de microcontrôleurs dans un seul véhicule ou appareil, il peut provoquer un désastre du point de vue de la sécurité.

Le débordement de la mémoire tampon est particulièrement répandu, et si vous voulez approfondir la façon dont cela a aidé à compromettre cette friteuse à air dont nous avons parlé précédemment (permettant l’exécution de code à distance), consultez ce rapport sur CVE-2020-28592.

Maintenant, il est temps de se familiariser avec une vulnérabilité de débordement de tampon, dans du vrai code C/C++ intégré. Relevez ce défi pour voir si vous pouvez localiser, identifier et corriger les mauvais modèles de codage qui conduisent à ce bogue insidieux :

[PLAY NOW]

Comment as-tu fais? Visite www.securecodewarrior.com pour une formation précise et efficace sur la sécurité des systèmes embarqués.



Leave a Reply