Generation and Dynamic Update of Attack Graphs in Cloud Providers Infrastructures - Grid'5000 Accéder directement au contenu
Thèse Année : 2019

Generation and Dynamic Update of Attack Graphs in Cloud Providers Infrastructures

Génération et mise à jour dynamique de graphes d'attaque dans les infrastructures des prestataires d'informatique en nuage

Résumé

Modern communication systems are critical infrastructures whose growth in size and complexity greatly impacts their security. The sophistication of modern attacks requires analyzing the entire infrastructure to uncover the steps used by an attacker to penetrate the network. These compromises have serious implications in the cloud, which is a valuable target for attackers due to the co-location of assets of several companies. Since security in traditional IT environments relied successfully on attack graphs coupled with a risk management methodology, we aim to apply a similar approach in the cloud. This implies considering new challenges introduced in this infrastructure, since most attack graph methods have been designed for traditional environments. One of these challenges is the existence of new attack scenarios. Indeed, virtualization software vulnerabilities can allow an attacker to bypass hypervisor isolation and infiltrate neighboring virtual machines, or even the host machine, due to relationships existing between virtual and physical machines. On the other hand, the construction of an attack graph adapted to the cloud leads to the design of algorithms considering the cloud dynamic nature and scale. To that end, it is necessary to identify how cloud technologies, i.e., cloud management systems or SDN (Software-Defined Networking), can help in building and updating attack graphs. In order to enable cloud administrators to leverage the benefits of attack graphs for securing their infrastructure, we propose in this thesis a cloud-aware graph model and generation approach. Our first contribution is the retrieval of the topology and connectivity of the Cloud Infrastructure, which is essential in the attack graph generation process. We leverage cloud technologies to get an updated topology and connectivity and handle potential conflicts in the data gathered, while avoiding limitations of physical infrastructure methods. Events generated allow to track changes in the infrastructure and quickly update our attack graph representation considering only the deltas incurred by the reported modifications. Our second contribution is the inclusion of virtualization vulnerabilities in attack graph modelling. We first inspected virtualization vulnerabilities descriptions present in existing vulnerability databases in order to extract the pre-requisites necessary for an attacker to be able to leverage them. In addition, we also identify the exact scope of their impacts once used successfully in an attack. This information is a crucial step to extend vulnerability models proposed in existing approaches to consider the impact of virtualization on the attack scenarios generated. Thirdly, we propose a hybrid attack graph modelling. In order to generate comprehensive attack graphs but simplified enough to handle the scale of the Cloud. To that end, we leverage advances realized in prior attack graph models. The chosen representation retains the ability to use algorithms based on graph theory for risk evaluation, without requesting an intermediate transformation of the attack graph. By continuously listening to changes and modifying the attack graph accordingly we avoid rebuilding it from scratch every time a change occurs. We realize an implementation and perform an evaluation of all these proposals to determine their efficiency in a realistic cloud context, in terms of scale and architecture.
L'avènement du Cloud a profondément transformé la manière dont les utilisateurs et les entreprises appréhendent les services informatiques. Avec la virtualisation comme pilier central, le Cloud permet des gains économiques conséquents en permettant de louer les ressources matérielles sous-utilisées à de multiples clients. Il met à disposition de ces clients des ressources informatiques et des capacités d'automatisation seulement limitées par les capacités des fournisseurs d'environnement Cloud. Ce faisant, il contribue à la destruction des barrières à l'entrée par la dynamisation du tissu économique, en permettant aux petites, moyennes et grandes entreprises de réduire les coûts budgétaires et de se concentrer sur leurs différentiateurs de base, par l'externalisation de la gestion de l’infrastructure. Cependant, les systèmes de communication modernes représentent des infrastructures critiques dont la croissance constante en taille et en complexité menace grandement la sécurité. La prolifération et la sophistication des attaques modernes nécessite d'analyser l'ensemble de l'infrastructure dans le but de découvrir les différentes étapes utilisées par un attaquant afin de pénétrer le réseau. Ces compromissions ont de graves implications dans le contexte du Cloud, qui représente une cible de grande valeur pour les attaquants, car il regroupe les actifs de plusieurs entreprises. L'amélioration de la sécurité dans les environnements informatiques traditionnels a pu reposer avec succès sur l'utilisation des graphes d'attaque couplée à une méthodologie de gestion des risques. Nous envisageons donc d'appliquer une approche similaire dans le contexte du Cloud. Cela implique de prendre en compte les nouveaux défis rencontrés dans ces infrastructures modernes, la majorité des méthodes de graphe d’attaque ayant été conçue pour des environnements traditionnels. En premier lieu, il est nécessaire de considérer l'existence de nouveaux scénarios d’attaque dans le Cloud. En effet, les relations existant entre machines virtuelles et machines physiques ainsi que les vulnérabilités présentes dans le logiciel de virtualisation affectent la propagation d'une attaque, permettant potentiellement à un attaquant de contourner l'isolation fournie par l'hyperviseur et d'infiltrer les machines virtuelles voisines, ou même la machine hôte. La capacité pour un attaquant de tirer parti d'une vulnérabilité particulière pouvant être entravée par la configuration des machines physiques ou virtuelles, il est essentiel d’identifier les conditions de succès de l’attaque, pour une meilleure évaluation des actions d'attaque possibles et une extension des modèles de graphes existants, qui ne prennent généralement pas en compte l'aspect virtualisation. D'autre part, la construction d'un graphe d'attaque adapté au Cloud doit tenir compte non seulement de sa nature dynamique, mais également de son échelle. En effet, les propriétés inhérentes au Cloud, à savoir son élasticité et son dynamisme sont un sujet de préoccupation. Ce contexte impose de concevoir des algorithmes capables de faire face aux fréquents changements d'infrastructure dans les environnements virtualisés. Le but de cette démarche est de fournir à l’administrateur de Cloud un graphe d’attaque illustrant la vision la plus précise du niveau de sécurité actuel, afin de prendre les mesures correctives adéquates. Compte tenu de l’échelle considérée, ainsi que de la multiplicité des utilisateurs impliqués dans le Cloud, la clarté de la représentation du graphe d’attaque est aussi essentielle afin d'aider les administrateurs sécurité à visualiser et à comprendre rapidement les chemins d’attaque existants dans leur environnement. De plus, pour réduire les coûts de calcul, le graphe ne doit pas nécessiter une transformation intermédiaire avant d'être exploitable par les algorithmes d'analyse de risque. Pour réaliser ces différents objectifs, il est nécessaire d'identifier dans quelle mesure l'utilisation des technologies disponibles dans le Cloud, à savoir les systèmes de gestion du Cloud ou le SDN (Software-Defined Networking), peuvent aider à relever les défis présentés plus tôt, avec l’objectif final de contribuer non seulement à la construction des graphes d’attaque, mais aussi de contribuer à les maintenir à jour. Divers modèles de graphes d’attaque sont disponibles dans la littérature, pour une application aux environnements traditionnels. Certaines approches considèrent l’ensemble des états du réseau à chaque nœud, quand d'autres considèrent des états partiels, se centrent soit sur les actions d'attaques ou soit sur les hôtes. Le fait de considérer l’ensemble des états du réseau au sein d'un seul nœud résulte en une complexité exponentielle, ce qui nuit à l'analyse du graphe d'attaque. Cependant, trop fragmenter les informations en des nœuds distincts est également nuisible, du fait de la représentation de données inutiles. Malgré une approche entièrement automatisée, un utilisateur de graphe d’attaque peut avoir besoin de visualiser les chemins d’attaque générés pour vérifier les mitigations proposées, ou comprendre l'anatomie des attaques à des fins d'audit. Il est donc nécessaire de trouver le bon équilibre dans la granularité de l'information représentée, exigence encore plus cruciale compte tenu de l'échelle du Cloud. Un ensemble récurrent de données émerge de l'ensemble des algorithmes de génération de graphe d’attaque, avec des différences mineures introduites pour tenir compte des concepts particuliers des méthodes présentées. Ces méthodes reposent généralement, d'une part, sur un inventaire des vulnérabilités présentes dans l'infrastructure, et d'autre part, sur la connectivité réseau existant entre les équipements. Les approches traditionnelles considèrent généralement ces informations comme des données d'entrée, sans considérer la mise en œuvre de leur collecte. En effet, cette hypothèse est légitime dans ces environnements, car l’infrastructure y est essentiellement statique et peu sujette aux changements. Cependant, afin de concevoir une approche efficace de génération de graphes d’attaque dans le Cloud, il est nécessaire d'examiner comment ces données essentielles sont influencées par ce nouveau contexte. Concernant spécifiquement la connectivité réseau, il faut s’attendre à un taux de changement en adéquation avec la grande flexibilité fournie aux utilisateurs. En effet, créer, migrer ou supprimer des machines virtuelles, impacte directement la connectivité, qui doit donc régulièrement être mise à jour. La notion de co-localisation peut également être introduite, elle concerne les machines virtuelles hébergées sur le même hyperviseur. Des machines co-localisées peuvent disposer d'un canal de communication potentiel si la propriété d’isolation de l’hyperviseur fait défaut, en raison de l'existence de vulnérabilités dans le logiciel de virtualisation. L'existence de ce canal de communication est impactée par la migration de la machine virtuelle, d’un hyperviseur sécurisé à un hyperviseur vulnérable, et vice versa. Au cours de cette thèse, nous réalisons un ensemble de contributions permettant de rendre l'utilisation des graphes d'attaque viable dans le contexte du Cloud. La première concerne la récupération de la topologie et de la connectivité du Cloud. En effet, ces données sont nécessaires au processus de génération du graphe d’attaque. Ceci nécessite la création d’un graphe de connectivité entre les machines virtuelles, que nous pouvons reconstruire grâce à la connaissance de la topologie globale et de la politique de sécurité réseau déployée. Une nouvelle approche s'impose dans le Cloud car les méthodes d'obtention de la connectivité dans les réseaux traditionnels sont inadaptées aux infrastructures Cloud , en raison de leur caractère intrusif ou de leur non complétude dans la découverte de connectivité. Nous proposons une méthode pour calculer le graphe de connectivité, qui repose à la fois sur les informations fournies par la plate-forme de gestion du Cloud et le contrôleur SDN. La connectivité peut d’abord être extraite des bases de connaissances, puis dynamiquement mise à jour lors de l'occurrence d'événements liés au Cloud. Cependant, l'intégration de la plate-forme de gestion du Cloud et du contrôleur SDN pose un défi supplémentaire. En effet, le SDN permet aux administrateurs de déployer des applications dans le contrôleur. Ces applications peuvent alors, selon la logique programmée, modifier de manière réactive les règles de flux sur les commutateurs virtuels et impacter directement la topologie, sans aucun retour d’information à la plate-forme de gestion du Cloud. Il en résulte des incohérences de topologie entre le système de gestion de Cloud et le contrôleur SDN. Sans résolution, ces divergences entraîneraient une génération de graphes d’attaque incorrecte. Afin d'éviter ces inexactitudes nous nous appuyons sur une vue de la topologie et de la connectivité qui fusionne les informations de la plate-forme de gestion du Cloud et du contrôleur SDN. Nous privilégions une approche passive pour la reconstruction de la connectivité sur la base des configurations extraites de la base de données du système de gestion du Cloud. Cela permet d'engager moins de perturbations sur les infrastructures virtuelles des clients, tout en rassemblant les informations pertinentes pour la construction du graphe de connectivité. Deux phases permettent l'obtention de ce graphe. Pendant la phase statique, l’objectif est d’établir une topologie et une connectivité de base, telle qu'elle est configurée au moment du fonctionnement de l'algorithme. S'ensuit alors une phase dynamique au cours de laquelle les évènements de modifications sont interceptés et traités afin de mettre à jour le graphe de manière localisée. En parallèle, une application de monitoring est déployée dans le contrôleur SDN afin de repérer les changements de connectivité non initiés par la plate-forme de Cloud et les intégrer dans le graphe de connectivité final. Notre deuxième contribution concerne l’inclusion des vulnérabilités liées à virtualisation dans les graphes d'attaque. Pour ce faire, nous avons d’abord inspecté les descriptions de ces vulnérabilités présentes dans les bases de données de vulnérabilité existantes, afin d'en extraire les conditions nécessaires à un attaquant pour pouvoir les exploiter. En outre, nous évaluons également la portée exacte des impacts de ces vulnérabilités, une fois utilisées avec succès dans une attaque. Cette information est une étape cruciale pour étendre les modèles de vulnérabilité proposés dans les approches existantes pour prendre en compte l’impact de la virtualisation sur les scénarios d'attaque générés. Cela permet de comprendre précisément comment les faiblesses de l'hyperviseur peuvent être utilisées dans le but de compromettre la machine physique sous-jacente ou les machines virtuelles hébergées. Cependant, tous les hyperviseurs ne bénéficient pas du même niveau de minutie dans la description des vulnérabilités qui les affectent. En conséquence, des informations pertinentes peuvent être manquantes, ce qui rend plus difficile la comparaison des résultats sur plusieurs logiciels. Néanmoins, les exigences et les catégories d'impact extraites de notre analyse nous ont permis d'étendre le champ d'application des vulnérabilités prises en compte dans la construction du graphe d’attaque jusqu’à la couche de virtualisation. Il ressort de l'analyse de ces vulnérabilités que le succès de leur exploitation est dépendant de critères liés à la fois à l'hyperviseur, à la machine physique, à la machine virtuelle et à l'attaquant. Les pré-requis identifiés au cours de cette étude sont les suivants : la version de l'hyperviseur, ses outils de gestions, les options activées pour l'hyperviseur et les machines virtuelles, les quotas renseignés pour les machines virtuelles, les architectures des processeurs de la machine physique, les fabriquants des processeurs, les systèmes d'exploitation des machines physiques et virtuelles, les types de machine virtuelle, les périphériques autorisés pour les machines virtuelles et leurs drivers, et enfin, le niveau de privilège de l'attaquant. Ainsi, des exigences très spécifiques doivent être satisfaites avant qu'un attaquant ne puisse exploiter efficacement l'une de ces vulnérabilités et compromettre l’infrastructure. Une compréhension claire de ces exigences est donc précieuse car elle permet une modélisation plus précise des vulnérabilités. Cette modélisation précise s'avère bénéfique, car intégrer des vulnérabilités qui ne peuvent pas être exploitées par un attaquant a le potentiel de créer un plus grand nombre de liens inutiles que dans les environnements traditionnels, l’impact pouvant être immédiat sur l'ensemble des machines hébergées par un hyperviseur vulnérable. Troisièmement, nous proposons une modélisation hybride de graphe d’attaque. Afin de générer des graphes d'attaque qui sont non seulement complets mais suffisamment simplifiés pour gérer l’échelle du Cloud, nous tirons parti des avancées réalisées dans les modèles de graphes d'attaque antérieurs. Nous abordons cette question en proposant une extension du modèle de graphe d’attaque centré sur les hôtes de l'infrastructure, dans laquelle les sommets représentent les hôtes physiques et virtuels existants dans le Cloud, couplés, le cas échéant, aux états de l'attaquant et de la machine. La représentation choisie conserve la possibilité d’utiliser des algorithmes issus de la théorie des graphes pour l’évaluation des risques, sans nécessiter une transformation intermédiaire du graphe d'attaque. Fort des résultats obtenus sur l'extraction de la topologie et de la connectivité du Cloud, de l'extension de la base de vulnérabilités pour inclure celles liées à la virtualisation et du modèle de graphe d'attaque établi pour le Cloud, nous disposons de l'ensemble des données nécessaires pour nous atteler à la génération du graphe d'attaque. En utilisant un algorithme de construction basé sur les événements, le graphe d’attaque obtenu correspond à l'état de sécurité de l’infrastructure le plus actuel à tout instant. Les données contenues dans les messages de notification d'événements sont analysées pour déterminer leurs impacts, soit sur la connectivité, soit les vulnérabilités existantes et, par conséquent, le delta à répercuter sur le graphe d'attaque. En supervisant en permanence les modifications et en adaptant le graphe d’attaque en conséquence, nous sommes capable d'éviter de le reconstruire à partir de zéro à chaque fois qu'un changement se produit. Le prototype conçu pour évaluer notre proposition dans un environnement Cloud réel avec des charges de travail plausibles présente des perspectives prometteuses au niveau des performances et confirme les avantages et la faisabilité de notre approche. Les approches mises en oeuvre dans cette thèse permettent donc aux admistrateurs de Cloud de disposer d'un outil d'évaluation des risques dans leur infrastructure, permettant une priorisation des contre-mesures à apporter pour une amélioration de la sécurité.
Fichier principal
Vignette du fichier
thèse Pernelle.pdf (5.19 Mo) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

tel-02416305 , version 1 (17-12-2019)
tel-02416305 , version 2 (05-06-2020)

Identifiants

  • HAL Id : tel-02416305 , version 1

Citer

Pernelle Mensah. Generation and Dynamic Update of Attack Graphs in Cloud Providers Infrastructures. Cryptography and Security [cs.CR]. CentraleSupélec, 2019. English. ⟨NNT : ⟩. ⟨tel-02416305v1⟩
312 Consultations
454 Téléchargements

Partager

Gmail Facebook X LinkedIn More