Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Pourquoi la cybersécurité automobile est importante

De Kevin E. Greene

31 mars 2022

7  min lire

Les constructeurs automobiles dépendent désormais de logiciels complexes pour construire des voitures intelligentes. Cela a soulevé des problèmes de vulnérabilité dans les automobiles modernes. Découvrez pourquoi les constructeurs automobiles devraient intégrer la cybersécurité dans leurs stratégies de développement automobile.

Le passage de nombreuses entreprises automobiles aux véhicules routiers électroniques a fondamentalement changé l'industrie, augmentant la connectivité et l'intelligence des voitures. À mesure qu'ils deviennent plus connectés et plus intelligents, les véhicules électroniques (VE) deviennent également plus dépendants de logiciel pour l'exploitation des véhicules, offrant davantage de fonctions et de fonctionnalités pour améliorer l'expérience de conduite.

Plus de caractéristiques et de fonctionnalités dans les véhicules routiers entraînent plus de complexité et plus de code. Plus de code signifie plus de problèmes. Des problèmes tels qu'une surface d'attaque accrue du véhicule pourraient entraîner des vulnérabilités que les attaquants pourraient exploiter pour contrôler et prendre le contrôle du véhicule routier. Cela pose de graves problèmes de sécurité et de graves problèmes de cybersécurité qui, espérons-le, révolutionneront comment les voitures modernes sont conçues et développées.

La cybersécurité est la nouvelle sécurité étant donné que les logiciels alimentent les véhicules routiers modernes. Un véhicule électrique standard exécute plus de 100 millions de lignes de code, selon les fonctionnalités supplémentaires qui en sont équipées. La protection des véhicules routiers contre les cybermenaces est plus critique que jamais. L'un des principaux vecteurs d'attaque ciblés est l'unité de commande électronique (ECU), qui fournit une communication vitale et des capacités essentielles pour l'exploitation, la surveillance et la configuration des sous-systèmes du véhicule.

Meilleures pratiques DevOps pour le développement automobile

Qu'est-ce qu'une unité de contrôle électronique (ECU) ?

Les ECU sont des dispositifs contrôlés par microprocesseur qui fournissent une large gamme de fonctions essentielles du véhicule, notamment :

  • Moteur et direction assistée
  • Injection de carburant
  • Aspects de confort comme les vitres électriques et les sièges
  • Contrôle de la température
  • Fonctions de sécurité comme l'entrée sans clé et les serrures de porte

Les ECU sont regroupés en sous-systèmes en fonction de leur fonctionnalité en raison de la nature sensible au facteur temps des événements critiques. Les véhicules routiers modernes ont jusqu'à 100 ECU exécutant les fonctions du véhicule. Les calculateurs communiquent à l'aide de leur bus connecté, où toutes les communications du calculateur sont gérées par une passerelle pour gérer et valider les messages envoyés par les calculateurs.

DevOps automobile : automatisation de la qualité, de la sûreté et de la sécurité

Le déploiement d'ECU derrière une passerelle vise à garantir que seuls les appareils qui doivent communiquer entre eux le font. Il s'agit d'une amélioration par rapport aux conceptions d'ECU traditionnelles qui acceptaient les commandes et partageaient les informations avec n'importe quelle entité sur le même bus de câblage. C'était le vecteur d'attaque de nombreuses attaques automobiles comme le célèbre piratage de Jeep, qui a déclenché de nombreuses améliorations autour des normes de cybersécurité automobile.

Les ECU sont des cibles probables de cyberattaques

Il existe suffisamment de preuves de concepts, de recherches et d'exploitations de vulnérabilités réelles qui démontrent comment les calculateurs peuvent être rétro-conçus et compromis. Celles-ci vont du piratage Jeep en 2015, aux hacks Tesla de 2016 et 2017, au hack BMW de 2018 et bien d'autres dans la nature. Dans tous ces exemples, l'ECU a été ciblé avec succès et compromis pour donner aux attaquants la possibilité de reprogrammer et de modifier le comportement des fonctions du véhicule.

Voici un bref résumé de la façon dont les attaquants ont pu cibler les ECU des véhicules routiers.

  • Envoi de messages CAN modifiés aux ECU pour qu'ils apparaissent comme des messages légitimes pour tuer le moteur, les freins et tourner le volant.
  • Reprogrammation et, dans certains cas, reflasher le micrologiciel sur les calculateurs pour obtenir des graines de déverrouillage afin d'effectuer des opérations privilégiées telles que la lecture/écriture de la mémoire.
  • Réinitialisation et désactivation des ECU légitimes, ce qui empêchait la réception et l'envoi de messages CAN.
  • Le reniflement des messages CAN a permis aux attaquants d'extraire des informations sensibles envoyées depuis et vers les ECU.

Dans une étude récente présentée au Car Hacking Village Def Con 28, « Realistic Trends in Vulnerability based on Hacking into Vehicle », les chercheurs ont examiné plus de 40 ECU de divers fabricants et fournisseurs.

