Français

Choisir la langue

EnglishDeutschFrançaisрусский한국의ItaliaNederlandespañolPortuguêsMagyarországDanskΕλλάδαpolskiPilipinoČeštinaTiếng ViệtMelayuMaoriSvenskaSuomiУкраїнаromânescSlovenija
Accueil > Message > Qualification des outils du compilateur pour la sécurité fonctionnelle et la cybersécurité

Qualification des outils du compilateur pour la sécurité fonctionnelle et la cybersécurité

En 2020, la Commission économique des Nations Unies pour l'Europe a publié le règlement sur les dispositions uniformes concernant l'approbation des véhicules en ce qui concerne le système de gestion de la cybersécurité et de la cybersécurité, également connu sous le nom de WP.29.

Dans l'UE, le Japon, la Corée et le Royaume-Uni, ce règlement est intégré à une législation pour l'approbation du type de véhicule, rendant la conformité à la cybersécurité comme non négociable pour obtenir un accès au marché.

Bien que le WP.29 ne mentionne pas la norme d'ingénierie ISO / SAE 21434: 2021 - Norme d'ingénierie de cybersécurité, il est entendu que si un OEM et sa chaîne d'approvisionnement peuvent démontrer la conformité à cette norme, alors cette conformité peut être utilisée pour démontrer la conformité à la Règlement WP.29. La démonstration du respect de la norme de cybersécurité ISO devrait protéger les OEM et leurs fournisseurs contre la responsabilité.




Qualification du compilateur

La norme ISO 26262 consacre un chapitre aux critères pour déterminer le niveau de confiance requis dans un outil logiciel et fournit des méthodes pour qualifier l'outil pour créer des preuves qu'il est approprié d'être utilisé pour le développement de logiciels liés à la sécurité fonctionnelle.

Quatre méthodes qualifient un outil logiciel: une confiance accrue de l'utilisation; évaluation du processus de développement; validation de l'outil logiciel; et le développement conformément à une norme de sécurité.

Pour les niveaux d'intégrité de la sécurité automobile plus élevés (ASIL), seules les deux dernières méthodes conviennent. La validation de l'outil signifie utiliser des mesures pour prouver que l'outil logiciel répond aux exigences spécifiées à son objectif.

Deux approches différentes sont utilisées pour répondre aux exigences de validation de l'outil ISO 26262. Certains fournisseurs de compilateurs effectuent la validation de l'outil en interne et invitent un organisme d'évaluation de la conformité pour certifier que l'outil et sa documentation de sécurité sont adaptés à l'usage. Le client reçoit un ensemble d'outils de compilateur certifié et n'a qu'à appliquer les directives du manuel de sécurité pour montrer que le cas d'utilisation est compatible avec un cas d'utilisation qualifié. D'autres fournisseurs offrent un ensemble d'outils certifiable (contre certifié) ainsi qu'une méthodologie de qualification d'outil avec des outils de support et de la documentation.

La méthodologie de qualification de l'outil est généralement certifiée et le client doit effectuer la qualification de l'outil, qui peut être résumé comme:

* Spécification du cas d'utilisation pour définir les exigences à satisfaire par l'outil
* Sélection des tests appropriés pour vérifier ces exigences
* Effectuer les tests et analyser les résultats des tests
* Génération de la documentation de sécurité et appliquant les directives des documents de sécurité.
Il y a des coûts cachés avec cette approche, tels que l'apprentissage de la méthodologie de qualification et de l'outillage associé, l'octroi de licences des suites de tests nécessaires, effectuant le processus de validation de l'outil, interagissant avec le certificateur et enfin, que faire si les tests échouent.

Qualification du compilateur

Un compilateur peut modifier (optimiser) le comportement d'un programme d'une manière que le programmeur n'a pas prévu. L'intention structurelle du développeur de logiciels peut ne pas être représentée avec précision dans la représentation finale du programme source et le compilateur peut affecter la sécurité du logiciel.

