Parmi les causes de violations de données et d’incidents de sécurité on trouve le partage accidentel ou la mauvaise manipulation d’informations sensibles par un employé ou un sous-traitant, ou le vol délibéré de données par un initié malveillant à des fins personnelles. Malheureusement beaucoup de méthodes et d’approches habituelles ne sont pas conçues pour se protéger de telles violations par des utilisateurs a priori de confiance et les techniques les plus efficaces sont encore réservées à des secteurs très spécifiques.
Le problème n’est pourtant pas nouveau. Il est en fait bien connu dans certains domaines critiques comme la sécurité d’un pays. Dès les années 1970, le modèle de Bell-LaPadula1 inspirait la compartimentalisation des systèmes informatiques en domaines de sécurité isolés. Par exemple une organisation peut mettre en œuvre des systèmes séparés physiquement : l’un, connecté à Internet, pour les informations sans niveau de confidentialité particulier et un pour chacun des niveaux de confidentialité de l’organisation comme par exemple « restreint, » « confidentiel, » ou « secret. » À cela sont souvent ajoutés des mécanismes classiques comme l’utilisation de systèmes de fichiers chiffrés, le blocage – voire le retrait – de ports USB, la restriction des fonctionnalités de copier/coller dans les logiciels, mais aussi l’inspection de toutes les données circulant sur le réseau informatique afin de détecter la présence éventuelle de données sensibles ou confidentielles.
Afin de transférer des informations d’un niveau à un autre cette organisation peut avoir recours à des passerelles informatiques spécialisées dans la protection des données. Celles-ci supposent que chaque donnée, ainsi que l’utilisateur ou le service du domaine envoyant ces données, sont d’abord liés à une étiquette de confidentialité permettant de décider si les données peuvent être transmises ou pas. En d’autres termes, la protection de l’information se fait au niveau des objets de données eux-mêmes plutôt qu’au niveau des domaines créés avec des réseaux informatiques séparés (parfois imperméables et conduisant à des processus de chaises tournantes).
Étiquettes de confidentialité
Les étiquettes de confidentialité sont des moyens d’associer différents attributs2 de sécurité à un objet particulier. Ces étiquettes de confidentialité peuvent contenir n’importe quelles informations utiles pour prendre des décisions de sécurité et sont a priori considérées comme correctes lorsqu’une décision de sécurité se base dessus. Il existe deux manières principales d’assigner une étiquette de confidentialité à un objet de données :
- Baser les propriétés de sécurité sur l’origine de l’information présente dans l’objet de données. C’est la méthode la plus simple, pour autant que l’origine de l’information puisse être tracée.
- Évaluer le contenu même de l’objet de données afin de déterminer les attributs de sécurité. Nous verrons dans un prochain article comment cette assignation peut être faite de manière plus ou moins automatique.
L’utilisation d’étiquettes de confidentialité présente différentes limites. Lors de l’interconnexion de deux systèmes de niveaux de sécurité différents, il faut tenir compte du risque de mauvais étiquetage des objets (p. ex., erreur de l’utilisateur, détournement ou compromission du système, etc.). De plus :
- Une étiquette de confidentialité reflète les exigences de protection et les conditions de libération d’un objet au moment de la création de cette étiquette. La mise à jour de cette dernière requiert des opérations manuelles qui doivent suivre des processus de gestion stricts.
- L’étiquetage ne voyage pas toujours correctement avec les objets, même au sein de la même organisation.
- En raison d’interprétations subjectives de la politique de sécurité, les auteurs des objets peuvent apposer des étiquettes de confidentialité différentes pour des objets au contenu similaire. Cela peut conduire à des situations où des données très similaires peuvent avoir des niveaux de protection différents.
L’étiquetage de l’information introduit donc au moins deux défis importants. Le premier concerne l’existence d’une syntaxe et d’une interprétation commune des étiquettes – c’est à dire entre les systèmes souhaitant échanger des informations. L’autre est la définition d’un mécanisme permettant de lier ces étiquettes aux objets tout en assurant l’intégrité de ce lien.
Mécanisme standardisé
En 2010, le groupe de recherche sur les solutions de sécurité inter-domaines de l’Organisation pour la science et la technologie de l’OTAN a publié une proposition de spécification XML pour l’étiquetage et la liaison des métadonnées. Ce travail a ensuite été développé dans deux accords de normalisation (« standardisation agreement » ou « STANAG »).
Le premier accord de normalisation, le « STANAG 4774 – Confidentiality Metadata Label Syntax » [1] est un schéma XML qui peut être utilisé pour représenter une étiquette de confidentialité ainsi que pour décrire les habilitations des entités. Il fournit des formats et une syntaxe commune basée sur le langage XML pour les politiques de sécurité et les métadonnées de confidentialité. Il peut s’appliquer entre des entités gouvernées par des politiques différentes, identiques, ou sans politique de sécurité. Afin d’assurer l’interopérabilité entre différents systèmes, des profils existent pour différents types d’objets : SOAP, REST, Office Open XML, etc.
Dans le cadre de cet accord de normalisation, la syntaxe des étiquettes de confidentialité a été conçue pour être utilisée afin de définir un ou plusieurs éléments de métadonnées, ces éléments de métadonnées étant à leur tour liés à des objets de données. Les étiquettes de confidentialité peuvent spécifier trois types de métadonnées :
- étiquette de confidentialité attribuée à l’information par l’auteur.
- étiquette de confidentialité dans une politique différente qui est équivalente à l’étiquette de confidentialité de l’auteur.
- étiquette de confidentialité associée aux métadonnées descriptives de l’objet protégé.
Le deuxième accord de normalisation, le « STANAG 4778 – Metadata Binding Mechanism » [2] est un schéma XML qui peut être utilisé pour lier des métadonnées arbitraires (y compris des métadonnées qui utilisent la syntaxe de l’étiquette de confidentialité) à des objets de données, au cours de la vie de ceux-ci et à travers différentes organisations. Le lien entre les métadonnées et l’objet permet par exemple de prouver l’origine des informations, de vérifier leur intégrité et authenticité, d’assurer la confidentialité et la protection de l’information, de mettre en place une chaîne de contrôle, et de faciliter le partage de l’information. Cette façon de lier données et métadonnées de sécurité n’est pas sans rappeler les méthodes de gestion numérique des restrictions utilisées pour protéger notamment les œuvres numérisées bénéficiant d’un droit d’auteur.
La norme STANAG 4778 autorise différentes approches :
- Liaison détachée : les métadonnées sont stockées dans une structure distincte de l’objet de données, et les deux sont liés par référence.
- Intégration : la liaison est intégrée dans l’objet de données et la liaison contient une référence à l’objet de données.
- Encapsulation : l’objet de données et les métadonnées sont encapsulés dans la liaison et représentés par un nouvel objet de données composite.
Puisqu’un objet de données peut être composite (p. ex., un document avec plusieurs chapitres et paragraphes), et que chaque sous-élément peut avoir ses propres métadonnées, la norme STANAG 4778 donne les règles à respecter afin de bien interpréter les métadonnées d’un objet composite.
Enfin la norme définit la syntaxe et la sémantique du mécanisme de liaison entre métadonnées et objets de données. Des profils de liaison décrivent comment appliquer le mécanisme de liaison des métadonnées à des formats de données et à des protocoles spécifiques (p. ex., documents Microsoft Word, images JPEG), mais la norme ne permet pas de traiter les flux de données comme les vidéos et les transmissions sonores.
Notons enfin que la liaison définie par la norme n’est pas forte et il faut ajouter une signature numérique couvrant l’objets de données et les métadonnées, par exemple en utilisant la recommandation du W3C « XML Signature Syntax and Processing. »
Conclusions
L’application d’étiquettes de confidentialité comme, par exemple, celles définies dans les normes STANAG 4474 et 4778 est un élément important de la mise en œuvre d’une stratégie de sécurité centrée sur les données. L’utilisation de ces étiquettes dans un système de contrôle d’accès basé sur les attributs (par ex. utilisant des politiques XACML) offre un contrôle d’accès dynamique et contextuel, permettant aux organisations d’atteindre avec une grande flexibilité, une conformité réglementaire efficace.
Il existe de nombreuses considérations liées à la mise en œuvre de tels systèmes et notamment l’évaluation de la sensibilité des informations dont dépend l’étiquetage. Cela sera l’objet d’un prochain article.
Références
[1] Confidentiality metadata label syntax, NATO standard ADat-4774, Edition A Version 1, NATO Standardisation Office (NSO), 20 décembre 2017.
[2] Metadata binding mechanism, NATO standard ADatP-4778, Edition A Version 1, NATO Standardisation Office (NSO), 26 octobre 2018.
Notes
1 Un modèle développé dans les années 1970 afin de formaliser la politique de sécurité multi-niveau du département de la défense des États-Unis. Le modèle est caractérisé par l’aphorisme « écrire vers le haut, lire vers le bas » (l’inverse étant interdit).
2 Les attributs sont des paires de type (nom, valeur) qui peuvent être associées à n’importe quelle entité : objet de données, utilisateur, environnement, etc.
Ce post est une contribution individuelle de Fabien A. P. Petitcolas, spécialisé en sécurité informatique chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.
Leave a Reply