Webinaire en vedette : Tests d'API améliorés par l'IA : une approche de test sans code | Voir le séminaire

Conformité des logiciels ISO 26262 dans l'industrie automobile

Aperçu

Perspectives de l'industrie automobile

La industrie automobile L'industrie automobile continue d'évoluer rapidement et de s'étendre à des domaines techniques où d'autres industries opèrent depuis de nombreuses années. Par exemple, le Jet Propulsion Laboratory de la NASA publie des correctifs de code et de nouvelles fonctionnalités actuellement en cours de développement pour un vaisseau spatial à des millions de kilomètres de distance, en route vers sa destination. De même, nous constatons que l'industrie automobile fournit des mises à jour logicielles sur les voitures qui ont été vendues et sont conduites par leurs consommateurs dans le monde entier.

L’avenir des voitures autonomes semble également prometteur, avec un potentiel d’adoption généralisée dans les prochaines décennies. Plusieurs entreprises, dont Waymo, Tesla, Uber et des constructeurs automobiles traditionnels comme GM et Ford, sont à l’avant-garde du développement de la technologie de conduite autonome. Nombre d’entre elles effectuent des tests approfondis et certaines ont déployé des programmes pilotes dans certaines villes. À mesure que la technologie mûrit, elle devrait révolutionner les transports, les rendant plus sûrs, plus efficaces et plus accessibles.

Défis en matière de sécurité et de sûreté

Ce type d’évolution, notamment celle des systèmes avancés d’aide à la conduite (ADAS), s’accompagne d’un nouvel ensemble de défis en matière de sécurité. Des normes comme la norme ISO 26262 traitent de la sécurité fonctionnelle du développement des systèmes électriques et électroniques (E/E), qui comprennent la propulsion, les systèmes de contrôle dynamique et l’aide à la conduite.

En outre, des plateformes comme AUTOSAR fournissent une architecture logicielle standardisée ouverte qui améliore encore la sécurité. Elles incluent des directives pour l'utilisation du langage C++14 dans le développement de systèmes critiques et liés à la sécurité. Cependant, les fabricants ont réalisé qu'en raison de la complexité accrue et des inconnues liées à la collaboration entre les technologies modernes, ainsi que des changements dans l'environnement interne et externe, des problèmes de sécurité et de sûreté sont apparus que ces normes ne prennent pas en compte.

Lorsque vous abordez la norme ISO 21343, il est important de comprendre que les considérations de sécurité recommandées pour la cybersécurité doivent être intégrées dans vos processus de développement existants. ISO 21434 Les références à la norme ISO 26262 tiennent compte du fait que ces deux disciplines doivent échanger de manière interdisciplinaire les stratégies, la coordination et même les outils utilisés. Cela signifie que votre organisation doit faire en sorte que vos ingénieurs système travaillent avec vos ingénieurs sécurité tout au long de la phase d'analyse des exigences en matière de sécurité et de sûreté.

Parallèlement, effectuez une analyse des dangers et une évaluation des risques (HARA) pour la sécurité, et une analyse des menaces et une évaluation des risques (TARA) pour la sécurité. Néanmoins, un environnement collaboratif solide est nécessaire pour garantir un résultat sûr et sécurisé.

Modèle de processus en V pour la sécurité et la sûreté des logiciels. Montre que la sécurité et la sûreté font partie de l'ensemble du processus.
Modèle de processus en V pour la sûreté et la sécurité des logiciels.

Assurer la sécurité lors de la phase d'implémentation du logiciel commence par application de l'analyse de code statiqueLa norme de codage MISRA intègre des directives de sécurité, mais vous pouvez également augmenter et renforcer la sécurité du code en Adopter le CERT.

En continuant sur le côté droit du V, effectuez des tests unitaires de toutes vos exigences de sécurité de bas niveau. Dans la phase suivante, créez des cas de test qui intègrent des fonctionnalités supplémentaires. Ces cas de test garantissent que vos exigences de haut niveau sont satisfaites.

