Utilisez Agentic AI pour générer des tests API plus intelligents. En quelques minutes. Apprenez comment >>

Comment MISRA C 2025 relève les défis de l'IA et de Rust

Portrait de Michal Rozenau, membre actif du groupe de travail MISRA C et MISRA C++ et ingénieur chef de projet chez Parasoft
Le 5 juin 2025
3 min lire

Découvrez les principales mises à jour de MISRA C 2025, le rôle de l'IA dans la génération de code, la popularité croissante de Rust et l'impact de ces changements sur les développeurs et les organisations.

Directives MISRA C Depuis des décennies, ils constituent la référence en matière de sûreté, de sécurité et de fiabilité des systèmes embarqués. Cela est particulièrement vrai pour des secteurs comme l'automobile, l'aérospatiale, les dispositifs médicaux et l'automatisation industrielle. Avec la publication de MISRA C 2025, les directives de codage continuent d'évoluer, répondant aux défis modernes tels que le code généré par l'IA et l'intérêt croissant pour Rust comme alternative au C/C++.

Mises à jour progressives de la norme MISRA C 2025 avec améliorations pratiques

MISRA C 2025 est un perfectionnement progressif de MISRA C 2023Les principaux changements visent à améliorer la sécurité et l’expérience des développeurs.

Nouvelles règles et modifications

Les lignes directrices comprennent quatre nouvelles règles qui traitent des risques émergents en matière de codage.

  • Interdire la comparaison implicite des pointeurs vers null.
  • Restriction de l'utilisation des membres d'union inactifs, à l'exception des tableaux de caractères, qui sont autorisés pour les lectures d'alias.
  • Assurer des identifiants de macro de protection d'inclusion uniques dans un projet.
  • Renforcement des exigences pour les conversions de pointeur en entier, par exemple, la règle 11.4 est désormais requise au lieu d'être consultative.

Règles modifiées

Deux règles ont été intégrées à d'autres règles. Elles ont donc été supprimées lors de la refonte de l'organisation des règles. De plus, la règle consultative controversée exigeant un point de sortie unique dans les fonctions, qui semblait avoir disparu, est devenue facultative.

Trois règles ont été renumérotées pour une meilleure organisation et treize règles ont été modifiées pour refléter les meilleures pratiques actuelles et clarifier les ambiguïtés.

En savoir plus sur la disparition de la règle de sortie unique

La règle de sortie unique est un élément essentiel de la MISRA depuis des décennies. Historiquement liée aux anciennes pratiques de programmation modulaire, cette modification, qui la rend facultative, prend en compte les pratiques modernes de programmation structurée et reflète l'évolution de la MISRA vers une approche pratique sans compromettre la sécurité.

Cette règle est issue de la programmation assembleur, où les sauts pouvaient se produire n'importe où. Mais dans les langages structurés modernes comme le C, chaque retour se fait en toute sécurité vers l'appelant. Certaines organisations l'appliquent encore, c'est pourquoi le groupe de travail MISRA l'a conservée, mais elle est désormais facultative.

Restrictions assouplies pour la flexibilité des développeurs

La loi MISRA C 2025 a également introduit davantage de flexibilité pour les développeurs dans les domaines suivants.

  • Instructions de commutation. Les clauses peuvent désormais être terminées par des instructions autres que « break » (par exemple, « return », « abort » ou « continue »), réduisant ainsi le besoin de code inaccessible.
  • Conversions de pointeurs. Des exceptions ont été ajoutées pour les conversions impliquant `intptr_t` et `uintptr_t`, conformément aux tolérances standard.
  • Mémoire dynamique. La conversion immédiate de la mémoire nouvellement allouée vers un type de pointeur spécifique est désormais autorisée. Cependant, l'utilisation dynamique de la mémoire reste déconseillée.

Code généré par l'IA et conformité MISRA

Comment les directives MISRA s'appliquent-elles au code généré par l'IA ? C'est une question urgente dans le développement logiciel.

Le code généré par l'IA n'est pas le même que le code généré automatiquement qualifiable

La MISRA accorde traditionnellement une certaine indulgence au code généré automatiquement, par exemple celui généré par Simulink ou Stateflow. Elle a depuis longtemps recours à certaines règles consultatives, le reclassant comme « non appliqué » pour faciliter la conformité.

