WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Etude sur la sécurité du cloud computing

( Télécharger le fichier original )
par Moussa MIMOUNE
UNIVERSITE DE M?SILA - MASTER Technologie de l?Information et de la Communication (TIC) 2014
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Promotion : 2014/2015

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

MINISTERE DE L'ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE

N° d'ordre :

UNIVERSITE DE M'SILA

FACULTE DES MATHEMATIQUES ET DE L'INFORMATIQUE Département d'Informatique

MEMOIRE de fin d'étude

Présenté pour l'obtention du diplôme de MASTER

Domaine : Mathématiques et Informatique
Filière : Informatique
Spécialité : Technologie de l'Information et de la Communication (TIC)
Par: MIMOUNE MOUSSA

SUJET

Etude sur la sécurité du Cloud Computing

Soutenu publiquement le : / /2015 devant le jury composé de :

Université de M'sila Président

Mr. BENOUIS Mohamed Université de M'sila Rapporteur

Université de M'sila Examinateur

Université de M'sila Examinateur

Remerciements

Nous tenons à exprimer nos vifs remerciements

à :

Dieu tout puissant, pour la volonté, et la santé

et la patience qu'il nous donnait durant toutes

ces années d'études afin que nous puissions en

arriver là.

Comme nous tenons à remercier notre

Encadreur : Mr. Benouis.M

Merci à tous les enseignants et les étudiants
De département : Technologie de l'Information et de la
Communication.

Pour leurs aides judicieuses, les moyens qu'ils

ont

Met à notre disposition pour réaliser ce travail.

Enfin à toute personne qui a collaborée à la

réalisation Du présent mémoire.

TABLE DES MATIÈRES

Introduction général

Chapitre 1: Les Notions fondamentales du Cloud Computing

1.1 Introduction

1.2 Définition de Cloud Computing

1.3 Eléments constitutifs du Cloud Computing

1.3.1 La virtualisation

1.3.2 Le Datacenter

1.3.3 La Plateforme collaborative

1.4 Les Types de Cloud Computing

2

5

6

7

7

7

8

8

 

1.4.1

Cloud public

8

 

1.4.2

Cloud privé

9

 

1.4.3

Cloud hybride

9

 

1.4.4

Cloud communauté

10

1.5

Architecture du Cloud Computing

10

 

1.5.1

Infrastructure as a service (IAAS)

11

 

1.5.2

Platform as a service (PAAS)

12

 

1.5.3

Software as a service (SAAS)

12

1.6

Avantages et inconvénients du Cloud Computing

14

1.7

Conclusion

16

Chapitre 2 : Les mécanismes de sécurité d'un Cloud Computing

2.1 Introduction 18

2.2 Les attaques et l'impact sur le Cloud Computing 19

2.2.1 (DoS) Attaques par déni de service 19

2.2.2 Les attaques de Session Hijacking 20

2.2.3 Les attaques SQL injection 20

2.2.4 Les attaques XSS (Cross Site Scripting) 21

2.2.5 Les attaques de Fragmentation 22

2.2.6 Les attaques de Spoofing 22

2.2.7 Balayage de port 22

2.2.8 L'isolation 23

2.3 Historique des attaques dans le Cloud 23

2.4 La sécurité d'infrastructure 23

2.4.1 La sécurité physique d'un Cloud 23

2.4.2 La virtualisation et la sécurité 24

2.4.3 La sécurité des flux de données 25

2.5 La sécurité des données dans le Cloud 25

2.5.1 Confidentialité 25

2.5.2 L'intégrité 26

2.5.3 La disponibilité 26

2.5.4 Les Services de chiffrement (cryptage) 26

2.6 Le contrôle de sécurité d'un Cloud 30

2.6.1 Contrôles dissuasifs 30

2.6.2 Contrôles préventifs 30

2.6.3 Contrôles correctives 30

2.6.4 Les contrôles de détection 30

2.7 Conclusion 31
Chapitre 3 : La mise en place d'Openstack

3.1 Introduction 33

3.2 Présentation d'Openstack 34

3.2.1 Historique 34

3.2.2 Définition 34

3.3 Architecture d'Openstack 36

3.3.1 OpenStackCompute (projet Nova) 36

3.3.2 OpenStack Object Storage (projet Swift) 36

3.3.3 OpenStack Imaging Service (projet Glance) 36

3.4 Installation d'Openstack 36

3.5 Création d'un espace Cloud 42

3.5.1 Création de projet et manipulation de quotas 43

3.5.2 Création d'un utilisateur 44

3.6 Conclusion 47

Chapitre 4 : La sécurité dans l'OpenStack

4.1 Introduction 49

4.2 Création d'un Groupe de sécurité 50

4.2.1 La rédaction des règles d'un groupe 51

4.2.2 La création des instances 53

4.2.3 Une vue d'ensemble sur le système 55

4.3 Les scanners des vulnérabilités 56

4.3.1 Nessus 56

4.3.2 Nmap 59

4.4 Les techniques de l'attaque 60

4.4.1 Footprinting 60

4.4.2 DOS Le déni de service 61

4.5 Conclusion 63

Conclusion général 65

Bibliographie 66

Annexe 68

LISTE DES FIGURES

Figure 1.1 : les services de la Cloud Computing. 6

Figure 1.2 : Les types de Cloud Computing. 10

Figure 1.3 : Les 3 couches du Cloud Computing. 11

Figure 1.4 : Les différents niveaux des services du Cloud Computing. 13

Figure 2.1 :L'attaque par déni de service. 19

Figure 2.2 : L'attaque XSS. 21

Figure 2.3 : La méthode de Chiffrement d'un disque. 29

Figure 3.1: Le rôle d'OpenStack. 35

Figure 3.2: Installation de MySql. 37

Figure 3.3: Installation de RbbitMQ. 38

Figure 3.4: Installation de Keystone. 39

Figure 3.5 : Installation de Glance. 39

Figure 3.6: Installation de Quantum. 40

Figure 3.7: Installation de KVM. 40

Figure 3.8: Installation de Nova. 41

Figure 3.9: Installation de Cinder. 41

Figure 3.10: Installation d'Horizon. 42

Figure 3.11: La page log in d'openstck. 42

Figure 3.12: Création d'un projet. 43

Figure 3.13: Informations nécessaires pour un projet. 43

Figure 3.14: Ressources nécessaire pour le projet 44

Figure 3.15: Création d'un utilisateur. 46

Figure 4.1: L'interface de la page Access & Security. 50

Figure 4.2: L'interface de la fenêtre Create Security Groupe. 50

Figure 4.3: La liste des groupes de sécurité. 51

Figure 4.4: L'interface de la page pour ajouter des règles. 51

Figure 4.5: La liste des règles. 52

Figure 4.6: L'interface de création le paire de clés. 52

Figure 4.7: La fenêtre de téléchargement le fichier de clé. 53

Figure 4.8: L'interface de création des instances. 54

Figure 4.9: L'interface de l'ajout de la clé et du groupe. 54

Figure 4.10: La liste des instances. 55

Figure 4.11: Une vue d'ensemble sur le système. 55

Figure 4.12: La page login sur Nessus. 57

Figure 4.13: La page de la nouvelle Policy. 58

Figure 4.14:La configuration de Policy. 58

Figure 4.15: La configuration de scan. 59

Figure 4.16: Nmap. 60

Figure 4.16 : Maltego Footprinting. 61

Figure 4.17 : Utilisation de Slowloris. 61

LISTE DES TABLEAU

Tableau 1.1 : Avantages et inconvénients des services. 14

Tableau 2.1 : Historique des attaques dans le Cloud 23

Tableau 3.1 : Les versions d'OpenStack 35

2

Introduction générale

Introduction générale :

La technologie de l'information (TI) est un Ensemble d'outils et de ressources technologiques permettant de transmettre, enregistrer, créer, partager ou échanger des informations, notamment les ordinateurs, l'internet (sites web, blogs et messagerie électronique, Cloud Computing). [10]

Les systèmes d'information sont un enjeu stratégique dans plusieurs domaines Parmi les évolutions récentes, le développement du Cloud Computing et la sécurité est devenu un sujet d'attention.

Le Cloud Computing est maintenant le fondement de plus l'utilisation d'Internet. Email, moteurs de recherche, réseaux sociaux, médias en streaming, et d'autres services sont désormais hébergés dans "le Cloud " . Les collections des grands serveurs des produits de base en cours d'exécution de coordination logicielles qui rend des hôtes individuels largement disponible. Alors que le Cloud Computing à coûts réduits et une commodité accrue, l'accessibilité et la centralisation du Cloud Computing crée également de nouvelles opportunités pour les failles de sécurité. [11]

La sécurité des systèmes d'information (SSI) est l'ensemble des moyens techniques, organisationnels, juridiques et humains nécessaires et mis en place pour conserver, rétablir, et garantir la sécurité du système d'information. Assurer la sécurité du système d'information est une activité du management du système d'information.

Il existe des chercheurs en sécurité qui ont étudié divers aspects de la sécurité du Cloud Computing à la fois une offensive et une perspective défensive. [11]

L'objectif de notre travail est une étude sur la sécurité d'un Cloud Computing.

Dans ce mémoire, nous adopterons une organisation comportant quatre différents chapitres. Les deux premiers présentent l'état de l'art sur les notions fondamentales du Cloud Computing et Les mécanismes de sécurité d'un Cloud Computing.

Dans le premier chapitre, nous définirons le Cloud Computing et éléments constitutifs du Cloud Computing, ainsi qu'un aperçu des types de Cloud Computing. A la fin de ce chapitre nous donnons une description sur l'architecture du Cloud Computing.

Dans le deuxième chapitre, il sera consacré pour présenter une étude sur les mécanismes de sécurité d'un Cloud Computing, nous commençons cette étude par les attaques et l'impact courant sur le Cloud. Puis nous introduisons les différentes

3

Introduction générale

techniques utilisées pour la sécurité de données du Cloud, en présentant aussi l'historique des attaques dans le Cloud. Nous terminons ce chapitre par le contrôle de sécurité d'un Cloud.

Le troisième chapitre, la réalisation du système, en présentant le système open source OPENSTACK, ainsi nous expliquons les différences étapes pour l'installation de l' OENSTACK.et puis on a expliqué comment la création d'un espace Cloud sur OPENSTACK.

Le quatrième chapitre, nous allons présenter une étude sur la sécurité dans l'OpenStack, .et puis on a explique comment on utilise les outils de l'analyse les vulnérabilités d'un Cloud, et les outils de l'attaque. A la fin de ce chapitre nous allons présenter les outils de la sécurité.

Notre travail sera achevé par la conclusion générale qui va résumer nos objectifs estimés et les limites de notre réalisation tout en évoquant les problèmes que nous avons rencontrés et les améliorations envisageables.

5

Chapitre 1 - Les notions fondamentales du Cloud Computing.

CHAPITRE 1 :

LES NOTIONS FONDAMENTALES DU CLOUD

COMPUTING.

1.1 Introduction :