En passant aux tests système, créez des tests système pour vous assurer que les exigences système sont vérifiées. Confirmez que tous les cas de test remontent à vos exigences. Cela garantit qu'aucune exigence n'est non testée. Cependant, pour garantir que chaque exigence est entièrement testée, intégrez une couverture de code structurelle comme recommandé par les normes ISO 21434 et ISO 26262. La couverture de code garantit non seulement que chaque ligne de code a été testée, mais également que vos cas de test de sécurité couvrent entièrement chaque chemin d'exécution possible grâce à ses mesures de correction des fonctionnalités de sécurité.

Pour surmonter les défis liés à la sécurité, les équipes peuvent se tourner vers des solutions telles que Parasoft C/C++test, qui a été certifié par TÜV SÜD pour une utilisation dans des applications critiques pour la sécurité selon la norme ISO 26262 et ISO 21434 par association. Ces deux normes recommandent d'effectuer une analyse statique, une analyse dynamique (qui comprend des tests unitaires, d'intégration et système), une couverture de code et une traçabilité des exigences. Offrant exactement ce que recommandent les normes ISO 26262 et ISO 21434 pour la vérification des logiciels en matière de sécurité, Parasoft fournit également la documentation requise pour prouver la conformité aux deux normes.

Exigences réglementaires du WP.29 de la CEE-ONU

La Commission économique des Nations Unies pour l'Europe (CEE-ONU) a publié le 23 juin 2020 des exigences réglementaires qui décrivent les nouveaux processus et technologies que les constructeurs automobiles doivent intégrer à leur organisation et à leurs véhicules. Ces réglementations s'appliquent également aux fournisseurs de composants logiciels et matériels de niveau 1 et de niveau 2, y compris les services mobiles.

Les constructeurs automobiles sont tenus d’intégrer dans leur structure organisationnelle un cadre de gestion basé sur les risques pour découvrir, analyser et se protéger contre les menaces, les vulnérabilités et les cyberattaques pertinentes.

Les catégories suivantes nécessitent des tests de cybersécurité et des inspections de réussite.

  • La catégorie M couvre les voitures standard à quatre roues.
  • La catégorie N est réservée aux camionnettes et aux fourgonnettes.
  • Les catégories L6 et L7 comprennent les voitures électriques et les capacités autonomes.

Une note de passage aux exigences clés du WP.29, tant organisationnelles que pour les véhicules, signifie que le constructeur reçoit un certificat de conformité. Les nouveaux véhicules sans ce certificat ne pourront pas être vendus dans l'UE après juillet 2024. Sachez que les États-Unis ne participent pas à ce programme et n'ont pas de réglementation similaire. Cependant, la situation est déjà claire.

Épices pour l'automobile

L'amélioration des processus logiciels et la détermination des capacités dans le secteur automobile (ASPICE) fournissent un cadre de mesure permettant aux évaluateurs indépendants d'évaluer la capacité d'une organisation à développer des logiciels. Assurer la sécurité des logiciels et la cybersécurité ne se limite pas aux aspects techniques du développement du système électronique, mais nécessite également que l'organisation intègre des processus et des contrôles.

Ces processus et contrôles doivent inclure des moyens de suivre et de surveiller les progrès dans toutes les pratiques de l’organisation afin de garantir :

  1. Des pratiques de sécurité et de cybersécurité ont été adoptées.
  2. Les exigences de sécurité et de cybersécurité sont satisfaites.

Il s’agit également de l’un des deux principaux critères de certification du WP.29 de la CEE-ONU sur la capacité organisationnelle en matière de cybersécurité.

Scénarios dangereux

