Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Le remède aux défauts logiciels et aux vulnérabilités dans les dispositifs médicaux

Par Alan Zeichick

6 octobre 2016

3  min lire

Les dispositifs médicaux modernes utilisent de plus en plus les microprocesseurs et les logiciels embarqués, ainsi que les connexions de communication sophistiquées, pour des fonctionnalités vitales. Les pompes à insuline, par exemple, reposent sur une batterie, un mécanisme de pompe, un microprocesseur, des capteurs et un logiciel intégré. Les stimulateurs cardiaques et les moniteurs cardiaques contiennent également des piles, des capteurs et des logiciels. De nombreux appareils ont également des capacités de communication WiFi- ou Bluetooth. Même les chambres d'hôpital dotées de systèmes d'administration de médicaments par voie intraveineuse sont contrôlées par des microprocesseurs et des logiciels intégrés, qui sont fréquemment connectés au réseau de l'établissement. Mais ces innovations signifient également qu'un défaut logiciel peut entraîner une défaillance critique ou une vulnérabilité de sécurité.

Vraies préoccupations concernant la sécurité des logiciels pour les dispositifs médicaux

En 2007, ancien vice-président Dick Cheney avait les capacités sans fil de son stimulateur cardiaque désactivées sur les inquiétudes «concernant les informations selon lesquelles des attaquants pourraient pirater les appareils et tuer leurs propriétaires». Depuis lors, les vulnérabilités causées par la plus grande surface d'attaque des dispositifs médicaux modernes sont passées d'hypothétiques à démontrables, en partie en raison de la complexité du logiciel, et en partie en raison de l'incapacité de durcir correctement le code.

En Octobre 2011, Le registre a rapporté qu '«un chercheur en sécurité a conçu une attaque qui détourne des pompes à insuline à proximité, lui permettant d'administrer subrepticement des doses mortelles aux patients diabétiques qui en dépendent.» La pompe à insuline fonctionnait parce que la pompe contenait une radio à courte portée qui permettait aux patients et aux médecins d'ajuster ses fonctions. Le chercheur a montré qu'en utilisant une antenne spéciale et un logiciel personnalisé, il pouvait localiser et prendre le contrôle de tout appareil de ce type à moins de 300 pieds.

Dans un rapport publié par les évaluateurs indépendants de la sécurité (ISE) qui a examiné 12 hôpitaux, l'organisation a conclu «que des adversaires distants peuvent facilement déployer des attaques qui manipulent des enregistrements ou des appareils afin de compromettre pleinement la santé des patients» (p. 25). Plus loin dans le rapport, les chercheurs montrent comment ils ont démontré leur capacité à manipuler le flux de médicaments ou d'échantillons de sang à l'intérieur de l'hôpital, entraînant la livraison de types et de dosages de médicaments inappropriés (p. 37) - et tout cela depuis le hall de l'hôpital. . Ils ont également pu pirater et contrôler à distance les moniteurs de patient et les tubes respiratoires - et déclencher des alarmes qui pourraient amener les médecins ou les infirmières à administrer des médicaments inutiles.

Guide de la FDA pour les logiciels de dispositifs médicaux

Les régulateurs en prennent note. En juin 2013, le Food and Drug Administrator (FDA) des États-Unis a émis une alerte de sécurité sur la «cybersécurité pour les dispositifs médicaux et les réseaux hospitaliers». Bien que la plupart de ces directives soient axées sur des problèmes de sécurité spécifiques (comme la protection des noms d'utilisateur et des mots de passe), elles incluent les meilleures pratiques pour les développeurs de logiciels intégrés. Par exemple, la FDA s'inquiète des «vulnérabilités de sécurité des logiciels prêts à l'emploi conçus pour empêcher l'accès non autorisé aux appareils ou au réseau, telles que le texte brut ou l'absence d'authentification, les mots de passe codés en dur, les comptes de service documentés dans les manuels de service et codage / injection SQL. »

Au-delà de la cybersécurité: gérer les risques associés aux défauts logiciels

Alors que les failles de sécurité sont une priorité pour de nombreuses entreprises, les défauts logiciels devraient être une préoccupation majeure. Une surcharge de la mémoire tampon, un gestionnaire d'erreurs insuffisamment testé, une fuite de mémoire ou un défaut qui ferait planter une application pour smartphone, par exemple, pourrait causer un dommage réel au patient dans un dispositif médical.

La mise en œuvre d'une politique d'ingénierie logicielle automatisée peut empêcher l'introduction de défauts dans la base de code et réduire les risques commerciaux. Mais de nombreux fabricants de logiciels de dispositifs médicaux semblent ne pas avoir la visibilité du processus qui garantirait le respect de la politique. Selon un juillet 2012 rapport de l'Electronic Engineering Journal, «Dans les dispositifs médicaux contenant des logiciels, il peut être extrêmement difficile d'évaluer si une entreprise suit ses processus de contrôle de conception, en particulier dans les domaines de la validation, de l'analyse des risques / dangers et des modifications de conception.» En conséquence, plusieurs défauts de codage ont été signalés. En outre, «certains défauts étaient des violations fondamentales des pratiques de codage de logiciels, tandis que d'autres étaient de nouveaux défauts introduits lors de la correction de défauts antérieurs.»

Ce qui peut être fait? Les développeurs de dispositifs médicaux doivent suivre les meilleures pratiques pour le développement de logiciels embarqués critiques pour la sécurité, tout en étant conscients que des fonctionnalités de plus en plus sophistiquées (y compris la connectivité externe) s'ajoutent aux menaces et au non-déterminisme de ces dispositifs. Lorsqu'un moniteur cardiaque ou une pompe IV peut être géré et contrôlé à distance, les risques se multiplient bien au-delà de la simple complexité d'un appareil autonome.

Un guide utile est la norme ISO CEI 62304: 2006, «Logiciel de dispositif médical - Processus du cycle de vie du logiciel. » Comme pour toutes les normes ISO, il est très détaillé et couvre la conception, l'architecture, les tests d'intégration des tests unitaires, etc. La meilleure solution: comprenez les risques et suivez les directives pour gérer les risques tout au long du cycle de vie du développement logiciel. Cela peut être une question de vie ou de mort.

À propos, l'analyse statique de Parasoft comprend plusieurs règles intégrées pour le développement de logiciels conformes à la FDA en utilisant C / C ++, les langages .NET et Java.

Par Alan Zeichick

Alan Zeichick est analyste principal chez Camden Associates; auparavant, Alan était rédacteur en chef du SD Times de BZ Media. Suivez-le @zeichick.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.