Quand les bons micro-ondes tournent mal : Pourquoi la sécurité des systèmes embarqués est la prochaine bataille pour les développeurs
La culture pop regorge de références à l'IA et aux robots malveillants, ainsi qu'aux appareils qui se retournent contre leurs maîtres humains. Il s'agit d'un thème fortement imprégné de science-fiction et de fantastique, mais comme l'IdO et les appareils connectés sont de plus en plus présents dans nos foyers, la conversation autour de la cybersécurité et de la sûreté devrait l'être aussi. Les logiciels sont partout autour de nous, et il est très facile d'oublier à quel point nous dépendons de lignes de code pour réaliser toutes ces choses intelligentes qui nous apportent tant d'innovation et de commodité. À l'instar des logiciels basés sur le web, des API et des 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.
S'il est peu probable qu'une armée de micro-ondes vienne asservir la race humaine (bien que le robot Tesla soit un peu inquiétant) à la suite d'une cyberattaque, des cyberévénements malveillants sont toujours possibles. Certaines de nos voitures, certains de nos avions et certains de nos appareils médicaux reposent également sur des systèmes intégrés complexes pour effectuer des tâches essentielles, et la perspective que ces objets soient compromis n'est pas seulement alarmante, elle peut aussi mettre des vies en danger.
Comme pour tous les autres types de logiciels, les développeurs sont parmi les premiers à toucher le code, dès le début de la phase de création. Et comme pour tous les autres types de logiciels, il peut s'agir d'un terrain propice à l'apparition de vulnérabilités insidieuses et courantes qui pourraient ne pas être détectées avant que le produit ne soit mis en service.
Les développeurs ne sont pas des experts en sécurité, et aucune entreprise ne devrait attendre d'eux qu'ils jouent ce rôle, mais ils peuvent être dotés d'un arsenal bien plus puissant pour s'attaquer aux 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 continueront d'évoluer, et il est essentiel que les développeurs reçoivent une formation spécialisée en matière de sécurité sur les outils utilisés dans cet environnement.
Explosion de friteuses, véhicules hors-la-loi... Sommes-nous des cibles faciles ?
Bien qu'il existe des normes et des réglementations en matière de développement sécurisé pour nous protéger, nous devons faire des progrès beaucoup plus précis et significatifs en ce qui concerne tous les types de sécurité logicielle. Il peut sembler exagéré de penser à un problème pouvant être causé par le piratage d'une friteuse, mais cela s'est produit sous la forme d'une attaque par exécution de code à distance (permettant à l'acteur de la menace d'augmenter la température à des niveaux dangereux), tout comme les vulnérabilités conduisant à la prise de contrôle d'un véhicule.
Les véhicules, en particulier, sont particulièrement complexes, avec de multiples systèmes intégrés à bord, chacun prenant en charge des micro-fonctions, allant des essuie-glaces automatiques aux capacités du moteur et du système de freinage. Associé à une pile de technologies de communication de plus en plus importante, comme 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 attendus sur les routes du monde entier d'ici 2023, cela représente un monolithe de fondations défensives à poser pour une véritable sécurité.
MISRA est une organisation clé dans la lutte contre les menaces qui pèsent sur les systèmes embarqués. Elle a élaboré des lignes directrices pour faciliter la sécurité du code, la portabilité et la fiabilité dans le contexte des systèmes embarqués. Ces lignes directrices sont l'étoile polaire des normes que chaque entreprise doit s'efforcer d'atteindre dans ses projets de systèmes embarqués.
Cependant, pour créer et exécuter un code qui adhère à cet étalon-or, il faut des ingénieurs en systèmes embarqués qui soient confiants dans les outils - sans parler de la sensibilisation à la sécurité.
Pourquoi les compétences en matière de sécurité des systèmes embarqués sont-elles si spécifiques ?
Les langages de programmation C et C++ sont gériatriques par rapport aux normes actuelles, mais ils restent largement utilisés. Ils constituent le noyau fonctionnel de la base de code des systèmes embarqués, et Embedded C/C++ jouit d'une vie brillante et moderne dans le monde des appareils connectés.
Bien que ces langages aient des racines plutôt anciennes - et qu'ils présentent des comportements de vulnérabilité similaires en termes de problèmes courants tels que les failles d'injection et les débordements de mémoire tampon - pour que les développeurs parviennent réellement à atténuer les bogues de sécurité dans les systèmes embarqués, ils doivent se familiariser avec un code qui imite les environnements dans lesquels ils travaillent. Une 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 l'on consacre plus de temps et d'attention à travailler dans un contexte de C embarqué.
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.
La protection des systèmes embarqués dès le départ est l'affaire de tous
Dans de nombreuses organisations, le statu quo veut que la vitesse de développement l'emporte sur la sécurité, du moins lorsqu'il s'agit de la responsabilité des développeurs. Ceux-ci sont rarement évalués sur leur capacité à produire du code sécurisé, mais le développement rapide de fonctionnalités impressionnantes est la norme. La demande de logiciels ne fera qu'augmenter, mais cette culture nous a conduits à 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 une lacune que quelqu'un dans l'équipe AppSec doit aider à combler en recommandant les bons programmes, accessibles (sans parler de l'évaluation) de mise à niveau pour l'ensemble de la communauté de développement. Dès le début d'un projet de développement logiciel, la sécurité doit être une préoccupation majeure, et tout le monde - en particulier les développeurs - doit recevoir ce dont il a besoin pour jouer son rôle.
S'attaquer aux problèmes de sécurité des systèmes embarqués
Les débordements de mémoire tampon, les failles d'injection et les bogues de logique d'entreprise sont autant d'écueils courants dans le développement de systèmes intégrés. Lorsqu'ils sont enfouis dans un labyrinthe de microcontrôleurs dans un seul véhicule ou appareil, ils peuvent être catastrophiques du point de vue de la sécurité.
Le dépassement de tampon est particulièrement répandu, et si vous souhaitez vous plonger dans la manière dont il a contribué à compromettre la friteuse dont nous avons parlé précédemment (permettant l'exécution de code à distance), consultez ce rapport sur la CVE-2020-28592.
Il est maintenant temps de mettre la main à la pâte 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 schémas de codage qui conduisent à ce bogue insidieux :
Comment avez-vous fait ? Visitez www.securecodewarrior.com pour une formation précise et efficace sur la sécurité des systèmes embarqués.
À l'instar des logiciels basés sur le web, des API et des 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.
Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationMatias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.
Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.
Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.
La culture pop regorge de références à l'IA et aux robots malveillants, ainsi qu'aux appareils qui se retournent contre leurs maîtres humains. Il s'agit d'un thème fortement imprégné de science-fiction et de fantastique, mais comme l'IdO et les appareils connectés sont de plus en plus présents dans nos foyers, la conversation autour de la cybersécurité et de la sûreté devrait l'être aussi. Les logiciels sont partout autour de nous, et il est très facile d'oublier à quel point nous dépendons de lignes de code pour réaliser toutes ces choses intelligentes qui nous apportent tant d'innovation et de commodité. À l'instar des logiciels basés sur le web, des API et des 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.
S'il est peu probable qu'une armée de micro-ondes vienne asservir la race humaine (bien que le robot Tesla soit un peu inquiétant) à la suite d'une cyberattaque, des cyberévénements malveillants sont toujours possibles. Certaines de nos voitures, certains de nos avions et certains de nos appareils médicaux reposent également sur des systèmes intégrés complexes pour effectuer des tâches essentielles, et la perspective que ces objets soient compromis n'est pas seulement alarmante, elle peut aussi mettre des vies en danger.
Comme pour tous les autres types de logiciels, les développeurs sont parmi les premiers à toucher le code, dès le début de la phase de création. Et comme pour tous les autres types de logiciels, il peut s'agir d'un terrain propice à l'apparition de vulnérabilités insidieuses et courantes qui pourraient ne pas être détectées avant que le produit ne soit mis en service.
Les développeurs ne sont pas des experts en sécurité, et aucune entreprise ne devrait attendre d'eux qu'ils jouent ce rôle, mais ils peuvent être dotés d'un arsenal bien plus puissant pour s'attaquer aux 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 continueront d'évoluer, et il est essentiel que les développeurs reçoivent une formation spécialisée en matière de sécurité sur les outils utilisés dans cet environnement.
Explosion de friteuses, véhicules hors-la-loi... Sommes-nous des cibles faciles ?
Bien qu'il existe des normes et des réglementations en matière de développement sécurisé pour nous protéger, nous devons faire des progrès beaucoup plus précis et significatifs en ce qui concerne tous les types de sécurité logicielle. Il peut sembler exagéré de penser à un problème pouvant être causé par le piratage d'une friteuse, mais cela s'est produit sous la forme d'une attaque par exécution de code à distance (permettant à l'acteur de la menace d'augmenter la température à des niveaux dangereux), tout comme les vulnérabilités conduisant à la prise de contrôle d'un véhicule.
Les véhicules, en particulier, sont particulièrement complexes, avec de multiples systèmes intégrés à bord, chacun prenant en charge des micro-fonctions, allant des essuie-glaces automatiques aux capacités du moteur et du système de freinage. Associé à une pile de technologies de communication de plus en plus importante, comme 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 attendus sur les routes du monde entier d'ici 2023, cela représente un monolithe de fondations défensives à poser pour une véritable sécurité.
MISRA est une organisation clé dans la lutte contre les menaces qui pèsent sur les systèmes embarqués. Elle a élaboré des lignes directrices pour faciliter la sécurité du code, la portabilité et la fiabilité dans le contexte des systèmes embarqués. Ces lignes directrices sont l'étoile polaire des normes que chaque entreprise doit s'efforcer d'atteindre dans ses projets de systèmes embarqués.
Cependant, pour créer et exécuter un code qui adhère à cet étalon-or, il faut des ingénieurs en systèmes embarqués qui soient confiants dans les outils - sans parler de la sensibilisation à la sécurité.
Pourquoi les compétences en matière de sécurité des systèmes embarqués sont-elles si spécifiques ?
Les langages de programmation C et C++ sont gériatriques par rapport aux normes actuelles, mais ils restent largement utilisés. Ils constituent le noyau fonctionnel de la base de code des systèmes embarqués, et Embedded C/C++ jouit d'une vie brillante et moderne dans le monde des appareils connectés.
Bien que ces langages aient des racines plutôt anciennes - et qu'ils présentent des comportements de vulnérabilité similaires en termes de problèmes courants tels que les failles d'injection et les débordements de mémoire tampon - pour que les développeurs parviennent réellement à atténuer les bogues de sécurité dans les systèmes embarqués, ils doivent se familiariser avec un code qui imite les environnements dans lesquels ils travaillent. Une 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 l'on consacre plus de temps et d'attention à travailler dans un contexte de C embarqué.
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.
La protection des systèmes embarqués dès le départ est l'affaire de tous
Dans de nombreuses organisations, le statu quo veut que la vitesse de développement l'emporte sur la sécurité, du moins lorsqu'il s'agit de la responsabilité des développeurs. Ceux-ci sont rarement évalués sur leur capacité à produire du code sécurisé, mais le développement rapide de fonctionnalités impressionnantes est la norme. La demande de logiciels ne fera qu'augmenter, mais cette culture nous a conduits à 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 une lacune que quelqu'un dans l'équipe AppSec doit aider à combler en recommandant les bons programmes, accessibles (sans parler de l'évaluation) de mise à niveau pour l'ensemble de la communauté de développement. Dès le début d'un projet de développement logiciel, la sécurité doit être une préoccupation majeure, et tout le monde - en particulier les développeurs - doit recevoir ce dont il a besoin pour jouer son rôle.
S'attaquer aux problèmes de sécurité des systèmes embarqués
Les débordements de mémoire tampon, les failles d'injection et les bogues de logique d'entreprise sont autant d'écueils courants dans le développement de systèmes intégrés. Lorsqu'ils sont enfouis dans un labyrinthe de microcontrôleurs dans un seul véhicule ou appareil, ils peuvent être catastrophiques du point de vue de la sécurité.
Le dépassement de tampon est particulièrement répandu, et si vous souhaitez vous plonger dans la manière dont il a contribué à compromettre la friteuse dont nous avons parlé précédemment (permettant l'exécution de code à distance), consultez ce rapport sur la CVE-2020-28592.
Il est maintenant temps de mettre la main à la pâte 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 schémas de codage qui conduisent à ce bogue insidieux :
Comment avez-vous fait ? Visitez www.securecodewarrior.com pour une formation précise et efficace sur la sécurité des systèmes embarqués.
La culture pop regorge de références à l'IA et aux robots malveillants, ainsi qu'aux appareils qui se retournent contre leurs maîtres humains. Il s'agit d'un thème fortement imprégné de science-fiction et de fantastique, mais comme l'IdO et les appareils connectés sont de plus en plus présents dans nos foyers, la conversation autour de la cybersécurité et de la sûreté devrait l'être aussi. Les logiciels sont partout autour de nous, et il est très facile d'oublier à quel point nous dépendons de lignes de code pour réaliser toutes ces choses intelligentes qui nous apportent tant d'innovation et de commodité. À l'instar des logiciels basés sur le web, des API et des 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.
S'il est peu probable qu'une armée de micro-ondes vienne asservir la race humaine (bien que le robot Tesla soit un peu inquiétant) à la suite d'une cyberattaque, des cyberévénements malveillants sont toujours possibles. Certaines de nos voitures, certains de nos avions et certains de nos appareils médicaux reposent également sur des systèmes intégrés complexes pour effectuer des tâches essentielles, et la perspective que ces objets soient compromis n'est pas seulement alarmante, elle peut aussi mettre des vies en danger.
Comme pour tous les autres types de logiciels, les développeurs sont parmi les premiers à toucher le code, dès le début de la phase de création. Et comme pour tous les autres types de logiciels, il peut s'agir d'un terrain propice à l'apparition de vulnérabilités insidieuses et courantes qui pourraient ne pas être détectées avant que le produit ne soit mis en service.
Les développeurs ne sont pas des experts en sécurité, et aucune entreprise ne devrait attendre d'eux qu'ils jouent ce rôle, mais ils peuvent être dotés d'un arsenal bien plus puissant pour s'attaquer aux 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 continueront d'évoluer, et il est essentiel que les développeurs reçoivent une formation spécialisée en matière de sécurité sur les outils utilisés dans cet environnement.
Explosion de friteuses, véhicules hors-la-loi... Sommes-nous des cibles faciles ?
Bien qu'il existe des normes et des réglementations en matière de développement sécurisé pour nous protéger, nous devons faire des progrès beaucoup plus précis et significatifs en ce qui concerne tous les types de sécurité logicielle. Il peut sembler exagéré de penser à un problème pouvant être causé par le piratage d'une friteuse, mais cela s'est produit sous la forme d'une attaque par exécution de code à distance (permettant à l'acteur de la menace d'augmenter la température à des niveaux dangereux), tout comme les vulnérabilités conduisant à la prise de contrôle d'un véhicule.
Les véhicules, en particulier, sont particulièrement complexes, avec de multiples systèmes intégrés à bord, chacun prenant en charge des micro-fonctions, allant des essuie-glaces automatiques aux capacités du moteur et du système de freinage. Associé à une pile de technologies de communication de plus en plus importante, comme 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 attendus sur les routes du monde entier d'ici 2023, cela représente un monolithe de fondations défensives à poser pour une véritable sécurité.
MISRA est une organisation clé dans la lutte contre les menaces qui pèsent sur les systèmes embarqués. Elle a élaboré des lignes directrices pour faciliter la sécurité du code, la portabilité et la fiabilité dans le contexte des systèmes embarqués. Ces lignes directrices sont l'étoile polaire des normes que chaque entreprise doit s'efforcer d'atteindre dans ses projets de systèmes embarqués.
Cependant, pour créer et exécuter un code qui adhère à cet étalon-or, il faut des ingénieurs en systèmes embarqués qui soient confiants dans les outils - sans parler de la sensibilisation à la sécurité.
Pourquoi les compétences en matière de sécurité des systèmes embarqués sont-elles si spécifiques ?
Les langages de programmation C et C++ sont gériatriques par rapport aux normes actuelles, mais ils restent largement utilisés. Ils constituent le noyau fonctionnel de la base de code des systèmes embarqués, et Embedded C/C++ jouit d'une vie brillante et moderne dans le monde des appareils connectés.
Bien que ces langages aient des racines plutôt anciennes - et qu'ils présentent des comportements de vulnérabilité similaires en termes de problèmes courants tels que les failles d'injection et les débordements de mémoire tampon - pour que les développeurs parviennent réellement à atténuer les bogues de sécurité dans les systèmes embarqués, ils doivent se familiariser avec un code qui imite les environnements dans lesquels ils travaillent. Une 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 l'on consacre plus de temps et d'attention à travailler dans un contexte de C embarqué.
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.
La protection des systèmes embarqués dès le départ est l'affaire de tous
Dans de nombreuses organisations, le statu quo veut que la vitesse de développement l'emporte sur la sécurité, du moins lorsqu'il s'agit de la responsabilité des développeurs. Ceux-ci sont rarement évalués sur leur capacité à produire du code sécurisé, mais le développement rapide de fonctionnalités impressionnantes est la norme. La demande de logiciels ne fera qu'augmenter, mais cette culture nous a conduits à 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 une lacune que quelqu'un dans l'équipe AppSec doit aider à combler en recommandant les bons programmes, accessibles (sans parler de l'évaluation) de mise à niveau pour l'ensemble de la communauté de développement. Dès le début d'un projet de développement logiciel, la sécurité doit être une préoccupation majeure, et tout le monde - en particulier les développeurs - doit recevoir ce dont il a besoin pour jouer son rôle.
S'attaquer aux problèmes de sécurité des systèmes embarqués
Les débordements de mémoire tampon, les failles d'injection et les bogues de logique d'entreprise sont autant d'écueils courants dans le développement de systèmes intégrés. Lorsqu'ils sont enfouis dans un labyrinthe de microcontrôleurs dans un seul véhicule ou appareil, ils peuvent être catastrophiques du point de vue de la sécurité.
Le dépassement de tampon est particulièrement répandu, et si vous souhaitez vous plonger dans la manière dont il a contribué à compromettre la friteuse dont nous avons parlé précédemment (permettant l'exécution de code à distance), consultez ce rapport sur la CVE-2020-28592.
Il est maintenant temps de mettre la main à la pâte 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 schémas de codage qui conduisent à ce bogue insidieux :
Comment avez-vous fait ? Visitez www.securecodewarrior.com pour une formation précise et efficace sur la sécurité des systèmes embarqués.
Cliquez sur le lien ci-dessous et téléchargez le PDF de cette ressource.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Voir le rapportRéservez une démonstrationMatias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.
Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.
Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.
La culture pop regorge de références à l'IA et aux robots malveillants, ainsi qu'aux appareils qui se retournent contre leurs maîtres humains. Il s'agit d'un thème fortement imprégné de science-fiction et de fantastique, mais comme l'IdO et les appareils connectés sont de plus en plus présents dans nos foyers, la conversation autour de la cybersécurité et de la sûreté devrait l'être aussi. Les logiciels sont partout autour de nous, et il est très facile d'oublier à quel point nous dépendons de lignes de code pour réaliser toutes ces choses intelligentes qui nous apportent tant d'innovation et de commodité. À l'instar des logiciels basés sur le web, des API et des 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.
S'il est peu probable qu'une armée de micro-ondes vienne asservir la race humaine (bien que le robot Tesla soit un peu inquiétant) à la suite d'une cyberattaque, des cyberévénements malveillants sont toujours possibles. Certaines de nos voitures, certains de nos avions et certains de nos appareils médicaux reposent également sur des systèmes intégrés complexes pour effectuer des tâches essentielles, et la perspective que ces objets soient compromis n'est pas seulement alarmante, elle peut aussi mettre des vies en danger.
Comme pour tous les autres types de logiciels, les développeurs sont parmi les premiers à toucher le code, dès le début de la phase de création. Et comme pour tous les autres types de logiciels, il peut s'agir d'un terrain propice à l'apparition de vulnérabilités insidieuses et courantes qui pourraient ne pas être détectées avant que le produit ne soit mis en service.
Les développeurs ne sont pas des experts en sécurité, et aucune entreprise ne devrait attendre d'eux qu'ils jouent ce rôle, mais ils peuvent être dotés d'un arsenal bien plus puissant pour s'attaquer aux 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 continueront d'évoluer, et il est essentiel que les développeurs reçoivent une formation spécialisée en matière de sécurité sur les outils utilisés dans cet environnement.
Explosion de friteuses, véhicules hors-la-loi... Sommes-nous des cibles faciles ?
Bien qu'il existe des normes et des réglementations en matière de développement sécurisé pour nous protéger, nous devons faire des progrès beaucoup plus précis et significatifs en ce qui concerne tous les types de sécurité logicielle. Il peut sembler exagéré de penser à un problème pouvant être causé par le piratage d'une friteuse, mais cela s'est produit sous la forme d'une attaque par exécution de code à distance (permettant à l'acteur de la menace d'augmenter la température à des niveaux dangereux), tout comme les vulnérabilités conduisant à la prise de contrôle d'un véhicule.
Les véhicules, en particulier, sont particulièrement complexes, avec de multiples systèmes intégrés à bord, chacun prenant en charge des micro-fonctions, allant des essuie-glaces automatiques aux capacités du moteur et du système de freinage. Associé à une pile de technologies de communication de plus en plus importante, comme 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 attendus sur les routes du monde entier d'ici 2023, cela représente un monolithe de fondations défensives à poser pour une véritable sécurité.
MISRA est une organisation clé dans la lutte contre les menaces qui pèsent sur les systèmes embarqués. Elle a élaboré des lignes directrices pour faciliter la sécurité du code, la portabilité et la fiabilité dans le contexte des systèmes embarqués. Ces lignes directrices sont l'étoile polaire des normes que chaque entreprise doit s'efforcer d'atteindre dans ses projets de systèmes embarqués.
Cependant, pour créer et exécuter un code qui adhère à cet étalon-or, il faut des ingénieurs en systèmes embarqués qui soient confiants dans les outils - sans parler de la sensibilisation à la sécurité.
Pourquoi les compétences en matière de sécurité des systèmes embarqués sont-elles si spécifiques ?
Les langages de programmation C et C++ sont gériatriques par rapport aux normes actuelles, mais ils restent largement utilisés. Ils constituent le noyau fonctionnel de la base de code des systèmes embarqués, et Embedded C/C++ jouit d'une vie brillante et moderne dans le monde des appareils connectés.
Bien que ces langages aient des racines plutôt anciennes - et qu'ils présentent des comportements de vulnérabilité similaires en termes de problèmes courants tels que les failles d'injection et les débordements de mémoire tampon - pour que les développeurs parviennent réellement à atténuer les bogues de sécurité dans les systèmes embarqués, ils doivent se familiariser avec un code qui imite les environnements dans lesquels ils travaillent. Une 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 l'on consacre plus de temps et d'attention à travailler dans un contexte de C embarqué.
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.
La protection des systèmes embarqués dès le départ est l'affaire de tous
Dans de nombreuses organisations, le statu quo veut que la vitesse de développement l'emporte sur la sécurité, du moins lorsqu'il s'agit de la responsabilité des développeurs. Ceux-ci sont rarement évalués sur leur capacité à produire du code sécurisé, mais le développement rapide de fonctionnalités impressionnantes est la norme. La demande de logiciels ne fera qu'augmenter, mais cette culture nous a conduits à 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 une lacune que quelqu'un dans l'équipe AppSec doit aider à combler en recommandant les bons programmes, accessibles (sans parler de l'évaluation) de mise à niveau pour l'ensemble de la communauté de développement. Dès le début d'un projet de développement logiciel, la sécurité doit être une préoccupation majeure, et tout le monde - en particulier les développeurs - doit recevoir ce dont il a besoin pour jouer son rôle.
S'attaquer aux problèmes de sécurité des systèmes embarqués
Les débordements de mémoire tampon, les failles d'injection et les bogues de logique d'entreprise sont autant d'écueils courants dans le développement de systèmes intégrés. Lorsqu'ils sont enfouis dans un labyrinthe de microcontrôleurs dans un seul véhicule ou appareil, ils peuvent être catastrophiques du point de vue de la sécurité.
Le dépassement de tampon est particulièrement répandu, et si vous souhaitez vous plonger dans la manière dont il a contribué à compromettre la friteuse dont nous avons parlé précédemment (permettant l'exécution de code à distance), consultez ce rapport sur la CVE-2020-28592.
Il est maintenant temps de mettre la main à la pâte 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 schémas de codage qui conduisent à ce bogue insidieux :
Comment avez-vous fait ? Visitez www.securecodewarrior.com pour une formation précise et efficace sur la sécurité des systèmes embarqués.
Table des matières
Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.
Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Réservez une démonstrationTéléchargerRessources pour vous aider à démarrer
Évaluation comparative des compétences en matière de sécurité : Rationalisation de la conception sécurisée dans l'entreprise
Le mouvement "Secure-by-Design" (conception sécurisée) est l'avenir du développement de logiciels sécurisés. Découvrez les éléments clés que les entreprises doivent garder à l'esprit lorsqu'elles envisagent une initiative de conception sécurisée.
DigitalOcean réduit sa dette de sécurité avec Secure Code Warrior
L'utilisation par DigitalOcean de la formation Secure Code Warrior a considérablement réduit la dette de sécurité, permettant aux équipes de se concentrer davantage sur l'innovation et la productivité. L'amélioration de la sécurité a renforcé la qualité des produits et l'avantage concurrentiel de l'entreprise. À l'avenir, le score de confiance SCW les aidera à améliorer leurs pratiques de sécurité et à continuer à stimuler l'innovation.
Ressources pour vous aider à démarrer
Sécurité réactive contre sécurité préventive : La prévention est un meilleur remède
L'idée d'apporter une sécurité préventive aux codes et systèmes existants en même temps qu'aux applications plus récentes peut sembler décourageante, mais une approche "Secure-by-Design", mise en œuvre en améliorant les compétences des développeurs, permet d'appliquer les meilleures pratiques de sécurité à ces systèmes. C'est la meilleure chance qu'ont de nombreuses organisations d'améliorer leur sécurité.
Les avantages de l'évaluation des compétences des développeurs en matière de sécurité
L'importance croissante accordée au code sécurisé et aux principes de conception sécurisée exige que les développeurs soient formés à la cybersécurité dès le début du cycle de développement durable, et que des outils tels que le Trust Score de Secure Code Warriorles aident à mesurer et à améliorer leurs progrès.
Assurer le succès des initiatives de conception sécurisée de l'entreprise
Notre dernier document de recherche, Benchmarking Security Skills : Streamlining Secure-by-Design in the Enterprise est le résultat d'une analyse approfondie d'initiatives réelles de conception sécurisée au niveau de l'entreprise, et de l'élaboration d'approches de meilleures pratiques basées sur des conclusions fondées sur des données.
Plongée en profondeur : Naviguer dans la vulnérabilité critique de CUPS dans les systèmes GNU-Linux
Découvrez les derniers défis de sécurité auxquels sont confrontés les utilisateurs de Linux en explorant les récentes vulnérabilités de haute sévérité dans le système d'impression commun d'UNIX (CUPS). Apprenez comment ces problèmes peuvent conduire à une potentielle exécution de code à distance (RCE) et ce que vous pouvez faire pour protéger vos systèmes.