Contrairement à la norme de sécurité fonctionnelle ISO (FUSA), la norme ISO Cybersecurity (section ISO 21434 5.4.7 Gestion des outils) ne spécifie pas les exigences de qualification des outils. Les critères pour déterminer le niveau de confiance requis dans un ensemble d'outils de compilateur pour le développement de logiciels liés à la cybersécurité sont inconnus et aucune méthode n'est spécifiée pour démontrer que les critères liés à la cybersécurité ont été respectés.

La norme ISO contient des références à la norme de sécurité fonctionnelle ISO. La méthode de validation des outils éprouvée de la norme ISO 26262 est adaptée pour qualifier un ensemble d'outils de compilateur utilisé dans le développement d'un logiciel conforme à la réglementation de la cybersécurité. Afin d'appliquer cette méthode, les critères de validation des outils pour le développement de logiciels liés à la cybersécurité doivent être établis.

Validation de l'outil

Analogue aux critères de validation des outils pour la sécurité fonctionnelle, les critères de validation de l'outil pour la cybersécurité peuvent être spécifiés comme mesures pour fournir des preuves que l'outil logiciel est conforme aux exigences de cybersécurité spécifiées.

Les risques de cybersécurité qui peuvent être introduits par l'outil logiciel et leurs comportements correspondants doivent être analysés avec des informations sur les conséquences possibles et avec des mesures pour les éviter ou les détecter.

La réaction de l'outil logiciel aux conditions de fonctionnement anormal doit également être examinée.

Le processus d'ingénierie d'assurance de Mission (MAE) développé par le FFRDC national de cybersécurité peut être utilisé pour spécifier les exigences de cybersécurité de l'ensemble d'outils du compilateur. Ce processus est compatible avec l'ISO 21434 Chapitre 15 Analyse des menaces et méthodes d'évaluation des risques. Si le processus MAE est effectué par le fournisseur d'outils et que les résultats sont décrits dans la documentation de la sécurité et de la cybersécurité, cela élimine la nécessité pour l'utilisateur de l'outil d'effectuer une validation d'outil.

L'utilisateur de l'outil doit évaluer le risque résiduel associé au cas d'utilisation spécifique qui reste après avoir appliqué les directives.

Le fournisseur d'outils doit analyser la réaction de l'outil logiciel aux conditions de fonctionnement anormales à l'aide du processus MAE. Les résultats sont traduits en lignes directrices et inclus dans le manuel de sécurité et de cybersécurité des outils. L'utilisateur de l'outil doit mettre en œuvre les directives fournies et évaluer le risque résiduel pour un cas d'utilisation.

Le processus MAE (figure 1) fournit une approche analytique pour identifier les cyber-actifs les plus essentiels à la réalisation de la mission, à comprendre les cyber-menaces et les risques associés à ces actifs et sélectionner des mesures d'atténuation pour prévenir et / ou lutter par les attaques.

Une analyse en mode de défaillance et des effets (FMEA) et une analyse d'évaluation et de correction des menaces (TARA) garantissent l'intégrité du logiciel de l'utilisateur de l'outil, plutôt que l'intégrité de l'ensemble d'outils du compilateur conformément à l'objectif de l'ISO 21434 pour traiter la cybersécurité en électricité et Les systèmes électroniques dans les véhicules routiers où les systèmes externes vers le véhicule ne sont pas dans le cadre de l'ISO 21434. L'intégrité de l'ensemble d'outils du compilateur et des fichiers opérés est régie par d'autres normes telles que l'ISO / IEC 27001 (gestion de la sécurité de l'information). Il est important que le fournisseur d'outils et l'utilisateur se conforment également à une norme de sécurité informatique.

