Comment sécuriser vos environnements Kubernetes en cinq étapes

Selon Gartner, plus de 75% des entreprises exécuteront des applications conteneurisées cette année. Kubernetes (que l’on désigne aussi par l’abréviation K8s) est essentiel pour gérer ces environnements, mais jusqu’à présent, la sécurité est toujours passée au second plan.

La gestion des conteneurs à grande échelle rend difficile la capture des événements de sécurité en raison de leur volume et de leur complexité. K8s est généralement mis en œuvre pour faciliter la gestion et la mise à l’échelle des conteneurs. Les conteneurs sont complexes en raison de leur nature éphémère. De plus, lorsqu’ils sont gérés à grande échelle, cette complexité s’accentue.

Ceci a engendré une certaine hésitation au sein des entreprises: en effet, plus de la moitié de celles-ci ont retardé le déploiement de K8s en raison de préoccupations autour de la sécurité de ces environnements.

Certaines entreprises donnent la priorité à l’identification des risques comme la détection des CVE’s dans les conteneurs ou la configuration de leurs clusters Kubernetes au détriment de la visibilité au run. Bien que ces identifications soient essentielles pour minimiser la surface d’attaque, ce n’est qu’une partie du problème. La détection des communications anormales entre pods K8s est primordiale.

Les entreprises ont également besoin d’une bonne visibilité à l’exécution pour comprendre les changements manuels mais aussi les écarts de configuration entre l’état initial et l’état observé des clusters K8s. La détection lors de l’exécution est fondamentale pour permettre aux équipes de sécurité d’identifier les cybermenaces, les vulnérabilités et les mauvaises configurations dans toutes les couches de leur environnement K8s et conteneurs.

Alors, comment surveiller et sécuriser vos environnements K8s en temps réel ? Voici cinq conseils.

  • Commencez par les connexions réseau
    Pour répondre aux exigences de conformité de K8s et détecter les menaces, vous devez surveiller et cartographier les connexions réseau. C’est un aspect essentiel pour comprendre les interactions entre les workloads et pour déterminer quels services cloud sont accédés.

    Une solution de sécurité doit comprendre le trafic réseau pour détecter les éventuels comportements anormaux. Cela lui permet de détecter les problèmes opérationnels qui entraînent une augmentation des erreurs, comme par exemple de déceler un nombre d’appels trop élevé envoyés à une API externe bloquée par le fournisseur. Des connexions réseau anormales peuvent également résulter d’une menace au sein de l’environnement.

    L’accès aux adresses IP et aux domaines malveillants connus doit être surveillé, car de nombreuses attaques ciblant K8s ont entraîné l’installation dans les conteneurs d’un logiciel de cryptomining permettant de renvoyer des informations à l’attaquant. Les cybercriminels peuvent également utiliser des configurations erronées pour accéder à des services de production sensibles.

  • Surveillez les points d’entrée réseau (Ingress)
    L’une des principales craintes des équipes DevOps consiste à exposer accidentellement un service interne sur internet. L’ajout d’un load-balancer externe ou d’un Ingress Controller dans K8s peut avoir pour effet d’exposer involontairement à des pirates informatiques un service ne possédant pas l’authentification et l’autorisation requises. Tout ajout de ce type doit être tracé et validé.

    Toute connexion à un workload depuis une IP publique doit être relevée afin d’éviter une exposition accidentelle. Les entreprises ont tout intérêt à exploiter la cartographie des communications réseau pour déterminer si l’un des services publiquement exposés possède un accès direct à des ressources sensibles, telles que des bases de données internes ou des coffres-forts de mots de passe.

  • Effectuez le suivi des journaux d’audit K8s
    L’utilisation d’Infrastructure as Code fait partie des bonnes pratiques (IaC) pour définir les environnements avant leur déploiement. Les actions manuelles, telles que la connexion à un conteneur, doivent être réduites au minimum, et les actions telles que la suppression manuelle de ressources doivent être définies comme interdites.

    Il est impossible d’imputer des changements manuels à un utilisateur lorsque l’on observe la configuration d’un cluster K8s. Bien que l’activation des logs d’audit K8s permette d’enregistrer tous les appels API de K8s, ce sont plusieurs millions de logs qui peuvent être générés quotidiennement pour des activités internes. Les entreprises ont besoin d’une solution capable d’extraire les événements intéressants et de mettre en évidence les activités inhabituelles.

    L’analyse des audit logs k8s va permettre la mise en œuvre d’une politique de rôle basée sur le moindre privilège. Repérer les changements apportés aux rôles existants est maintenant possible. En outre, il est simple de conserver une trace d’audit de ces changements et de les valider ultérieurement.

  • Comprenez les nouveaux composants et Workloads K8s
    Les violations de K8s sont souvent causées par le déploiement de conteneurs malveillants dans l’environnement. Très souvent, elles passent inaperçues des mois durant. En effet, les solutions basées sur des règles vérifient les attributs non sécurisés utilisés par ces workloads. Par conséquent, un conteneur malveillant qui n’utilise pas ces attributs ne sera pas détecté.

    La surveillance au run des workloads doit être capable de repérer les nouveaux registres et repository utilisés. De cette façon on peut détecter les workloads créés par de nouveaux utilisateurs en dehors des pipelines de déploiement continu. Il est également nécessaire de repérer les déploiements des workloads, conteneurs ou clusters n’ayant pas été validés par le processus d’intégration continu habituel. Ils comportent en effet un risque de contournement des contrôles de sécurité mis en place plus tôt dans la chaîne de développement logiciel.

  • Mettez en œuvre les outils appropriés
    Enfin, il est essentiel de mettre en place une détection automatisée des menaces, permettant d’identifier les événements importants au sein de volumes considérables. C’est le moyen de garantir une protection permanente et d’alléger le fardeau des équipes de sécurité.

    Des outils basés sur les données déterminent une base de référence qui définit la normalité en surveillant l’activité dans K8s et dans les environnements de conteneurs. La détection des anomalies permet ensuite d’identifier les menaces potentielles en se basant sur les écarts par rapport à cette base de référence. La surveillance des connexions réseau permet d’identifier de nouvelles adresses IP ou connexions de domaine, dont certaines sont déjà connues comme étant malveillantes.

Une protection globale

Les conteneurs et l’orchestrateur K8s sont essentiels pour renforcer l’innovation et aider les organisations à se doter d’un avantage concurrentiel. Néanmoins, pour garantir le succès et réduire les risques, la sécurité doit être une priorité centrale. Il est impératif que cette sécurité s’étende bien au-delà du pré-déploiement pour englober l’environnement d’exécution. Seuls des outils et des techniques appropriés de surveillance et de détection des menaces permettent d’atteindre cet objectif.