Indéniablement, la technologie de l'internet se développe d'une manière exponentielle depuis sa création. Actuellement, une nouvelle "tendance" a fait son apparition dans le monde de l'IT (information Technologies : Technologies de l'information et de la communication), il s'agit du Cloud Computing. Cette technologie, s'appuie sur le WEB 2.0, offre des occasions aux sociétés de réduire les coûts d'exploitation des logiciels par leurs utilisations directement en ligne. [VIN10]

Dans ce chapitre nous allons présenter les notions fondamentales du Cloud Computing, ses enjeux, ses évolutions et son utilité ainsi que la technologie qui la constitue et les différents acteurs du secteur.

Nous devons dans un premier temps étudier le Cloud Computing de manière générale, dans un second temps nous allons étudier les trois services principaux, sur lesquels le Cloud Computing repose: applicatif, plateforme, infrastructure, qui ont donné naissance aux fameux SaaS/PaaS/IaaS. Et la dernière partie de ce chapitre présente les différents avantages et inconvénients du Cloud Computing.

6

Chapitre 1 - Les notions fondamentales du Cloud Computing.

1.2 Définition de Cloud Computing :

Le Cloud Computing traduit de l'anglais « informatique dans les nuages » est devenu un mot à la mode populaire, littéralement l'informatique dans les nuages est un concept qui consiste à déporter sur des serveurs distants des stockages et des traitements informatiques traditionnellement localisés sur des serveurs locaux ou sur le poste de l'utilisateur. Il consiste à proposer des services informatiques sous forme de service à la demande, accessibles de n'importe où, n'importe quand et par n'importe qui, grâce à un système d'identification, via un PC et une connexion à Internet. Cette définition est loin d'être simple à comprendre, toute fois l'idée principale à retenir est que le Cloud n'est pas un ensemble de technologies, mais un modèle de fourniture, de gestion et de consommation de services et de ressources informatiques .[VIN10]

Pour (NIST) 1:Le Cloud Computing est un modèle pour permettre, un accès pratique omniprésente au réseau sur demande à un pool partagé de ressources informatiques configurables (réseaux, serveurs, stockage, applications et services) qui peuvent être provisionnés rapidement et libérés avec un effort de gestion minimale ou interaction de fournisseur de service.[1]

La figure ci-dessous (Fig. 1.1) présente les services du Cloud Computing.

Figure 1.1 : les services du Cloud Computing. [VIN10]

1 NIST:National Institute of Standards and Technology

7

Chapitre 1 - Les notions fondamentales du Cloud Computing.

Pour (CISCO) 2: Le Cloud Computing est une plateforme de mutualisation informatique fournissant aux entreprises des services à la demande avec l'illusion d'une infinité de ressources. [2]

Pour le groupe de travail (CIGREF)3 : Le Cloud Computing est défini par les quatre points suivants :

· Un Cloud est toujours un espace virtuel.

· Contenants des informations qui sont fragmentées.

· Dont les fragments sont toujours dupliqués et répartis dans cet espace virtuel, lequel peut être sur un ou plusieurs supports physiques.

· Qui possède « une console (programme) de restitution « permettant de reconstituer l'information. [3]

1.3 Eléments constitutifs du Cloud Computing :

Les éléments pouvant constituer le système Cloud sont les suivants : 1.3.1 La virtualisation :

Se définit comme l'ensemble des techniques matérielles et/ou logicielles qui permettent de faire fonctionner sur une seule machine, plusieurs systèmes d'exploitation (appelées machines virtuelles (VM), ou encore OS invitée) [LIN13].

La virtualisation des serveurs permet une plus grande modularité dans la répartition des charges et la reconfiguration des serveurs en cas d'évolution ou de défaillance momentanée. Les intérêts de la virtualisation sont multiples, on peut citer :

· L'utilisation optimale des ressources d'un parc de machines (répartition des machines virtuelles sur les machines physiques en fonction des charges respectives).

· L'économie sur le matériel (consommation électrique, entretien physique, surveillance).

· L'installation, tests, développements sans endommager le système hôte. 1.3.2 Le Datacenter :

Un centre de traitement de données (data center en anglais) est un site physique sur lequel se trouvent regroupés des équipements constituants le système d'information de l'entreprise (mainframes, serveurs, baies de stockage, équipements réseaux et de télécommunications, etc.). Il peut être interne et/ou externe à l'entreprise, exploité ou non avec le soutien des prestataires. Il comprend en général un contrôle sur l'environnement (climatisation, système

2 CISCO : Est une Systems et entreprise informatique américaine spécialisée.

3 CIGREF: Le Club Informatique des Grandes Entreprises en Françaises.

8

Chapitre 1 - Les notions fondamentales du Cloud Computing.

de prévention contre l'incendie, etc.), une alimentation d'urgence et redondante, ainsi qu'une sécurité physique élevée.

Cette infrastructure peut être propre à une entreprise et utilisée par elle seule ou à des fins commerciales. Ainsi, des particuliers ou des entreprises peuvent venir y stocker leurs données suivant des modalités bien définies [LIN13].

1.3.3 La Plateforme collaborative :

Une plate-forme de travail collaborative est un espace de travail virtuel. C'est un site qui centralise tous les outils liés à la conduite d'un projet et les met à disposition des acteurs.

L'objectif du travail collaboratif est de faciliter et d'optimiser la communication entre les individus dans le cadre du travail ou d'une tâche.

Les plates-formes collaboratives intègrent généralement les éléments suivants :

· Des outils informatiques.

· Des guides ou méthodes de travail en groupe, pour améliorer la communication, la production, la coordination.

· Un service de messagerie.

· Un système de partage des ressources et des fichiers.

· Des outils de type forum, pages de discussions

· Un trombinoscope, ou annuaire des profils des utilisateurs.

· Des groupes, par projet ou par thématique.

· UN calendrier. [ALA11]

1.4 Type de Cloud Computing :

Nous distinguons quatre formes de Cloud Computing :

· Cloud public.

· Cloud privé.

· Cloud hybride.

· Cloud communauté. 1.4.1 Cloud public :

Un Cloud public est basé sur un modèle standard de Cloud Computing, dans lequel un prestataire de service met les ressources, tels que les applications, ou le stockage, à la disposition du grand public via internet. Le Cloud public peut être gratuit ou fonctionner selon paiement à la consommation.

9

Chapitre 1 - Les notions fondamentales du Cloud Computing.

L'avantage de ce genre d'architecture est d'être facile à mettre en place, pour des coûts relativement raisonnables. La charge du matériel, des applicatifs, de la bande passante étant couverte par le fournisseur. De cette manière ce modèle permet de proposer une souplesse et une évolutivité accrue afin de répondre rapidement au besoin. Il n'y a pas de gaspillage de ressources car le client ne paye que ce qu'il consomme. [4]

Ce type est :

· Demande de lourds investissements pour le fournisseur de services.

· Offre un maximum de flexibilité.

· N'est pas sécurisé. 1.4.2 Cloud privé :

C'est un environnement déployé au sein d'une entreprise. Ainsi, elle doit gérer toute seule son infrastructure. Dans ce cas, implémenter un Cloud privé signifie transformer l'infrastructure interne en utilisant des technologies telles que la virtualisation pour enfin délivrer, plus simplement et plus rapidement, des services à la demande. L'avantage de ce type de Cloud par rapport au Cloud publique réside dans l'aspect de la sécurité et la protection des données [BAR11].

En effet, l'ensemble du matériel est conservé au sein de votre propre emplacement. De ce fait, les ressources sont détenues et contrôlées par votre propre département informatique.

Eucalyptus, OpenNebula et OpenStack (Chapitre 3) sont des exemples de solution pour la mise en place du Cloud privé.

Ce type est:

· Cher pour le client.

· Dédié et sécurisé.

· Moins flexible comparé au Cloud public. 1.4.3 Cloud hybride :

En général, on entend par Cloud hybride la cohabitation et la communication entre un Cloud privé et un Cloud publique dans une organisation partageant des données et des applications (Par exemple, un Cloud dédié pour les données et un autre pour les applications) [BAR11].

Ce modèle :

· Permet d'allier les avantages des deux modèles de déploiement.

· Permet la gestion de deux Cloud qui peut s'avérer plus contraignant.

10

Chapitre 1 - Les notions fondamentales du Cloud Computing.

Figure 1.2 : Les types de Cloud Computing. [BAR11]

1.4.4 Cloud communauté :

L'infrastructure de Cloud est partagé par plusieurs organisations et soutient une communauté spécifique qui a des préoccupations communes (considérations par exemple, la mission, les exigences de sécurité, de la politique, et de conformité). Il peut être géré par les organisations ou un tiers et peut exister sur site ou hors prémisse. [BAR11]

1.5 Architecture du Cloud Computing :

Le Cloud Computing peut être décomposé en trois couches :

? Applicative (SAAS, Software as a Service).

? Plateforme (PAAS, Platform as a Service).

? Infrastructure (IAAS, Infrastructure as a Service)

La Figure1.3 ci-dessous représente les différentes couches du Cloud Computing de la couche la moins visible pour les utilisateurs finaux à la plus visible. L'infrastructure as a Service (IaaS) est plutôt gérée par les architectes réseaux, la couche PaaS est destinée au développeur d'applications et finalement le logiciel comme un service (SaaS) est le « produit final » pour les utilisateurs. [GEO09]

11

Chapitre 1 - Les notions fondamentales du Cloud Computing.

Figure 1.3 : Les 3 couches du Cloud Computing. [GEO09]

1.5.1 Infrastructure As A Service (IAAS) :

L'IaaS couche du Cloud Computing, la plus complexe en terme de gestion est l'infrastructure comme un service (IaaS). L'infrastructure fournit des capacités de calcul, de stockage et une bande passante suffisante. Cette infrastructure est mise à disposition de façon à gérer automatiquement la charge de travail requise par les applications.

Il y a très peu de limitation pour le client si ce n'est la partie matérielle qui peut être contournée grâce aux systèmes de virtualisation. Les applications vont dès lors pouvoir être déployées sans être liées à un serveur spécifique. La virtualisation répond de manière dynamique là où les serveurs physiques fournissent un ensemble de ressources allouées selon les besoins, et où la relation entre les applications et les ressources de calcul, de stockage et de réseau pourront s'adapter de manière automatique pour répondre à la charge de travail et aux exigences demandées.

Pour simplifier ces différentes définitions, on peut retenir qu'avec le SaaS on utilise une application, avec le PaaS on construit ses applications et finalement l'IaaS permet d'héberger le tout. [GEO09]

12

Chapitre 1 - Les notions fondamentales du Cloud Computing.

? Avantage :

Grande flexibilité, contrôle total des systèmes, qui permet d'installer tout type de logiciel métier.

? Inconvénient :

Besoin d'administrateurs système comme pour les solutions de serveurs classiques sur site.

1.5.2 Platform As A Service (PAAS) :

La plateforme comme un service (PaaS), est la plateforme d'exécution, de déploiement et de développement des applications. Le client maintient ses applications, le fournisseur maintient : les runtimes, l'intégration SOA4, les bases de données, le logiciel serveur, la virtualisation, le matériel serveur, le stockage et les réseaux.

Un service PaaS met à disposition des environnements de développement prêts à l'emploi, fonctionnels et performants. Parmi les solutions : Windows Azure de Microsoft, AppEngine de Google, Force.com de Salesforce. Chaque fournisseur de PaaS propose des environnements de développement différents, Google AppEngine se limite à Java et Python, tandis Windows Azure permet de travailler avec les langages .NET, PHP, Python, Ruby et Java. [GEO09]

1.5.3 Software As A Service (SAAS) :

Ce type de service, des applications sont mises à la disposition des consommateurs. Les applications peuvent être manipulées à l'aide d'un navigateur web ou installées de façon locative sur un PC, et le consommateur n'a pas à se soucier d'effectuer des mises à jour, d'ajouter des patches de sécurité et d'assurer la disponibilité du service.

Gmail est un exemple de tel service. Il offre au consommateur un service de courrier électronique et le consommateur n'a pas à se soucier de la manière dont le service est fourni. ? Avantage :

Plus d'installation, plus de mise à jour (elles sont continuées chez le fournisseur), plus de migration de données etc. Paiement à l'usage. Test de nouveaux logiciels avec facilité.

? Inconvénient :

Limitation par définition au logiciel proposé. Pas de contrôle sur le stockage et la sécurisation des données associées au logiciel. Réactivité des applications Web pas toujours idéale. [BAR11]

4 SOA : Service Oriented Architecture.

13

Chapitre 1 - Les notions fondamentales du Cloud Computing.

La figure ci-dessous (Fig. 1.4) présente les trois couches du Cloud Computing ainsi que leurs acteurs en donnant un compromis flexibilité/simplicité. En Cloud, la flexibilité est obtenue grâce à la virtualisation des systèmes d'exploitation.

La plateforme est exécutée via des machines virtuelles et les ressources peuvent être allouées et délibérées à la demande. Ainsi, l'IaaS est considéré comme le service le plus flexible.

Figure 1.4 : Les différents niveaux des services du Cloud Computing. [BAR11] Avantages et inconvénients des services :

Du point de vue économique, le Cloud Computing est essentiellement une offre commerciale d'abonnement économique à des services externes. Selon le National Institute of Standards and Technologie, il existe trois catégories de services qui peuvent être offertes en Cloud Computing: IaaS, PaaS et SaaS.

Les avantages et les inconvénients de ces services ce résume dans le tableau ci-dessous.

14

Chapitre 1 - Les notions fondamentales du Cloud Computing.

Tableau 1.1 : Avantages et inconvénients des services. [VIN10] 1.6 Avantages et inconvénients du Cloud Computing. :

1.6.1 Les avantages :

Le Cloud Computing peut permettre d'effectuer des économies, notamment grâce à la mutualisation des services sur un grand nombre de clients. Certains analystes indiquent que 20 à 25 % d'économies pourraient être réalisées par les gouvernements sur leur budget informatique s'ils migraient vers le Cloud Computing. Comme pour la virtualisation, l'informatique dans le Cloud peut être aussi intéressante pour le client grâce à son évolutivité. En effet, le coût est fonction de la durée de l'utilisation du service rendu et ne nécessite aucun investissement préalable (homme ou machine). L'« élasticité » du nuage permet de fournir des services évolutifs et peut permettre de supporter des montées en charge. Inversement, le fournisseur a la maîtrise sur les investissements, est maître des tarifs et du catalogue des offres, et peut se rémunérer d'autant plus facilement que les clients sont captifs.

15

Chapitre 1 - Les notions fondamentales du Cloud Computing.

L'abonnement à des services de Cloud Computing peut permettre à l'entreprise de ne plus avoir à acquérir des actifs informatiques et nécessitant une durée d'amortissement. Les dépenses informatiques peuvent être comptabilisées en tant que dépenses de fonctionnement.

La maintenance, la sécurisation et les évolutions des services étant à la charge exclusive du prestataire, dont c'est généralement le coeur de métier, celles-ci ont tendance à être mieux réalisées et plus rapidement que lorsque sous la responsabilité du client (principalement lorsque celui-ci n'est pas une organisation à vocation informatique). [VIN10]

