# Sécurité du cloud

La sécurité du cloud ou sécurité de l'informatique en nuage (cloud security en anglais) est un sous domaine de l'infonuagique (cloud computing, informatique en nuage) 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ée 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. Un problème de sécurité dans une plateforme sur le cloud peut engendrer une perte économique mais également une mauvaise réputation si toutefois cette plateforme est orientée grand public. Les problèmes de sécurité du cloud sont la cause du retard de l'adoption massive de cette nouvelle solution.

## La sécurité dans le cloud

L'utilisation de plus en plus fréquente du cloud computing fait apparaître de nouveaux risques de sécurité. Augmentant ainsi l'intérêt des criminels à trouver de nouvelles vulnérabilités et exposant les utilisateurs à voir leurs données compromises.
Pour atténuer cette menace, les intervenants du cloud devraient investir massivement dans l'évaluation des risques informatiques afin de s'assurer que les données sont bien protégées.
Établir des bases fiables et des normes pour sécuriser leur infrastructure. Tout ceci afin d'établir la confiance dans cette nouvelle technologie qu'est le cloud computing.
En 2009, le groupe "cloud security alliance" a été formé pour promouvoir les bons usages en matière de sécurité dans le milieu du cloud. Depuis ce groupe compte 40 000 membres.

### La sécurité des données
#### La non-interopérabilité des fournisseurs

    Un client peut éprouver le besoin de changer de fournisseur de cloud. Celui-ci ne peut aujourd'hui pas effectuer un transfert de stockage directement de son fournisseur vers un autre. Néanmoins, la norme CDMI (Cloud Data Management Interface) décrit un format d'échange qui permet de déplacer les données d'un environnement cloud vers un autre.

#### Le chiffrement dans le cloud

    Le client peut utiliser le chiffrement des données pour le stockage dans le cloud, mais il reste à définir qui doit contrôler les clés de chiffrement et de déchiffrement. En toute logique, ceci doit être géré par le client.

#### L'intégrité des données

    Dans le cloud, il est nécessaire d'assurer l'intégrité des données pendant un transfert ou un stockage. Il faut donc que les opérations sur les données soient contrôlées afin de n'effectuer que les opérations qui sont autorisées. Il n'existe actuellement pas de standard commun entre les fournisseurs de cloud.

#### La gestion des logs

    Dans le respect du Payment Card Industry Data Security Standard (PCI DSS), les logs doivent être fournis au gestionnaire de sécurité.

#### Le stockage

    Les données peuvent être transférées entre plusieurs datacenter géographiquement éloignés. Le particulier ou l'entreprise ne connait pas la position des données entre chaque datacenter.

#### La confidentialité

    Le propriétaire des données doit savoir quelles informations sont gardées et dans certains cas être capable de demander leur suppression. Pour ce qui est du paiement sécurisé ou Payment Card Industry Data Security Standard (PCI DSS), les données bancaires et la trace des transactions doivent pouvoir être transférées aux autorités et personnes chargées des régulations.

### La sécurité des infrastructures
#### La sécurité physique

    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.

#### L'audit

    Le fournisseur de cloud doit être audité sur la sécurité de ses infrastructures et de ses solutions par une société externe ou passer acquérir une certification.

#### Les mises à jour

    Afin de bénéficier des mises à jour de sécurité sur les produits qui sont installés ou utilisés sur l'infrastructure cloud, le client doit s'assurer d'effectuer régulièrement les mises à jour.

#### Test de sécurité de l'image de base

    Le cloud est basé sur la virtualisation, ceci permet au fournisseur de créer une image de base sécurisée et à jour afin de déployer à la demande d'un client une machine ou un service. Elle permet au fournisseur de mettre en place des patchs de sécurité mais également de tester les impacts de l'installation de celui ci.

### La justice et le cloud
#### La sécurité de la localisation des données

    Dans le cloud, les données d'un particulier ou d'une entreprise sont hébergées chez le fournisseur. Les lois concernant le transfert de données personnelles ainsi que la conservation des données peuvent différer d'un pays à l'autre. Dans le cas où des données violent la loi de l’État où elles résident il y a un risque de saisie par le gouvernement

#### La confidentialité des données

    Le client doit connaître l'utilisation de ses données et pouvoir faire valoir ce droit de confidentialité devant la justice afin que le fournisseur justifie de l'utilisation de ses données.

#### Les données confidentielles

* Toute information permettant d'identifier un individu.
* Toute information récoltée par le biais d'un ordinateur personnel.
* Toute information permettant la localisation d'un périphérique personnel.
* Toute information personnelle d'un individu.

### 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.

### La virtualisation et la sécurité dans le cloud

La virtualisation est liée au cloud computing. En effet, le fournisseur de cloud propose à ses 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.

