Définition
La sécurité de l’exécution des conteneurs (en anglais, Container runtime security) est la protection des conteneurs en cours d’exécution contre les menaces actives, telles que l’exécution de codes malveillants et l’escalade des privilèges au sein d’un conteneur ou du système qui l’héberge.
Aperçu
En fournissant des capacités conçues spécifiquement pour détecter les risques de sécurité dans les conteneurs en cours d’exécution, la sécurité d’exécution des conteneurs aide les organisations à identifier et à traiter les vulnérabilités majeures qu’elles pourraient autrement ne pas remarquer. Les solutions de sécurité d’exécution établissent les paramètres d’un comportement normal dans les environnements réels afin de détecter les comportements anormaux qui pourraient être dus à une vulnérabilité de sécurité.
La sécurité de l’exécution des conteneurs fait référence aux pratiques et aux outils qui détectent et atténuent les risques de sécurité dans les conteneurs en cours d’exécution. L’objectif de la sécurité de l’exécution des conteneurs est de garantir que les applications conteneurisées « en exécution », par opposition aux images de conteneurs, qui sont des fichiers statiques, sont sécurisées.
Fonctionnement de la sécurité d’exécution des conteneurs
La sécurité d’exécution consiste généralement à surveiller le comportement des conteneurs en cours d’exécution et à rechercher des anomalies, telles que des appels système inhabituels, des tentatives d’accès à des ressources qui ne sont pas normalement utilisées par le conteneur ou la création de processus inattendus.
Les environnements d’exécution des conteneurs peuvent comprendre des dizaines, voire des centaines de conteneurs qui changent constamment. L’analyse des risques basée sur une modélisation statique simpliste est donc insuffisante. Pour obtenir des résultats plus efficaces, la détection des risques en cours d’exécution s’appuie sur des capacités d’évaluation dynamique des risques qui permettent d’identifier les anomalies, même en cas de changements constants.
Runtime Security vise à comprendre les comportements normaux et à détecter les comportements anormaux en analysant les modèles et les critères comportementaux dans l’environnement d’exécution, afin de garantir une protection en temps réel et une réponse rapide aux menaces potentielles. Par exemple, un outil de sécurité d’exécution peut surveiller le comportement d’un conteneur au fil du temps, en enregistrant les modifications de ses opérations au fur et à mesure que son trafic réseau et sa consommation de ressources fluctuent. Sur la base de ces données, l’outil est en mesure de détecter des activités qui ne correspondent pas à des opérations normales, telles qu’un pic soudain dans l’utilisation de la mémoire qui ne peut s’expliquer par une augmentation du nombre de requêtes. L’outil signale alors ce comportement comme un risque possible pour la sécurité.
Principales menaces liées à l’exécution des conteneurs
Voici quelques exemples de problèmes que les outils de sécurité d’exécution des conteneurs doivent normalement mettre au jour :
- Modèles anormaux : Les codes malveillants contenus dans un conteneur échappent souvent à d’autres outils de sécurité tels que les scanners d’images de conteneurs, contrairement aux outils de sécurité d’exécution dont la détection est basée sur la recherche de modèles d’exécution de code inhabituels ou de signatures de logiciels malveillants.
- Dérive de configuration : Modifications des paramètres de configuration d’un conteneur actif qui créent des risques de sécurité, comme l’ouverture d’un port réseau non sécurisé. Ces risques ne peuvent pas être détectés par d’autres outils d’analyse, car ils n’existent pas tant que le conteneur n’est pas en cours d’exécution et qu’un administrateur ne modifie pas manuellement sa configuration.
- Élévation des privilèges : Les attaques par élévation des privilèges, qui se produisent lorsque des utilisateurs malveillants élèvent les privilèges d’un conteneur d’une manière qui permet au conteneur (ou aux utilisateurs qui y ont accès) d’interagir avec des ressources ou d’effectuer des actions qui ne devraient pas leur être accessibles. Là encore, il est impossible de détecter ces attaques à partir de l’analyse d’images de conteneurs, car elles ne se produisent qu’au moment de l’exécution. Dans certains cas, les scanners d’images peuvent être efficaces pour détecter les problèmes de configuration des conteneurs ou les vulnérabilités que les attaquants peuvent exploiter pour élever leurs privilèges.
- Gestion non sécurisée des données : Gestion non sécurisée des données sensibles en raison de pratiques telles que l’absence de cryptage des informations que les conteneurs partagent entre eux sur le réseau.
- Vulnérabilités de l’hôte : Vulnérabilités dans le système d’exploitation qui héberge le conteneur ou dans le logiciel d’exécution de conteneurs qui exécute les conteneurs. Les acteurs malveillants pourraient exploiter ces vulnérabilités pour prendre le contrôle des conteneurs ou élever les privilèges.
Le rôle de la sécurité d’exécution dans la sécurité des conteneurs
Les risques liés à l’exécution ne sont qu’un des nombreux problèmes de sécurité qui peuvent affecter les conteneurs, et les solutions de sécurité d’exécution des conteneurs ne sont qu’un des nombreux outils de sécurité que les organisations utilisent généralement pour protéger les applications conteneurisées. D’autres types de protections et de capacités sont également nécessaires :
- Outils de sécurité applicative : Ils aident les ingénieurs à élaborer des codes sécurisés au cours du Cycle de vie du développement logiciel (SDLC).
- Scanners d’images de conteneurs : Les scanners d’images analysent les images de conteneurs à la recherche de logiciels malveillants et de configurations non sécurisées avant leur déploiement.
- Registres des conteneurs : Lorsqu’ils sont correctement configurés, les registres constituent des dépôts sécurisés pour le stockage et la distribution d’images de conteneurs.
- Solutions d’analyse de l’infrastructure et de gestion de la configuration : Cette catégorie, qui comprend des types d’outils tels que Cloud Security Posture Management (Gestion de la posture de sécurité cloud, ou CSPM) et Kubernetes Security Posture Management (Gestion de la posture de sécurité de Kubernetes, KSPM), permet de sécuriser l’infrastructure et les services utilisés pour déployer des conteneurs.
Chacune de ces solutions permet d’atténuer les problèmes de sécurité qui peuvent survenir au cours du processus de développement, de construction et de déploiement des conteneurs. Cependant, ils ne sont pas efficaces pour détecter les risques qui ne sont pas apparents tant que les conteneurs ne fonctionnent pas. C’est le domaine des outils de sécurité de l’exécution des conteneurs.
Par exemple, un conteneur peut contenir un logiciel malveillant qui n’est pas identifiable sur la base d’une image statique du conteneur, mais qui devient détectable une fois que le conteneur est en cours d’exécution. Seuls les outils de sécurité d’exécution peuvent surveiller le comportement du conteneur pour détecter les activités malveillantes une fois qu’il est en cours d’exécution.
Le SDLC est un processus structuré de développement et de maintenance d’applications logicielles, qui englobe toutes les phases du développement, du déploiement et de la maintenance des logiciels. La sécurité d’exécution, qui se concentre sur la protection des applications en cours d’exécution dans les environnements de production, est un élément essentiel qui s’intègre dans les phases de déploiement et de maintenance en surveillant les vulnérabilités, en détectant et en atténuant les attaques, et en garantissant la sécurité en temps réel.
Alors que l’industrie a adopté l’approche « Shift Left » qui consiste à intégrer les pratiques de sécurité dès les premières étapes du développement, une solution complète doit également inclure une approche « Shift Right », incarnée par la sécurité de l’exécution. La synergie entre ces pratiques est ce qui apporte réellement une sécurité intégrale aux environnements de développement de logiciels.
Responsabilité de la sécurité d’exécution des conteneurs
En règle générale, la responsabilité première de la découverte des risques de sécurité liés à l’exécution incombe à la fois aux équipes chargées des opérations et à celles chargées de la sécurité.
Cela dit, pour remédier aux risques de sécurité d’exécution, il faut souvent collaborer avec les développeurs de logiciels, qui ont la responsabilité de corriger les problèmes sous-jacents dans le code de l’application ou les images du conteneur qui créent des risques de sécurité d’exécution. Ils peuvent également avoir besoin de reconstruire les images après avoir traité les risques.
À cet égard, la sécurité d’exécution est un excellent exemple d’un type d’activité qui fonctionne mieux lorsque les entreprises adoptent une approche DevSecOps, c’est-à-dire une stratégie dans laquelle les développeurs, les équipes d’exploitation et les équipes de sécurité travaillent ensemble de manière transparente.
Si les équipes d’exploitation doivent gérer elles-mêmes la sécurité de l’exécution, cela n’affecte peut-être pas leur capacité à détecter les vulnérabilités de l’exécution, mais cela a certainement un impact négatif sur leur capacité à coordonner la fourniture d’un correctif en temps voulu et de manière efficace avec le développement.
Sécurité de Kubernetes et de l’exécution des conteneurs
La plupart des conteneurs sont déployés en production à l’aide d’un orchestrateur comme Kubernetes qui permet de gérer les conteneurs fonctionnant sur une grappe de serveurs.
Kubernetes introduit des services et des configurations supplémentaires dans l’environnement d’exécution. Cela signifie que son utilisation implique des risques supplémentaires, tels que des vulnérabilités logicielles dans le plan de contrôle de Kubernetes que les attaquants pourraient exploiter ou des paramètres de réseau Kubernetes non sécurisés.
Auparavant, les solutions de sécurité d’exécution des conteneurs ne tenaient pas compte de ces risques, car elles étaient conçues pour sécuriser les conteneurs eux-mêmes, et non Kubernetes. Mais maintenant que Kubernetes est devenu la solution de facto pour déployer des conteneurs à grande échelle, il est important dans la plupart des cas de choisir une solution de sécurité d’exécution de conteneur qui peut surveiller les menaces à l’intérieur de Kubernetes en plus de surveiller le comportement des conteneurs individuels.
Sécuriser les conteneurs du code à l’exécution avec JFrog
En offrant un large éventail de fonctionnalités de sécurité des conteneurs, notamment l’analyse des conteneurs à l’aide de JFrog Xray l’hébergement sécurisé d’images avec JFrog Artifactory et la protection de l’exécution grâce à JFrog Runtime Security, JFrog vous aide à sécuriser vos conteneurs et votre environnement d’exécution à toutes les étapes du SDLC.
Pour plus d’informations, veuillez consulter notre site web, organiser une visite virtuelle ou organisez une démonstration individuelle à votre convenance.