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 :
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
:
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:
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.
:ÕÎáãáÇ
ÈÓíÓáÇ
È ä áÇ
ä
Èß
æÈÊ
ÈÓæÍáÇ
ÉíÍÈÓáÇ
Èå
ÏÈíÏÌáÇ
æÈãäáÇ
íÈ
ÌæáæäßÊ
銁
íÈãæáÚãáÇ
Èßãí
åÈåá ÈÓ Æ
áÇ
íÈãíãÊåáÇÇ
Èã ÏÈÍÇæ äÅÈ
Èá
íÏíãáÇ
È Ú ÈáØáÇ
ÏÈäÚ
íãÏÈÎáÇ ÈÚ
ÇÈÖ í Ìã áÇæ
ãæ . Èä
ÊäáÅÇ
ÈãÏÎáÇ
ÈãÚáÇ
È
ÈÚÞæÊãáÇ
æÈå æÈ
áÇ
.
ÉíÍÈÓáÇ
È ÊÍÊáÇ
È ä áÇ
Èã
äíãÈÖ
ÈáÚ
ÈÓÇÑÏ
ÏÈÞä ä
ÇåÈå
ÈÎÊáÇ Çæ
ÈÔã
. ÉíÍÓáÇ
æÍáÇ
. ííãÍáÇ. ä
ÊäáÇÇ.
ÉíÍÓáÇ
ÓæÍáÇ.
: ÍíÊãáÇ
íãáßáÇ
íãæáÚãáÇ
í ÌæáæäßÊ
|