Healthcare’s anatomy:
HL7, un protocole sensible méconnu
Introduction
Le domaine de la santé est un des secteurs où l’humain et la machine se côtoient le plus. De nombreux appareils d’assistance, d’imagerie ou de suivi des patients sont utilisés en permanence pour faciliter les tâches du personnel soignant. Cette dépendance technologique nécessaire conduit l’évolution des systèmes d’information. Bien qu’il soit tentant de comparer les systèmes d’information industriels à ceux des établissements de santé, des différences fondamentales existent.
Cette différenciation réside principalement dans l’architecture informatique des établissements. Dans l’industrie, les systèmes industriels et les protocoles spécifiques à ces derniers sont séparés du reste de l’informatique de l’entreprise. De facto, les attaques industrielles sont plus complexes et nécessitent une double compétence de la part des attaquants. Après avoir compromis l’informatique de gestion, ils doivent maintenir leurs accès et se frayer un chemin dans le système industriel tout en réalisant leurs actions malveillantes.
Malheureusement, la ségrégation du réseau n’est pas aussi facile dans le monde médical. En effet, les appareils médicaux et l’informatique de gestion sont étroitement liés, et leur interdépendance conduit les protocoles métiers et génériques à circuler dans les mêmes canaux.
Cette série d’article s’attachera à décrire deux protocoles essentiels du secteur de la santé. Le premier, HL7, est utilisé pour la transmission des données des patients. Le deuxième, DICOM, est à la fois un protocole de transport et un type de fichier utilisé dans l’imagerie médicale. Le dernier article de cette série expliquera les attaques possibles sur le protocole DICOM.
En préambule de cet article, il est important de faire un point sur les attaques relatives à ce protocole. En effet, contrairement à DICOM, aucune attaque utilisant ou abusant de ce protocole n’a été médiatisée. Cependant de nombreuses conférences font état de faiblesses et de moyens d’attaques contre le HL7. Comme démontré dans l’article sur les menaces relatives au secteur de la santé, la revente des données personnelles est très lucrative. Il ne serait pas surprenant que, dans les années à venir, ces protocoles au cœur du SIM (Système d’Information Médicale) et au croisement de l’IT et de l’OT, soient ciblés par des acteurs malveillants.
Le fonctionnement d’HL7
Le HL7, ou Health Level 7, est un protocole applicatif regroupant plusieurs standards permettant le transfert normé des données médicales. Pour le reste de la pile protocolaire, les couches de transport et de réseau, le modèle TCP/IP est utilisé. Bien que le chiffrement des données soit possible, il n’est que très rarement activé par défaut sur les appareils communicant en DICOM.
Il existe différentes versions et normes relatives aux protocoles HL7. Dans un premier temps, voici les différentes versions
- HL7 2.x : c’est la version la plus ancienne et la plus largement adoptée. Elle permet le transfert des événements relatifs aux admissions, transferts, sorties, résultats de tests de laboratoire, prescriptions et autres. Conçue pour être flexible et facile à implémenter, cette version utilise un format de messages basé sur des segments délimités par des caractères spécifiques (comme le caractère pipe « | »).
- HL7 3 : cette version, créée en 2010, fournit une approche plus formelle et structurée du protocole. Elle repose sur un modèle de référence d’information (RIM – Reference Information Model) et utilise le XML (Extensible Markup Language) pour structurer les messages, ce qui facilite l’interopérabilité au niveau sémantique. Cette utilisation du RIM et du XML est la différence majeure entre la version 2 et la version 3.
Dans un second temps, il est important de présenter les différentes normes inhérentes au HL7 :
- HL7 CDA (Clinical Document Architecture) : désigne une norme du protocole propre aux échanges des rapports médicaux, résumés de dossiers, et autres documents de santé. Elle permet d’intégrer à la fois des informations structurées (faciles à extraire et analyser) et non structurées (texte libre), en utilisant le XML pour la structuration des documents. Chaque document CDA contient des métadonnées pour faciliter son interprétation.
- HL7 FHIR (Fast Healthcare Interoperability Resources) : désigne une norme destinée à faciliter le développement d’outils médicaux se basant sur HL7. FHIR utilise des ressources modulaires (similaires à des objets RESTful) qui représentent des concepts spécifiques dans les soins de santé, comme les patients, les observations, les rendez-vous, etc. Ces ressources peuvent être facilement combinées et étendues pour répondre aux besoins spécifiques des applications.
La description des différentes versions du protocole et des normes traduit la volonté de structurer et d’unifier les communications des données de santé entre les entités.
Description des messages HL7
Pour aller plus loin dans cette uniformisation, un nombre limité de types de messages est utilisable en HL7. Avant de rentrer dans le détail de chaque message, voici un schéma résumant les capacités du HL7 extrait du site suivant :
Comme présenté sur le schéma, HL7 permet de regrouper toutes les données relatives à un patient, à ses examens et ses prescriptions. Dès lors, voici le détail des messages permettant de réaliser ces actions :
- ADT (Admit, Discharge, Transfer) : ces messages sont utilisés pour signaler les mouvements des patients dans les établissements de santé, y compris les admissions, les transferts entre services et les sorties.
- ORM (Order Message) : ce message est utilisé pour transmettre des demandes d’ordonnances médicales telles que des prescriptions de médicaments, des tests de laboratoire, des examens d’imagerie, etc.
- ORU (Observation Result) : ce message est utilisé pour transmettre les résultats d’observations cliniques telles que les résultats de tests de laboratoire, les rapports d’imagerie médicale, les mesures de signes vitaux, etc.
- SIU (Scheduling Information Unsolicited) : utilisé pour transmettre des informations de planification, telles que la création, la modification ou l’annulation de rendez-vous médicaux.
- MDM (Medical Document Management) : ces messages sont utilisés pour gérer les documents cliniques, tels que la création, la mise à jour ou la suppression de documents médicaux.
- ADT Acknowledgment (ACK) : ces messages sont des accusés de réception envoyés en réponse aux messages ADT pour confirmer la réception ou signaler des erreurs éventuelles.
- ACK (General Acknowledgment) : ces messages sont utilisés pour confirmer la réception des autres types de messages HL7.
- MFN (Master File Notification) : utilisé pour transmettre des mises à jour sur les fichiers de référence tels que les listes de patients, les listes de praticiens, etc.
Exemple de message HL7
Le message
Voici l’exemple d’un message de type ORU en HL7v3. Ce message est envoyé à la suite du passage d’examens afin d’ajouter des éléments au dossier du patient :
Le détail du message
La première partie du message contient toutes les informations relatives au dossier patient et à la nature des examens qu’il doit passer :
Voici, un peu plus en détails, un exemple des informations personnelles relatives au patient dans ces messages :
La deuxième partie sera relative aux différents examens et résultats obtenus lors de ces derniers :
Tous ces messages contiennent des données sensibles relatives à des patients, ce qui les rend vulnérables à des exploitations malveillantes. De plus, la plupart des appareils interagissant en HL7 ne chiffrent pas leurs communications. Pour bien appréhender ces risques, il est nécessaire de comprendre le contexte d’utilisation de ce protocole.
En effet, son omniprésence dans les systèmes de santé pose un problème en termes de confidentialité des données. Les données transitant en clair sont notamment susceptibles d’être interceptées et peuvent être modifiées facilement. L’interception permettrait à un acteur malveillant de revendre les données comme décrit dans l’article précédent relatif aux menaces sur le secteur de la santé.
Le plus grave serait la modification du dossier médical d’un patient. En effet, une simple modification du dossier peut mener à une erreur de diagnostic ou, dans le pire des cas, à un décès. Ce dernier cas est envisageable si un tiers criminel modifie la mauvaise section d’un dossier.
Ce dernier point est extrêmement important. Il marque une différence significative entre une attaque sur un protocole dit « IT » et un protocole métier « OT » comme le HL7. Il est impératif de prendre en compte la sécurisation de ces flux car la corruption de données peut avoir des impacts sur la vie de patients.
Enfin, il est important de comprendre pourquoi ce protocole est toujours en place dans les établissements de santé. HL7 est un standard créé dans les années 80 et largement répandu. A titre d’exemple, malgré la création du FHIR, une évolution apparue il y a une dizaine d’années, de nombreux systèmes d’information et appareils médicaux fonctionnent encore avec HL7. Mettre à jour ces systèmes nécessiterait des changements de logiciels et de matériels trop importants pour certains établissements de santé.
Conclusion
Dans le domaine de la cybersécurité, la protection des données médicales est primordiale, notamment lorsqu’il s’agit de protocoles faisant transiter des informations sensibles telles que HL7. Cependant, HL7 n’est pas le seul protocole critique spécifique au domaine de la santé. Le protocole DICOM, utilisé pour l’échange et le stockage d’images médicales, fait également partie de ce cercle restreint de supports d’échange d’’informations cruciales dans le cadre des établissements de santé. Le prochain article de cette série sera donc dédié à l’exploration du protocole DICOM et aux défis de sécurité qui lui sont associés.
Auteurs : Purple Team Gatewatcher et 0xSeeker
Sources :
[1] https://www.youtube.com/watch?v=YFbAuhnUEQQ