Définitions et caractéristiques
Le terme anglais cloud computing, ou plus simplement cloud, est également couramment employé en langue française. Plusieurs traductions, peu utilisées, ont été tentées : informatique en nuage, informatique nuagique, ou encore infonuagique. Selon le National Institute for Standards and Technology (NIST), le cloud computing est un modèle pour permettre l’accès réseau ubiquitaire, facile et à la demande à un ensemble partagé de ressources informatiques (réseaux, serveurs, stockage, applications et services) configurables, qui peuvent être rapidement provisionnées et libérées avec un mininum d’efforts de gestion ou d’intéraction avec le fournisseur du service [106]. La définition d’informatique en nuage fournie par le dictionnaire français Larousse [90] est répertoriée en tant qu’expression pour le mot nuage : modèle d’organisation informatique permettant l’accès à des ressources numériques dont le stockage est externalisé sur plusieurs serveurs. En informatique, l’origine de l’utilisation du terme anglais cloud, ou nuage en français, viendrait de l’utilisation historique de nuages pour représenter les réseaux informatiques, et notamment Internet. Cette représentation a pour but de masquer la complexité interne des réseaux et d’en abstraire une représentation simple. Elle a donc été reprise pour masquer la complexité des divers éléments composant le cloud, et le peu d’information sur la localisation et le traitement des données hébergées dans le cloud. Au delà des définitions proposées, le NIST a défini un modèle de cloud computing [106] comportant cinq caractéristiques essentielles, trois modèles de service et quatre modèles de déploiement, comme présenté dans la Figure 1.1. Ce modèle de cloud possède les cinq caractéristiques essentielles suivantes :
– Libre-service à la demande : l’utilisation des services et ressources est entièrement automatisée et c’est l’utilisateur, au moyen d’une console de commande, qui met en place et en gère la configuration à distance.
– Large accès réseau : les services sont accessibles depuis le réseau Internet par des équipements traditionnels et hétérogènes, légers ou lourds.
– Mise en commun de ressources : les ressources informatiques du fournisseur sont regroupées et utilisées pour servir plusieurs clients selon un modèle de corésidence, avec des ressources dynamiquement allouées selon les demandes. Généralement, le client ne connait pas la localisation exacte des ressources qui lui sont fournies, bien qu’il puisse être en mesure de spécifier cette localisation à certains niveaux plus abstraits (comme le pays, la région, ou le centre de données).
– Elasticité rapide : les ressources peuvent être provisionnées et libérées de manière élastique et automatique, pour répondre rapidement et de manière extensible à la demande. Pour le client, les ressources apparaissent illimitées et peuvent être affectées en n’importe quelle quantité à n’importe quel moment.
– Facturation à l’usage : les systèmes de cloud contrôlent automatiquement et optimisent l’utilisation des ressources par des moyens de mesure à certains niveaux d’abstraction appropriés au type de service. L’utilisation des ressources peut être surveillée, contrôlée, et rapportée, afin d’offrir de la transparence pour le fournisseur et le client du service.
Entraves à la sûreté de fonctionnement
Les entraves à la sûreté de fonctionnement sont les circonstances indésirables, mais non attendues, causes ou résultats de la non-sûreté de fonctionnement. Il s’agit des fautes, des erreurs et des défaillances. Il existe une relation de causalité entre fautes, erreurs et défaillances. Une faute est la cause adjugée ou supposée d’une erreur. Les fautes peuvent être classées selon leur cause phénoménologique (physiques ou dues à l’homme), leur nature (accidentelles ou intentionnelles), leur phase de création ou d’occurrence (au cours du développement ou en opération), leur situation par rapport aux frontières du système (internes ou externes), et leur persistance (permanentes ou temporaires). Une erreur est la partie de l’état d’un système susceptible de provoquer une défaillance. Une défaillance survient lorsque le service délivré dévie de l’accomplissement de la fonction du système.
Hypothèses principales
Nous avons émis des hypothèses afin de définir le cadre conceptuel de notre approche. Ces hypothèses concernent l’environnement d’application, les cas d’utilisation et la conformité de notre approche.
Environnement Notre approche ayant pour but d’évaluer et d’analyser les mécanismes de sécurité réseau déployés dans des infrastructures virtuelles, elle s’applique pour le modèle de service cloud IaaS. Dans ce modèle, les fournisseurs mettent à disposition des infrastructures virtuelles (réseaux, machines et pare-feu virtuels) aux clients. Nous considérons les pare-feu virtuels de deux types possibles : en mode pont (contrôlés par les clients) ou en mode hyperviseur (contrôlés par les clients et les fournisseurs). De plus, nous faisons l’hypothèse que ce sont des pare-feu à états. Concernant les NIDS, nous estimons qu’ils sont contrôlés par le fournisseur de service IaaS, et sont par défaut en charge de la détection des intrusions survenant depuis, à destination, ou au sein de tous les réseaux virtuels des clients déployés. Les NIDS doivent être déployés en prenant en compte la dynamicité du cloud afin d’assurer une continuité dans la fonction de détection d’intrusion (que ce soit la modification d’une infrastructure virtuelle existante ou le déploiement d’une nouvelle infrastructure virtuelle). De plus, nous considérons que la détection est menée à base de signatures, pour détecter les attaques connues, car nous exécutons des attaques réseau connues afin d’évaluer les NIDS dans le cadre de notre approche.
Contraintes et cas d’utilisation De par son caractère expérimental, notre approche est plus adaptée pour mener des audits de sécurité réseau sur des infrastructures virtuelles de petite et moyenne taille. Les opérations d’audit s’exécutent au nom du fournisseur de service, utilisant donc les droits d’administrateur sur l’infrastructure. Elles doivent être automatisées au maximum, à savoir requérant le minimum d’intervention humaine. Aussi, elles ne doivent pas perturber la production des clients, c’est-à-dire ne pas accéder, altérer ou divulguer les données des clients. Les rapports d’évaluation et d’analyse fournis comprennent des résultats correspondant à l’état des systèmes évalués au moment de l’audit. Les cas d’utilisation possibles de l’approche dépendent des contrats de type ServiceLevel Agreement (SLA) négociés entre le fournisseur et les clients. Cependant, en considérant trois acteurs différents possibles (client, fournisseur, auditeur), nous recommandons l’utilisation des fonctionnalités développées dans le cadre de l’approche comme illustré sur la Figure 3.1. Ces fonctionnalités sont l’évaluation des NIDS et l’analyse des contrôles d’accès réseau. Le client peut demander une analyse des contrôles d’accès réseau de son infrastructure virtuelle (ce qui entraîne son clonage). Le fournisseur peut conduire une évaluation des NIDS vis-à-vis de l’infrastructure d’un client (ce qui entraîne une analyse des contrôles d’accès réseau de l’infrastructure, et donc son clonage). En tant qu’acteur tiers, l’auditeur peut demander une évaluation des NIDS, ainsi qu’une analyse des contrôles d’accès réseau pour n’importe quelle infrastructure virtuelle.
Conformité Les fournisseurs de services cloud devant être en mesure d’assurer un service d’évaluation de la sécurité des systèmes et réseaux aux organisations clientes, la CSA a proposé un guide de recommandations en termes d’évaluations de sécurité dans le cloud [41]. Il a pour but de définir une cartographie des domaines à considérer pour l’implémentation des évaluations. Notre approche peut aider à la mise en œuvre des recommandations de ce guide. En effet, parmi les domaines traités dans ce document, notre approche peut être utilisée dans les activités suivantes :
– Évaluation des vulnérabilités système et réseau.
– Évaluation de la conformité sécurité système et réseau.
– Évaluation de la sécurité des applications Web.
– Test de pénétration interne/externe.
– Évaluation des contrôles de sécurité.
Par ailleurs, la norme ISO/IEC 27017 [82] (en cours de rédaction et inspirée de la norme ISO/IEC 27002) vise à apporter des conseils et bonnes pratiques pour l’implémentation de contrôles de sécurité dans les services cloud. Parmi les domaines traités dans ce document, notre approche peut fournir une aide pour les thèmes suivants :
– Politiques de sécurité de l’information.
– Spécification des contrôles d’accès : politique de contrôle d’accès, accès aux réseaux et services réseau.
– Sécurité des opérations : contrôles d’audit des systèmes d’information.
– Gestion de la sécurité réseau : contrôles réseau, sécurité des services réseau, ségrégation dans les réseaux.
– Gestion des informations d’incidents de sécurité et améliorations.
– Continuité de la sécurité de l’information : vérification, revue et évaluation.
Analyse des contrôles d’accès réseau
Après avoir cloné l’infrastructure du client, il serait inefficace de lancer directement une campagne d’évaluation des systèmes de détection d’intrusion de façon désordonnée. En effet, il est plus judicieux de chercher en premier lieu les canaux de communication autorisés afin de guider l’exécution des attaques et ainsi ne lancer que celles sur des services réseau associés à des accessibilités. C’est pourquoi la deuxième phase de l’approche consiste à déterminer les accessibilités réseau de bout en bout (entre machines virtuelles de l’infrastructure, et entre machines virtuelles de l’infrastructure et réseaux externes). Des erreurs pouvant survenir dans la définition, la configuration ou l’implémentation des contrôles d’accès réseau, il est intéressant de les examiner à différents niveaux afin de trouver d’éventuelles défaillances dans leur mise en œuvre. Nous avons donc choisi d’analyser de deux manières différentes les contrôles d’accès réseau, en utilisant des techniques différentes et sans la même connaissance initiale. Nous proposons ainsi une méthode d’analyse statique ainsi qu’une méthode d’analyse dynamique, toutes les deux adaptées aux environnements virtuels de cloud computing. L’analyse statique consiste d’abord à parcourir la configuration du cloud (configuration des machines virtuelles, réseaux et pare-feu) pour transformer les informations de configuration en prédicats. Ces prédicats des configurations sont ensuite utilisés en tant qu’entrées dans un moteur logique exécutant un algorithme déterminant les accessibilités possibles entre toutes les machines virtuelles de l’infrastructure, ainsi que depuis et vers les réseaux externes à cette infrastructure. L’analyse dynamique consiste à effectuer des échanges de paquets réseau entre les machines virtuelles, en suivant un algorithme permettant d’exécuter autant d’échanges que possible en parallèle. Ceci a pour but de déterminer le plus rapidement possible les accessibilités entre toutes les machines virtuelles de l’infrastructure, ainsi que depuis et vers les réseaux externes à cette infrastructure. Les accessibilités trouvées par chaque méthode sont modélisées sous forme de matrices, appelées matrices d’accessibilité. Elles sont comparées entre elles, et également avec les accessibilités définies initialement par l’utilisateur 2, dans le but de trouver et reporter d’éventuelles différences dans les résultats. En effet, il est important pour les clients de mettre en évidence les imprévus pouvant survenir lors des différentes étapes de définition et d’implémentation des contrôles d’accès réseau. Ceci doit permettre d’améliorer la définition des politiques de sécurité et l’exploitation des outils de sécurité.
|
Table des matières
Introduction générale
1 Contexte et problématique
1.1 Le cloud computing
1.1.1 Définitions et caractéristiques
1.1.2 Modèles de service et de déploiement
1.1.3 Technologies associées
1.2 Problématiques de sécurité
1.2.1 La sûreté de fonctionnement
1.2.2 La sécurité
1.2.3 Menaces, vulnérabilités et attaques dans le cloud
1.3 Mécanismes de sécurité réseau dans le cloud
1.3.1 Pare-feu virtuels
1.3.2 Systèmes de détection d’intrusion
1.4 Analyse et évaluation de la sécurité
1.5 Conclusion
2 État de l’art
2.1 Analyse d’accessibilité réseau
2.1.1 Analyse statique
2.1.2 Analyse dynamique
2.1.3 Comparaison
2.2 Évaluation des systèmes de détection d’intrusion
2.2.1 Évaluation par description et analyse
2.2.2 Évaluation expérimentale
2.3 Conclusion et objectifs de la thèse
3 Présentation générale de l’approche
3.1 Hypothèses principales
3.1.1 Environnement
3.1.2 Contraintes et cas d’utilisation
3.1.3 Conformité
3.2 Principes
3.2.1 Clonage de l’infrastructure virtuelle
3.2.2 Analyse des contrôles d’accès réseau
3.2.3 Évaluation des systèmes de détection d’intrusion réseau
3.3 Conclusion
4 Analyse des contrôles d’accès réseau
4.1 Accessibilités
4.2 Analyse statique
4.2.1 Parcours des configurations
4.2.2 Résolution logique des accessibilités
4.3 Analyse dynamique
4.3.1 Principes
4.3.2 Complexité
4.4 Analyse des déviances
4.5 Conclusion
5 Évaluation des systèmes de détection d’intrusion réseau
5.1 Trafic d’évaluation
5.1.1 Modélisation sous forme d’automates
5.1.2 Génération des automates
5.1.3 Rejeu des automates
5.2 Campagnes d’attaque
5.2.1 Dictionnaire d’attaques
5.2.2 Sessions d’attaque
5.2.3 Exécution des campagnes d’attaque
5.2.4 Calcul des métriques d’évaluation
5.2.5 Analyse des incohérences de détection
5.3 Conclusion
6 Prototype et expérimentations
6.1 Plateforme de maquettage et d’expérimentation
6.2 Prototype
6.2.1 Architecture logicielle
6.2.2 Intégration
6.3 Expérimentations et résultats
6.3.1 Scénario expérimental
6.3.2 Résultats expérimentaux
6.4 Conclusion
Conclusion générale
Bibliographie
Télécharger le rapport complet