Les sondes de détection et de réaction contre les intrusions sont des équipements fréquemment controversés dans de nombreuses entreprises. Dans le cadre de la migration vers des services de Cloud Computing, la situation se complexifie encore plus du fait des caractéristiques même du cloud. Qu'en est-il et en quoi le cloud computing vient-il noicir le tableau ?
Une technologie déjà controversée en entreprise
Tout acteur de la sécurité pourra vous le confirmer : Déployer un boitier IDS/IPS à un endroit stratégique de son réseau ou de serveurs ce n'est pas compliqué. Le plus complexe reste d'en assurer la gestion dans le temps (Mise à jour des bases de signatures, actualisation de la configuration et surtout collecte et analyse des évènements). Les coûts d'un projet IDS/IPS sont très souvent "plombés" par la gestion des équipements.... quand cela est fait... souvent les équipements sont achetés, déployés et configurés.... pour ensuite être "oubliés"... Bref. Ce n'est pas une technologie "simple à opérer", loin de là. Mais revenons à nos moutons !
Focus "Infrastructure as a Service" (IaaS)
Les techniques de détection et de prévention d'intrusions peuvent être adadtées à différentes couches ou composant d'un système d'information : Couche réseau (NIDS/NIPS - Network IDS/IPS), à la couche système d'exploitation (HIDS - Host IDS) ou encore aux couches applicatives ou middleware (Database IDS, Web Application Firewall). En fait, on peut implémenter des fonctions de type IDS à partir de tous types de logs/informations générés par une application quelconque... Analyser les logs de son serveur Web Apache pour détecter les tentatives d'intrusion ou de découverte est une forme d'IDS.
Pour cet article, nous limiterons notre propos à des services de cloud computing de type IaaS (Infrastructure as a Service). Ce type de service propose des ressources informatiques pour executer des machines virtuelles, de la connectivité réseau et des espaces de stockage de données. Le tout étant accessible à distance.
Caractéristiques du cloud computing
Selon la définition du NIST, les caractéristiques essentielles du cloud computing sont : La mutualisation/colocation (multi-tenancy) ; la capacité à répondre à une demande très importante (massive scalability) ; l'elasticité (elasticity) ou capacité d'adapter simplement les ressources aux besoins ; l'auto-activation de ressources (self-provisioning) et enfin la facturation à l"usage (pay as you go). Nous mettrons de coté la caractéristique "pay as you go" car elle n'a que très peu d'impact sur les les systèmes IDS/IPS : Elle ne sera donc pas couverte dans cet article.
Mutualisation/colocation (multi-tenancy)
La mutualisation des ressources entre utilisateurs du cloud et une utilisation simultanée de ressources communes est une caractéristique fondamentale du cloud computing. Un même client du cloud va donc utiliser les mêmes accès réseaux, les mêmes machines ou les mêmes systèmes de stockage que d'autres clients, le tout étant rendu transparent via des technologies de virtualisation et d'isolation.
Dans le monde physique (ou "normal", ou encore "Pas dans le cloud"), le déploiement d'un IDS/IPS est lié à un environnement physique donné : Un lien ou un accès réseau, un serveur ou un groupe de serveurs physiques, une plateforme, etc.... Dans le cloud, cette approche est vaine : Tout est "virtuel" et "immatériel" : Un client souhaitant protéger ses VM (Virtual Machines ou Machines Virtuelles") devra changer sa façon d'approcher le problème. L'un des "classiques" c'est comment superviser le trafic entre deux VM localisées sur le même hyperviseur ? Si chaque client active une VM intégrant un moteur IPS/IDS, il reste le challenge de la gestion de celle-ci...
Capacité à répondre à une demande très importante (massive scalability)
Dans un environnement de cloud computing, le nombre d'instances de VM tournant simultanément peut être virtuellement énorme : de plusieurs milliers à plusieurs dizaines de milliers de machines. Dans un tel contexte, le nombre d'évenenements de sécurité générés par les IDS/IPS peut être tout simplement gigantestque... C'est peut-être le challenge le plus difficile à relever.
Elasticité et et auto-activation
Avec le cloud computing, il est possible d'ajuster dynamiquement les ressources aux traitements à réaliser : Ainsi, on peut passer de 3 VM à 10 ou 20 VM en quelques secondes ou utiliser une capacité de stockage variant fortement entre 2 jours d'une même semaine. Dans un tel contexte, faut-il reconfigurer à chaque fois son IDS/IPS ? Comment lui attribuer plus de ressources afin qu'il puisse faire son travail dans de bonnes conditions, ce dès le démarrage d'une nouvelle VM ?
Conclusion
Effectivement, le cloud computing pose de sérieuses questions pour les IDS/IPS. La transposition des techniques et pratiques utilisées en entreprises sont inadaptées. De nouvelles approches doivent donc être proposées tant par les fournisseurs de services de cloud computing que les éditeurs de solutions de sécurité. Certains en sont encore à proposer des "appliances virtuelles" de leurs équipements physiques : ce n'est clairement pas adapté. Les approches basées sur l'intégration de fonctions au coeur des hyperviseurs et des fonctions dites d'introspections permettront peut-être de répondre au besoin de sécuriser en profondeur les infrastructures de cloud computing