Aller au contenu principal

Publié le 27 janvier 2025

Un pas vers une science des données à distance sécurisée

Si l’Office fédéral de la statistique (OFS) reconnaît le potentiel des données, il sait aussi que la nécessité de protéger la vie privée des citoyens freine son exploitation. Dans le cadre de sa mission, le Centre de compétences en science des données (DSCC) s’engage en faveur d’une science des données préservant la vie privée. Cet article présente les aspects de la sécurité en lien avec le calcul à distance ainsi que la lacune entre son utilisation courante et les outils généralement utilisés par les spécialistes des données. Le DSCC a mis en ligne un outil qui permet de combler cette lacune.

Auteurs: Damien Aymon, Lancelot Marti

Le cloud computing sécurisé au service de la science des données

L’informatique en nuage (cloud computing) offre un accès à la demande à une infrastructure informatique préconfigurée gérée par un fournisseur de cloud. En recourant à ce modèle de paiement à l’usage (pay-as-you-go), les utilisateurs peuvent traiter et analyser des jeux de données volumineux sans devoir maintenir des systèmes locaux, une solution souvent coûteuse et chronophage.

Si ce système s’avère très efficace, il comporte toutefois un risque majeur: la sécurité des données. Lors de tout recours à un service cloud géré par un fournisseur externe, il importe que seules les personnes autorisées puissent accéder aux données. S’il existe des solutions pour protéger les données pendant le stockage et le transfert, ces dernières restent vulnérables durant le calcul.

L’informatique confidentielle sécurise les données durant leur traitement

L’informatique confidentielle a pour but de protéger les données durant leur traitement. Une enclave sécurisée (aussi appelée environnement d’exécution de confiance, ou trusted execution environment – TEE), par exemple les software guard extensions (SGX) d’Intel, a une fonction d’isolation au niveau du hardware pour les calculs exécutés à l’intérieur de l’enclave. Les SGX garantissent que personne ne peut prendre connaissance des données et des calculs, et encore moins les falsifier, même pas le fournisseur de services cloud qui dispose pourtant d’un accès privilégié à la machine virtuelle ou physique.

Mais le principal avantage de l’enclave – aucun tiers ne peut voir le calcul – est aussi son point faible: comme il est impossible de voir le calcul se faire, un fournisseur de services cloud pourrait exécuter un logiciel malveillant dans l’enclave dans le but d’accéder à des données privées sans que personne ne s’en rende compte. Grâce à une attestation de logiciel, un acteur externe peut vérifier que le logiciel exécuté dans l’enclave est authentique et n’a pas été altéré. Cette attestation prouve que le calcul effectué dans l’enclave est bien celui qui était prévu, même s’il est impossible de l’observer directement. Pour donner une image plus concrète, on peut imaginer que l’enclave correspond à une enveloppe scellée. Le but de l’enveloppe, comme celui de l’enclave, est de garantir la confidentialité du contenu. Quant à l’attestation du logiciel, elle correspond au sceau et témoigne de l’intégrité et de l’authenticité du contenu.

Le défi est d’appliquer de telles enclaves sécurisées dans la pratique

Pour utiliser une enclave, il faut écrire un code spécifique, ce qui exige des compétences dont le spécialiste des données ne dispose pas forcément puisqu’il travaille habituellement avec des langages de programmation de haut niveau comme Python ou R. Le spécialiste des données voudrait, idéalement, faire fonctionner son code existant dans une enclave en toute transparence et sans trop devoir le modifier. Entre les exigences posées par l’intégration dans une enclave et les compétences conventionnelles d’un spécialiste des données, il y a une lacune qui révèle le besoin d’un instrument à même de faire le lien entre ces deux univers. Le but premier du projet est de contribuer à combler cette lacune.

Gramine, une solution pour exécuter un logiciel dans une enclave sans le modifier

Projet à code source ouvert, Gramine a été conçu pour faciliter l’exécution d’applications non modifiées dans une enclave Intel SGX. Avec Gramine, un développeur peut exécuter son code sans devoir le modifier radicalement: cette solution comble donc la lacune entre les environnements de développement traditionnels et la technologie des enclaves sécurisées. Actuellement, Gramine ne prend en charge que les enclaves Intel SGX propriétaires. Mais la plupart des grands fournisseurs de services cloud mettent à disposition le hardware Intel, réduisant ainsi le risque d’enfermement propriétaire. Ce qui n’est pas le cas des solutions spécifiques aux fournisseurs de cloud, par exemple AWS Nitro Enclaves. Gramine prévoit en outre d’étendre sa compatibilité avec d’autres implémentations d’enclaves, par exemple ADM SEV-SNP.

Gramine propose également un mécanisme d’attestation des logiciels, appelé RATLS, destiné aux développeurs spécialisés. Il n’est toutefois pas directement utilisable par les personnes travaillant avec des langages de programmation de science des données tels que Python ou R. C’est là que réside tout le défi: Gramine est certes un logiciel puissant, mais exploiter son plein potentiel exige des compétences en codage que le spécialiste des données ne possède généralement pas.

Le paquet Python Gramine RATLS simplifie l’attestation des logiciels

Le Gramine RATLS Python Package fait office d’interface avec les mécanismes d’attestation des logiciels Gramine. Il facilite la mise en œuvre de l’attestation logicielle dans les applications Python sans que l’utilisateur ne doive se plonger dans toute la complexité des bibliothèques de niveau inférieur de Gramine.

Le paquet s’inspire du code existant développé par Gramine. Reconditionné dans un format pratique et installable, il permet aux spécialistes des données d’intégrer facilement l’attestation des logiciels dans les flux de travail protégés par un TEE. Il est de plus fourni avec un tutoriel complet sur la manière d’exécuter une application de science des données dans un TEE, attestation de logiciel comprise.

Conclusion

Les spécialistes des données souhaitant exécuter leurs algorithmes en toute sécurité dans le cloud peuvent compter sur le paquet Gramine RATLS et son tutoriel pour se faciliter le travail. Gramine leur permet d’exécuter leur flux de travail existant dans une enclave sécurisée, sans devoir y apporter de modification majeure ni acquérir de nouvelles compétences en programmation. Cette solution ouvre la voie à une plus large utilisation du traitement sécurisé des données dans le cloud tout en garantissant la sécurité des données à chaque étape.

Cet article de blog a été traduit de l'anglais.

Office fédéral de la statistique

Centre de compétences en science des données DSCC
Espace de l'Europe 10
2010 Neuchâtel