Elle a permis de concrétiser d'autres développements de la norme ISO 26262, comme la norme ISO/PAS 21448, plus communément appelée SOTIF (sécurité de la fonctionnalité prévue). La norme SOTIF vous aide à analyser et à prévenir l'utilisation abusive de la fonctionnalité prévue lorsqu'elle crée un scénario dangereux. Par exemple, votre véhicule s'arrête par inadvertance pendant que vous le conduisez, en raison d'une mise à jour logicielle lancée.

Les vulnérabilités de sécurité peuvent également entraîner des scénarios dangereux. Un attaquant pourrait utiliser la connexion Wi-Fi du véhicule pour exploiter à distance un port exposé. Il pourrait d'une manière ou d'une autre passer du système d'infodivertissement embarqué avancé (IVI) au contrôle ou à l'influence de composants critiques pour la sécurité, comme le freinage ou la direction, en raison du partage de la même infrastructure de communication.

Le rôle des normes

Des normes telles que la norme SAE J3061, remplacée par la norme ISO/SAE 21434, précisent qu'une analyse initiale des menaces et une évaluation des risques (TARA) doivent être réalisées pour évaluer les menaces potentielles liées à l'exploitation, à la confidentialité et à d'autres facteurs pouvant affecter un usager/conducteur de la route. Si le risque d'une menace est suffisamment élevé, un processus de cybersécurité est alors nécessaire. Il existe différentes approches pour éliminer les vulnérabilités en matière de sécurité et les exigences qui atténuent les risques. En savoir plus sur TARA et pourquoi votre équipe de développement a besoin de TARA.

Des normes telles que la norme UL 4600 existent désormais spécifiquement pour le fonctionnement entièrement autonome des véhicules. Cela signifie qu'il n'y a aucune supervision humaine et que l'autonomie assume l'entière responsabilité. Cette norme se concentre sur la construction d'un dossier de sécurité pour le déploiement de véhicules SAE de niveau 4/5, et non sur la manière de tester la sécurité des véhicules autonomes sur la voie publique. Cela impliquerait une norme différente.

Ces normes et d’autres jouent un rôle crucial dans la sécurité et la sûreté de l’industrie automobile. Les constructeurs automobiles assument les coûts de responsabilité liés à la livraison de véhicules dangereux et peu sûrs au grand public. Pour atténuer ces risques, les constructeurs automobiles doivent adopter et respecter ces normes. Cependant, ils doivent exiger la même qualité et le même respect de la part de leurs fournisseurs. Une faiblesse dans un composant peut compromettre la sécurité et la sûreté de l’ensemble du système.

Élaboration de normes de codage personnalisées

En collaboration avec certains de ses constructeurs automobiles, Parasoft a élaboré des normes de codage personnalisées qui intègrent MISRA, AUTOSAR C++14, CERT, CWE et d'autres règles personnalisées à utiliser par leurs fournisseurs. Cela garantit que le même niveau de qualité de logiciel existe tout au long de la chaîne d'approvisionnement.

Parasoft C/C++test est une solution de test unifiée qui inclut les tests unitaires et la couverture du code structurel dans le cadre de ses fonctionnalités. Cette solution de développement de logiciels C/C++ prend en charge un ensemble complet de cibles matérielles et d'écosystèmes de développement que les fournisseurs et les OEM peuvent utiliser avec différentes infrastructures de développement. C/C++test a été certifié par TÜV SÜD pour une utilisation sur des systèmes critiques pour la sécurité et la sûreté. Pour les ADAS et les voitures connectées sécurisées, les intégrations transparentes de C/C++test avec SOAtest et Virtualiser combinez les tests d'API avec la couverture des applications d'exécution et les bancs d'essai virtuels simulés.

Qu’est-ce que la norme ISO 26262 ?

La norme ISO 26262 est une norme de sécurité fonctionnelle qui couvre l'ensemble du processus de développement de produits automobiles. Elle comprend des activités telles que la spécification des exigences, la conception, la mise en œuvre, l'intégration, la vérification, la validation et la configuration.

