Sécurité et Cloud
Présentation et définitions
1. Qu’est-ce que le Cloud ?
Parler de sécurité ou de sécurisation de l’information au sein des distributions Debian sans aborder la thématique du Cloud serait un oubli considérable. En effet, de plus en plus d’entreprises cherchent à faire héberger leurs données dans les nuages, chez des prestataires spécialisés. Soit pour des raisons économiques, soit pour des raisons techniques ou stratégiques. D’autant que, nous avons pu le constater au travers des différents exemples de sécurisation de plateformes applicatives des chapitres précédents, il existe de nombreux logiciels ayant un contact étroit avec le Web et, par voie de conséquence, avec le Cloud. Aussi, il faut s’intéresser à ce phénomène, non pas comme un effet de mode, mais bien comme un moyen fiable de déposer les données dans des silos particuliers, dont la sécurité aura été renforcée. Le Cloud se pose ainsi comme un nouveau modèle, de facto. Le terme Cloud, traduit par « nuage » en français, recouvre l’ensemble des solutions et des silos de stockage distants. En somme, les données jusque-là accessibles depuis des disques internes ou de la mémoire sont alors récupérables sur des disques de serveurs de stockage distants, au travers d’Internet. Les personnes habilitées à accéder à ces données disposent alors généralement d’un ensemble de serveurs de stockage regroupés dans une salle informatique appelée Datacenter.
Dans la littérature et les forums, vous trouverez également l’expression de Cloud Computing exprimant la notion de nuage informatique.
Nous pouvons définir le périmètre du Cloud par la règle des 4V :
-
Volumes : il s’agit de l’ensemble des silos de stockage, ce qui représente une énorme volumétrie, au final.
-
Volatilité : il n’existe aucune désignation précise de localisation des données. On verra que cela peut alors induire pas mal de problèmes.
-
Vélocité : la présentation et l’accès...
Installation de Dropbox
Pour pouvoir mettre un pied dans le monde du Cloud, nous pouvons commencer de façon légère en installant, sous Debian, l’interface Dropbox. Il existe véritablement deux méthodes :
-
l’installation depuis l’émulateur de terminal
-
l’installation au travers de l’utilitaire GDebi
1. Installation en ligne de commande
Il faut tout d’abord se rendre sur le site https://www.dropbox.com/fr/downloading/ afin de récupérer la version la plus récente pour les distributions Debian 64 bits :
Ensuite, nous pouvons procéder à l’installation à proprement parler, en mettant à jour au passage les dépôts officiels du serveur et en téléchargeant les prérequis :
# apt-get update
# apt-get install python-gpgme
Nous pouvons alors récupérer le paquet .deb de la version la plus récente en 64 bits, pour les distributions Debian :
# wget -O dropbox.deb https://www.dropbox.com/download?dl=packages/
debian/dropbox_2017.09.16_amd64.deb
Il faut alors installer ce package, ainsi que le daemon associé au service de gestion de l’interface d’accès :
# dpkg -i dropbox.deb
# dropbox start -i
Cela va alors permettre de déclencher l’assistant d’installation et affiche alors l’écran de bienvenue suivant que l’on peut valider afin de poursuivre la phase d’installation :
Durant l’opération d’initialisation, l’assistant demandera alors la création d’un compte dédié à la connexion sur Dropbox. À la fin de la phase d’installation, il ne reste plus qu’à renseigner l’adresse de messagerie associée au compte Dropbox ainsi que le mot de passe précédemment...
Mise en place d’un SIEM
Ainsi, la sécurisation d’une plateforme de type Cloud passe par la mise en œuvre d’un SIEM. Il s’agit d’un amalgame d’outils de sécurité intégrant NIDS, HIDS et filtrage. Dans cette catégorie, on trouve la suite Prelude OSS, permettant d’effectuer le tri parmi l’ensemble des évènements survenus, et d’en extraire les alertes de sécurité pour créer une corrélation entre elles afin de disposer d’une vue globale concernant l’état de la sécurité du réseau au sein de l’architecture Cloud instaurée. L’outil permet de contrôler aussi les menaces provenant de l’extérieur et de l’intérieur de l’entreprise.
1. Initialisation du SIEM
La solution est téléchargeable depuis le site http://www.prelude-siem.org/ et s’installe très facilement. Certains prérequis doivent être installés au préalable :
# apt-get install wget ssh checkinstall libpcap-dev flex byacc
gtk-doc-tools libssl-dev libxml-dev libpcre3-dev libfam-dev gnutls-bin
libgcrypt11-dev libgnutls-dev libgpg-error-dev libopencdk10-dev
libxmlsec1 libxmlsec1-gnutls libgnutls28-dev
Il faut alors récupérer la bibliothèque libprelude depuis le site de téléchargement mentionné plus haut :
# wget http://www.prelude-siem.org/attachments/download/804/libprelude-
4.0.0.tar.gz
Nous pouvons alors procéder à l’installation de cette bibliothèque, en premier lieu en répondant aux différentes questions suggérées par l’outil, et en ayant pris soin de créer un compte d’administration dédié, autorisé à effectuer des commandes sudo (par souci de sécurité système) :
$ sudo tar zxvf libprelude-4.0.0.tar.gz
$ cd libprelude-4.0.0
$ sudo ./configure --enable-easy-bindings --enable-gtk-doc --without-lua
Comme nous le constatons ici, les options ci-dessous sont valorisées. Cela se fait grâce aux directives optionnelles au sein même de la commande configure :
Ensuite, nous pouvons...
Déploiement OpenStack
1. Présentation et technologie
De la même façon que GNU/Linux est né de deux projets majeurs : le noyau Linux créé par Linus TORVALDS et l’écosystème GNU, initialement, l’entreprise Rackspace a mis au point un service de stockage appelé Swift. Seulement, ce dernier nécessitait l’appoint d’un système de gestion de virtualisation automatique. C’est ainsi que certains employés de la NASA ont conçu la solution Nova. La fusion de ces deux outils a alors vu l’émergence du projet OpenStack. Ce projet est sous licence Apache 2.0 en tant que logiciel libre. Les nouvelles versions se sont enchaînées depuis 2010, à un rythme d’une tous les quatre mois, puis tous les six mois. La pile utilise python 2.7, même s’il y a un projet de portage en Python 3.
RAPPEL : OpenStack est un projet collaboratif de gestionnaire de Cloud IaaS, initié en 2010. Il est développé par plus de deux cents contributeurs différents et plus de deux cents grosses compagnies s’y sont impliquées et ont déployé leurs outils en Python.
À l’instar de ce qui a été mentionné au début de ce chapitre, chaque service utilise son propre référentiel sous forme de base de données relationnelle. Par défaut, l’ensemble est piloté au travers de bases MySQL et il est possible d’en utiliser d’autres. OpenStack est adossé à un gestionnaire de mappage objet (également appelé Oriented-Relationnal Mapping) : SQLAlchemy. L’accès ou la modification d’un élément de la pile, utilise l’interface API REST, basée sur l’interface web HTTP. Enfin, le module de communication faisant l’interface entre services externes et en interne de la pile s’appuie sur l’implémentation en Erlang du logiciel RabbitMQ. En dehors de cela, il existe d’autres fonctionnalités, chacune apparentée à un module particulier :
-
Glance : permet la gestion des images de machines virtuelles et notamment autorise la découverte, l’enregistrement, la récupération et l’identification de l’état de celles-ci. Ce module...
Sauvegardes Duplicity
1. Introduction et description
Maintenant que l’on a entrevu toutes les possibilités d’hébergement en tant que fournisseur d’infrastructure du Cloud, nous pouvons également imaginer une architecture fournissant un espace dédié aux sauvegardes permettant, le cas échéant, de tout restaurer en cas de crash d’un disque dur, d’un piratage ou d’un sinistre survenu intempestivement. Seulement, l’ampleur de la tâche est assez conséquente, car il s’agit de pouvoir restaurer les éléments suivants :
-
les fichiers : messages, services hébergés, fichiers de configuration, etc.
-
le contenu des bases de données
-
profils des services et des utilisateurs
Le système de sauvegarde doit effectivement tenir compte du fait que l’échelle sur laquelle on se base n’est plus seulement locale à l’infrastructure interne de l’organisation, mais il doit aussi tenir compte des espaces d’hébergements externes comme le Cloud. Il lui faut alors pouvoir conserver les archives durant une période de rétention afin de laisser le temps aux administrateurs, en cas de détection d’incidents, de pouvoir restaurer à un état antérieur. Toute sauvegarde qui se respecte doit être régulière (de préférence quotidienne) et doit être incrémentale afin de ne capter que les modifications récentes et ne pas encombrer le stockage cible avec des redondances. Pour éviter toutes intrusions et tentatives de corruption des archives, il faut bien évidemment que cet espace dédié soit distant et que les fichiers générés soient chiffrés. La réponse à ce lourd cahier des charges tient en un seul mot : Duplicity. Afin de ne pas compromettre une clé privée circulant en clair sur le serveur d’entreprise, nous pouvons effectuer des sauvegardes locales via une tâche cron et c’est un serveur distant, à l’initiative de la session qui rapatrie les backups pour les stocker. De plus, comme Duplicity utilise GPG pour le chiffrement nous disposons ainsi au choix :
-
d’un chiffrement asymétrique (c’est-à-dire une paire de clés privée/publique)...