#### L'introspection des machines virtuelles pour la sécurité

Pour assurer la sécurité des ressources des machines virtuelles, il existe un composant permettant de contrôler la mémoire, le disque virtuel et le système d'exploitation installé sur celle-ci. Ce composant est basé sur l'introspection de la machine virtuelle (VMI). Un exemple d'un tel composant est Xen Access. Il permet de contrôler que les ressources soient sécurisées et qu'il n'y a à pas eu d'intrusion avant le démarrage de la machine virtuelle.

#### La protection de la mémoire

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.

#### La sécurisation de l'exécution de code

La sécurisation de l'exécution de code dans le noyau permet de prévoir les exécutions malveillantes. Un exemple de système permettant de contourner ce problème et d'assurer la protection de l'exécution de code est Manitou. Ce système utilise le moniteur de mémoire virtuelle (VMM) afin de calculer un hash sur chaque page mémoire et de vérifier avant l'exécution du code si le hash est dans la liste des hash autorisés.

#### 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ées. 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 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 (VMI).

## Les normes dans le cloud
### Normes ISO

Il n'y a pour le moment pas de norme ISO standardisant explicitement le cloud. Cette prochaine norme est en cours de création et permettra de standardiser le cloud de manière à rendre disponible une API unique pour l'utilisation de plusieurs fournisseurs de cloud mais également définir la sécurité requise pour le cloud. Néanmoins, les fournisseurs de cloud concrétisent leur niveau de sécurité en obtenant des normes sur la sécurité de l'information applicables en partie sur le cloud. Ces normes sont exposées ci-dessous.
* ISO 7498-2 : la norme ISO 7498-2 est un volet sécurité relativement ancien de la norme ISO 7498 plus connue sous le nom de Modèle OSI. Elle définit l'exigence en matière de sécurité sur des thèmes comme : l'identification, les autorisations, la confidentialité, la disponibilité, l'intégrité et la non-repudiation. La sécurité du cloud peut être guidée par cette norme afin d'être efficace et sécurisée.
* ISO/CEI 27001 : la norme ISO 27001 est une norme reconnue à l'échelle internationale pour l'évaluation de la sécurité des environnements informatiques. Cette norme concernant la sécurité de l'information est basée sur les méthodes de gestion de la sécurisation de l'information, la confidentialité, l'intégrité et la disponibilité.
* ISO/CEI 27017 : la norme ISO/CEI 27017 est une déclinaison du guide de bonnes pratiques ISO/CEI 27002 traitant spécifiquement de l'informatique en nuages.
* ISO/CEI 27018 : la norme ISO/CEI 27018 est une norme récente (août 2014) corollaire à ISO 27001 et elle concerne les prestataires des services Cloud public. Elle propose un ensemble de bonnes pratiques pour la protection des informations personnelles identifiables.

### SLA (Service Level Agreement)

La sécurité dans le cloud peut être définie dans le Service Level Agreement (SLA), afin de prévenir et garantir les niveaux de sécurité pour chaque service.

#### Le prestataire ou le fournisseur de cloud

    la société proposant une offre cloud.

#### Le client

    le particulier ou la société qui investit dans une offre cloud afin d'y héberger des données potentiellement confidentielles ou personnelles.
Le Service Level Agreement (ou SLA) permet de définir la sécurité mise en place contre les attaques malveillantes et les pannes éventuelles, entre le prestataire et le client.
Ce document est important pour les deux parties, s'il est utilisé correctement il permet de :
* identifier et définir les besoins du client
* fournir un cadre pour la compréhension
* simplifier les questions complexes
* réduire les zones de conflit
* encourager le dialogue en cas de conflit
* éliminer les espérances peu réalistes

#### Le SLA et le cloud aujourd'hui

Le SLA n'est pas adapté pour le cloud computing à cause de son architecture bien différente des systèmes informatiques précédents. En effet, le cloud est basé sur une architecture centralisée dans des centres de traitements de données qui sont exposés sur internet. Le SLA garantit aujourd'hui, sauf dans des cas bien particuliers, les termes suivants :

##### Réclamation au fournisseur à la suite d'une panne

    Le client doit ouvrir un ticket au support en saisissant les informations nécessaires spécifiées dans le SLA.

##### Réclamation au fournisseur à la suite d'une faute du client

    Le client peut être pénalisé financièrement ou son compte peut être bloqué si un problème survient et le met en cause. Ceci est une cause de violation du contrat et permet de prévoir des attaques ou autres actions provenant de l'infrastructure du client.

##### Réseau Privé

    Le fournisseur garantit 99,9 % de disponibilité du réseau privé entre le datacenter et le client. Ceci inclut la mise en place et sécurisation d'un VPN, la bande passante maximale possible et les outils d'analyses du trafic sur le réseau.