La FMEA est utilisée pour identifier les risques de cybersécurité potentiels que le ensemble d'outils du compilateur peut introduire dans le logiciel de l'utilisateur. L'objectif de l'outil de compilateur est le comportement du logiciel compilé pour répondre aux intentions de l'utilisateur dans les conditions normales et dans des conditions d'attaque de cybersécurité. La spécification du langage ISO C et C ++ permet aux ingénieurs du compilateur d'appliquer des transformations sur le logiciel qui sont correctes en fonction d'une interprétation légaliste des normes ISO C et C ++, mais qui surprendront de nombreux programmeurs logiciels. Il est donc bénéfique si la FMEA est exécutée par une équipe d'ingénieurs qui ont une compréhension approfondie des exigences, de l'architecture, de la conception et de la mise en œuvre des compilateurs. Pour chaque mode de défaillance identifié, une ou plusieurs mesures d'atténuation pour réduire le risque doivent être fournies.

La méthodologie Tara identifie et évalue les cyber-vulnérabilités et sélectionne les contre-mesures pour atténuer ces vulnérabilités. La méthodologie est compatible avec les exigences de l'ISO 21434.

Le flux de travail TARA (figure 2) utilise des détails techniques du système pour construire un modèle de cyber de l'architecture du système. Cela fournit une base pour rechercher le catalogue pour les vecteurs d'attaque plausibles. La base de données communes aux énumérations et classifications du modèle d'attaque peut être utilisée et la liste des vecteurs d'attaque est filtrée et classée en fonction du risque évalué. La liste des vulnérabilités est combinée avec des données de cartographie d'atténuation du catalogue pour identifier une liste initiale de contre-mesures, qui est filtrée et classée en fonction de l'utilité évaluée et du coût du cycle de vie, produisant un tableau de cartographie d'atténuation.

Les contre-mesures sont sélectionnées en fonction du coût et du niveau de tolérance au risque pour créer un tableau d'efficacité de la solution qui répertorie les contre-mesures / atténuations recommandés et fournit des détails sur l'efficacité de chaque contre-mesure sur la gamme de vulnérabilités évaluées. Les informations provenant d'autres bases de données, telles que la CWE (types de faiblesses de logiciels et de matériel) et le CVE (vulnérabilités de cybersécurité divulguées) peuvent également être utilisées.

La nature dynamique de la cybersécurité signifie que la répétition régulière des analyses ci-dessus est nécessaire.

Le résultat de la FMEA et de Tara

Les vulnérabilités induites par le compilateur peuvent être classées comme étant liées aux classes de vulnérabilité standard, aux attaques de canaux latérales, aux comportements non définis et aux violations persistantes de l'État. Les atténuations associées sont des exigences liées à la cybersécurité qui doivent être mises en œuvre par le fournisseur d'outils. Ceux-ci incluent la protection contre les attaques de smashing de pile via les canaries de pile placées par compilateur, les mesures pour détecter le superflux de tampon ou les dispositions pour prendre en charge la randomisation de mise en page de la mémoire.

L'utilisateur de l'outil est requis pour répondre aux directives et directives de codage génériques spécifiques à l'utilisation d'outils du compilateur particulier. La conformité Association de fiabilité des logiciels de l'industrie automobile (MISRA) est considérée comme un minimum, et l'adhésion aux directives de codage SEI CERT C / C ++ fournit une prévention plus complète. Les directives pour un ensemble d'outils de compilateur particulier dépendent largement de l'optimisation par le fournisseur du compilateur.

Certains fournisseurs affirment que les exigences de FUSA et de cybersécurité inhibent toutes les optimisations appliquées par le compilateur, tandis que certains développeurs de compilateur appliquent une interprétation très légaliste de la norme iso C et considèrent .

Le terrain d'entente est détenu par ceux qui croient que les optimisations n'ont pas à introduire des risques FUSA et de cybersécurité si, et seulement si le compilateur fournit des informations de diagnostic suffisantes sur les optimisations appliquées pour rendre l'utilisateur de l'outil conscient des conséquences possibles.

A propos de l'auteur

Gerard Vink est un spécialiste de l'industrie, la définition du produit, à Tasking