Renforcer la cybersécurité des logiciels médicaux avec le modèle STRIDE

Rédigé par
Yanik & Antoine

Les cyberattaques connaissent une hausse alarmante. Elles engendrent des coûts considérables pour les entreprises affectées, nuisent à leur réputation et exposent les utilisateurs à des conséquences graves. Les services peuvent devenir inaccessibles, l’identité des clients risque d’être volée, et leurs informations personnelles, divulguées.

Dans le domaine de la santé, où les enjeux sont encore plus critiques, la cybersécurité revêt une importance capitale dans le développement des logiciels médicaux. Un seul dysfonctionnement peut aller jusqu’à mettre en danger la vie des patients et exposer leurs données confidentielles.

Pour cette raison, les instances réglementaires accordent une importance particulière à la sûreté des appareils médicaux. C’est le cas de la Food & Drug Administration (FDA) aux États-Unis dont une des missions est de s’assurer que les logiciels sont conçus de manière à protéger les patients et les utilisateurs contre une utilisation malveillante.

Antoine Béland et Yanik Magnan, tous les deux concepteurs logiciel Tech Lead chez CLEIO, partagent leur regard d’experts sur la sécurisation des logiciels médicaux. Ils préconisent notamment d’utiliser le modèle STRIDE pour mitiger efficacement les risques dans ce secteur hautement sensible.

Qu’est-ce que le modèle STRIDE?

Le modèle STRIDE a été développé par Microsoft en 1999. Il permet d’identifier et d’analyser les menaces potentielles à la sécurité des systèmes. Ses lettres sont l’acronyme de six grandes catégories de menaces potentielles que nous allons explorer ensemble.

Usurpation d’identité (Spoofing)

L’usurpation d’identité est le fait de se faire passer pour quelqu’un d’autre. Il peut s’agir, par exemple, d’un attaquant qui vole le mot de passe d’un utilisateur pour se connecter à son compte.

Pour l’éviter, des mesures doivent être mises en place pour s’assurer que la personne qui se connecte est celle attendue, et ainsi garantir l’authenticité dans le système.

Manipulation de données (Tampering)

La manipulation de données est la modification malveillante de données sur le disque dur, le réseau, ou en mémoire. Par exemple, c’est le cas lorsqu’un attaquant intercepte les données sur le réseau et les modifie.

Pour empêcher que cela se produise et ainsi garantir l’intégrité du système, ce type d’actions doivent pouvoir être détectées.

Répudiation

La répudiation consiste à faire croire au système que nous n’avons pas effectué une opération ou que nous n’en sommes pas le responsable. Il y a répudiation, par exemple, quand un attaquant réussit à modifier les journaux d’audit d’un système.

Pour l’éviter, des mesures doivent être implémentées pour garantir la non-répudiation dans le système.

Divulgation d’informations (Information Disclosure)

On parle de divulgation d’informations lorsqu’un utilisateur non autorisé a accès à de l’information. Cela peut-être le cas quand un système mal configuré expose des informations sensibles publiquement, ou quand un attaquant intercepte des données transitant sur le réseau pour les voler.

Pour garantir la confidentialité du système, il est possible, par exemple, d’utiliser des mécanismes d’encryption.

Déni de service

Le déni de service est une absorption des ressources du système pour que les autres utilisateurs ne puissent pas accéder au service. Il y a déni de service quand un attaquant inonde le système de requêtes pour le rendre inaccessible.

Dans ce cas, l’accès doit être permis d’une autre manière afin de garantir la disponibilité du système.

Élévation de privilèges

L’élévation de privilèges consiste à réaliser une opération sans en détenir l’autorisation. Elle peut survenir dans le cas où un attaquant réussit à voler des informations de connexion pour se connecter à un système avec des privilèges élevés.

Pour l’éviter, des mesures sont à mettre en place afin de garantir les autorisations dans le système.

6 étapes pour garantir la sécurité des logiciels médicaux avec le modèle STRIDE

Maintenant que nous connaissons le modèle STRIDE en détails, voyons comment nous pouvons nous en servir pour identifier des menaces potentielles au niveau de la cybersécurité pendant le développement d’un logiciel médical.

Les deux premières étapes consistent à identifier les actifs informationnels et les surfaces d’attaques impliqués dans le système.

1

Identifier les actifs informationnels

Un actif informationnel est une ressource dans l’infrastructure d’une organisation qui doit être protégée car elle a de la valeur. On y retrouve les données numériques, les documents physiques, la propriété intellectuelle, ou encore les connaissances et les compétences des employés.

Leur valeur les expose à des menaces et à des risques: accès non autorisés, brèches de données, attaques de logiciels malveillants, défaillance système et autres cybermenaces.

2