Leur analyse des calculateurs a découvert plus de 300 vulnérabilités dans le matériel et les logiciels des calculateurs, toutes les vulnérabilités à haut risque résidant dans les logiciels. L'étude a également indiqué que les calculateurs les plus complexes présentaient le plus de vulnérabilités. Les ECU d'Infotainment contenaient la plupart des vulnérabilités découvertes dans l'étude.

Sécurisé par conception

Construire la sécurité dès le début est l'objectif numéro un de la nouvelle automobile norme de cybersécurité, ISO 21434. Il existe un décompte continu de vulnérabilités dans les ECU qui démontrent la gravité de la cybersécurité et son impact sur la sécurité, que cette norme tente de résoudre avec des exigences et des recommandations qui ont un impact direct sur la conception et le développement des composants des véhicules routiers.

L'ISO 21434 vise à intégrer des mesures de sécurité et de cybersécurité de haute qualité tout au long du cycle de vie de l'ingénierie du produit pour garantir que les véhicules routiers ont été conçus, fabriqués et déployés avec des mécanismes de sécurité pour protéger la confiance, l'intégrité, la disponibilité et l'authenticité des fonctions du véhicule dans les véhicules routiers. .

Guide de CI/CD pour DevOps automobile

Deux aspects fondamentaux de l'ISO 21434 se concentrent sur les points suivants.

  1. Mener des activités d'analyse des menaces et d'évaluation des risques (TARA) qui se concentrent sur les scénarios de menace probables et les vecteurs d'attaque, et sur la manière dont ces conditions peuvent avoir une incidence sur la sécurité et la cybersécurité des véhicules routiers. L'utilisation de TARA et la compréhension des vecteurs d'attaque probables contre les composants sont le moyen idéal de codifier la cybersécurité dans la conception et l'architecture pour atténuer les cyberattaques. Les équipes de produits doivent tirer parti du TARA pour guider et éclairer les tests de sécurité.
  2. Veiller à ce que le développement de produits aborde la cybersécurité dans toutes les phases du cycle de vie de l'ingénierie du produit, du concept (conception) au démantèlement. L'ISO 21434 encourage l'alignement avec le modèle en V d'ingénierie système pour guider les constructeurs et les fournisseurs de véhicules dans le respect des exigences de conception architecturale solides pour la cybersécurité. Cela nécessite une vérification et une validation du logiciel dans le cadre des tests du produit.

Infographie d'un modèle en V pour logiciel automobile conforme à la norme ISO/SAE 21434.

ISO 21434 appelle à des activités de vérification de logiciels

Les tests de logiciels jouent un rôle essentiel en aidant les fabricants et les fournisseurs à répondre aux exigences et aux recommandations décrites dans la norme ISO 21434. La formalisation de l'analyse de code statique dans le cadre de activités de vérification de logiciels est un moyen idéal pour identifier et éliminer l'ambiguïté dans le code, ainsi que pour identifier les faiblesses qui pourraient exposer les vulnérabilités des logiciels utilisés dans les composants du calculateur. Cela permet de minimiser la surface d'attaque qu'un attaquant peut exploiter pour compromettre les ECU qui contrôlent les opérations critiques du véhicule.

Plus précisément, l'ISO 21434 fait référence et appelle l'analyse statique dans la section 10.4 Exigences et recommandations.

Article 10.4.1 Conception

Extrait de la norme ISO 21434, section 10.4.1 Conception

La section 10.4.1 des détails des exigences pour la conception met en évidence la nécessité de sélectionner des langages de programmation adaptés à l'application d'un code syntaxiquement correct avec une structure et une grammaire valides. Le code doit logiquement avoir un sens sémantiquement et correspondre à un ensemble de règles pour le langage utilisé. Le code doit pouvoir se compiler proprement pour se transformer en une séquence d'instructions.

L'application d'un typage fort, l'utilisation de sous-ensembles de langage et la mise en œuvre de techniques de mise en œuvre défensives sont toutes des exigences spécifiées dans la norme ISO 21434. Formalisation du codage sécurisé pratiques de conformité l'utilisation des vérificateurs et des règles Parasoft MISRA C et CERT C aidera les fabricants et les fournisseurs à respecter les exigences et les recommandations de la norme ISO 21434 pour atténuer les risques potentiels dans les logiciels et la conception.

L'utilisation de pratiques de cybersécurité et de codage de sécurité pour prendre en charge la vérification et la validation des logiciels est une pratique exemplaire et essentielle pour confirmer la spécification de cybersécurité décrite dans la norme ISO 21434. L'utilisation des capacités d'analyse de code Parasoft C/C++ facilite la rigueur des tests logiciels associés aux logiciels de sécurité critiques.

Automatisation des tests logiciels avec Parasoft C/C++test est simplifié grâce à une approche intégrée qui intègre l'analyse statique, la couverture du code, les tests unitaires, la traçabilité des exigences et l'analyse des rapports pour rationaliser vos exigences de conformité ISO 21434.