1.6.2 Les inconvénients :

Plusieurs catégories d'inconvénients existent :

L'utilisation des réseaux publics, dans le cas du Cloud public, entraîne des risques liés à la sécurité du Cloud (chapitre 2). En effet, la connexion entre les postes et les serveurs applicatifs passe par le réseau internet, et expose à des risques supplémentaires de cyber attaques, et de violation de confidentialité. Le risque existe pour les particuliers, mais aussi pour les grandes et moyennes entreprises, qui ont depuis longtemps protégé leurs serveurs et leurs applications des attaques venues de l'extérieur grâce à des réseaux internes cloisonnés.

Le client d'un service de Cloud Computing devient très dépendant de la qualité du réseau pour accéder à ce service. Aucun fournisseur de service Cloud ne peut garantir une disponibilité de 100 % Par exemple, des défaillances sur les services Cloud sont référencées par l'International Working Group of Cloud Résilience.

Les entreprises perdent la maîtrise de l'implantation de leurs données. De ce fait, les interfaces inter-applicatives (qui peuvent être volumineuses) deviennent beaucoup plus complexes à mettre en oeuvre que sur une architecture hébergée en interne.

Les entreprises n'ont plus de garanties (autres que contractuelles) de l'utilisation qui est faite de leurs données, puisqu'elles les confient à des tiers.

Les questions juridiques posées notamment par l'absence de localisation précise des données du Cloud Computing Les lois en vigueur s'appliquent, mais pour quel serveur, quel data center, et surtout quel pays ?

Tout comme les logiciels installés localement, les services de Cloud Computing sont utilisables pour lancer des attaques (craquage de mots de passe, déni de service...).

En 2009, par exemple, un cheval de Troie a utilisé illégalement un service du Cloud public d'Amazon pour infecter des ordinateurs. [VIN10]

16

Chapitre 1 - Les notions fondamentales du Cloud Computing.

1.7 Conclusion :

Au cours de cette première partie, nous avons fourni une base théorique sur le Cloud Computing, en présentant ses types, ses services (IaaS, PaaS, SaaS), ses avantages et inconvénients, afin d'appliquer ses concepts à notre contexte.

Chapitre 1 - Les notions fondamentales du Cloud Computing.

17

18

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

CHAPITRE 2 :

LES MECANISMES DE SECURITE D'UN CLOUD COMPUTING

2.1 Introduction :

La sécurité du Cloud (Cloud Security en anglais) est un sous domaine du Cloud Computing en relation avec la sécurité informatique. Elle implique des concepts tels que la sécurité des réseaux, du matériel et les stratégies de contrôle déployées afin de protéger les données, les applications et l'infrastructure associées au Cloud Computing. Un aspect important du Cloud est la notion d'interconnexion avec divers matériels qui rend difficile et nécessaire la sécurisation de ces environnements. [DAM12]

19

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

2.2 Les attaques et l'impact sur le Cloud :

Les composants de sécurité telle que les pare feu ou les systèmes de détection d'intrusion, ne sont pas adaptés pour détecter les attaques distribuées, Ces attaques sont donc subdivisées en sous attaques afin d'être indétectable par de tel système de sécurité. Dans ce chapitre nous allons présenter les attaques actuelles sur le Cloud Computing. [5]

2.2.1 (DoS) Attaques par déni de service :

L'attaque par déni de service a pour but de rendre un service indisponible par une surcharge réseau. L'attaque (Dos1) pourrait utiliser certaines des techniques suivantes de submerger les ressources d'une Cloud :

? Remplissage de l'espace disque de stockage d'entraînement d'une Cloud à l'aide d'énormes pièces jointes ou les transferts des fichiers.

? Envoi d'un message qui réinitialise un masque de sous-réseau de l'hôte cible, provoquant une perturbation de sous-réseau de routage du Target.

? D'utiliser tous les moyens d'un Target pour accepter les connexions réseau, ce qui entraîne des connexions réseau supplémentaires étant refusée. [LEE12]

Figure 2.1 :L'attaque par déni de service. [LEE12]

1 DOS: Denial of Service Attack.

20

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

2.2.2 Les Attaques de Session Hijacking :

L'accès non autorisé à un système peut être réalisé par le détournement de session. Dans ce type d'attaque, un attaquant détourné une session entre un client de confiance et de serveur Cloud. L'ordinateur attaquant remplace son adresse IP à celle du client de confiance et le Cloud poursuit le dialogue, estimant qu'il communique avec le client de confiance.

Attaques de détournement comprennent IP attaques Spoofing, numéro de séquence TCP 2attaques, et DNS 3Spoofing. [LEE12]

2.2.3 les attaques SQL injection :

Injection SQL est une méthode d'attaque où un attaquant peut exploiter code vulnérable et le type de données d'une application acceptera, et peut être exploitée dans ne importe quel paramètre d'application qui influe sur une requête de base de données.

Les exemples incluent des paramètres dans l'URL elle-même, les données de poste, ou la valeur du cookie. En cas de succès, SQL injection peut donner un attaquant d'accéder au contenu de base de données d'arrière-plan, la capacité d'exécuter des commandes à distance du système, ou dans certaines circonstances, les moyens de prendre le contrôle du serveur hébergeant la base de données.

Nous avons vu dans certains des commentaires précédents sur la conception de base de données multiples locataire, que le stockage de la base de données des locataires multiples dans la même table séparés par l'ID de locataire agissant comme une clé primaire est un modèle de conception valide.

Par exemple, si il ya un détail applications SaaS qui permet plusieurs détaillants d'héberger leurs produits et de les vendre à travers l'application de SaaS en ligne, alors la mesure du possible une conception de la table de locataire pour table qui accueille toutes les commandes pourraient l'être.

Si l'application SaaS est sujette à l'injection SQL, alors il est très facile pour certains une exploitation forestière au nom de One locataire peut afficher les commandes appartenant à un autre client. [LEE12]

2 TCP :Transmission Control Protocol

3 DNS : Domain Name System

21

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

2.2.4 les attaques XSS (Cross Site Scripting) :

Le cross site Scripting (abrégé XSS), est un type de faille de sécurité des sites web permettant d'injecter du contenu dans une page, permettant ainsi de provoquer des actions sur les navigateurs web visitant la page. Les possibilités des XSS sont très larges puisque l'attaquant peut utiliser tous les langages pris en charge par le navigateur (JavaScript, Java, Flash...) et de nouvelles possibilités sont régulièrement découvertes notamment avec l'arrivée de nouvelles technologies comme HTML5. Il est par exemple possible de voler la session en récupérant les cookies4. [6]

Figure 2.2 : L'attaque XSS [LEE12]

4 Cookies : est l'équivalent d'un petit fichier texte stocké sur le terminal de l'internaute, ils permettent aux développeurs de sites internet de conserver des données utilisateur afin de faciliter leur navigation et de permettre certaines fonctionnalités.

22

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

2.2.5 Les attaques de fragmentation :

Attaques par fragmentation IP utilisent variée datagramme IP fragmentation de déguiser leurs paquets TCP à partir des dispositifs de filtrage IP d'une cible. Voici deux exemples de ces types d'attaques sont les suivantes:

? Une attaque de fragment minuscule se produit lorsque l'intrus envoie un très petit fragment qui oblige une partie de la tête TCP champ dans un second fragment. Si le dispositif de filtrage de la cible n'applique pas la taille des fragments minimum, ce paquet illégale peut alors être transmis via le réseau de la cible.