La norme fournit des orientations sur les activités du cycle de vie de la sécurité automobile en spécifiant les exigences suivantes :

  • Gestion de la sécurité fonctionnelle pour les applications automobiles
  • La phase de conception pour les applications automobiles
  • Développement de produits au niveau du système pour la conception architecturale de logiciels d'applications automobiles
  • Développement de produits au niveau matériel pour les tests unitaires de logiciels d'applications automobiles
  • Développement de produits au niveau logiciel pour les applications automobiles
  • Production, exploitation, service et démantèlement
  • Processus de support : interfaces au sein des développements distribués, exigences de gestion de la sécurité, gestion des modifications et de la configuration, vérification, documentation, utilisation d'outils logiciels, qualification des composants logiciels, qualification des composants matériels et argumentation éprouvée
  • Analyses orientées vers le niveau d'intégrité de la sécurité automobile (ASIL) et la sécurité

L'ISO 26262 est une adaptation de la norme CEI 61508 pour l'industrie automobile. La norme CEI 61508 est une norme de base de sécurité fonctionnelle industrielle pour les appareils électriques, électroniques et électroniques programmables, et applicable à tous les types d'industries. D'autres secteurs comme CEI 62304 Médical et Chemin de fer EN 50128 ont également été dérivées de la norme IEC 61508.

La norme ISO 26262 a été extraite et développée de la norme IEC 61508 pour l'industrie automobile. Elle constitue donc par héritage une norme de sécurité fonctionnelle qui fournit des orientations pour réglementer l'ensemble du processus du cycle de vie du produit, au niveau logiciel et matériel, depuis le développement conceptuel jusqu'à la mise hors service. Elle couvre les systèmes automobiles électriques et électroniques et leur processus de développement, y compris la spécification des exigences, la conception, la mise en œuvre, l'intégration, la vérification, la validation et la configuration.

La dernière version, ISO 26262:2018, est divisée en 12 parties. La norme a évolué depuis sa première édition, parue en 2011.

Quelles sont les parties de l'ISO 26262 ?

Graphique montrant un aperçu de la norme ISO 26262. Chaque partie a une description plus détaillée ci-dessous.
Aperçu de la norme ISO 26262
Partie 1Section de vocabulaire pour la norme. Les termes, définitions et abréviations se trouvent ici. 
Partie 2Gestion de la sécurité fonctionnelle, qui définit un processus interne de sécurité fonctionnelle pour l'équipe ou l'entreprise. Cela implique de disposer d'une organisation de sécurité qui supervise les activités de planification, de coordination et de documentation liées à la sécurité fonctionnelle.
Partie 3La phase de conception qui prend en compte les exigences des parties prenantes et détermine ce que vous allez construire et finalement livrer. Dans l'image de présentation de la norme ISO 26262, remarquez sur le côté droit de la zone de phase de conception le début d'un filigrane en forme de V grisé. Les V ombrés représentent l'interconnexion entre les parties 3, 4, 5, 6 et 7 de la norme. Ces séries de parties sont basées sur le cycle de vie du développement logiciel en modèle V. Les différentes phases de développement sont représentées à gauche et les phases de vérification et de validation ou de test à droite. Si vous êtes ingénieur système ou logiciel dans le secteur de l'embarqué, le modèle V est bien connu.  
Partie 4Début du développement du produit au niveau du système, qui comprend les parties 5 et 6, mais en les considérant à partir d'un niveau d'abstraction élevé. L'architecture est définie, y compris les cas de test fonctionnels qui vérifient et valident l'architecture. Pour approfondir la conception et la mise en œuvre des détails, les parties 5 et 6 sont définies.
Partie 5La partie 5 cible le développement du matériel, qui n’entre pas dans le cadre de ce document.
Partie 6Cible le développement de logiciels. Vous pouvez voir un filigrane V plus petit et plus clair pour le développement de logiciels et, encore une fois, le côté gauche du V encapsule les phases de décomposition des exigences, de conception et d'implémentation, mais maintenant à un niveau de granularité beaucoup plus faible. Sur le côté droit du V, les sections 6.9, 6.10 et 6.11 représentent les tests ou la vérification et la validation du logiciel. Cela comprend les tests unitaires, l'analyse statique, la couverture du code structurel, la traçabilité des exigences et bien plus encore.

