Les Clouds du type IaaS reposent généralement sur des systèmes d'exploitation virtualisés qui correspondent à des invités sur une machine physique ou hôte. Les invités sont utilisés par les clients du Cloud. Nous proposons des mécanismes de sécurisation de ces systèmes virtualisés en contrôlant à la fois les flux entre les invités et l'hôte et à l'intérieur des invités.
L'approche a été développée dans le cadre du master de recherche d'Emilie Lefebvre. Nous avons ainsi développé la solution PIGA-Virt qui réutilise la protection basée sur SELinux. Nous l'étendons par un contrôle plus efficace des flux entre les images virtuelles.
Le principe est celui d'un moniteur de références partagé par l'ensemble des systèmes virtualisés. Ce moniteur récupère toutes les demandes d'accès des machines invitées et vérifie que celles-ci ne violent les propriétés PIGA requises. L'avantage est que nous contrôlons ainsi aussi bien les flux à l'intérieur et entre les différents invités. PIGA-Virt est indépendant de l'hyperviseur sous-jacent. Ainsi, la solution fonctionne indifféremment avec KVM/QEMU, VMWare, XEN ou VirtualBox par exemple. Cependant, des optimisations sont proposées en utilisant les hypercalls des hyperviseurs et dans ce cas les échanges entre les invités et le moniteur de référence PIGA n'empruntent pas les appels système des invités.
Ces solutions ne traitent cependant pas du problème d'efficacité de SELinux et PIGA. Les problèmes inhérents à ces approches statiques restent ouverts. Ils empêchent l'utilisation pratique.
Une publication présente PIGA-Virt :
Jérémy Briffaut, Jonathan Rouzaud-Cornabas, Christian Toinard & Emilie Lefebvre, PIGA-Virt: an Advanced Distributed MAC Protection of Virtual Systems, in Euro-Par 2011 Parallel Processing Workshops, Lecture Notes in Computer Science. Bordeaux, France. Pp. 8-19. 08. 2011.
Sécurité en profondeur des Clouds (IaaS, PaaS et SaaS)
Nous avons développé l'approche PIGA-Cloud qui offre une protection en profondeur de tout type de Cloud. La solution réutilise PIGA-Virt et la complète avec différents mécanismes.
Tout d'abord, PIGA-Cloud offre un service de désignation des machines virtuelles qui autorise leurs migrations et garantit que les protections migrent de façon cohérente avec les invités. Ainsi, on peut garantir les propriétés de façon globale quelque soit la dynamique du système. Une intégration est proposée pour OpenNebula.
Ensuite, nous complétons les protections en contrôlant les flux à l'intérieur d'invités hétérogènes. Nous sommes ainsi capables de protéger des invités Linux ou Windows notamment.
Enfin, nous contrôlons les flux à l'intérieur des applications. Par exemple, pour les applications Java nous appliquons SEJava couplé au moniteur partagé PIGA pour garantir la sécurité des différentes parties (multitenants) s'exécutant au sein d'une même JVM.
Là aussi les problèmes difficiles sont non résolus et l'utilisation pratique très difficile.
Différentes publication présentent les résultats notamment :
Z. Afoulki, A. Bousquet, J. Briffaut, J. Rouzaud-Cornabas & C. Toinard, MAC protection of the OpenNebula Cloud environment, in High Performance Computing and Simulation (HPCS), 2012 International Conference on. Madrid, Spain. Pp. 85 -90. 2012.
Z. Afoulki, A. Bousquet, J. Briffaut, J. Rouzaud-Cornabas & C. Toinard, PIGA-Cloud : une protection obligatoire des environnements d'informatique en nuage, in NOTERE CFIP 2012. Bayonne, France, France. 2012.
Mission de sécurité pour les Clouds
Via les thèses d'Aline Bousquet et d'Arnaud Lefray en lien avec l'équipe INRIA Avalon, nous proposons, dans le cadre du projet européen Seed4C, une approche qui repose sur les constats précédants. L'idée est d'éviter les écueils des solutions statiques du type SELinux/PIGA et du problème de calcul de ces politiques. Pour cela, avec Arnaud Lefray, Eddy Caron et Jonathan Rouzaud-Cornabas nous avons proposé un moyen de spécifier les flux nécessaires dans l'infrastructure de Cloud. Ces flux sont définis de façon statique. Ensuite, l'idée est éventuellement de résoudre les problèmes de dynamicité par des méthodes de placement. Ainsi, l'INRIA a développé un ordonnanceur qui permet de placer les machines virtuelles sur des noeuds afin de satisfaire les objectifs statiques. C'est déjà une première avancée.
Ainsi, la méthode repose sur une approche de modélisation des besoins de sécurité via un nouveau langage qui facilite la formalisation des propriétés requises. Ce langage est agnostique vis à vis des mécanismes de sécurité utilisés. Par contre, il est distibué sur les différents noeuds par un mécanisme de placement qui tient compte de la cartographie du Cloud et qui optimise les propriétés demandées. De plus, la sécurité est supportée sur un ensemble de noeuds hétérogènes. Chaque noeud récupère les résultats de la distribution et réalise de façon autonome la configuration de tous les mécanismes de sécurité disponibles.
Sur le plan de l'autonomie, la solution traite essentiellement l'hétérogénéité des systèmes et des mécanismes de protection et améliore la confiance via des mécanismes matériels. Elle peut réutiliser aussi bien des méthodes de protection que cryptographiques ainsi que des mécanismes réseau. Il s'agit d'un point de vue conceptuel essentiellement de l'idée MIDS publiée en 2005. Cela ne résout pas le problème du calcul des politiques, celles-ci doivent être disponibles et sont mise en place à la volée. L'approche ne résout donc pas le calcul des politiques requises.
Le principe de la solution a été établi. Des expérimentations ont été réalisée par l'INRIA sur GRID 5000.
La limitation essentielle concerne le calcul dynamique des politiques et le manque de gestion des états. Le principal aspect dynamique est produit par l'ordonnanceur de l'INRIA. Cependant, les politiques sur les noeuds ne peuvent pas être optimisées et ne sont pas adaptées à la dynamique des applications qui s'exécutent.
En pratique si l'ordonnanceur me semble pouvoir résoudre certains problèmes, les faiblesses sont trop importantes pour que l'approche Seed4C soit réellement utilisable.
Ce travail m'a permis de proposer à Lille dans l'atelier SEC2 en 2015 des améliorations de ces méthodes qui pourraient permettre d'évoluer vers des solutions plus réalistes. En effet, j'ai montré que les approches dynamiques définies dans la thèse de Benjamin Venelle sont suffisamment génériques pour s'adapter au Cloud. Elle permettrait de simplifier la modélisation et de remplacer complètement la méthode présente sur les noeuds.
Différentes publications sont disponibles ou en cours pour présenter les résultats notamment :
Stéphane Betge-Brezetz, Aline Bousquet, Jérémy Briffaut, Eddy Caron, Laurent Clévy, Marie-Pascale Dupont, Guy-Bertrand Kamga, Jean-Marc Lambert, Arnaud Lefray, Bertrand Marquet, Jonathan Rouzaud-Cornabas, Lamiel Toch, Christian Toinard & Benjamin Venelle, Seeding the Cloud: An Innovative Approach to Grow Trust in Cloud Based Infrastructures, in The Future Internet - Future Internet Assembly 2013: Validated Results and New Horizons, Vol. 7858, Lecture Notes in Computer Science. 05. 2013.
Arnaud Lefray, Eddy Caron, Jonathan Rouzaud-Cornabas, Zhang Huaxi Yulin, Aline Bousquet, Jérémy Briffaut & Christian Toinard, Security-Aware Models for Clouds, ACM Symposium on High-Performance Parallel and Distributed Computing. 06. 2013.
Eddy Caron, Le Anh Dung, Arnaud Lefray, Christian Toinard. Definition of security metrics for the Cloud Computing and security-aware virtual machine placement algorithms. International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC 2013), Oct 2013, Beijing, China. IEEE Computer Society, pp.125-131, 2013.
Christian Toinard, Towards an autonomous and distributed security management of federated Clouds, Invited conference. SEC2 workshop. 30 Juin 2015. Lille.
PDF file
Aline Bousquet, Jérémy Briffaut, Eddy Caron, Eva María Dominguez, Javier Franco, Arnaud Lefray, Oscar López, Saioa Ros, Jonathan Rouzaud-Cornabas, Christian Toinard, Mikel Uriarte, Enforcing Security and Assurance Properties in Cloud Environment, Utility and Cloud Computing (UCC), 2015 IEEE/ACM 8th International Conference on Utility and Cloud Computing. 7-10 december 2015.
Arnaud Lefray, Eddy Caron, Jonathan Rouzaud-Cornabas, Christian Toinard. Microarchitecture-Aware Virtual Machine Placement under Information Leakage Constraints. IEEE. 8th IEEE International Conference on Cloud Computing (IEEE Cloud 2015), Jun 2015, New-York, United States. pp.588 - 595 2015, Cloud Computing (CLOUD), 2015