? Une attaque de fragment de chevauchement est une autre variation sur le zéro-offset modifie cation d'un datagramme. Les paquets suivants écrasent les informations d'adresse de destination du paquet initial, puis le deuxième paquet est passé par le dispositif de filtrage de la cible. Cela peut se produire si le dispositif de filtrage de la cible n'applique pas un fragment décalage minimum pour les fragments avec des décalages de zéro. [7]

2.2.6 Les attaques de Spoofing:

Les intrus utilisent IP Spoofing pour convaincre un système qu'il est en communication avec une entité connue de confiance afin de fournir l'intrus avec un accès au système. Usurpation d'adresse IP implique la modification d'un paquet au niveau de TCP, qui est utilisé pour attaquer les systèmes connectés à Internet qui offrent divers services TCP / IP. L'attaquant envoie un paquet avec une adresse IP source de, un hôte connu de confiance au lieu de sa propre adresse IP source à un hôte cible. L'hôte cible peut accepter le paquet et agir sur elle. [RON10]

2.2.7 Balayage de port:

L'attaque par balayage de port permet à celui-ci de découvrir des ports de communication exploitables. Cette attaque peut être évitée grâce à des systèmes de sécurité comme un pare-feu ou encore un système de détection d'intrusion ((en) IDS : Intrusion System Detection). Les infrastructures du Cloud sont sensibles à ce type d'attaque si celle-ci est effectuée en parallèle. Un système tel que l'IDS analyse une partie du trafic et ne détecte donc pas une attaque par scan de port si celle-ci est effectuée avec différents scanner. Les solutions de sécurité actuelle ne sont pas adaptées pour ce type d'attaque sur une telle infrastructure. [RON10]

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

2.2.8 L'isolation:

Le Cloud Computing introduit le partage de ressources, ce qui peut potentiellement mener à des attaques de type attaque par canal auxiliaire (écoute passive d'informations) ou canal caché (envoi d'informations) entre différentes machines virtuelles évoluant dans le même environnement.

Le problème d'isolation réside dans le fait que l'environnement (machine virtuelle) d'un attaquant peut potentiellement se retrouver sur la même machine physique d'un utilisateur cause que cette dernière héberge de multiples machines virtuelles. Cela lui permet de mettre en place différentes attaques matérielles ou logicielles pour écouter ou perturber les autres machines virtuelles. [YAN10]

2.3 Historique des attaques dans le Cloud:

La plupart des attaques sur le Cloud Computing au cours des dernières années (2014,2015) sont des attaques par déni de service DDOS.

Mais dans les années (2011, 2012,2013) il existe plusieurs attaques le tableau suivant représente historique des attaques dans le Cloud.

Tableau 2.1 Historique des attaques dans le Cloud [7]

23

24

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

2.4 La sécurité d'infrastructure: 2.4.1 La sécurité physique d'un Cloud :

La sécurité physique est rompue avec le modèle du Cloud, à cause de la notion de partage de ressources et de virtualisation. Une machine physique partage ses ressources avec les différentes machines virtuelles qu'elle héberge et ceci indépendamment du client de la machine. Il revient logiquement au fournisseur de choisir ou mettre en place son architecture et quelle sécurité physique est déployée, mais aussi protéger et documenter l'accès au données utilisateur. [RON10]

2.4.2 La virtualisation et la sécurité:

La virtualisation est liée au Cloud Computing. En effet, le fournisseur de Cloud propose à ces clients d'acquérir son propre serveur autrement dit sa propre machine virtuelle. Le fournisseur de Cloud, propose ce service sans prendre connaissance du système d'exploitation installé sur cette machine virtuelle, ni de la configuration de celui ci. Néanmoins, ce dernier propose un système de sécurité comme service (Security as a service) basé sur l'introspection des machines virtuelle. [MIH09]

Une machine virtuelle peut subir une attaque basée sur la modification de la mémoire. L'attaquant peut soit y introduire un Rootkit ou des données dans les zones protégées de celle ci. Quelques implémentations de protection pour la mémoire :

? CoPilot, un noyau de système d'exploitation basé sur le contrôle d'intégrité et la détection des modifications illégales d'un noyau Linux.

? Paladin, un composant qui utilise la virtualisation pour la détection et le contrôle d'une attaque par Rootkit.

? Xenkimono, Un composant qui détecte les violations des règles de sécurité en utilisant l'introspection de la machine virtuelle (VMI). Il implémente un contrôle d'intégrité, pour détecter la modification du code du noyau système.

? SecVisor, un petit hyperviseur qui assure que le code exécuté par le noyau système est approuvé par l'utilisateur. Il utilise pour cela la virtualisation de la mémoire physique. 2.4.3 La sécurité des flux de données:

Une attaque sur les machines virtuelles peut agir sur des flux de données par exemple. C'est pour cela que la mise en place de système de contrôle et d'intégrité doit permettre d'éviter la modification des flux de donnée. Lares est un exemple de composant permettant via l'introduction d'un outil sur le système d'exploitation cible, de vérifier si la machine

25

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

virtuelle est sécurisée. Il utilise pour cela la vérification des règles de sécurité et l'introspection de la machine virtuelle. [RON10]

2.5 La sécurité des données dans le Cloud :

Confidentialité, l'intégrité et la disponibilité sont parfois connues comme la triade CIA de la sécurité du système d'information, et sont des piliers importants de l'assurance de Cloud. [7] 2.5.1 Confidentialité :

Se réfère à la prévention de la divulgation non autorisée intentionnelle ou involontaire d'informations. Confidentialité dans les systèmes de Cloud Computing est liée aux domaines des droits de propriété intellectuelle, canaux cachés, analyse le trafic, cryptage et l'inférence:

? Droits de propriété intellectuelle : La propriété intellectuelle (IP) comprend les inventions, les dessins, et artistiques, musicales et oeuvres littéraires. Les droits de propriété intellectuelle sont protégés par les lois de droits d'auteur, qui protègent les créations de l'esprit, et les brevets, qui sont accordés pour les inventions nouvelles.

? Les canaux cachés : Un canal caché est une voie de communication non autorisée et involontaire qui permet l'échange d'informations, Canaux cachés peuvent être réalisés par le calendrier des messages ou l'utilisation inappropriée des mécanismes de stockage.

? L'analyse du trafic : est une forme de violation de confidentialité qui peut être accompli en analysant le volume, la vitesse, la source et la destination du trafic de message, même si elle est cryptée. L'activité de message accrue et rafales élevés de trafic peuvent indiquer un événement majeur se produit. Contre-mesures à l'analyse du trafic comprennent le maintien d'un taux quasi-constante de trafic et un message déguiser les emplacements source et destination du trafic.

? l'inférence : est généralement associée à la sécurité de base de données. Inférence est la capacité d'une entité d'utiliser et de corréler des informations protégées à un niveau de sécurité pour découvrir des informations qui est protégé à un niveau de sécurité plus élevé. [YAN10]

2.5.2 l'intégrité:

Le concept de l'intégrité des informations de Cloud exige que les trois principes suivants soient remplis:

? Les modifications ne sont pas faites pour les données par le personnel ou des processus non autorisés.

26

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

? Les modifications non autorisées ne sont pas faites à des données par le personnel ou processus autorisés.

? Les données est interne et externe cohérente - en d'autres termes, l'information interne est conforme à la fois entre tous les sous-entités et avec le monde réel, la situation extérieure. 2.5.3 La disponibilité :

Disponibilité assurer l'accès fiable et rapide aux données en nuage ou Cloud Computing ressources par le personnel approprié. Disponibilité garantit que les systèmes fonctionnent correctement en cas de besoin. En outre, ce concept garantit que les services de sécurité du système de Cloud sont en ordre de marche. Une attaque par déni de service est un exemple d'une menace contre la disponibilité. [YAN10]

2.5.4 Les services de chiffrement (Cryptage) :

Le Cryptage de la Cloud Computing est sur les données et les bases de données. Les principales manifestations de cryptage des données sur le mouvement sont:

? Secure Socket Layer (SSL) : Cela a été une procédure d'exploitation standard depuis des années, nous n'allons pas exposer à ce sujet dans une grande longueur, sauf ces quatre points:

1. Mettre en oeuvre SSL chaque fois qu'il ya du trafic confidentielles sur les serveurs Web ou des lignes non garantis.

2. Avoir un moyen systématique de manipulation expiration et la délivrance des certificats SSL de sorte que vous ne avez pas perturbé les opérations commerciales.

3. Mettre en oeuvre le protocole SSL pour le trafic Web de la console d'administration.

4. Assurez-vous d'utiliser les normes SSL acceptées par l'industrie. En cas de doute, reportez-vous aux dernières mises à jour de l'Institut National des Standards and Technologie (NIST). Les orientations actuelles dans NIST SP 800-522 recommande SSL v3. [RON10]

? Les Réseaux privés virtuels (VPN) : Dans le contexte de Cloud privé, VPN pourrait être utilisé pour fournir les fonctionnalités suivantes:

1. Connexion de site à site: Cette fonctionnalité assure deux points de communication. Dans une mise en oeuvre de Cloud privé, vous pourriez avoir à

27

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

autoriser les connexions de partenaires d'affaires pour transférer des données ou offrent des services partagés.

2. L'utilisateur final un accès à distance: Vos utilisateurs finaux pourraient vouloir accéder à votre capacité de Cloud privé de l'extérieur de votre réseau. Utiliser un VPN ou le client IPsec pour sécuriser les communications dans votre réseau. Appliquer posture contrôle sur la connexion VPN de sorte que vous pouvez valider le client à la source.

3. Administrateur VPN: Une passerelle VPN peut être établie pour fournir un point de passage obligé pour tous les accès administratifs dans le Cloud privé.

? Secure Shell (SSH) : est couramment utilisé par les administrateurs pour l'accès distant à la console. Il peut sembler que VPN et SSH sont redondants. Toutefois, si Telnet est autorisée au lieu de SSH, le trafic de la Cloud sera clair. Une session Telnet contenant les informations d'identification d'administrateur peut être reniflée en texte clair. Se débarrasser de Telnet tous ensemble et l'application SSH comme une norme minimale est nécessaire, même avec la superposition des VPN. [RON10]

? Secure File Transfer Protocol (SFTP) : Si il ya des exigences pour transférer des fichiers en toute sécurité vers et depuis votre Cloud privé, se assurer que vous établissez un processus de SFTP:

1. Établir un processus de gestion des utilisateurs d'identifier clairement et l'accès de l'utilisateur de commande.

2. Établir de provisionnement, et les processus de certification de l'utilisateur.

3. Établir des autorisations d'accès appropriées et dossier isolement pour les utilisateurs SFTP.

4. Appliquer nettoyage de données de dossiers SFTP sur une base périodique.

? Transport Layer Security (TLS) : Chiffrement TLS est généralement utilisé pour crypter le trafic SMTP 5 sur deux passerelles de messagerie. Cela pourrait ne pas être spécifique à votre mise en oeuvre de Cloud privé, mais il est traité ici d'être exhaustif. [8]

