Logo Parasoft

WEBINAIRE

Comment aborder les tests logiciels et la conformité réglementaire pour IEC 61508

Les systèmes logiciels industriels qui font fonctionner des robots de fabrication, des ascenseurs électriques et même vos feux de circulation sont devenus très complexes. À mesure que ces types de systèmes augmentent leurs capacités fonctionnelles, deviennent connectés et deviennent intelligents, la sécurité n'est plus le seul défi à relever. La protection contre les menaces et les vulnérabilités grâce aux contrôles de sécurité est tout aussi importante.

Vous développez un logiciel pour un système électronique programmable de sécurité ? Développer un logiciel critique pour la sécurité n'est pas chose aisée, mais il existe un moyen de surmonter les difficultés. Automatisation grâce aux pratiques modernes de développement logiciel CI/CD peut en faire partie. Apprenez à accélérer et à réduire les coûts de livraison de logiciels qui doivent être sûrs, sécurisés et conforme à la norme IEC 61508.

À retenir

  • Comprendre l' IEC 61508 normes de codage sécurisé standard et connexes.
  • Utilisation de l'analyse statique, des tests unitaires et de la couverture de code pour les systèmes électroniques programmables.
  • Intégration des exigences réglementaires en matière de sécurité et de sûreté tout au long du cycle de vie du développement logiciel (SDLC).

Sûreté, sécurité et qualité : un défi étroitement lié

Lors du développement de logiciels pour des systèmes critiques pour la sécurité, la sécurité est la préoccupation principale. Un appareil doit être sûr en fonctionnement normal, mais aussi en cas de panne. De plus, il faut tenir compte des éventuelles utilisations abusives et des attaques externes. Il est intéressant de noter que les pratiques qui renforcent la sécurité améliorent souvent également la qualité et la fiabilité globales des logiciels. Les erreurs de programmation courantes, telles que les dépassements de capacité, les abus de mémoire et les autorisations incorrectes, sont à l'origine de problèmes de sécurité et de qualité.

Comprendre la CEI 61508

La norme CEI 61508 est une norme fondamentale en matière de sécurité fonctionnelle, applicable à divers secteurs d'activité. Elle propose une approche systématique pour intégrer les fonctionnalités de sécurité dans les conceptions, garantissant ainsi une défaillance prévisible et sûre des systèmes. La norme repose sur deux principes fondamentaux :

  1. Suivre un processus de cycle de vie d'ingénierie de sécurité : Cela implique de respecter les meilleures pratiques tout au long du cycle de développement, de la collecte des exigences à la maintenance et à l’élimination.
  2. Approche probabiliste de l'échec : Ce principe utilise des mesures pour mesurer et comptabiliser l’impact sur la sécurité des défaillances des appareils, souvent quantifié par les niveaux d’intégrité de sécurité (SIL).

Les sept parties de la norme CEI 61508

La norme IEC 61508 est structurée en sept parties, plus un rapport technique (Partie 0) :

  • Partie 0: Présente les concepts et les défis de la sécurité fonctionnelle.
  • Partie 1: Fournit un aperçu du cycle de vie de la sécurité des produits, y compris les phases d'analyse, de réalisation et d'exploitation.
  • Parties 2 et 3 : Exigences détaillées pour les cycles de vie de développement du matériel et des logiciels, respectivement, y compris la détermination des niveaux d'intégrité de sécurité (SIL).
  • Partie 4: Contient les définitions et abréviations utilisées dans la norme.
  • Parties 5 à 7 : Proposer des lignes directrices et des exemples de développement, y compris des méthodes pour déterminer le SIL et la documentation à l’appui.

Intégration de la sûreté et de la sécurité dans le SDLC

L'application de la norme CEI 61508 nécessite une approche structurée du cycle de développement logiciel. Cela comprend :

  • Phase des exigences : Recueillir toutes les exigences, y compris les besoins réglementaires et clients, et réaliser une analyse des dangers et des risques. Pour la sécurité, une évaluation des menaces et des risques doit également être réalisée, intégrant des exigences telles que le contrôle d'accès sécurisé et la protection des données.
  • Phase de réalisation : Cela implique la mise en œuvre et la vérification effectives du dispositif. Pour le matériel (partie 2), l'approche est basée sur le modèle en V. Pour le logiciel (partie 3), l'accent est mis sur les exigences, la conception, le développement, l'intégration, la vérification et la validation.
  • Phase d'exploitation : Cette phase couvre la maintenance et la mise au rebut du système.

Techniques et outils clés pour la conformité

Pour répondre aux exigences de la norme IEC 61508, plusieurs techniques sont recommandées, le niveau de rigueur dépendant de la classification SIL :

  • Traçabilité: Il est essentiel d'établir une traçabilité bidirectionnelle entre les exigences, la conception, le code et les cas de test. Des outils peuvent automatiser ce processus, permettant ainsi d'identifier les lacunes et de garantir le respect de toutes les exigences.
  • Normes de codage : Adopter des normes de codage telles que MISRA or AUTOSAR C ++ 14 Aide à prévenir les erreurs de programmation courantes. Pour la sécurité, des normes comme CERT et UL 2900 sont recommandées.
  • Analyse statique: Outils qui effectuent des analyses statiques Ils peuvent détecter des problèmes potentiels tels que des dépassements de capacité, des fuites de mémoire et des erreurs de pointeur dès le début du cycle de développement. Idéalement, ces outils devraient être certifiés pour une utilisation dans des applications critiques pour la sécurité.
  • Analyse et tests dynamiques : Les tests unitaires, d'intégration et système sont essentiels. Les cas de test doivent être réutilisés pour les tests de régression afin de garantir que les modifications n'introduisent pas de nouveaux problèmes. Les indicateurs de couverture du code, notamment les instructions, les branches et la couverture des conditions/décisions modifiées (MCDC), contribuent à déterminer la rigueur des tests.
  • Outils certifiés : L'utilisation d'outils certifiés pour les applications critiques en matière de sécurité est une exigence essentielle. Cela garantit que les outils eux-mêmes n'introduisent pas de failles dans le processus de développement.

Conclusion

Développer des logiciels pour des systèmes critiques pour la sécurité, conformément à des normes telles que la norme CEI 61508, présente des défis importants. Cependant, en adoptant une approche structurée, en intégrant la sûreté et la sécurité dès le départ et en utilisant des outils et techniques appropriés, les organisations peuvent fournir des logiciels fiables, sûrs et conformes. L'automatisation grâce aux pratiques CI/CD peut rationaliser davantage ce processus, réduisant ainsi les coûts et les délais de mise sur le marché.