En revanche, le comité MISRA soumet le code généré par l'IA à des programmes de master, comme GitHub Copilot, aux mêmes normes que le code écrit par l'homme. Le comité MISRA souligne que le code d'IA ne bénéficie pas des garanties déterministes des générateurs basés sur des modèles, ce qui signifie qu'il peut introduire des risques imprévisibles et nécessite un examen plus approfondi. De ce fait, il nécessite des analyses statiques, des évaluations par les pairs et des tests unitaires. Ces méthodes de test sont d'ailleurs obligatoires.

Remédiation assistée par l'IA

L'IA peut contribuer à corriger les violations de la MISRA. Des solutions comme Parasoft C/C++test s'intègrent à GitHub Copilot et ajoutent des conseils contextuels, en intégrant la documentation des règles et en utilisant le raisonnement par chaîne de pensée pour générer des correctifs conformes.

En bref, la solution d'analyse statique de Parasoft intègre l'IA, en la reliant à la conformité pour effectuer les opérations suivantes :

  • Expliquez les violations dans leur contexte.
  • Suggérez des correctifs conformes pour des problèmes tels que l’utilisation abusive du pointeur, par exemple.
  • Suppression automatique des violations des règles héritées lors de la migration vers MISRA C 2025.

Les développeurs doivent toujours examiner les suggestions de l’IA, mais le processus accélère la correction tout en maintenant la conformité.

Élargir la portée de MISRA

La MISRA a publié deux nouveaux addenda au-delà des lignes directrices de base.

  1. L'addendum 5 met en correspondance les directives MISRA C avec les faiblesses du CWE considérées comme pertinentes pour la sécurité de la mémoire, aidant ainsi les développeurs à traiter les vulnérabilités de manière systématique.
  2. L'addendum 6 évalue l'applicabilité des directives MISRA C à Rust et identifie les problèmes de sécurité potentiels. Il s'agit d'une étape fondamentale vers l'élaboration de futures directives spécifiques à Rust.

La question de Rust : MISRA s'étend-il au-delà de C/C++ ?

Alors que le langage de programmation Rust gagne du terrain dans les systèmes critiques pour la sécurité, beaucoup se demandent si la MISRA développera des directives à ce sujet.

Bien que l'addendum 6 explore comment les règles C/C++ existantes pourraient être transposées à Rust, son modèle de propriété et ses fonctionnalités de sécurité mémoire nécessitent de nouvelles règles spécifiques au langage. La communauté Rust travaille activement sur des normes de sécurité, qui pourraient déboucher sur une future directive MISRA Rust.

Points clés à retenir pour les développeurs

La norme MISRA C 2025 affine la norme avec des mises à jour qui privilégient l'aspect pratique sans compromettre la sécurité. Voici quelques points importants.

  • Le code généré par l’IA nécessite un examen minutieux. Traitez-le comme un code écrit par un humain et appliquez une conformité totale.
  • L’outillage est essentiel. Des solutions telles que Parasoft C/C++test rationalisent la conformité grâce à des correctifs assistés par l'IA et une intégration transparente dans les flux de travail.
  • Tiens-toi à jour. Les nouveaux mappages de MISRA pour CWE et Rust montrent le rôle évolutif de la norme dans la sécurité des logiciels modernes.

Conclusion : La sécurité à l'ère de l'IA et des nouveaux langages

La norme MISRA C 2025 démontre comment les normes de sécurité doivent évoluer parallèlement à la technologie. En s'attaquant au code généré par l'IA, en réexaminant les règles obsolètes et en explorant la compatibilité avec Rust, la norme MISRA garantit son maintien comme cadre de confiance pour les logiciels critiques.

Pour les développeurs, c'est clair : l'automatisation et l'IA peuvent faciliter le codage, mais la supervision humaine et des tests rigoureux restent indispensables. À mesure que le secteur évolue, rester informé et adaptable sera crucial pour maintenir l'innovation et la sécurité.

Trouvez et corrigez les violations de code C/C++ plus rapidement grâce à l'analyse statique basée sur l'IA

Article connexe + ressources

Texte de démonstration des tests continus C & C++ à gauche avec le logo Parasoft C/C++test CT à droite
DÉMO AVEC QUESTIONS ET RÉPONSES
Inscrivez-vous maintenant : 16 juillet

Tests continus C et C++

Démo de test de logiciels C et C++
DÉMO AVEC QUESTIONS ET RÉPONSES
Inscrivez-vous maintenant : 20 août

Tests de logiciels C et C++