? Le cryptage de la base de données : le majeur té de base de données telle qu'Oracle et Microsoft SQL ont intégré dans les capacités de cryptage au sein de leurs applications. La méthodologie de cryptage de base de données de premier plan est appelé chiffrement transparent des données (TDE). TDE fournit des systèmes de gestion de base de données avec

5 SMTP : Simple Mail Transfer Protocol

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

la possibilité de crypter l'ensemble de base de données, ou pour seulement crypter certaines colonnes.

? Les Appareils de chiffrement : sont un moyen pour les fonctions cryptographiques à exécuter sur le réseau. La logique de l'application fait un appel de programmation vers le module de chiffrement sur le dispositif pour chiffrer les données avant de les stocker dans la base de données. Voici quelques-uns des facteurs clés à considérer lors de l'utilisation d'un appareil de chiffrement:

1. Performance: dispositifs de cryptage attachés réseau sont des appareils spécialisés construits dans le but d'exécuter des fonctions cryptographiques.

2. Centralisée: L'appareil de chiffrement peut être utilisé par différents locataires sur notre Cloud privé.

3. Impact applications: Ces solutions offrent plusieurs façons d'appeler la fonction de cryptage, il peut être un appel de programmation qui envoie un champ à chiffrer avant le stockage dans la base de données.

4. Les coûts de licence: Ces appareils peuvent être agréés par connecteur, par des fonctions cryptographiques, ou une taxe de l'appareil une fois l'entretien.

? Chiffrement de disque : est une fonction matérielle de cryptage de la totalité du disque au lieu de crypter des fichiers, les volumes ou les espaces table. Ceci est analogue à chiffrement de disque dur déployé au niveau d'ordinateur portable; Toutefois, aux fins de Cloud, nous transposant sa capacité à réseau de stockage (SAN6) et de stockage en réseau (NAS7). Déploiements varient selon le fournisseur. Certains fournisseurs, comme EMC8, intégrer la solution comme un module supplémentaire au sein de la solution de gestion de stockage (figure 2.3).

28

6 SAN : Storage Area Network

7 NAS : Network Attached Storage

8 EMC : Est une entreprise américaine de logiciels et de systèmes de stockage fondée en 1979 à Newton.

29

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

Figure 2.3 : La méthode de Chiffrement d'un disque. [YAN10]

? La mise en oeuvre basée sur un agent est similaire à pré cryptage de disque de démarrage. Fondamentalement, l'agent est chargé dans la machine virtuelle et intercepte la séquence de l'instance virtuelle démarrage. L'agent s'exécute alors une séquence d'authentification de pré-lancement pour valider et appliquer le domaine de cryptage approprié pour cette instance virtuelle. Essentiellement, le domaine de cryptage peut agir comme un mécanisme de segmentation sur votre Cloud privé pour vos unités ou des environnements commerciaux conformité lourd. En enveloppant un domaine de cryptage autour de ces systèmes, vous pouvez répondre à l'exigence de crypter les données pour l'ensemble de la pile. Comme pour les autres technologies de cryptage, tout crypter les données seule n'est pas suffisante pour répondre à la plupart des exigences de conformité. Assurez-vous que le fournisseur peut répondre aux exigences de gestion des clés de chiffrement et de l'ensemble de la. En cas de doute, valider avec notre vérificateur ou évaluateur de sécurité qualifié.

Tenez compte des facteurs suivants lors de l'examen de cryptage instance virtuelle à base d'agents:

1. les mécanismes de gestion des clés pour la solution de cryptage.

2. Assurez-vous que les clés sont distribuées en toute sécurité lors de l'exécution.

3. Veiller à ce que des clés de cryptage sont protégées lorsqu'ils sont stockés.

4. Valider contrôle d'accès pour utilisation de la clé.

5. Assurer la vérifiabilité et la traçabilité de l'utilisation des clés.

6. Comprendre les fonctions clés rotation, de sauvegarde et de récupération.

30

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

Certains fournisseurs ont la possibilité d'étendre les modules de cryptage pour les deux Cloud privés et publics. L'aspect basé sur un agent de cette solution facilite un déploiement plus facile car il est dépendant le moins possible sur l'extrémité arrière de Cloud public. La gestion des clés peut être retenu à l'intérieur de l'entreprise avec un appareil de distribution de clé qui se trouve dans le Cloud public. [YAN10]

2.6 Le contrôle de sécurité d'un Cloud :

L'objectif des contrôles de sécurité de nuage est de réduire les vulnérabilités à un niveau tolérable et de minimiser les effets d'une attaque. Pour ce faire, une organisation doit déterminer quel impact pourrait avoir une attaque, et la probabilité de perte. Exemples de perte sont compromission d'informations sensibles, malversations financières, perte de réputation, et la destruction physique des ressources. Le processus d'analyse différents scénarios de menace et de produire une valeur représentative de la perte potentielle estimée est connu comme une analyse des risques (RA). Contrôles fonctionnent comme des contre-mesures pour les vulnérabilités. Il existe plusieurs types de commandes, mais ils sont généralement classés dans l'un des quatre types suivants: [8]

2.6.1 Contrôles dissuasifs :

Réduire la probabilité d'une attaque délibérée. 2.6.2 Contrôles préventifs :

Protéger les vulnérabilités et faire une attaque infructueuse ou réduire son impact. Contrôles préventifs inhibent tentatives de violation de la politique de sécurité.

2.6.3 Contrôles correctives :

Réduire l'effet d'une attaque.

2.6.4 Les contrôles de détection :

Découvrez les attaques et déclenchent des contrôles préventives ou correctives. Les contrôles de détection avertissent des violations ou tentatives de violations de la politique de sécurité et comprennent des contrôles que les systèmes de détection d'intrusion, les politiques organisationnelles, des caméras vidéo et des détecteurs de mouvement.

31

Chapitre 2 - Les mécanismes de sécurité d'un Cloud Computing

2.7 Conclusion :

La sécurité et la conformité émergent systématiquement comme les principales préoccupations des responsables informatiques lorsqu'il est question de Cloud Computing, des préoccupations encore plus accentuées lorsqu'il s'agit de Cloud public. La sécurité permet de garantir la confidentialité, l'intégrité, l'authenticité et la disponibilité des informations.

33

Chapitre 3 - La mise en place d'OpenStack

Chapitre 3 :

LA MISE EN PLACE D'OPENSTACK

3.1 Introduction :

Le Cloud Computing représente un nouveau défi dans le monde informatique. Plusieurs solutions sont proposées : des solutions propriétaires et des solutions open sources. Dans ce chapitre, nous allons présenter OPENSTACK une solution open source.

34

Chapitre 3 - La mise en place d'OpenStack

3.2 Présentation d'Openstack: 3.2.1. Historique :

Créé en juillet 2010 par la NASA et l'hébergeur américain Rackspace, OpenStack est une offre d'IaaS 100% open-source encore en développement qui a livré son code source récemment et qui permet aux sociétés de développer leurs propres solutions d'infrastructure du Cloud Computing.

Plus que trente fournisseurs soutiennent ce projet tels que: AMD, Intel, Dell et Citrix. OpenStack devrait également être intégré dans les prochaines versions d'Ubuntu comme c'est le cas pour Eucalyptus. Il comprend le logiciel OpenStackCompute pour la création automatique et la gestion de grands groupes de serveurs privés virtuels et le logiciel OpenStack Stockage pour optimiser la gestion de stockage, répliquer le contenu sur différents serveurs et le mettre à disposition pour une utilisation massive des données [9].

3.2.2. Définition :

OpenStack est un logiciel libre qui permet la construction de Cloud privé et public de type IaaS sous licence Apache qui a pour but d'aider les organisations à mettre en oeuvre un système de serveur et de stockage virtuel.

Il s'installe sur un système d'exploitation libre comme Ubuntu ou Debian et se configure entièrement en ligne de commande. C'est un système robuste et qui a fait ses preuves auprès des professionnels du domaine.

OpenStack joue le rôle d'une couche de management de Cloud qui assure la communication entre la couche physique ou se trouve des serveurs physiques occupés par des hyperviseurs différents (Vmware ESX, Citrix Xen, KVM, qemu...) et la couche applicative (Applications, utilisateurs, administrateurs...) [10].

Chapitre 3 - La mise en place d'OpenStack

Figure 3.1: Le rôle d'OpenStack [9]

OpenStack a libéré plusieurs versions comme indiqué dans le tableau ci- dessous:

Tableau 3.1 : Les versions d'OpenStack [9].

35

36

Chapitre 3 - La mise en place d'OpenStack

OpenStack est composé d'une série de logiciels et de projets au code source libre qui sont maintenus par la communauté incluant: OpenStackCompute (nommé Nova), OpenStack Object Storage (nommé Swift), et OpenStack Image Service (nommé Glance).

3.3 Architecture d'Openstack :

Elle s'articule autour de trois composants: 3.3.1. OpenStackCompute (projet Nova) :

Compute sert à la gestion de larges réseaux de machines virtuelles et d'une architecture redondante et évolutive. Elle fournit une interface d'administration et l'API1 nécessaire à l'orchestration du Cloud. Elle inclue : les gestions des instances serveurs, la gestion du réseau et les contrôle d'accès.

3.3.2. OpenStack Object Storage (projet Swift) :

Object Storage sert à la création d'espace de stockage redondant et évolutif pour le stockage de plusieurs pétabytes de données. Il ne s'agit pas réellement d'un système de fichier mais est surtout conçut pour le stockage à long terme de gros volumes. Il utilise une architecture distribuée offrant plusieurs points d'accès pour éviter les SPOF2.

3.3.3. OpenStack Imaging Service (projet Glance) :

Imaging Service fournit les services de stockages, de découvertes, d'enregistrements et de distributions pour les images disques de machines virtuelles. Il fournit également une API compatible REST permettant d'effectuer des requêtes pour obtenir des informations sur les images hébergées par les différents magasins de stockages. [10]

3.4 Installation d'Openstack :

Cette installation nécessite une configuration matérielle et des outils logiciels et des prérequis bien spécifiques.

Comme c'est une solution libre, donc son installation a été conduite sous Ubuntu LTS 14.04 /64 bits.

Nous avons dû créer une machine avec les paramètres suivants :

? Nom: Ubuntu 14.04 - OpenStack.

? Type de système d'exploitation: Linux.

? Version: Ubuntu 14.04 LTS Server 64bits.

? Mémoire (RAM): 1.400 GB.

? Processeur(CPU ) :Intel core I3 -1.7GHZ

1 API : Application Programming Interface.

2 SPOF : Single Point Of Failure.

37

Chapitre 3 - La mise en place d'OpenStack

Après avoir installé Ubuntu LTS 14.04 considéré comme notre serveur, il va falloir installer OpenStack.

Il existe plusieurs méthodes pour l'installer, dont :

? DevStack.

? Installation via des scripts. ? Depuis les packages.

Lors de notre déploiement nous avons choisi une installation depuis les packages.

1. Mettre à jour le système :

Faire une mise à jour du système d'exploitation, en l'occurrence Ubuntu.

2. téléchargement les package nécessaire :

C'est-à-dire télécharger les package nécessaire pour installer OpenStack.

3. Installation de MySQL :