Identifier les surfaces d’attaques

Une surface d’attaque est l’ensemble des points d’entrée potentiels qu’un attaquant peut exploiter pour s’introduire dans le système et causer des dommages.

Elle relie deux composants du système sur lequel une information est transmise ou une opération est effectuée. Cela peut-être, par exemple, la connexion Bluetooth entre un téléphone et un appareil.
Lors de la conception d’un logiciel, il est préférable de minimiser le nombre de surfaces d’attaque potentielles.

Les surfaces d’attaque sont en orange et les actifs sont les types d’informations acheminés sur ces canaux.

3

Appliquer le modèle STRIDE à chacun des actifs et des surfaces identifiés

Pour pouvoir appliquer le modèle STRIDE à chacun des actifs et des surfaces identifiées, nous recommandons de créer une matrice d’analyse de cybersécurité.

Cette matrice permet d’évaluer les risques de cybersécurité possibles sur chacun des canaux de communication pour chacune des données en transit dans le système.
informational assetsAttack SurfaceSTRIDEScenarioSequence of EventsHazardous Situation
Patient temperatureThermometer → BLETampering[...][...][...]
Patient temperatureThermometer → BLESpoofing[...][...][...]
Patient temperatureThermometer → BLEElevation of Privileges[...][...][...]
Patient temperatureThermometer → BLEDenial of Service[...][...][...]

La colonne «Scénario» rassemble le type d’attaque qui s’applique à un type de menace. À noter qu’il est possible qu’il y ait plusieurs scénarios d’attaque possibles avec des impacts différents pour une même catégorie de menace. Dans ce cas, chaque scénario doit avoir sa propre ligne dans la matrice.

La colonne «Séquence des événements» donne une description haut-niveau du fonctionnement de l’attaque.

Enfin, la colonne «Situation dangereuse» permet de décrire de façon tangible l’impact que l’attaque aura sur l’actif ou la surface d’attaque concernée.

Si une ligne n’est pas applicable, il suffit de l’indiquer et de justifier pourquoi. Cette méthode permet de prouver qu’il y a eu un minimum de réflexion et qu’il n’y a pas eu d’oubli dans la matrice.

4

Identifier les conséquences plausibles des différents scénarios formulés

Maintenant que les différents scénarios ont été formulés, il est temps d’identifier leurs conséquences possibles.

Pour chaque conséquence, il s’agit de définir l’impact, le dommage causé, ainsi que le niveau de probabilité et de sévérité.

Impact

Quel sera l’impact de la fonctionnalité, la performance du système, les données des utilisateurs, le patient ou la disponibilité du système?

Dommage

Blessure physique ou atteinte à la santé des personnes, ou atteinte aux biens ou à l’environnement.

Probabilité

Sévérité

5

Évaluer le niveau de risque des conséquences identifiées

Une fois que le niveau de probabilité du scénario ainsi que la sévérité des dommages qui en découlent ont été définis, il est possible d’évaluer le risque associé.

Le niveau de risque peut être déterminé par une matrice qui prend en compte la sévérité et la probabilité d’un incident:

6

Définir une mitigation au besoin

La connaissance de tous ces éléments permet alors de définir une mitigation si nécessaire, c’est-à-dire la mesure à mettre en place pour éviter que l’incident se produise.

Voici les mesures possibles:
À chaque fois qu’une mesure de mitigation est appliquée, il faut à nouveau réévaluer le niveau de risque jusqu’à ce que ce dernier soit acceptable.

La cybersécurité est un élément essentiel à considérer lors du développement de logiciels médicaux. Nous avons vu comment le modèle STRIDE permet d’appliquer une méthode systématique d’analyse des risques et de réfléchir à des mesures à mettre en place pour les mitiger.

Cependant, cette méthode seule ne suffit pas à réduire les risques. D’autres actions sont à effectuer pendant le développement. C’est le cas notamment des tests logiciels qui doivent être menés de manière rigoureuse pour prévenir les incidents qui pourraient, non seulement, nuire aux patients, mais également entraîner des rappels de produits, des litiges, et porter atteinte à la réputation du fabricant.

Auteur et collaborateurs

Rédigé par
Yanik & Antoine

Infolettre et Monthly Digest

Abonnez-vous pour recevoir notre contenu directement dans votre boîte courriel.

Articles que vous pourriez aimer

10 erreurs à éviter dans le développement d’un dispositif médical

Le design innovant de la console de SoundBite reçoit un prix Platine aux Grands Prix du Design 2024

Défis du Parc 2024: L’équipe CLEIO relève le défi à nouveau!

10 erreurs à éviter dans le développement d’un dispositif médical

Le design innovant de la console de SoundBite reçoit un prix Platine aux Grands Prix du Design 2024