Mickaël Salaün Intégration De L'utilisateur Au Contrôle D'accès
Total Page:16
File Type:pdf, Size:1020Kb
THÈSE DE DOCTORAT DE TÉLÉCOM SUDPARIS Spécialité Informatique École doctorale Informatique, Télécommunications et Électronique (Paris) Présentée par Mickaël Salaün Pour obtenir le grade de DOCTEUR de TÉLÉCOM SUDPARIS Sujet de la thèse : Intégration de l’utilisateur au contrôle d’accès : du processus cloisonné à l’interface homme-machine de confiance Soutenue le 2 mars 2018 devant le jury composé de : Président : Gaël Thomas Télécom SudParis Rapporteurs : Michaël Hauspie Université Lille 1, Sciences et Technologies Valérie Viet Triem Tong CentraleSupélec Examinateur : Roland Groz Grenoble INP, Ensimag Directeur de thèse : Hervé Debar Télécom SudParis Co-encadrante : Marion Daubignard ANSSI Invités : Mathieu Blanc CEA Benjamin Morin ANSSI NNT : 2018TELE0006 c 2018 Mickaël Salaün Ce document est placé sous la « Licence Ouverte » publiée par la mission Etalab. Mise à jour du 6 avril 2018 Résumé Cette thèse souhaite fournir des outils pour qu’un utilisateur puisse contribuer activement à la sécurité de son usage d’un système informatique. Les activités de sensibilités différentes d’un utilisateur nécessitent tout d’abord d’être cloisonnées dans des domaines dédiés, par un contrôle d’accès s’ajustant aux besoins de l’utilisateur. Afin de conserver ce cloisonnement, celui-ci doit être en mesure d’identifier de manière fiable les domaines avec lesquels il interagit, à partir de l’interface de sa machine. Dans une première partie, nous proposons un nouveau mécanisme de cloisonnement qui peut s’adapter de manière transparente aux changements d’activité de l’utilisateur, sans altérer le fonctionnement des contrôles d’accès existants, ni dégrader la sécurité du système. Nous en décrivons une première implémentation, nommée StemJail, basée sur les espaces de noms de Linux. Nous améliorons ce cloisonnement en proposant un nouveau module de sécurité Linux, baptisé Landlock, utilisable sans nécessiter de privilèges. Dans un second temps, nous identifions et modélisons les propriétés de sécurité d’une interface homme-machine (IHM) nécessaires à la compréhension fiable et sûre du système par l’utilisateur. En particulier, il s’agit d’établir un lien entre les entités avec lesquelles l’utilisateur pense communiquer, et celles avec lesquelles il communique vraiment. Cette modélisation permet d’évaluer l’impact de la compromission de certains composants d’IHM et d’aider à l’évaluation d’une architecture donnée. Mots-clefs : sécurité, système d’exploitation, contrôle d’accès, activité utilisateur, cloison- nement, interface homme-machine (IHM), serveur d’affichage, chemin de confiance Involving the end user in access control: from confined processes to trusted human-computer interface Abstract This thesis aims to provide end users with tools enhancing the security of the system they use. First, user activities of different sensitivities require to be confined in dedicated domains by an access control fitting the user’s needs. Next, in order to maintain this confinement, users must be able to reliably identify the domains they interact with, from their machine’s interface. In the first part, we present a new confinement mechanism that seamlessly adapts to user activity changes, without altering the behavior of existing access controls nor degrading the security of the system. We also describe a first implementation named StemJail, based on Linux namespaces. We improve this confinement tool by creating a new Linux security module named Landlock which can be used without requiring privileges. In a second step, we identify and model the security properties a human-computer interface (HCI) requires for the reliable and secure understanding of the system by the user. Precisely, the goal is to establish a link between the entities with which the users think they communicate, and those with which they actually communicate. This model enables to evaluate the impact of HCI components jeopardization and helps assessing a given architecture. Keywords: security, operating system, access control, user activity, confinement, sandbox- ing, human-computer interface (HCI), display server, trusted path i ii Table des matières Introduction 1 Protection des données utilisateur par le système . .1 Interaction de confiance entre l’utilisateur et le système . .2 Contributions et contenu de la thèse . .3 I Protection des données utilisateur par le système 7 1 État de l’art du contrôle d’accès 9 1.1 Modèles communs de contrôle d’accès . 10 1.2 Contrôle d’accès fournis par l’OS . 11 1.3 Comparaison des mises en œuvre de contrôles d’accès . 13 2 Contrôle d’accès adapté aux activités utilisateur 17 2.1 Scénario d’exemple . 18 2.2 Définitions formelles . 19 2.3 Politique de sécurité pour l’utilisateur . 20 2.4 Découverte automatisée de rôles . 22 2.5 Formalisation et garanties du modèle . 25 2.6 Limitations du modèle de contrôle d’accès . 28 2.7 Conclusion . 29 3 StemJail : contrôle d’accès dynamique pour Linux 31 3.1 Besoins fonctionnels et de sécurité . 32 3.2 Implémentation de StemJail ........................... 33 3.3 Évaluation . 41 3.4 Conclusion . 48 4 Landlock : cloisonnement programmable non privilégié 49 4.1 Objectif . 50 4.2 Propriétés du contrôle d’accès Landlock .................... 51 4.3 Implémentation et application des règles . 53 4.4 Évaluation . 64 4.5 Conclusion . 70 II Interaction de confiance entre l’utilisateur et le système 71 5 État de l’art de la sécurité des interfaces homme-machine 73 5.1 Vue d’ensemble des composants d’une IHM . 74 5.2 Critères de sécurité de l’IHM . 75 iii iv TABLE DES MATIÈRES 5.3 Techniques de défense pour l’IHM . 77 5.4 Aperçu de différents systèmes d’IHM . 80 5.5 Conclusion . 86 6 Sécurité de l’interface utilisateur 89 6.1 Modélisation des entités d’une IHM visuelle . 90 6.2 Propriétés de sécurité d’une IHM . 95 6.3 Mise en place d’une IHM de confiance . 102 6.4 Mise en pratique . 106 6.5 Conclusion . 110 Conclusion 111 Problématique et solutions apportées . 111 Discussion et travaux futurs . 112 Bibliographie 115 Table des figures 2.1 Exemple de spécialisation de domaine par transition . 23 2.2 Treillis de transitions de domaine . 24 3.1 Aperçu d’une instanciation de StemJail .................... 33 3.2 Détails d’une instanciation de StemJail .................... 39 3.3 Exemple de fichier de configuration pour le profil GoodGuy ......... 41 4.1 Vue macroscopique du contrôle d’accès d’une ouverture de fichier . 51 4.2 Évolution de l’application de programmes Landlock sur une hiérarchie de processus . 54 4.3 Exemple de définition de métadonnées d’un programme Landlock ..... 58 4.4 Étapes de sandboxing d’un processus . 59 4.5 Exemple de séquence de programmes fs_walk et fs_pick_write ....... 60 4.6 Programme Landlock pour le parcours de dossiers . 61 4.7 Exemple de parcours d’un chemin avec un retour arrière . 62 4.8 Programme Landlock pour valider l’écriture dans un fichier . 62 5.1 Liens entre le matériel et les applications utilisateur . 75 6.1 Exemple simple de hiérarchie d’agents utilisateur avec un navigateur . 93 6.2 Exemple complexe de hiérarchie d’agents utilisateur avec deux clients VNC et un navigateur . 93 6.3 Graphe d’agents et de domaines pour Clip OS du point de vue du système 98 6.4 Graphe d’agents et de domaines pour Clip OS du point de vue de l’utilisateur 99 6.5 Captures d’écran de Clip OS lors de l’utilisation du domaine Bas ou Haut 106 6.6 Captures d’écran de Clip OS lors de la configuration du domaine Socle .. 107 6.7 Capture d’écran lors de l’utilisation de plusieurs domaines avec Qubes OS . 109 v vi TABLE DES FIGURES Remerciements Tout d’abord, je remercie Hervé Debar, Benjamin Morin et Marion Daubignard pour leur encadrement. Ensuite, je souhaite remercier Michaël Hauspie et Valérie Viet Triem Tong qui m’ont fait l’honneur de rapporter cette thèse, ainsi que l’ensemble des membres du jury. Je tiens notamment à remercier Loïc et Yves-Alexis pour m’avoir permis de travailler sur cette thèse au sein du Laboratoire architectures matérielles et logicielles (LAM) de l’Agence nationale de la sécurité des systèmes d’information (ANSSI). Je souhaite également remercier Vincent pour son travail impressionnant qui a insufflé les principes fondateurs de mes travaux. La rédaction d’article demande de nombreuses relectures et les commentaires qui en résultent forgent le document final. Je remercie toutes les personnes qui ont ainsi participé à ce manuscrit, ce qui inclut Alain, Anaël, Anne-Marie, Arnaud E., Arnaud F., François, Fred, Guillaume, Johan, Nico, Philippe, Ryad, Sylvie et Thomas. Merci aux personnes qui ont bien voulu m’accorder de leur temps et me permettre de préparer ma soutenance de thèse, notamment Corentin, Frédéric, Nicolas B., Nicolas G., Rémi, Sébastien, Timothée et Tony. Je remercie également celles et ceux qui me font le plaisir d’assister à ma soutenance et qui m’ont encouragé (et diverti) pendant ces quelques années. Enfin, je tiens à dire un grand merci à Marion, pour son soutien, son enseignement et son aide inestimable durant cette longue période de doctorat. vii viii REMERCIEMENTS Introduction Le contrôle d’accès d’un ordinateur protège des données qui peuvent provenir de dif- férentes sources comme le système de fichiers, le réseau, mais également l’utilisateur de la machine. La catégorisation de ces données par le système est nécessaire à la bonne application d’une politique de sécurité qui est chargée de restreindre leur accès. Que ce soit la rédaction d’un document ou la saisie d’un mot de passe, les entrées utilisateur peuvent correspondre à différents niveaux de sensibilité ainsi qu’à de multiples cercles de diffusion de l’information. Lorsqu’une politique de sécurité prend en compte ces différentes catégories, l’utilisateur est alors responsable de la différenciation des données qu’il fournit au système.