Installation de la base de données MySQL.

Figure 3.2: Installation de MySql

4. Installation de RbbitMQ :

Installation du service RbbitMQ qui permet aux composants OpenStack de communiquer entre eux.

38

Chapitre 3 - La mise en place d'OpenStack

Figure 3.3: Installation de RbbitMQ. 5. Installation de Keystone:

Le composant Keystone est chargé de la gestion des utilisateurs et des services.

39

Chapitre 3 - La mise en place d'OpenStack

Figure 3.4: Installation de Keystone.

6. Installation de Glance:

Ce service est chargé de distribuer les images de disque dur système utilisées par les machines virtuelles.

Figure 3.5 : Installation de Glance.

40

Chapitre 3 - La mise en place d'OpenStack

7. Installation de Quantum:

Figure 3.6: Installation de Quantum.

8. Installation de KVM:

Figure 3.7: Installation de KVM.

9. Installation de Nova:

Le service Nova permet la gestion des instances des machines virtuelles.

41

Chapitre 3 - La mise en place d'OpenStack

Figure 3.8: Installation de Nova.

10. Installation de Cinder:

Figure 3.9: Installation de Cinder.

11. Installation d'Horizon:

Horizon permet de simplifier l'administration du serveur et des projets. L'accès se fait à partir d'un navigateur web pointant à l'adresse du serveur.

Les différents services doivent être installés et configurés avant de pouvoir les utiliser. Une grande partie des commandes est alors à portée d'un clic de souris.

42

Chapitre 3 - La mise en place d'OpenStack

Figure 3.10: Installation d'Horizon.

Pour accéder à l'interface d'administration:

https://192.168.1.1

User : admin

Password : moussa010203

Figure 3.11: La page log in d'openstck.

3.5 Création d'un espace Cloud:

Apres avoir accédé à l'interface d'administration d'OpenStack, on peut maintenant créer un projet qui contient les ressources (CPU, RAM, réseau et espace de stockage). On va créer aussi un compte utilisateur, qu'ils vont utiliser pour accéder à leur espace Cloud.

43

Chapitre 3 - La mise en place d'OpenStack

3.5.1. Création de projet et manipulation de quotas:

Dans l'interface d'administration, on va créer un nouveau projet.Les deux figures ci-dessous montrent un aperçu de cette première étape:

Figure 3.12: Création d'un projet. On remplit les champs comme montré:

Figure 3.13: Informations nécessaires pour un projet.

L'onglet « Quota » nous permet de définir les ressources, comme montré dans la figure suivant puis on clique sur le bouton « Create Project » :

44

Chapitre 3 - La mise en place d'OpenStack

Figure 3.14: Ressources nécessaire pour le projet. 3.5.2. Création d'un utilisateur:

On clique sur « User », puis sur « Create User » pour créer un utilisateur qui sera membre de ce projet, il peut exploiter et manipuler les ressources (quotas) qu'on lui a affecté seulement.

On remplit les champs comme montrés ci-dessous, puis on valide.

45

Chapitre 3 - La mise en place d'OpenStack

Figure 3.15: Création d'un utilisateur.

Maintenant pour accéder et exploiter les ressources affectées, on ferme la session admin, et on rentre avec l'utilisateur membre de ce projet.

Dans la page d'accueil, on peut voir les ressources affectées, et leur taux d'utilisation. On peut aussi exploiter ces ressources.

La figure 3.15 représente la page d'accueil pour les utilisateurs de projet.

46

Chapitre 3 - La mise en place d'OpenStack

Figure 3.15: Page d'accueil pour les membres de projet.

47

Chapitre 3 - La mise en place d'OpenStack

3.5 Conclusion:

Dans ce chapitre, on a présenté les outils logiciels et matériels ainsi que toutes les étapes et la démarche à suivre pour installer les différents composants d'OpenStack. Bien que l'installation semble facile à première vue, mais on a beaucoup cherché avant de la finaliser avec succès, car à chaque fois un problème survenait, qu'il fallait résoudre pour passer à l'étape suivante. En plus du fait que certaines informations ne sont pas évidentes à trouver, et que comme on a pu le constater, il y a plusieurs composants à installer, chacun ayant un rôle particulier, qu'il est bon de connaitre, pour mener à bien cette laborieuse installation et configuration.

49

Chapitre 4 - La sécurité dans l'OpenStack

CHAPITRE 4 :

LA SECURITE DANS L'OPENSTACK

4.1 Introduction :

Dans ce chapitre nous allons présenter une étude sur la sécurité dans l'OpenStack, et puis en a explique comment utilise les outils de l'analyse les vulnérabilités et les outils de l'attaque d'un Cloud.

50

Chapitre 4 - La sécurité dans l'OpenStack

4.2 Création d'un Groupe de sécurité:

Les questions de sécurité, au sein d'OpenStack sont de la responsabilité du projet de sécurité. Le projet de sécurité est un effort horizontal au sein d'OpenStack qui est composé de ce qui était auparavant appelé le Groupe de sécurité OpenStack. L'équipe de gestion des vulnérabilités est également une partie du projet de sécurité.

Pour créer et configurer un groupe de sécurité on suit les étapes suivantes :

? Cliquez sur l'onglet Accès et Sécurité et sélectionnez Groupes de sécurité, et puis cliquez sur le bouton Créer groupe de sécurité.

Figure 4.1: L'interface de la page Access & Security.

? Entrez le nom de votre nouveau groupe de sécurité et de la description, Cliquez sur le bouton Créer groupe de sécurité.

Figure 4.2: L'interface de la fenêtre Create Security Groupe.

? Après cela, nous pouvons voir le nouveau groupe de sécurité dans la liste des groupes.

51

Chapitre 4 - La sécurité dans l'OpenStack

Figure 4.3: La liste des groupes de sécurité.

4.2.1. La rédaction des règles d'un groupe :

Appuyez sur le bouton Modifier les règles à côté du groupe de sécurité que vous souhaitez ajouter des règles / modifier. Nous allons utiliser le TicCloudsec Groupe de sécurité, d'abord ajouter une règle pour permettre les connexions SSH1 entrantes sur le port 22.

Figure 4.4: L'interface de la page pour ajouter des règles.

Maintenant, l'accès ssh est activé provenant de l'adresse IP spécifiée à toutes les machines virtuelles qui ont ce groupe de sécurité associé avec elles.

1 SSH : Secure Shell un protocole de communication sécurisé.

52

Chapitre 4 - La sécurité dans l'OpenStack

La liste de tous les règles qui ajouter.

Figure 4.5: La liste des règles.

Ensuite, nous avons à générer une paire de clés qui seront utilisés pour authentifier les utilisateurs dans les machines virtuelles. Cliquez sur l'onglet "paires de clés" sur "l'accès et la sécurité" et cliquez sur "Créer une paire de clés".

Figure 4.6: L'interface de création le paire de clés.

Téléchargez et enregistrez le fichier de clé. Il sera utilisé pour se connecter à des machines virtuelles à partir de l'extérieur.

53

Chapitre 4 - La sécurité dans l'OpenStack

Figure 4.7: La fenêtre de téléchargement le fichier de clé.

4.2.2. La création des instances :

Une instance est une machine virtuelle que OpenStack dispose sur un noeud de calcul.

Maintenant, nous pouvons créer une instance en utilisant le groupe de sécurité et la paire de clés que nous avons créés. Cliquez sur le lien "Instances" sous l'onglet "Project" et cliquez sur "Lancer instance".

54

Chapitre 4 - La sécurité dans l'OpenStack

Figure 4.8: L'interface de création des instances.

Dans l'interface utilisateur, vous pouvez configurer l'exemple en fournissant un nom, taille, etc.... sous l'onglet "Détails".

Sous l'onglet "Accès et Sécurité" nous pouvons choisir la paire de clés et le groupe de sécurité que nous créons ci-dessus.

Figure 4.9: L'interface de l'ajout de la clé et du groupe.

55

Chapitre 4 - La sécurité dans l'OpenStack

Après avoir configuré l'instance, cliquez sur "Lancer". Puis attendre l'instance entre un état "Running".

Figure 4.10: La liste des instances.

4.2.3. Une vue d'ensemble sur le système :

Dans la figure 4.11 une vue d'ensemble "overview" sur les ressources utilisées dans ce système.

Figure 4.11: Une vue d'ensemble sur le système.

56

Chapitre 4 - La sécurité dans l'OpenStack

4.3 Les scanneurs des vulnérabilités:

Un scanneur de vulnérabilité est un programme conçu pour identifier des vulnérabilités dans une application, un système d'exploitation, ou un réseau,cloud.

Les scanneurs de vulnérabilité peuvent être utilisés dans des objectifs licites ou illicites :

· objectifs licites : les experts en sécurité informatique des entreprises utilisent les scanneurs de vulnérabilité pour trouver les failles de sécurité des systèmes informatiques et des systèmes de communications de leurs entreprises dans le but de les corriger avant que les pirates informatiques ne les exploitent ;

· objectifs illicites : les pirates informatiques utilisent les mêmes équipements pour trouver les failles dans les systèmes des entreprises pour les exploiter à leur avantage. Il existe plusieurs programmes :

· Nexpose, un scanneur de vulnérabilité de Rapid7 (propriétaire de Metasploit).

· Nessus.

· OpenVAS, un scanneur de vulnérabilité libre.

· Snort, un système de détection d'intrusion.

· Nmap, un scanneur de ports.

Nous allons présenter une petite explication sur le meilleur scanneur dans ce chapitre (Nessus, Nmap).

4.3.1. Nessus :

Nessus est un outil de sécurité informatique. Il signale les faiblesses potentielles ou avérées sur les machines testées. Ceci inclut, entre autres :

· Les services vulnérables à des attaques permettant la prise de contrôle de la machine, l'accès à des informations sensibles (lecture de fichiers confidentiels par exemple), des dénis de service.

· Les fautes de configuration (relais de messagerie ouvert par exemple)

· Les patchs de sécurité non appliqués, que les failles corrigées soient exploitables ou non dans la configuration testée.

· Les mots de passe par défaut, quelques mots de passe communs, et l'absence de mots de passe sur certains comptes systèmes. Nessus peut aussi appeler le programme externe Hydra pour attaquer les mots de passe à l'aide d'un dictionnaire.

· Les services jugés faibles (on suggère par exemple de remplacer Telnet par SSH).

· Les dénis de service contre la pile TCP/IP .

· Scan les vulnérables des Cloud Computing.[12]

57

Chapitre 4 - La sécurité dans l'OpenStack

Pour utiliser Nessus suivre les étapes suivantes :

Une fois Nessus installé et tous les plugins installés, lancez cette commande via le terminal :

/etc/init.d/nessusd start

Nessus est maintenant lancé. Rendez vous à l'adresse http://127.0.0.1:8834 ou http://votremachine:8834 pour vous connecter à Nessus. Laissez-le s'initialiser, puis vous serez redirigés vers la page de login où vous devrez vous identifier.

Figure 4.12: La page login sur Nessus.

Une fois identifié, vous serez amenés sur la page d'accueil, où il faudra en premier temps créer une nouvelle Policy. Cliquez sur le bouton en haut à gauche et cliquez sur Policy.et puis choisir le type de scan puis créez en une nouvelle avec les paramètres par défauts.

