Les entreprises ont de plus en plus recours aux conteneurs et à Kubernetes (K8s) pour bénéficier d’un cadre de développement plus rapide et flexible. Malgré les avantages que cette technologie apporte, en comparaison des applications traditionnelles, elle constitue également un sujet de préoccupation important pour les entreprises dans leur parcours d’adoption de solutions natives cloud. Une inquiétude qui est loin d’être injustifiée, quand on sait que des clusters Kubernetes appartenant à plus de 350 entreprises, dont plusieurs sont répertoriées dans la liste Fortune 500, ont été laissés en accès libre et exposés à des cyberattaques par ransomware, comme l’a révélé une récente étude. Comment expliquer que les entreprises éprouvent autant de difficultés quand il s’agit de sécuriser Kubernetes ?
Agir rapidement, sans se précipiter
Quand on dit « garder une longueur d’avance » sur les pirates, cela montre bien à quel point la sécurité peut être vue comme une course par les équipes de sécurité – qui adoptent de nouvelles technologies et cherchent à trouver des réponses aux nouvelles techniques et vulnérabilités. Il peut également parfois s’agir de la course pour suivre l’allure à laquelle leur propre entreprise adopte de nouvelles technologies. De toute évidence, la sécurité doit s’aligner sur le rythme des évolutions et protéger l’entreprise contre les menaces, quelle que soit l’orientation choisie.
Le recours à Kubernetes, technologie qui existe depuis plus de 10 ans, s’apprête à atteindre un pic historique. L’entreprise qui saute le pas et opte pour une nouvelle solution de type Kubernetes doit impérativement passer par une phase d’apprentissage. Les développeurs et les équipes de sécurité peuvent se heurter à certaines ornières masquées lorsqu’ils s’empressent de mettre au point de nouvelles applications.
Aucune équipe de développeurs n’échappe au dilemme de devoir trouver le juste milieu entre la rapidité et la sécurité ; quand on sait que les principales motivations de l’adoption des conteneurs sont la vitesse et l’agilité, il n’est pas surprenant de constater que l’adoption rapide de Kubernetes a entrainé l’apparition de certaines vulnérabilités. Si un développement non sécurisé ne fait jamais l’objet d’une décision consciente, cette situation peut changer dans le cas où les entreprises sont sous pression en ce qui concerne l’ajout de nouvelles fonctionnalités ou le développement de nouveaux produits à partir de rien.
Réussir à limiter le chaos
Une mauvaise configuration lors de la phase de conception et de développement mène souvent à installer des vulnérabilités Kubernetes . Les délais serrés évoqués ci-dessus jouent également un rôle, mais le principal facteur réside souvent dans le manque de connaissances spécifiques liées à la technologie Kubernetes.
Selon Aqua Security, qui a révélé des centaines d’environnements de conteneurs vulnérables, les failles de sécurité sont essentiellement causées par deux types de configurations défaillantes : tout d’abord, une étape d’authentification unique pour les utilisateurs anonymes qui, lorsqu’elle est franchie, offre un accès anonymisé incluant des privilèges normalement réservés aux administrateurs. On pourrait comparer cette configuration à une voiture de sport dotée d’une serrure peu fiable dont les clés sont déjà sur le contact. Le deuxième type de vulnérabilité principale repose sur des clusters mal configurés qui sont publiquement accessibles sur certains emplacements. Cela permet aux acteurs malveillants de tirer avantage d’outils comme « Kubectl » afin de se connecter très simplement au cluster Kubernetes d’une entreprise et de commencer à faire des dégâts au sein du système.
Les solutions Kubernetes ne sont pas les seules concernées par cette problématique. L’un des vecteurs d’attaque les plus répandu concerne les applications exposées et connectées à Internet même lorsque ce n’est pas nécessaire. Cet accès par Internet laisse une porte d’entrée supplémentaire aux attaquants qui s’introduisent au sein des systèmes. Sans cette porte, il n’y aurait pas de problème. C’est le mantra des politiques zero trust, qui s’appuient sur le « principe du moindre privilège » : même dans le cas des applications natives cloud, tout ne doit pas être accessible à tout moment.
Miser sur la sauvegarde pour une plus grande sécurité
On n’a jamais vu un professionnel du développement ou de la sécurité se réveiller un matin avec l’intention de développer des failles de sécurité au sein de ses applications. Il s’agit plutôt d’une conséquence du manque de connaissances et de délais de développements serrés. Ces problèmes devraient diminuer en fréquence avec le temps et à mesure que les développeurs gagneront en expérience sur les plateformes natives cloud. C’est pourquoi les entreprises ont d’autant plus besoin de pouvoir s’appuyer sur des processus de sauvegarde et de restauration des données robustes. La cyber-résilience dépend de différents paramètres. Une entreprise ne peut jamais complètement se reposer sur sa première ligne de défense (à savoir la sécurité applicative) et doit mettre en place des solutions de repli.
Malheureusement, les entreprises qui adoptent Kubernetes doivent encore faire beaucoup de progrès dans ce domaine. Selon un rapport d’Enterprise Strategy Group, 33 % des entreprises qui exploitent Kubernetes continuent de s’appuyer sur les mêmes outils et processus de protection des données que ceux qu’elles utilisent pour leurs autres applications. Une situation problématique, puisque les applications natives cloud requièrent des solutions de sauvegarde également natives. Même si ces entreprises possèdent des solutions de sauvegarde en place et partent du principe que leurs données sont sécurisées, les sauvegardes traditionnelles ne sont pas conçues pour suivre les composants mobiles de Kubernetes. Cela peut entrainer des problèmes de performance ou des pertes de données lorsqu’elles tentent de restaurer les informations.
Les entreprises sont toujours exposées aux attaques, notamment avec des ransomwares, car les solutions de sécurité et de restauration conservent des failles. Face aux records en termes de nombre de cyberattaques enregistrées, les entreprises sont tenues de s’assurer qu’elles sont bien protégées. Cela n’est, en aucun cas, synonyme d’injonction àéviter ou à arrêter l’exploitation de Kubernetes ou des applications basées sur des conteneurs. Néanmoins, la sécurité doit rattraper son retard pour suivre les nouvelles pratiques de développement, sinon les criminels vont se précipiter dans les brèches. Cependant, maîtriser seule des environnements aussi complexes peut être très complexe pour une entreprise. C’est pourquoi les DevSecOps ont un rôle essentiel à jouer. Faire collaborer les équipes en charge de la sécurité et du développement permet de préserver la sécurité de l’infrastructure depuis le départ et de maintenir l’activité des entreprises en les protégeant contre les interminables vagues d’attaques par ransomware.
Michael Cade, Global Field CTO Cloud-Native Product Strategy, Veeam