NOTE : Cet article ne concerne pas uniquement les organisations qui ont déjà été piratées... La norme IEC 62443 est une norme générique reconnue comme applicable dans des secteurs critiques tels que la fabrication, l'énergie, le transport, les soins de santé et bien d'autres.

 

Cet article est le troisième épisode d'une série de 8, couvrant les principales pratiques à mettre en œuvre par toute organisation visant à répondre à l'état de l'art en matière de cybersécurité pour les systèmes de contrôle industriels et d'automatisation. Basé sur une approche pragmatique, cet article vous guide sur la façon de gérer la définition des exigences liées à un cycle de développement sécurisé (IEC 62443-4-1) au sein de vos processus organisationnels actuels.

 

Pour développer systématiquement des produits sûrs, il faut mettre l'accent sur la sécurité tout au long du cycle de vie des logiciels, de sorte que les résultats soient considérés comme sûrs dès la conception. Ainsi, chaque phase du cycle de vie d'un logiciel commun doit être renforcée par des pratiques de sécurité. Cela conduit à un cycle de développement sécurisé, comme illustré ci-dessous (dans un aperçu simplifié). Dans ce troisième épisode, nous nous concentrerons sur les bonnes pratiques requises pour valider les parties du logiciel à un stade précoce, l'analyse du code et les examens de sécurité.

Ce processus est nécessaire pour garantir que la mise en œuvre couvre correctement la conception sécurisée (voir l'épisode 2 de cette série pour plus d'informations sur la conception sécurisée) et les exigences de sécurité associées, et qu'elle respecte les meilleures pratiques de mise en œuvre.

 

La CEI 62443-4-1 décrit ces pratiques comme suit :

  • "Avoir ce processus signifie que le fournisseur du produit effectue un ensemble complet d'examens de sécurité de la mise en œuvre et de sa conception. Différents types d'examens seront généralement utilisés pour répondre à différents objectifs. Par exemple, les examens manuels sont généralement effectués par rapport à la conception de l'implémentation pour vérifier que les exigences sont respectées et que l'implémentation assurera une protection adéquate contre les menaces prévues. En outre, les revues manuelles du code source peuvent être utilisées pour examiner le code source afin de vérifier qu'il respecte les meilleures pratiques (voir 8.4), et l'analyse statique automatisée du code source peut être utilisée pour identifier les anomalies, notamment les vulnérabilités de sécurité dans le code ainsi que les non-conformités avec les règles de programmation données."

Comme décrit ci-dessus, les outils d'analyse statique fournissent un soutien essentiel dans les phases de codage et d'intégration du développement logiciel. La figure ci-dessous montre la superposition sur un cycle de vie de développement logiciel des outils d'analyse statique et dynamique. Garantir la qualité continue du code, tant dans les phases de développement que de maintenance, réduit considérablement les coûts et les risques liés aux problèmes de sécurité et de fiabilité des logiciels.

Pour rappel, la norme ISA/IEC 62443 met l'accent sur une philosophie de défense en profondeur (protection via de multiples couches de défense exploitant de multiples facettes de la pratique de la sécurité) avec une approche de conception sécurisée. Dans ce contexte, les outils de développement, l'automatisation et les outils d'analyse statique et dynamique jouent un rôle clé dans les "directives de sécurité" et la "mise en œuvre sécurisée"..

Expertise en matière de sécurité

 

La norme définit la nécessité d'une expertise en matière de sécurité, tant au niveau de la conception que de la mise en œuvre, mais aussi des outils et des techniques modernes, dont les outils d'analyse statique. En termes d'implémentation sécurisée, la norme est très claire sur le rôle que jouent les outils d'analyse statique du code (SCA). La section 5.5 (Expertise en matière de sécurité) stipule ce qui suit :
 

  • "Disposer de ce processus signifie que le personnel affecté aux processus liés à la sécurité dispose de preuves démontrant ses qualifications pertinentes. Cela inclut la connaissance non seulement de la sécurité, mais aussi de l'utilisation de toutes les normes (par exemple, les normes de codage), techniques (par exemple, les meilleures pratiques) et outils (par exemple, les outils d'analyse statique) liés à la sécurité."

Analyse du code statique

 

Une analyse statique du code (SCA) pour le code source est utilisée pour identifier les erreurs de codage de sécurité telles que les débordements de tampon, le déréférencement de pointeur nul et toute autre violation des règles de codage définies pour la plate-forme prise en charge. S'il est disponible, le SCA doit être effectué à l'aide d'un outil pour le langage utilisé. En outre, l'analyse statique du code doit être effectuée chaque fois que le logiciel est modifié. L'utilisation d'un tel outil automatique est considérée comme une bonne pratique par la CEI 62443-4-1, tout comme les revues manuelles pour l'examen du code source pour l'adhésion aux meilleures pratiques.

Conclusion
&nbsp

Sans exclure les méthodes et examens manuels, l'automatisation joue un rôle clé dans le respect des meilleures pratiques de la norme IEC 62443-4-1. L'automatisation des tests, qui comprend une analyse statique et dynamique, augmente le champ de détection des erreurs et des vulnérabilités tout en diminuant la charge de travail globale.

Même si la conformité à la norme 62443 n'est pas un objectif ultime, l'analyse du code et les examens de sécurité généraux doivent être considérés comme l'une des principales activités à mettre en œuvre et à gérer par toute organisation pour garantir une certaine confiance dans un cycle de développement donné.
&nbsp

Si vous avez des questions sur l'analyse de code, les examens généraux de sécurité et/ou les critères de certification, n'hésitez pas à contacter notre spécialiste en cybersécurité : Kilian Marty