Une excellente analogie de ce que représente le cloud serait le taxi. Le taxi est ce qu’on pourrait, barbarement appeler “Car As A Service”. En effet, vous ne payez que pour un certain trajet d’un point A à un point B. Vous ne payez pas directement le prix de la voiture, l’essence, l’entretien, les pneus etc. Embarquez et dans une heure vous serez sur le lieu de votre souhait. Le cloud suit le même principe : Payez un certain montant et votre application sera exécutée sur nos serveurs et vos données stockées de manière sécurisée sur nos serveurs. Le client ne paye pas directement le loyer du data center, de l'électricité, il ne fait que louer une partie de la puissance de calcul/stockage. 


On distingue 3 grands types de “Cloud” 

  • Infrastructure As A Service (IAAS) : Le client ne paye que pour une infrastructure, par exemple : Amazon Web Services
  • Platform As A Service (PAAS) : Ici le client paye pour l’infrastructure ainsi qu’une plateforme logicielle permettant d'exécuter des applications, par exemple : AWS Elastic Engine, Google App Engine etc
  • Software As A Service (SAAS) : Le client reçoit une application déjà faite, hébergée en ligne, il n’a qu'à envoyer ses données. Par exemple : Dropbox, Salesforce, Google Drive…
  • Une différence notable entre IAAS et l’hébergement est que IAAS propose des options de flexibilité.
  • En parallèle de tout ça se retrouve les infrastructures dites “On Premise” c'est-à-dire des infrastructures payées et installées par le client à ses frais. 


Toutes ses solutions présentent une répartition des responsabilités différentes qu’on peut synthétiser dans cette infographie : 

RACI cloud.png

Le cloud est en plein essor et de plus en plus d’entreprises considèrent cette option lors du développement de projets. Notamment, e-sncf qui a décidé de transférer la quasi-totalité de ses data centers dans le cloud d’Amazon. Un projet titanesque, à l’échelle de cette entreprise et qui démontre bien l’attrait et les avantages que présente le Cloud. Malheureusement, comme tout système informatique, il peut être sujet à des attaques et des failles d’autant plus lorsque l'on sait qu’il contient des informations critiques telles que les informations de paiement des clients, les dates des voyages etc… la question qui se pose naturellement est donc de savoir 

 

 

Comment sécuriser mes données dans le cloud ? En cas de faille de sécurité, quelles sont mes garanties et quelles sont les solutions de sécurité ? 

 

Comment se déroule une attaque et une faille de sécurité? Ce sont les questions auxquelles je vais essayer d’apporter des éléments de réponse dans ce billet.
Nous verrons notamment quelles sont les bonnes pratiques de sécurisation des données.

 

Les clients cloud doivent mettre en place diverses mesures de sécurité pour protéger les applications et les données basées dans le cloud et atténuer les risques de sécurité. 

 

Les bonnes pratiques de sécurité du cloud incluent les points suivants :

 

  • Sécuriser la console de gestion du cloud. 

Tous les fournisseurs de cloud fournissent des consoles de gestion permettant d’administrer les comptes, de configurer les services, de dépanner les problèmes et de superviser l’utilisation et la facturation. Elles sont souvent prises pour cible par les cybercriminels. Les organisations doivent contrôler et superviser de façon stricte l’accès à privilèges à la console de gestion afin d’éviter les attaques et les fuites de données. Un excellent exemple de sécurisation de console serait les plugins “Safe Paste” ou Collage sécurisé qui empêchent les commandes collées dans la console de s'exécuter automatiquement.
 

  • Sécuriser l’infrastructure virtuelle.

 Les serveurs virtuels, les entrepôts de données, les conteneurs et les autres ressources cloud sont également souvent ciblés par les cybercriminels. Ces derniers peuvent tenter d’exploiter les outils de provisioning automatisés tels que Puppet, Chef ou Ansible pour lancer des attaques ou interrompre des services.  Les clients doivent mettre en place des systèmes et des pratiques de sécurité stricts afin d’éviter tout accès non autorisé aux scripts d’automatisation et aux outils de provisioning du cloud.
 

  • Sécuriser les clés des API. 

Les applications cloud invoquent généralement des API pour arrêter ou démarrer des serveurs, instancier des conteneurs ou modifier l’environnement. Les identifiants d’accès aux API comme les clés SSH sont souvent codés dans les applications et placés dans des référentiels publics comme GitHub et ciblés par des attaquants mal intentionnés.  Les organisations doivent supprimer les clés SSH embarquées dans les applications et s’assurer que seules les applications autorisées y ont accès. Ceci n’est pas exclusif aux clés SSH, des tokens, les shared key sur Azure et Signing Keys sur Google Cloud sont aussi concernées.

 

  • Sécuriser les consoles d’administration et les outils DevOps. 

La plupart des organisations DevOps s’appuient sur une palette d’outils CI/CD pour développer et déployer leurs applications dans le cloud. Les pirates essaient souvent d’exploiter les consoles d’administration et les outils DevOps pour lancer des attaques ou subtiliser des données. Les clients doivent contrôler et suivre de façon stricte l’accès aux outils et aux consoles d’administration utilisés à chaque étape du pipeline de développement et de distribution afin de réduire les risques.
 

  • Sécuriser le code de la pipeline DevOps. 

Les attaquants peuvent également tenter d’exploiter certaines vulnérabilités au niveau des applications cloud dans tout le pipeline de développement et de distribution. Les développeurs codent souvent en dur les identifiants de sécurité dans le code source stocké sur un stockage partagé ou sur des dépôts de code . Entre de mauvaises mains, les identifiants des applications peuvent être utilisés pour voler des informations propriétaires ou semer le chaos. Les clients doivent supprimer les clés API/code secrets contenus dans les codes source et instaurer des systèmes et des pratiques afin de superviser et de contrôler automatiquement les accès dans le cadre d’un règlement. Des systèmes de gestion de droits et de génération d'accès sont plus que recommandés.
 

  • Sécuriser les comptes administrateur pour les applications SaaS.

 Chaque produit SaaS inclut une console de gestion permettant d’administrer les utilisateurs et les services. Les comptes administrateur des SaaS sont fréquemment pris pour cible par les pirates et les cybercriminels. Les clients doivent contrôler et superviser les privilèges d’accès à la console d’administration des SaaS afin de garantir la sécurité des SaaS et réduire les risques.
 

Ainsi, pour maintenir un environnement cloud sécurisé il est nécessaire de : 

  • Sécuriser la console de gestion du cloud. 
  • Sécuriser l’infrastructure virtuelle.
  • Sécuriser les clés des API. 
  • Sécuriser les consoles d’administration et les outils DevOps.
  • Sécuriser le code de la pipeline DevOps. 
  • Sécuriser les comptes administrateur pour les applications SaaS.

 

Voilà ce qui conclut notre première partie de blog. Nous avons vu quelles étaient les grandes “familles” de cloud et d'hébergement et leurs spécificités. Puis, nous sommes rentrés dans le détail et avons vu une liste d’actions à mettre en place pour sécuriser une plateforme cloud. Dans une seconde partie nous verrons que la sécurité ne dépends pas que du client mais aussi du fournisseur de service.