##### Réseau Public

    Le fournisseur garantit 99,9 % de disponibilité du réseau public (internet), avec des redondances sur les connexions.

##### La redondance des infrastructures

    Le fournisseur garantit 99,9 % de disponibilité des infrastructures et des services.

##### Le changement de matériel

    Pour répondre à la demande du client ou un besoin de maintenance de l'infrastructure, des changements de matériels peuvent être nécessaires. Ces changements doivent être planifiés et si ce changement n'est pas possible, une pénalité sera appliquée au fournisseur.

#### La standardisation du SLA

Pour garantir un niveau de sécurité, le SLA doit définir les méthodes utilisées pour maintenir et garantir la sécurité de l'infrastructure cloud qui sera utilisée par le client. Les termes en discussions pour la standardisation du SLA sont listés ci-dessous$^,$ :

##### Accès d'utilisateur privilégié

    Les administrateurs ont un accès global aux informations, il est nécessaire de définir les administrateurs habilités à intervenir sur les infrastructures du client dans le cadre de la confidentialité des données d'une entreprise$^,$.

##### Conformité règlementaire

    Le client est responsable de la sécurité et l'intégrité de ces données. Pour cela, le fournisseur de cloud fournit les services et outils nécessaires au bon déroulement de ces tâches. Le prestataire traditionnel est soumis à des audits et des certifications. Les fournisseurs de cloud qui refusent ces audits doivent le signaler aux clients et spécifier que le client ne peut utiliser que les fonctions les plus insignifiantes$^,$.

##### L'emplacement des données

    Dans le cloud, une notion de localisation des données est difficile à acquérir. En effet, un fournisseur de cloud dispose de plusieurs datacenter à travers le monde et dans des pays différents. C'est pour cela qu'il est nécessaire que le client prenne connaissance de la localisation de ces données, car celles-ci peuvent être stockées dans des pays ou les lois de confidentialité des données sont différentes$^,$.

##### Ségrégation de données

    Les données dans le cloud sont présentes sur plusieurs centres de données afin que le fournisseur de cloud puisse garantir un service de haute disponibilité à son client. La sécurisation des données grâce au chiffrement est nécessaire pour la transmission de celle-ci vers les différents centres de données. Le client doit prendre connaissance de la méthode de chiffrement ainsi que la méthode utilisée pour le transfert approuvée par un spécialiste$^,$.

##### La restauration

    Le client doit connaitre le niveau de service en matière de restauration des données. Les fournisseurs ne sont pas dans l'obligation de répliquer les données du client. Dans le cas où l'infrastructure utilisée par le client subirait une défaillance, celui-ci pourrait perdre une partie ou la totalité de ces données si toutefois le fournisseur n'inclut pas dans son offre la réplication ou la sauvegarde des données$^,$.

##### Le support

    La surveillance des activités illégales sur les interfaces du cloud est très difficile. La raison de cette difficulté est la centralisation des infrastructures qui engendre la présence de plusieurs clients sur un même serveur, la localisation des datacenters. Il est donc très difficile pour le fournisseur de détecter et bloquer les utilisations malveillantes des infrastructures. Cette information doit être spécifiée au client afin que celui-ci soit vigilant$^,$.

##### L'efficacité

    Il est nécessaire pour le client d'avoir des informations sur l'infrastructure du fournisseur et des garanties quant à la fiabilité de ces solutions. Le client externalisant ces infrastructures chez un fournisseur de cloud a besoin de garanties sur ces applications et ces données afin d'être sûr que celui-ci ne subit pas des pertes à la suite d'une panne$^,$.

## Les attaques et l'impact sur le cloud

Les composants de sécurité tel 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é.

### 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.

### Déni de service

L'attaque par déni de service a pour but de rendre un service indisponible par une surcharge réseau par exemple. Le fournisseur doit mettre en œuvre les solutions contre ces attaques. Cette attaque peut être évitée grâce à la scalabilité du cloud. Des services comme Amazon permettent dynamiquement de mettre davantage de ressources ou d'instances suivant le besoin. Néanmoins, les clients n'utilisant pas les services de scalabilité sont soumis aux risques de ces attaques, il est dans ce cas difficile de détecter ces attaques pour les bloquer cause du potentiel nombre d'attaques simultanées.

### L'exploitation de bogue logiciel

Le client et le fournisseur doivent s'assurer que les logiciels qu'ils utilisent sont à jour afin d'éviter l'exploitation des bogues logiciels. Cette action ne permet pas de les éviter mais de limiter les risques.

### Attaque de l'homme du milieu

