Etude et Sécurisation du Cloud Computing
LE CLOUD COMPUTING
Dans cette première partie d’état de l’art, nous présenterons les concepts, modèles et technologies qui forment le paradigme du cloud computing et de sa sécurité. Pour ce faire, dans une première partie, nous dressons un panorama complet de cette technologie en étudiant les différents services offerts par le cloud ainsi que ses différents modèles de déploiement. Nous étudierons ensuite les technologies clés qui forment le cœur de ces infrastructures. La deuxième partie de cette chapitre sera consacrée à la sécurité, nous commencerons par définir les notions de bases de la sécurité informatique, puis nous détaillerons les problématiques de la sécurité dans le cloud.
GENERALITES SUR LE CLOUD COMPUTING
L’Homme est en perpétuelle recherche de tout faire plus rapidement et de façon plus efficace surtout dans le domaine informatique. Au cours des années, les ordinateurs ont pu se développer à un rythme extrêmement important mais le jour est arrivé où une telle puissance ne pouvait pas être produite par un seul et unique ordinateur standard. Dans ce sens le cloud Computing a été mise en œuvre pour répondre à ces problèmes. Avant l’avènement du cloud d’autres systèmes (solutions) étaient déjà utilisés telles que : – Le supercalculateur : plusieurs ont été construites depuis les années 60 mais le coût des matériaux des infrastructures et de l’énergie électrique pour un tel calculateur et immense voire inabordable. – Le cluster : c’est ensemble d’ordinateurs homogènes dans un même lieu qui travaillent en commun. Ceci s’avère être une solution peu efficace pour des projets de haute envergure pour des raisons de coût et d’espace de stockage – Le grid computing : c’est une infrastructure virtuelle constituée d’un ensemble de ressources informatiques potentiellement partagées, distribuées, hétérogènes, délocalisées et autonomes. Il permet, de faire du calcul distribué en exploitant la puissance de calcul (processeurs, mémoires), de résoudre le problème de calcul nécessitant des temps d’exécution très longs. Le terme « Cloud Computing » a été utilisé pour la première fois en 1997 par Ramnath Chellappa [5], professeur en systèmes d’informations et en management, il l’a utilisée pour décrire un nouveau modèle de gestion de l’informatique dans lequel les limites ne seraient plus définies par des problématiques techniques mais par des choix économiques. En 2002, Amazone lance le premier service clairement estampillé « Cloud Computing ». Le leader de la vente en ligne avait investi dans un parc des serveurs largement surdimensionné, capable d’absorber les pics de charges des commandes des fêtes de fin d’année. Ce parc de serveurs étant sous-utilisé le reste de l’année, le cybercommerçant a alors eu l’idée de louer de la capacité de calcul inutilisé à d’autres entreprises afin de rentabiliser son investissement. C’est qu’à partir de 2006 que le cloud computing sera rendu populaire par le directeur exécutif de Google, qui qualifiait ainsi le dépôt vers « le nuage Internet » de données et d’applications qui auparavant étaient situées sur les serveurs et ordinateurs des sociétés, des organisations ou des particuliers. Depuis lors on note une montée en puissance du cloud comme illustré sur la figure 2. Figure 2 : Volumétrie des recherches sur le terme Cloud sur Google de 2007 à 2011
Comme tout paradigme émergeant, il est très difficile de définir le terme cloud computing. Nous allons en proposer quelques-uns. Ainsi le National Institute of Standards and Technology (NIST) [6] définit le cloud computing comme suit : Definition 1 “Cloud computing is a model for enabling convenient, on demand network access to a shared pool of configurable and reliable computing resources (e.g., networks, servers, storage, applications, services) that can be rapidly provisioned and released with minimal consumer management effort or service provider interaction.” Dans leur travail de caractérisation du cloud, Armbrust et al. [7] le définissent ainsi: Definition 2 “Cloud computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services. The services themselves have long been referred to as Software as a Service(SaaS), so we use that term. The datacenter hardware and software is what we will call a Cloud.” Enfin, dans le contexte de la sécurité, Subashini et al. [8], définissent le cloud comme: Definition 3 “A style of computing where massively scalable IT-enabled capabilities are delivered ‘as a service’ to external customers using Internet technologies.” Sur la base de ces propositions, nous utilisons la définition suivante pour désigner par la suite le terme cloud computing : Le cloud n’est pas une simple technologie, mais un ensemble de technologies combinées et utilisées dans le but d’approvisionner des clients distants avec des services de différents types et échelles. En d’autres termes, grâce au cloud la puissance de calcul et de stockage d’informations sont proposées à la consommation sous forme de services et facturée en fonction de l’utilisation réelle avec une qualité de service liée à l’élasticité, l’évolutivité et la fiabilité de la plateforme. 11 Malgré qu’il existe différents types de définitions, Le NIST [9] américain a finalement retenu cinq caractéristiques (avantages) essentielles comme illustré sur la figure 3, pour définir le cloud computing : Figure 3 : Définition du cloud computing
Service à la demande
un client peut unilatéralement allouer des ressources, telles que du temps de calcul ou de l’espace de stockage. Cette opération est faite automatiquement, sans nécessiter d’interactions humaines avec les fournisseurs.
Accès réseau
les services sont disponibles sur le réseau et accessibles par des mécanismes standard permettant l’accès par des clients lourds ou légers et hétérogènes.
Partage des ressources
les ressources informatiques du fournisseur sont mises en commun afin de répondre aux besoins de plusieurs clients en suivant un modèle multi-utilisateurs. Les ressources physiques et virtuelles sont allouées et réallouées dynamiquement en fonction des demandes des clients. Le client ne peut généralement ni contrôler, ni connaître la localisation exacte des ressources fournies, mais a parfois la possibilité de la spécifier à un niveau d’abstraction différent (pays, centre de données, etc.). Les ressources fournies sont par exemple de l’espace de stockage, de la puissance de calcul, de la mémoire ou de la bande passante.
Élasticité rapide
les ressources fournies au client peuvent être ajustées automatiquement (en allouant ou libérant des ressources) afin de s’adapter rapidement à la demande. Du point de vue de l’utilisateur, les ressources disponibles apparaissent le plus souvent comme illimitées et pouvant être allouées à tout moment et en toute quantité. 5. Service mesuré : l’utilisation des ressources est automatiquement contrôlée et optimisée en utilisant une métrique adaptée au type de service. Cette utilisation est communiquée au client et au fournisseur de manière transparente. Ces cinq caractéristiques permettent de définir si un service fourni est, ou non, un service d’informatique en nuage.
INCONVENIENTS DU CLOUD COMPUTING
Le cadre légal : Les données transférées dans le cloud ne sont pas forcément présentes sur le territoire national : elles peuvent l’être, comme elles peuvent être dans un autre pays européen. Par conséquent, sauf mention contraire du prestataire de service, on ne sait pas précisément à quel endroit sont stockées les données. De plus, on a aucun accès physique à ces données La sécurité : Plusieurs points sont à étudier La sécurité vis-à-vis du stockage : si les données sont conservées dans un seul disque, ou si elles sont entre plusieurs unités de stockage La sécurité et la confidentialité des données : si le fournisseur de service assure des tests portant sur sa sécurité informatique et si de tes tests sont faits de façon régulières La connexion : c’est l’autre goulot d’étranglement. Si l’utilisateur n’a pas de connexion internet, ou une connexion insuffisante, il ne pourra accéder à sa plateforme de travail. L’idée dans ce cas est de permettre le travail sur une application locale qui synchronise ensuite les données avec le serveur dès que 13 l’utilisateur a à nouveau accès au réseau. Le problème de la sécurité des données en local se pose donc à nouveau Les différents types d’informatique en nuage sont alors classifiés selon leur modèle de service et leur modèle de déploiement.
Les modèles de services du cloud
Les types de services offerts par dans le cloud sont scindés en différentes catégories selon le service fourni. Plusieurs décompositions sont proposées, dans ce sens Zhou et al. [10] propose une décomposition en six catégories alors que Rimal et al. [11] les classifient en dix catégories Cependant la classification faite par la NIST [6] constitue la référence, les services sont ainsi classés en trois principaux modèles qui sont :
Software as a Service (SaaS)
Dans ce modèle, le fournisseur met à disposition du client des applications s’exécutant dans un nuage informatique. Les applications sont accessibles depuis divers clients via une interface Web, ou une API. Le consommateur ne gère ni ne contrôle l’infrastructure cloud sous-jacente, notamment les serveurs, le système, le réseau, le stockage (à l’exception possible de certains éléments de configuration de ses applications). Le principal élément attractif du modèle Saas réside dans le coût d’utilisation réduit pour le client final. En effet, pour le client utilisé le SaaS coûte moins cher que le paiement des droits d’utilisation d’un logiciel dont il acquiert une licence à installer sur une infrastructure opérée par ses soins. Parmi les applications Saas connues et largement utilisées qui forment les exemples les plus pertinents de ce modèle de services, on peut citer Google Docs, Google Gmail, Microsoft 365, Twitter, Facebook.
Platform as a Service (PaaS)
Pour ce type de service Le fournisseur met à disposition du client une plateforme où il peut déployer des applications utilisant librairies, services et outils du fournisseur. Le client ne contrôle pas l’infrastructure sous-jacente, notamment les serveurs, le système, le réseau ou le stockage, mais contrôle les applications déployées et éventuellement la configuration de l’environnement de l’application. Les solutions PaaS diffèrent des solutions SaaS dans le fait qu’elles fournissent des plateformes de développement virtuelles, hébergées dans le cloud et accessible via un navigateur Web. En d’autre termes, le PaaS fournit toutes les ressources nécessaires pour construire et développer des applications et des services dans leur totalité, à partir d’Internet et sans avoir à mettre en œuvre l’ensemble des outils liés au cycle de développement logiciel. Les services PaaS incluent ainsi les outils de conception, développement, test, déploiement et hébergement d’applications. Les exemples de services PaaS qui forment le cœur des offres actuelles sont Forces.com, Google App Engine et Red Hat’s Open Shift.
Infrastructure as a Service (IaaS)
Il représente le modèle le plus réduit dans le cadre des modèles cloud. Le fournisseur permet au client d’utiliser des ressources, telles que de la puissance de calcul, de l’espace de stockage, du réseau, ce qui lui permet de déployer et d’exécuter des applications (par exemple un système d’exploitation). Le client contrôle le système d’exploitation, le stockage, les applications déployées et éventuellement certains composants réseaux (pare-feu ou routeurs virtuels). Là où les modèles SaaS et PaaS fournissent une partie logicielle aux clients, le modèle IaaS ne le fait pas. En effet, il offre un seul niveau matériel de sorte que le client, puisse y déployer toute solution logicielle dont il conserve la responsabilité. Les exemples de services IaaS qu’on peut citer sont : Amazon Web Service (AWS), Microsoft Azure et Google Compute Engine (GCE).
DEDICACES |