58

Chapitre 4 - La sécurité dans l'OpenStack

Figure 4.13: La page de la nouvelle Policy.

Figure 4.14:La configuration de Policy.

59

Chapitre 4 - La sécurité dans l'OpenStack

Pour effectuer un scan, cliquez sur New Scan et indiquez le nom du scan, la description, la police (celle que nous avons créé tout à l'heure) et la liste des hôtes à scanner.

Ici, mettez l'adresse IPv4 de la Target, pour nous ce sera 192.168.1.1 Le scan devrait se lancer. Attendez un moment, le temps que Nessus scan la machine(Cloud), puis une fois que Nessus vous indiquera que le scan est terminé, cliquez sur le scan pour afficher le résultat du scan.

Figure 4.15: La configuration de scan.

4.3.2. Nmap :

Nmap est un scanner de ports libre créé par Fyodor et distribué par Insecure.org. Il est conçu pour détecter les ports ouverts, identifier les services hébergés et obtenir des informations sur le système d'exploitation d'une machine distante,

Ce logiciel est devenu une référence pour les administrateurs réseaux car l'audit des résultats de Nmap fournit des indications sur la sécurité d'un réseau. Il est disponible sous Windows, Mac OS X, Linux, BSD et Solaris. [12]

On utilise le Nmap parce que le OpenStack est installé sur une machine Virtual, donc La figure 4.15 montré le scan de Nmap :

60

Chapitre 4 - La sécurité dans l'OpenStack

Figure 4.16: Nmap.

4.4 Les techniques d'attaque :

Il existe deux types d'attaques :

? Attaques passives : elles ne modifient pas le comportement du système, et peuvent ainsi passer inaperçues.

? Attaques actives : elles modifient le contenu des informations du système ou le comportement du système. Elles sont en général plus critiques que les passives. 4.4.1. Footprinting :

Le Footprinting est la technique consistant à récolter des informations sur des systèmes informatiques et toutes les entités auxquelles ils sont rattachés. Cela est effectué par le biais de plusieurs techniques, Dans le jargon de la sécurité informatique, le Footprinting se réfère généralement aux étapes précédant une attaque. Pour faire du Footprinting, nous allons utiliser :

? Maltego : est une application de l'intelligence de la source et la criminalistique ouverte. Il vous offrira une manière facile de la collecte des informations ainsi que la représentation de ces informations dans un format facile à comprendre. [14] Exemple qui nous présente sur le cloud dropbox.com, dans la figure 4.16.

Chapitre 4 - La sécurité dans l'OpenStack

Figure 4.16 : Maltego Footprinting.

4.4.2. DOS Le déni de service:

Les attaques par déni de service ont pour seul but d'empêcher le bon fonctionnement d'un cloud et non de récupérer des informations.

Exemple : Slowloris est un script écrit en Perl utilise une attaque de type DoS (attaque par déni de service), il affecte en particulier les serveurs Apache 1.x et 2.x qui représentent 67% des serveurs sur le net.

Figure 4.17 : Utilisation de Slowloris.

61

62

Chapitre 4 - La sécurité dans l'OpenStack

? La protection contre les attaques par déni de service :

La Protection contre ces attaques est d'organiser les communications des paquets et de mettre des règles strictes pour réglementer les télécommunications et les applications de réception et de traitement, et reste l'expérience de l'attaquant de se débarrasser de ces règles et, éventuellement, ainsi que d'étudier le mur et peut-être trouver que vous oubliez la nature des colis, qui fait prendre des mesures d'attaque par déni des services .

Les outils les plus importants pour aider à protéger contre des attaques par déni de service :

1. CSF firewall (ConfigServer Services) : Des systèmes les plus puissants, les pare-feux orientés vers des serveurs Linux, ce firewall des chiffres les tables IP pour les systèmes Linux exécutant et les rend très faciles.

2. service Cloudeflare : Est un service qui permet de fournir une bonne protection pour Cloud Computing de la plupart des attaques, notamment les inondations, car il aide les visiteurs à naviguer sur le site avec toute la légèreté et la pièce en réduisant le nombre de demandes adressées, Ceci est grâce à son réseau mondial de l'intelligente distribuée dans le monde entier. [15]

63

Chapitre 4 - La sécurité dans l'OpenStack

4.5 Conclusion :

Dans cette dernière partie de notre projet, nous avons présentés la sécurité dans l'OpenStack, et les scanners des vulnérabilités utilisées actuellement dans Cloud Computing.

64

Conclusion générale

CONCLUSION GENERALE

Au cours de ce mémoire, nous avons fait une étude sur la sécurité d'un Cloud Computing, on a commencé par donner les définitions de base nécessaires à la compréhension du Cloud, son architecture et ses différents types (privée, public, hybride) et services (IaaS, PaaS, SaaS), et puis on a présenté et détaillé les différentes mécanise de sécurité d'un Cloud Computing.

Le système qui `on a utilisé dans cette projet qui s'appel OpenStack, Nous avons fait par la suite l'installation et la configuration d'OpenStack qui a nécessité des prérequis matériels et logiciels.

La configuration de notre solution a été réalisée sous le système d'exploitation Ubuntu 14.04 server qui a été installé sur une machine virtuelle, le logiciel de virtualisation utilisé est VirtualBox.

Le dernier point nous étions dans ce mémoire est fait un test de la sécurité de ce système `OpenStack'.

Finalement, et pour clore ce mémoire, nous espérons que les objectifs fixés au départ ont été en grande partie réalisés et que les résultats obtenus trouveront un bon écho.

BIBLIOGRAPHIE

[VIN10]: Vincent Kherbache, Mohamed Moussalih, Yannick Kuhn, Allan Lefort, Cloud Computing, Edition Eucalyptus, 2010.

[LIN13]: Lindsay Lawrence, Mastering Cloud Computing foundations and applications programming, Edition Elsevier, 2013.

[BAR11]: Barrie Sosinsky, Cloud Computing Bible, Edition Wiley Publishing, 2011.

[GEO09] : George Reese, Cloud Application Architectures, Edition O'Reilly Media, 2009. [ALA11] : Alain-B TCHANA, système d'administration autonome adaptable : application au Cloud, L'institut national polytechnique de Toulouse, 2011.

[DAM12]: Damien Riquet, Gilles Grimaud et Michaël Hauspie, Étude de l'impact des attaques distribuées et multi-chemins sur les solutions de sécurité réseaux, 9ème Conférence Internationale Jeunes Chercheurs, Lille, France, Octobre 2012.

[LEE12]: Lee newcombe, Securing Cloud Services, Edition ITGP, 2012.

[RON10]: Ronald L, Krutz et Russell dean vines, Cloud Security: A Comprehensive Guide to Secure Cloud Computing, Edition Wiley Publishing, 2010.

[YAN10]:Yanpei Chen, Vern Paxson et Randy H. Katz, What's New About Cloud Computing Security , Edition University of California, 2010.

[MIH09]: Mihai Christodorescu, Reiner Sailer, Douglas Lee Schales, Daniele Sgandurra et Diego Zamboni, « Cloud Security Is Not (Just) Virtualization Security », Edition ACM, 2009.

WEB GRAPHIE

[1] www.nist.org , visite le 02/02/2015.

[2] www.cisco.com , visite le 09/03/2015.

[3] www.cigref.fr , visite le 09/03/2015.

[4] azure.microsoft.com, visite le 15/04/2015.

[5] www.clusif.asso.fr, visite le15/04/2015.

[6] www.cloudmagazine.fr, visite le 25/04/2015.

[7] www.securitecloud.com, visite le 25/04/2015.

[8] www.openstack.org, visite le 03/05/2015.

[9] www.inzeCloud.fr, visite le 03/05/2015.

[10] www.techterms.com , visite le 03/05/2015.

[11] www.futura-sciences.com , visite le 03/05/2015.

[12] www.nessus.com , visite le 20/05/2015.

[13] www.Insecure.org, visite le 20/05/2015.

[14] www.paterva.com, visite le 20/05/2015.

[15] www.isecur1ty.org, visite le 28/05/2015.

sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf

Annexe

Annexe:

Les étapes d'installation d'OpenStack sont comme suit:

1. Configuration des cartes réseaux

On modifie la configuration des interfaces réseaux dans le fichier: /etc/network/interfaces:

# Pour exposer l'API OpenStack à l'Internet auto eth1

iface eth1 inet static

address

192.168.1.1

netmask

255.255.255.0

gateway

192.168.1.254

 

dns-nameservers 8.8.8.8

# Pour gérer OpenStack à partir de réseau local

auto eth0

iface eth0 inet static

address 192.168.1.2

netmask 255.255.255.0

Après avoir introduire les adresses dans le terminal du Linux, on fait redémarer le service de réseaux avec la commande:

service networking restart

2. Préparation de la machine virtuelle en ajoutant les dépôts d'installation d'OpenStack :

apt-get install ubuntu-Cloud-keyring python-software-properties software-properties-common python-keyring

echo deb http://ubuntu-Cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.list

 

3. Mettre à jour le système:

apt-get update apt-get upgrade

apt-get dist-upgrade

 

4. Installation de MySQL et RabbitMQ : Installation des paquets MySQL:

apt-get install -y mysql-server python-mysqldb

Pendant l'installation de MySQL, le système nous demande de taper un mot de passe qui sera utilisé pour le compte root de MySQL.

On change le monde d'ecoute de service MySQL :

Annexe

Puis on redémarre le service MySQL pour appliquer ces modifications:

service mysql restart

Installation de RabbitMQ Server: L'installation se fait par la commande:

apt-get install rabbitmq-server

Installation de service NTP :

Figure A1.1: Installation de NTP.

Installation de utilitaire bridge réseaux et VLAN:

Figure A1.2: Installation d'autres services.

Nano creds

Annexe

Activation de l'IP Forwarding:

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/'

/etc/sysctl.conf

sysctl net.ipv4.ip_forward=1

5. Installation de Keystone: Installation des paquets Keystone:

apt-get install -y keystone

Vérification du service :

service keystone status

Création d'une base de données MySQL pour Keystone:

mysql -u root -p

create database keystone;

GRANT ALL ON keystone.* TO 'keystoneUser'@'%' IDENTIFIED BY

'keystonePass';

quit;

Modification du fichier (/etc/keystone/keystone.conf): Changement de la ligne de connexion [sql] par:

connection = mysql://keystoneUser:keystonePass@192.168.1.1/keystone

Redémarrage de service:

service keystone restart

Synchronisation de la base de données:

keystone-manage db_sync

Remplissage de la base de données en utilisant deux scripts téléchargés de l'Internet

:

Wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/master/KeystoneScripts/keystone_basic.sh

wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-
Guide/master/KeystoneScripts/keystone_endpoints_basic.sh

chmod +x keystone_basic.sh

chmod +x keystone_endpoints_basic.sh

Maintenant on crée un fichier qui contient les informations d'authentification sur Keystone:

Annexe

Et on met les informations suivantes dans ce fichier:

export OS_TENANT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=mous010203

export OS_AUTH_URL= http://192.168.100.1:5000/v2.0/

Puis on charge le fichier avec:

source creds

Et on exécute les deux scripts:

./keystone_basic.sh

./keystone_endpoints_basic.sh

Teste de bon fonctionnement de Keystone, on utilise la commande suivante:

keystone user-list

6. Installation de Glance: Installation des paquets Glance:

apt-get install -y glance

Vérification de l'état des services Glance:

ervice glance-api status

service glance-registry status

Création d'une base de donnés:

mysql -u root -p

create database glance ;

GRANT ALL ON glance.* TO 'glanceUser'@'%' IDENTIFIED BY 'glancePass'; quit ;

Modification du contenu du fichier (/etc/glance/glance-api paste.ini) par:

[filter:authtoken]

paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory

delay_auth_decision = true

auth_host = 192.168.1.1

auth_port = 35357

auth_protocol = http

admin_tenant_name = service

admin_user = glance

admin_password = service_pass

Modification du contenu du fichier (/etc/glance/glance-registry-paste.ini) par:

[filter:authtoken]

paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory

auth_host = 192.168.1.1

auth_port = 35357

auth_protocol = http

admin_tenant_name = service

admin_user = glance

admin_password = service_pass

Annexe

Modification du contenu du fichier (/etc/glance/glance-api.conf) par:

sql_connection = mysql://glanceUser:glancePass@192.168.1.1/glance [paste_deploy]

flavor = keystone

Modification du contenu du fichier (/etc/glance/glance-registry.conf) par:

sql_connection = mysql://glanceUser:glancePass@192.168.1.1/glance [paste_deploy]

flavor = keystone

Redémarrage des services Glance-api et Glance-registry:

service glance-api restart; service glance-registry restart

Synchronisation de la base de données Glance:

glance-manage db_sync

Redémarrage des services une autre fois pour appliquer les modifications:

service glance-registry restart; service glance-api restart

Teste du Glance, en téléchargeant l'image de Cirros à partir de l'Internet vers notre serveur OpenStack:

glance image-create --name Cirros --is-public true --container-format

bare --disk-format qcow2 --location
https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img

On liste les images disponibles sur le serveur OpenStack:

glance image-list

7. Installation de Quantum: Installation des paquets Quantum:

apt-get install -y quantum-server quantum-plugin-linuxbridge quantum-plugin-linuxbridge-agent dnsmasq quantum-dhcp-agent quantum-l3-agent

Création d'une base de données pour Quantum:

Mysql -u root -p

Create database quantum;

GRANT ALL ON quantum.* TO 'quantumUser'@'%' IDENTIFIED BY

'quantumPass';

quit;

Annexe

Vérification si tous les services Quantum marchent très bien:

cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i status;

done

Modification du contenu de « /etc/quantum/quantum.conf » par:

core_plugin = quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBri-dgePluginV2

Modification du contenu de « /etc/quantum/api-paste.ini » par:

[filter:authtoken]

paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory

auth_host = 192.168.1.1

auth_port = 35357

auth_protocol = http

admin_tenant_name = service

admin_user = quantum

admin_password = service_pass

Modification de la configuration du fichier plugin LinuxBridge

« /etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini » par:

# Sous la section [DATABASE]

sql_connection = mysql://quantumUser:quantumPass@192.168.1.1/quantum

# Sous la section [LINUX_BRIDGE]

physical_interface_mappings = physnet1:eth1

# Sous la section [VLANS]

tenant_network_type = vlan

network_vlan_ranges = physnet1:1000:2999

Modification du contenu de fichier « /etc/quantum/l3_agent.ini » par:

interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver

Modification du contenu de fichier « /etc/quantum/quantum.conf » par:

[keystone_authtoken]

auth_host = 192.168.1.1

auth_port = 35357

auth_protocol = http

admin_tenant_name = service

admin_user = quantum

admin_password = service_pass

signing_dir = /var/lib/quantum/keystone-signing

apt-get install -y nova-api nova-cert novnc nova-consoleauth nova-scheduler nova-novncproxy nova-doc nova-conductor nova-compute-kvm

Annexe

Modification du contenu de fichier « /etc/quantum/dhcp_agent.ini » par:

interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver

Modification du contenu de fichier « /etc/quantum/metadata_agent.ini » par:

# The Quantum user information for accessing the Quantum API.

auth_url = http://192.168.1.1:35357/v2.0

auth_region = RegionOne

admin_tenant_name = service

admin_user = quantum

admin_password = service_pass

# IP address used by Nova metadata server nova_metadata_ip = 192.168.1.1

# TCP Port used by Nova metadata server nova_metadata_port = 8775

metadata_proxy_shared_secret = helloOpenStack

Redémarrage de tous les services Quantum:

cd /etc/init.d/;

for i in $( ls quantum-* ); do sudo service $i restart; done service dnsmasq restart

8. Installation de KVM:

Installation des paquets KVM :

apt-get install -y kvm libvirt-bin pm-utils

Modification de la liste cgroup_device_acl dans le fichier « /etc/libvirt/qemu.conf » par:

cgroup_device_acl = [

"/dev/null", "/dev/full", "/dev/zero", "/dev/random", "/dev/urandom", "/dev/ptmx", "/dev/kvm", "/dev/kqemu", "/dev/rtc", "/dev/hpet","/dev/net/tun" ]

 

Suppression du bridge réseau par défaut:

virsh net-destroy default virsh net-undefine default

 

9. Installation de Nova:

Installation des paquets Nova :

Annexe

Vérification de l'état de tous les services Nova:

cd /etc/init.d/;

for i in $( ls nova-* ); do service $i status; cd; done

Création d'une base de données pour Nova:

mysql -u root -p

CREATE DATABASE nova;

GRANT ALL ON nova.* TO 'novaUser'@'%' IDENTIFIED BY 'novaPass'; quit;

Modification de la section « authtoken » dans le fichier « /etc/nova/api- paste.ini

» par:

[filter:authtoken]

paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory

auth_host = 192.168.1.1

auth_port = 35357

auth_protocol = http

admin_tenant_name = service

admin_user = nova

admin_password = service_pass

signing_dirname = /tmp/keystone-signing-nova

# Workaround for https://bugs.launchpad.net/nova/+bug/1154809

auth_version = v2.0

Modification du fichier « /etc/nova/nova-compute.conf »:

[DEFAULT]

libvirt_type=qemu

compute_driver=libvirt.LibvirtDriver

libvirt_vif_type=ethernet

libvirt_vif_driver=nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver

Synchronisation de la base de données:

nova-manage db sync

Redémarrage des services Nova:

cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart;

done

Vérification de la sortie de la commande suivante, elle doit afficher des smileys, qui indiquent que tout marchent bien:

nova-manage service list

Annexe

10. Installation de Cinder:

Installation des paquets Cinder :

apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms

Configuration des services ISCSI:

sed -i 's/false/true/g'/etc/default/iscsitarget

Redémarrage des services:

service iscsitarget start service open-iscsi start

Création d'une base de données pour Cinder;

mysql -u root -p

CREATE DATABASE cinder;

GRANT ALL ON cinder.* TO 'cinderUser'@'%' IDENTIFIED BY 'cinderPass'; quit;

Configuration « /etc/cinder/api-paste.ini » comme montré ci-dessous:

[filter:authtoken]

paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory

service_protocol = http

service_host = 192.168.1.1

service_port = 5000

auth_host = 192.168.1.2

auth_port = 35357

auth_protocol = http

admin_tenant_name = service

admin_user = cinder

admin_password = service_pass

Modification du fichier « /etc/cinder/cinder.conf » comme suit:

[DEFAULT]

rootwrap_config=/etc/cinder/rootwrap.conf

sql_connection = mysql://cinderUser:cinderPass@192.168.1.1/cinder

api_paste_config = /etc/cinder/api-paste.ini

iscsi_helper=ietadm

volume_name_template = volume-%s

volume_group = cinder-volumes

verbose = True

auth_strategy = keystone

#osapi_volume_listen_port=5900

Synchronisation de la base de données:

cinder-manage db sync

Annexe

Préparation d ' une partition LVM pours Cinder (Dans notre cas nous avons un deuxieme disque dur /dev/sdb de 45GB):

Fdisk /dev/sdb

n p

1

Entrée

Entrée

t

8e W

pvcreate /dev/sdb1

vgcreate cinder-volumes /dev/sdb1

Redémarrage des services Cinder:

 

cd /etc/init.d/; for i in $(

do sudo service $i restart; done

ls

cinder-*

);

Vérification

du démarrage des services:

 
 
 

cd /etc/init.d/; for i in $(

do sudo service $i status;

ls

cinder-*

);

done

11. Installation d'Horizon:

Installation des paquets Horizon:

apt-get install openstack-dashboard memcached

Redémarrage des services apache et memcached :

service apache2 restart; service memcached restart

Pour accéder à l'interface d'administration:

http://192.168.1.1

user : admin

password : moussa010203

Résumé:

Cloud Computing nouveau modèle de technologie de l'information , il peut fournir à la fois l'infrastructure matérielle et logicielle ainsi que tous les services sont à la demande et via internet. Cependant, l'une des préoccupations importantes de ce service aujourd'hui est de garantir la sécurité de l'infrastructure du cloud. Le travail attendu dans Ce sujet porte sur une etude sur la sécurité d'un cloud computing.

Mots clés: Technologies de l'Information, Cloud Computing, Internet, Sécurité.

Abstract:

Cloud computing is the new model of IT department, it can provide both physical infrastructure and software as well as all services are on demand and via internet. However, one of the major concerns of this service today is to ensure the security of the cloud infrastructure. The expected work in this topic is a study on the security of cloud computing.

Keywords: Information Technology, cloud Computing, Internet, Security.

:ÕÎáãáÇ

ÈÓíÓáÇ È ä áÇ

ä

Èß æÈÊ

ÈÓæÍáÇ

ÉíÍÈÓáÇ

Èå

ÏÈíÏÌáÇ æÈãäáÇ

íÈ ÌæáæäßÊ

ÈäÅ íÈãæáÚãáÇ

Èßãí

åÈåá ÈÓ Æ áÇ íÈãíãÊåáÇÇ Èã ÏÈÍÇæ äÅÈ Èá

íÏíãáÇ

È Ú ÈáØáÇ ÏÈäÚ íãÏÈÎáÇ ÈÚ ÇÈÖ í Ìã áÇæ

ãæ . Èä ÊäáÅÇ

ÈãÏÎáÇ

ÈãÚáÇ

È ÈÚÞæÊãáÇ

æÈå æÈ áÇ

. ÉíÍÈÓáÇ È ÊÍÊáÇ È ä áÇ Èã äíãÈÖ

ÈáÚ ÈÓÇÑÏ

ÏÈÞä ä ÇåÈå ÈÎÊáÇ Çæ ÈÔã

. ÉíÍÓáÇ

æÍáÇ

. ííãÍáÇ. ä ÊäáÇÇ. ÉíÍÓáÇ ÓæÍáÇ.

: ÍíÊãáÇ íãáßáÇ

íãæáÚãáÇ í ÌæáæäßÊ






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Le doute est le commencement de la sagesse"   Aristote