L'attaque de l'homme du milieu a pour but d'intercepter les communications entre un client et un serveur afin de consulter, capturer et contrôler la communication en toute transparence.

### Analyseur de paquets

L'analyseur de paquets est une application ou un périphérique qui permet de lire, capturer les données qui transitent sur un réseau. Cette attaque permet à l'attaquant de récupérer les données puis les lire.

### Attaque par injection de maliciel cloud

Le principe de cette attaque est d'injecter sur une des plateformes du cloud (Saas, Iaas, Paas) du code malicieux afin de compromettre l'infrastructure victime.

## L'impact de la sécurité du cloud sur l'économie
### L'impact des attaques distribuées

Les attaques distribuées telles qu'un déni de service ont un impact économique pour le client. Ces attaques peuvent être contrées grâce à la scalabilité du cloud et donc engendrer des coûts supplémentaire pour le client. Dans le cas où le client n'a pas mis ce type de solution en place, il risque que son infrastructure soit hors service et donc des pertes de bénéfices pour celui-ci.

### Avantages économiques

La mutualisation du matériel permet d'optimiser les coûts par rapport aux systèmes conventionnels (afin de réaliser des économies) et de développer des applications partagées sans avoir besoin de posséder ou de louer chez un hébergeur ses propres serveurs. Cela évite aussi toute maintenance des machines. Ces avantages peuvent pousser a l'utilisation du cloud computing et rendre acceptable une prise de risque plus forte.

### La faillite

Si un fournisseur tombe en faillite, le client perd l'accès à ses applications et ses données car l'infrastructure du fournisseur passe hors ligne. Les données du fournisseur ne sont donc pas récupérables et deviennent la propriété du créancier du fournisseur de cloud. Cette situation peut entraîner la faillite du client si toutefois celui-ci est une entreprise et que les données qui étaient hébergées chez le fournisseur soient sensibles et indispensables pour l'entreprise.

### Facturation trompeuse

Le système de paiement aux ressources consommées peut engendrer une surfacturation de la part du fournisseur pour des ressources allouées mais non consommées. Cette surfacturation est une perte pour le client.

## Historique des attaques dans le cloud

| Victime | Date | Type d'attaque | Description |
| Dropbox | Octobre 2012 | Analyse du client Dropbox | Analyse du client Dropbox et démonstration de vulnérabilités exploitables localement et à distance. http://archive.hack.lu/2012/Dropbox%20security.pdf |
| Epsilon | Mars 2012 | Hameçonnage par e-mail | Récupération des noms et e-mail de plus de 20 entreprises clientes de la société Epsilon. |
| Dropbox | Juin 2012 | Vol de mot de passe et ingénierie sociale | Vol de mot de passe de compte Dropbox d'un employé et récupération d'informations concernant un projet confidentiel. Menant à une large campagne de spam. |
| Rackspace | Juin 2012 | Prédiction de mot de passe administrateur | Plusieurs failles de sécurité ont permis de prédire ou modifier le mot de passe administrateur de compte rackspace. http://mesoscale-convective-vortex.blogspot.fr/2012/06/multiple-rackspace-security.html |
| iCloud | Août 2012 | Vol de mot de passe et ingénierie sociale | Un journaliste possédant un compte iCloud a été victime du vol de plusieurs de ses comptes y compris l'effacement de ses données sur des périphériques Apple en utilisant iCloud. |
| CloudFlare | Mai 2012 | Exploitation d'une vulnérabilité Google Apps/Gmail | AT & T trompés en redirigeant un message vocal à une boîte vocale frauduleuse. Processus de récupération de compte Google a été exploité par la boîte vocale frauduleuse, ce qui permet d'atteindre des craquelins Gmail PIN de récupération de compte, et pour réinitialiser le compte Gmail. Une vulnérabilité dans le processus de récupération de Google Enterprise Applications qui a permis aux pirates de contourner l'authentification à deux facteurs de l'adresse URL utilisateur CloudFlare.com. Vulnérabilités BCCing CloudFlare a permis aux cybercriminels de réinitialiser un mot de passe client une fois qu'ils avaient eu accès à un compte de messagerie administrative. |
| PlayStation Network | Avril 2011 | Injection SQL | Le service PlayStation Network de Sony victime d'une attaque par injection sql et exploitation d'un défaut de chiffrement des données utilisateurs du PSN, obligeant la société à arrêter complètement son réseau en ligne de jeux vidéo et PlayStation Store. |
| VMWARE | Juin 2009 | Exécution de code à l’extérieur du VMWARE Guest | CLOUDBURST A VMware Guest to Host Escape Story http://www.blackhat.com/presentations/bh-usa-09/KORTCHINSKY/BHUSA09-Kortchinsky-Cloudburst-SLIDES.pdf |