Une voie plus fluide vers la conformité MISRA
Par Marc Lambert
28 septembre 2017
5 min lire
La tâche de créer des applications logicielles embarquées était déjà semée d'embûches, puis avec l'introduction de l'IoT, tout semble désormais avoir une connexion à Internet, augmentant simultanément la complexité des systèmes et le risque de failles de sécurité. Pour aider à atténuer ces défis, de nombreuses personnes se tournent vers les directives MISRA.
Les « Directives pour l'utilisation du langage C dans les systèmes critiques » de la Motor Industry Software Reliability Association (MISRA) (connues sous le nom de MISRA C 2012) sont une définition d'un sous-ensemble du langage C conçu pour minimiser les erreurs potentielles, les failles de sécurité et les erreurs. qui causent l'échec du programme ou des erreurs graves. Bien qu'initialement créées pour les systèmes automobiles, les directives ont été adoptées par de nombreuses autres industries pour des applications critiques pour la sécurité. Dans tous les cas, la détermination de la conformité, qui est de plus en plus requise dans les relations fournisseur/client, est complexe et chronophage.
Analyse de conformité et rapports
Il existe de nombreux outils sur le marché qui signalent des erreurs indiquant quand le code enfreint une directive, mais peu d'outils simplifient le processus de reporting et de documentation requis pour démontrer la conformité - sans parler de la mise en œuvre des directives dans votre processus de développement logiciel.
Pour rationaliser l'ensemble du processus de réalisation, de documentation et de maintien de la conformité MISRA tout au long du cycle de vie du produit, nous avons conçu notre plateforme de reporting et d'analyse (Parasoft DTP) pour apporter automatisation et assistance, ainsi que notre outil de test C et C++, C/++test. Dans cet article, j'ai pensé que j'expliquerais mieux comment vous pouvez tirer parti de ces outils ensemble pour faire MISRA conformité moins un mal de tête.
Naviguer sur la route cahoteuse de la conformité
La conformité est un état binaire - le code est conforme ou non, et les directives de la MISRA s'attendent à ce que tout le code soit conforme aux directives et aux règles énoncées dans la norme. En tant que tel, parvenir à une conformité totale dans un grand projet complexe n'est pas une entreprise facile. Ajoutant au défi, de nombreuses relations fournisseur / client exigent que le respect de la norme soit prouvé par la documentation.
Afin de mieux clarifier la procédure de mise en œuvre des directives de codage MISRA, MISRA a publié des directives de conformité en 2016 pour aider les organisations de développement à atteindre et à documenter la conformité. Afin de simplifier ce processus grâce à l'automatisation, les éléments suivants sont requis :
- Vues de haut niveau et en temps réel de l'état général du projet pour garantir que la conformité est intégrée au processus de développement
- Création automatisée de rapports conformes aux directives de conformité MISRA (par exemple Conformité MISRA : 2016) afin de réduire le fardeau lié à la génération des pièces justificatives
- Flux de travail rapides et faciles pour enquêter sur les violations et hiérarchiser les actions de correction pour rationaliser le processus de mise en conformité d'un projet `` sur la bonne voie ''
En tenant compte de ces directives, nous avons conçu la plate-forme de reporting et d'analyse (DTP) pour personnaliser et étendre les déploiements de tests C / C ++, en fournissant des analyses intelligentes pour donner aux parties prenantes une meilleure compréhension de la couverture des tests et des risques introduits par le changement. Pour la norme MISRA, le DTP simplifie le processus d'obtention, d'application et de documentation de la conformité, tout en prouvant la fonctionnalité, les performances et la sécurité.
Le tableau de bord de conformité MISRA
Les état actuel de conformité d'un projet est une métrique importante, tout comme les divers points plus fins de la mesure de la conformité. DTP fournit un tableau de bord de conformité MISRA complet qui fournit une évaluation sur place du projet. Cette vue de haut niveau est importante pour les gestionnaires et les développeurs, offrant aux gestionnaires une vue facilement accessible de la conformité en un coup d'œil, et donnant aux développeurs un point de départ pour progresser vers la conformité, en aidant à hiérarchiser le travail.
Figure 1: Un exemple du tableau de bord de conformité MISRA de DTP.
Pack de conformité MISRA
En plus du tableau de bord de conformité MISRA, Parasoft fournit un pack de conformité complet, qui répond spécifiquement aux exigences de documentation de conformité de MISRA. Le pack de conformité MISRA pour DTP fournit une documentation automatisée conformément aux directives de conformité MISRA: 2016, ce qui réduit considérablement le temps et les efforts nécessaires pour prouver la conformité à une agence de certification. Ceux-ci inclus:
Le plan d'application des lignes directrices
Le plan d'application des directives MISRA montre comment chaque directive MISRA est vérifiée. Dans la plupart des cas, cela montre le lien entre une directive ou une règle MISRA et la ou les règles d'analyse de code associées ou la fonction DTP. Voir l'exemple ci-dessous:
Figure 2: Un exemple du rapport MISRA Guideline Enforcement Plan du DTP.
Le plan de reclassification des lignes directrices
Le plan de reclassification des lignes directrices MISRA est utilisé pour communiquer l'importance convenue pour les lignes directrices dans le cadre de la relation fournisseur / client. Le document montre comment chaque directive est catégorisée spécifiquement pour le projet en cours. Les directives obligatoires et requises ne peuvent pas être rétrogradées à un niveau inférieur; cependant, un projet peut décider de mettre à niveau les directives obligatoires ou consultatives vers un cadre plus strict, et les avis peuvent être supprimés (c'est-à-dire rendus non nécessaires pour la conformité). Voir un exemple de plan de reclassification ci-dessous:
Figure 3: Un exemple du rapport sur le plan de reclassification MISRA du DTP.
Rapport des écarts
Le rapport sur les écarts MISRA documente les violations déviées des lignes directrices avec une justification appropriée. Chaque fois qu'une violation de règle est détectée mais autorisée à subsister, elle doit être documentée dans le rapport des écarts. Dans la plupart des cas, il s'agit d'erreurs supprimées signalées par l'analyse de code. Un exemple de rapport est présenté ci-dessous:
Figure 4: Un exemple de rapport d'écart MISRA du DTP
Résumé de la conformité aux lignes directrices
Le résumé de conformité est le principal enregistrement de la conformité globale du projet. Ce rapport documente l'état de conformité pour chaque ligne directrice, ainsi que les écarts ou recatégorisations associés. Un exemple est présenté ci-dessous:
Figure 5: Un exemple de rapport de conformité MISRA du DTP
Se mettre en conformité
Dans la plupart des cas, lors de l'analyse du code source pour la conformité MISRA, les violations sont des violations de règles d'analyse statique. Dans un grand projet, de nombreuses erreurs seront initialement signalées, et il est essentiel de les gérer rapidement et efficacement. L'Explorateur de violations DTP est l'outil clé pour naviguer, évaluer, hiérarchiser et attribuer les erreurs signalées à des fins de correction. Si une violation de règle d'analyse statique s'avère valide mais justifiable, considérée comme inoffensive ou non applicable, un développeur peut supprimer l'erreur et un écart peut être documenté. Ces écarts sont signalés à chaque niveau du projet, au tableau de bord et à la documentation de conformité. Un exemple de l'Explorateur de violations est illustré ci-dessous:
Figure 6: Un exemple de violation faisant l'objet d'une enquête dans l'Explorateur de violations de DTP.
Application, conformité et traçabilité
Pour résumer, lors du développement de logiciels critiques pour la sécurité, la norme MISRA fournit un ensemble complet de directives pour se protéger contre les vulnérabilités de sécurité et les échecs de programme. Cependant, l'application de ces directives et la démonstration de la conformité peuvent être trop lourdes, et leur rationalisation est essentielle pour garantir la ponctualité des livrables logiciels.
Pour laisser le logiciel vous aider dans ce travail, vous pouvez:
- Utilisez le test C / C ++ pour vérifier les directives MISRA via une analyse de code statique après chaque version de logiciel, garantissant ainsi leur application au jour le jour.
- Créez des aperçus de haut niveau et des rapports détaillés, obtenus rapidement à partir du pack de conformité MISRA de DTP, pour démontrer efficacement la conformité.
- Tirer parti du DTP pour la traçabilité des exigences du projet aux tests, une exigence importante non seulement de MISRA, mais également des normes de sécurité.
En fin de compte, soutenir MISRA la conformité tout au long du cycle de vie est importante pour l'application continue et la traçabilité, et l'automatisation de la documentation, conformément aux directives MISRA Compliance: 2016, est essentielle pour gagner du temps et gagner de la frustration face à cette directive.
« 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.