Elle comprend également les exigences relatives au développement logiciel des applications automobiles. Cela comprend les obligations relatives au lancement du développement du produit, à la spécification des exigences de sécurité du logiciel, à la conception de l'architecture logicielle, à la conception et à la mise en œuvre de l'unité logicielle. Lors de la vérification et de la validation du composant logiciel, plusieurs méthodes sont recommandées ou obligatoires en fonction du niveau d'intégrité de sécurité attribué (ASIL).
Partie 7Il s'agit de la production et de l'exploitation du produit, une fois qu'il est sur le terrain. Cela signifie que vous devez prendre en compte des éléments tels que la maintenance et la mise hors service ou la fin de vie de votre produit.
Partie 8Spécifie les différents processus et solutions de support nécessaires au développement du système qui contribuent à garantir la sécurité fonctionnelle. Cela comprend la mise en place d'une solution de gestion de la configuration, d'une gestion des modifications, d'une gestion de la documentation et d'autres solutions.

Un autre aspect important de la partie 8 est la qualification des outils logiciels utilisés. Vous ne devez pas utiliser un outil open source ou un outil non certifié d'un fournisseur qui compromet la sécurité de votre produit en introduisant des problèmes. Utilisez un outil qui a été certifié par la Technical Inspection Association (TUV) et qui a fait ses preuves en termes d'utilisation. 
Partie 9Il s'agit d'une section essentielle à comprendre car elle concerne l'attribution d'une classification de risque au système en cours de développement. Cela signifie que vous devez prendre en compte le risque pour les passagers ou les piétons si le système électrique ou électronique en cours de développement devait mal fonctionner ou tomber en panne. 
Partie 10Un aperçu de la norme ISO 26262 avec des explications supplémentaires qui améliorent la compréhension et les concepts des autres parties de la norme, elle est donc informative.
Partie 11Adaptation des directives de sécurité fonctionnelle aux semi-conducteurs pour l'automobile. Elle offre des conseils et des informations aux fabricants de semi-conducteurs sur la manière de développer une propriété intellectuelle conforme à la norme ISO 26262. Elle permet d'intégrer la sécurité fonctionnelle, car les utilisateurs de semi-conducteurs peuvent ne pas savoir comment utiliser le semi-conducteur en toute sécurité. Cela est dû au fait que les systèmes automobiles sont devenus très complexes et que les semi-conducteurs ont permis la plupart des innovations récentes. Cela comprend la technologie basée sur la vision, les unités de traitement graphique (GPU) améliorées, les processeurs d'application, les capteurs, la DRAM et d'autres composants qui permettent des systèmes avancés d'assistance à la conduite ou ADAS.
Partie 12Adaptation de la norme pour les motos, qui a été intentionnellement laissée de côté dans la figure 2-1 et dans ce livre électronique.

Réalisation d'une analyse des dangers et d'une évaluation des risques

Dans la norme ISO 26262, une analyse des dangers et une évaluation des risques (HARA) doivent être effectuées sur le système en cours de développement. Une fois l'HARA terminée, un ASIL est attribué au composant logiciel et il existe des niveaux A à D. Le niveau A représente l'attribution du danger le plus faible et le niveau D représente l'attribution du danger le plus élevé. Cela signifie que la défaillance d'un système avec l'attribution ASIL D pourrait être catastrophique.

Il existe également une attribution de niveau de gestion de la qualité (QM), ce qui signifie qu'il n'y a aucune exigence de sécurité. L'ASIL est attribué en prenant la gravité de la blessure multipliée par la probabilité de la défaillance multipliée par la contrôlabilité. Le tableau suivant détaille chaque niveau de gravité, d'exposition et de contrôlabilité.

