Ouvrir le menu Fermer le menu

Qu'est-ce que la

trait de séparation
Temps de lecture : 8 minutes

Comprendre les Fondamentaux de la Sécurité dans l'Ingénierie Logicielle


Dans le monde complexe du développement logiciel, en particulier pour les systèmes critiques, la sécurité est une préoccupation primordiale.
Deux approches clés émergent souvent :la "Safety by Design" et la "Functional Safety" (FuSa). Mais quelles sont exactement ces notions et comment se distinguent-elles ?

Cet article explore les fondamentaux de la sécurité dans l'ingénierie logicielle, en passant par les normes importantes comme l'IEC 61508 et en introduisant des concepts plus récents comme la "Safety Of The Intended Functionality" (SOTIF).

Qu'est-ce que la "Safety by Design" ?

La "Safety by Design", ou sécurité dès la conception, est une philosophie qui intègre la sécurité comme un principe fondamental tout au long du cycle de vie du développement logiciel. Au lieu de considérer la sécurité comme un ajout ultérieur, elle est prise en compte dès les premières étapes de la conception, de l'architecture et de la mise en œuvre. L'objectif est de minimiser intrinsèquement les risques et les vulnérabilités potentielles en construisant un système sécurisé par nature. Cela implique des choix de conception réfléchis, l'utilisation de composants fiables et l'application de pratiques de développement sécurisées.

Qu'est-ce que la "Functional Safety" (FuSa) ?

La "Functional Safety" (FuSa), ou sécurité fonctionnelle, se concentre sur la prévention des risques dus à des dysfonctionnements électroniques et/ou logiciels. Elle s'intéresse aux fonctions de sécurité spécifiques qu'un système doit implémenter pour atténuer les dangers potentiels. La FuSa repose sur l'identification des risques, l'attribution de niveaux d'intégrité de sécurité (SIL) et la mise en œuvre de mesures pour atteindre et maintenir ces niveaux. Son approche est plus réactive, visant à garantir que le système réagisse de manière sûre en cas de défaillance.

IEC 61508 et ses dérivés

La norme IEC 61508, "Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité", est une norme internationale fondamentale pour la sécurité fonctionnelle. Elle fournit un cadre générique pour la conception, la mise en œuvre, l'exploitation et la maintenance de systèmes de sécurité. De nombreuses normes spécifiques à des industries (comme l'ISO 26262 pour l'automobile ou l'EN 50128 / EN 50716 pour le ferroviaire) sont dérivées de l'IEC 61508, adaptant ses principes aux exigences particulières de ces secteurs.


Quelle est la différence entre la "Safety by Design" et la "Functional Safety" ?

Bien que complémentaires, la "Safety by Design" et la "Functional Safety" diffèrent dans leur approche. La "Safety by Design" est proactive, cherchant à construire un système intrinsèquement sûr en intégrant la sécurité dès le départ. La "Functional Safety" est plus réactive, se concentrant sur la mise en place de mécanismes de sécurité spécifiques pour gérer les défaillances potentielles. En d'autres termes, la "Safety by Design" vise à éviter les problèmes, tandis que la "Functional Safety" vise à les gérer de manière sûre lorsqu'ils surviennent.

Qu'est-ce que la "Safety Of The Intended Functionality" (SOTIF) ?

La "Safety Of The Intended Functionality" (SOTIF), ou sécurité du fonctionnement prévu, est un concept plus récent qui prend en compte les risques liés aux limitations de performance et aux utilisations abusives prévisibles d'une fonctionnalité, même en l'absence de défauts matériels ou logiciels. Elle est particulièrement pertinente pour les systèmes avancés d'aide à la conduite (ADAS) et les véhicules autonomes, où le comportement du système dans des scénarios complexes et incertains est crucial pour la sécurité.

Quelle est la différence entre la "Safety Of The Intended Function" et la "Functional Safety" ?

La différence principale réside dans le type de danger adressé. La "Functional Safety" se concentre sur les dangers causés par des dysfonctionnements (pannes matérielles ou erreurs logicielles). La "Safety Of The Intended Functionality" s'intéresse aux dangers résultant d'un comportement fonctionnel insuffisant ou inapproprié dans des conditions opérationnelles normales ou prévisibles, même si le système fonctionne comme prévu. En résumé, la FuSa gère les "que se passe-t-il si ça tombe en panne ?", tandis que la SOTIF gère les "que se passe-t-il si ça ne fait pas ce qu'il faut ?".

Que sont les normes de codage ?

Les normes de codage sont un ensemble de règles et de directives établies pour garantir la cohérence, la lisibilité, la maintenabilité et la sécurité du code source. Elles définissent des conventions pour la mise en page, la dénomination des variables, les structures de contrôle, la gestion des erreurs et d'autres aspects de la programmation. L'adhérence à des normes de codage reconnues, telles que MISRA C ou CERT C, contribue à réduire les erreurs, à faciliter la collaboration entre les développeurs et à améliorer la robustesse et la sécurité globale du logiciel.

Comprendre ces concepts fondamentaux est essentiel pour développer des systèmes logiciels fiables et sûrs, en particulier dans les industries où la sécurité est critique. L'intégration de la "Safety by Design", l'application des principes de la "Functional Safety", la considération de la SOTIF et le respect des normes de codage sont autant d'éléments clés pour atteindre cet objectif.

La Sécurité Logicielle Embarquée dans les Secteurs Critiques : Aérospatial, Automobile, Industrie et Plus Encore

0

Ces articles peuvent vous intéresser

image blog article

Transports connectés et autonomes : quand la cyber et la safety ne font qu’un

EGERIE dresse un état des lieux de la situation : craintes, normes et perspectives pour des transports de plus en plus connectés.

image blog article

SAST vs SCA

7 différences clés pour choisir la solution qui répondra à votre besoin !

image blog article

Santé connectée : techniques d'assurance qualité pour développer des applications sécurisées

En matière de santé et notamment de soins, la connectivité apporte d'énormes avantages aux professionnels et aux patients, et cette tendance devrait se poursuivre et même s'accélérer. Cependant, la cybersécurité est un réel problème qui en découle, et bien que tout le monde reconnaisse la nécessité d'une architecture sécurisée au niveau de l'IT de l’entreprise, développer des équipements médicaux sécurisés est plus souvent négligé, alors que c’est d'une importance vitale.