Section 10.4.2 Intégration et vérification

Extrait de la norme ISO 21434, section 10.4.2 Intégration et vérification

La section 21434 de la norme ISO 10.4.2 fournit une liste de méthodes de vérification logicielle qui peuvent être satisfaites à l'aide des capacités d'analyse de code C/C++ de Parasoft. De nombreux bogues de sécurité peuvent être détectés à l'aide du contrôle et de l'analyse des flux de données. Le moteur d'analyse de code C/C++ de Parasoft est conçu pour donner aux équipes d'ingénierie produit l'ampleur et la profondeur nécessaires à l'analyse de flux complexes tels que les utilisations après libération, les doubles libérations et les dépassements de mémoire tampon.

Découvrez le test Parasoft C/C++ en action !

RC-10-12

Les autres activités de vérification et de test de logiciels référencées dans la norme ISO 21434 incluent le fuzzing, les tests de pénétration et l'analyse des vulnérabilités. Elles sont répertoriées sous forme de recommandations, notées par RC-10-12. Compte tenu de la complexité et de la taille du développement de logiciels modernes, l'exécution de techniques et d'outils de test supplémentaires devrait être nécessaire car chaque technique détecte différents types de problèmes.

Extrait de la norme ISO 21434, section section 10.4.2 Intégration et vérification, RC-10-12

Pour découvrir les risques de sécurité dans les équipes d'ingénierie de produits logiciels, il convient d'utiliser des outils et des techniques de test pour couvrir les scénarios suivants.

  • Connu Connu. Tests pour identifier les logiciels avec des CVE connus/identifiables. Cela comprendrait des capacités de test telles que des outils d'analyse de la composition logicielle (SCA) qui signalent les CVE connus dans les composants logiciels.
  • Connu Inconnu. Tests pour identifier les CWE qui pourraient être exploitables et exposer les vulnérabilités (CVE) dans les logiciels. Cela inclurait des capacités de test telles que l'analyse statique et dynamique.
  • Inconnu Inconnu. Tests pour identifier les logiciels présentant des risques/problèmes non identifiés, aucun CWE ou CVE connu n'y est associé. Cela inclurait des capacités de test comme le fuzzing.

Cybersécurité : le conducteur avant

Placer la cybersécurité sur le siège avant des véhicules routiers avec la norme ISO 21434 aidera l'industrie automobile à adopter de meilleures pratiques pour réduire et atténuer les cybermenaces et les attaques qui pourraient éventuellement entraîner des décès.

La connectivité et l'intelligence dans les voitures ont changé la façon dont la cybersécurité est contextualisée et priorisée dans l'ingénierie des produits. En formalisant la norme ISO 21434, les équipes d'ingénierie produit peuvent tirer parti des activités d'analyse et de modélisation des menaces pour éclairer les décisions de conception et le développement des produits tout au long du cycle de vie.

Construire la sécurité ne peut plus être une phrase accrocheuse, car la sécurité des conducteurs est en jeu. La cybersécurité doit être ancrée dans l'état d'esprit et les activités de toute l'équipe d'ingénierie produit afin que toute l'équipe réfléchisse à la manière dont les logiciels doivent être conçus et développés pour prévenir et atténuer les cyberattaques.

ISO 21434 fournit une feuille de route pour aider les fabricants et les fournisseurs à relever les défis de sécurité et de cybersécurité dans le développement de produits. Cette nouvelle norme sert de bloc de construction pour renforcer les mécanismes de protection de la sécurité dans les véhicules routiers qui, à terme, sauveront des vies.

Parasoft : la voie vers la cybersécurité automobile

La solution de test automatisé intégrée C/C++ de Parasoft est la meilleure de sa catégorie et s'adapte à vos efforts en matière de SDLC et d'ingénierie de produits. Positionné de manière unique avec une expérience et une expertise approfondies sur le marché des logiciels embarqués, Parasoft vous aide à répondre à vos besoins de conformité en matière de sécurité et de cybersécurité.

Parasoft V-Model montrant où chaque produit de test automatisé Parasoft est utilisé lors des tests de vérification et de validation.

Une combinaison unique d'outils d'automatisation des tests logiciels, d'analyses, d'IA et de rapports offre une visibilité sur les problèmes de qualité et de sécurité dès le départ. Cela permet aux équipes d'ingénieurs produit d'accélérer la vérification des logiciels conformément aux normes et aux meilleures pratiques requises par le marché.

Accélérez la livraison de logiciels automobiles sûrs, sécurisés et conformes.

« MISRA », « MISRA C » et le logo triangulaire sont des marques déposées de The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Tous droits réservés.

De Kevin E. Greene

Kevin, directeur des solutions de sécurité chez Parasoft, possède une vaste expérience et une vaste expertise en matière de sécurité logicielle, de cyber-recherche et développement et de DevOps. Il met à profit ses connaissances pour créer des solutions et des technologies significatives afin d'améliorer les pratiques de sécurité logicielle.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.