Tableau de gravité, d'exposition et de contrôlabilité (ASIL) des véhicules automobiles.
Analyse des dangers et évaluation des risques
Gravité = Quel serait l’impact ou les dommages si la panne se produisait ?

Exposition = La fréquence ou la probabilité que la défaillance se produise.

Contrôlabilité – La mesure dans laquelle nous pouvons garantir que l’événement ne se produira pas.

Plusieurs tableaux sont disponibles gratuitement et permettent de déterminer la valeur ASIL. Le tableau ci-dessous est un exemple beaucoup plus facile à lire et présente les niveaux ASIL en couleurs en fonction de la gravité, de l'exposition et de la contrôlabilité.

Tableau d'évaluation ASIL simplifié
Tableau d'évaluation ASIL simplifié

Sécurité Active et Passive

Les véhicules routiers sont équipés de nombreux systèmes de sécurité, certains étant considérés comme des systèmes de sécurité active et d'autres comme des systèmes de sécurité passive.

La sécurité active est utilisée pour désigner la technologie qui contribue à prévenir un accident. Vous avez le contrôle de traction, le système de freinage antiblocage, le Vision ADAS et d'autres.

Les systèmes de sécurité passive assurent la sécurité des passagers. Par exemple, en cas d'accident, vous disposez d'airbags et de ceintures de sécurité. L'essuie-glace électronique et le combiné d'instruments sont également des systèmes de sécurité passive.

Composants actifs et passifs automobiles et leurs niveaux ASIL.
Sécurité active et passive

Réalisation de tests, de vérification et de validation de la conception et de la mise en œuvre d'unités logicielles

Étant donné que ce guide est axé sur les logiciels, il est important de couvrir les méthodes de vérification et de validation des tests recommandées par la norme. Par exemple, le tableau 7 répertorie les méthodes de vérification 1a à 1k à appliquer lors de la conception et de la mise en œuvre de l'unité. La méthode 1h, « Analyse de code statique », est fortement recommandée pour les niveaux ASIL A à D.

Les colonnes du tableau 7 à droite indiquent les niveaux ASIL de A à D. Un seul symbole « + » indique que la norme le recommande, un double « ++ » indique qu'il est fortement recommandé et un « o » indique qu'il n'y a aucune recommandation.

ISO 26262 Partie 6, 9.4.2:2018 - Méthodes de vérification des unités logicielles
ISO 26262 Partie 6, 9.4.2:2018
D’autres méthodes de vérification clés sont réalisées par analyse dynamique, pour les tests basés sur les exigences et l’injection de fautes. Le tableau 26262 de la norme ISO 8, par exemple, contient une « analyse des valeurs limites ». Il s’agit d’une méthode permettant de dériver un cas de test pour éliminer les défauts en prouvant des entrées dans l’unité qui ne sont pas seulement les valeurs minimales, moyennes et maximales, mais aussi les limites en dehors de la portée de sa plage, pour voir si l’unité est suffisamment robuste pour gérer ces cas aberrants.

ISO 26262 Partie 6, 9.4.3:2018 - Méthodes de dérivation des cas de test
ISO 26262 Partie 6, 9.4.3:2018
Le tableau 9 répertorie les mesures de couverture du code structurel recommandées pour garantir la couverture des tests, éliminer le code mort et les défauts cachés.

ISO 26262 Partie 6, 9.4.4:2018 - Mesures de couverture structurelle
ISO 26262 Partie 6, 9.4.4:2018
Bannière bleu foncé avec l'image d'un homme parlant à une femme tenant une tablette à la main dans une salle de serveurs.
Image d'un homme et d'une femme avec une tablette à la main en train de discuter dans une salle de serveurs.

Améliorez vos tests logiciels avec les solutions Parasoft.