Les conteneurs permettent de faire tourner les applications virtualisées plus vite et de les diffuser sur différents serveurs à la demande.

L’évocation des conteneurs a le don d’hérisser le poil de ceux qui vendent des hyperviseurs même si certaines firmes qui les emploient sont pourtant en train de développer aussi des technos de conteneurs. L’argument le plus fréquent pour refreiner l’enthousiasme de clients potentiels de ces nouveaux conteneurs est de souligner les risques de sécurité potentiels et de préciser que les conteneurs ne possèdent pas encore de vrais outils de sécurité.

A l’occasion de la conférence OpenStack, très marquée par la gestion des conteneurs, nous avons tenté d’en savoir plus et si la sécurité des conteneurs était menacée.

Une situation qui ressemble à celle des autres éléments de Linux

Pour les ingénieurs de la firme Docker et ceux de la fondation d’OpenStack, la réponse est quasi identique. Oui, la sécurité demeure un sujet très important mais qui n’a pas été traité spécifiquement pour l’instant car la sécurité des conteneurs est, en gros, celle de tous les éléments qui sont liés à Linux, comme les fameux LXC. Mais il suffirait à leurs yeux d’ajouter une couche de sécurité supplémentaire comme Apparmor, SELinux, Grsec ou une solution de sécurité d’un éditeur de sécurité pour rejoindre le niveau des hyperviseurs. Le gouru de la sécurité dans ce domaine, Lenny Zeltser, précise sur son blog : « Les conteneurs  profitent de la capacité du noyau Linux de créer des environnements isolés qui sont souvent décrits comme une part de l’hôte sous-jacent d’un noyau. Cependant, chaque conteneur est assigné dans son propre environnement d’exécution, pour la plupart indépendant avec l’aide de son groupe de contrôle et les espaces de noms (namespace). Chaque conteneur reçoit sa propre pile et le processus réseau adéquat, ainsi que dans son instance d’un système de fichiers. »docker-execdriver-diagram

A priori donc, l’environnement étant très particulier à chaque conteneur, on serait tenté de dire que plus la cible est petite, plus le risque est minimal. C’est ce qui avantagerait par exemple l’OS d’Apple par rapport à celui de Microsoft, le nombre de «victimes » potentielles étant largement inférieur. Mais cette approche est sujette à controverse.

Les atouts des hyperviseurs

Si les techniques de virtualisation traditionnelles (telles que celles proposées par HyperV,  Xen, VMWare, KVM, etc.) sont réputées être plus sûres que celle des conteneurs, c’est, d’après les vendeurs d’Hyperviseurs qu’elles fournissent un niveau supplémentaire d’isolement. Un conteneur peut émettre des appels système au noyau hôte, tandis qu’une VM complète ne peut émettre d’appel particulier à l’hyperviseur hôte, qui a généralement une « surface » beaucoup plus petite.

Autre argument en faveur des VMs et là ce serait incontestable : elles seraient considérées comme plus sûres que les conteneurs parce qu’elles ont bénéficié d’une plus grande exposition aux risques en production. Elles bénéficient donc depuis plus longtemps d’études en profondeur et de patchs minutieux. De plus, il existe de nombreux fournisseurs de machines virtuelles grands public ; tandis que les vendeurs de conteneurs ne sont encore, à notre connaissance, qu’une demi douzaine – principalement des fournisseurs PAAS publics.

C’est donc l’argument inverse de l’atout théorique d’une petite cible, exemple cité précédemment. Plus on est gros, plus on a déjà affronté d’attaques et plus on est solide pour en supporter d’autres dans le futur.

 Une gestion différente des patches de sécurité

Interrogés sur la réactivité de la communauté openspace de développement des outils d’administration de conteneur pour patcher les trous de sécurité très rapidement dés qu’ils feront surface, les intégrateurs et les vendeurs de conteneurs avouent que le nombre d’ingénieurs sur le sujet reste encore embryonnaire mais que fondamentalement la sécurité des conteneurs sur Linux est, encore une fois, celle des différents niveaux de sécurité du noyau.

A priori, si une vulnérabilité du noyau linux permet l’exécution d’un code « arbitraire » dangereux, il lui sera probablement plus facile de sortir des informations d’un conteneur d’un serveur Pass qu’à partir d’une machine virtuelle d’un serveur sécurisé. Selon Docker, aucun « exploit » n’aurait encore été conçu pour démontrer cela, mais cela va certainement se produire dans le futur. Avec de plus en plus de conteneurs en production, en particulier dans les banques qui sont les premières utilisatrices : ceux-ci vont certainement devenir une cible plus «intéressante» pour un utilisateur malveillant . Cela veut-il dire que les conteneurs sont vraiment moins sûrs? Pour la firme Docker, c’est non.

 

La sécurité des conteneurs, c’est celle du système tout entier

Tout d’abord, les hyperviseurs ne sont pas exempts eux-mêmes de vulnérabilités. Et puis, les problèmes critiques de noyau ont tendance à être fixés très rapidement quand ils sont découverts car ils affecteraient potentiellement non seulement les systèmes à base de conteneurs, mais tous les systèmes linux.

Selon le site de Docker, lorsque les corrections s’imposeront, lorsque « patcher » sera nécessaire, les opérations a appliquer sur le flux de travail des conteneurs sera différent d’une approche typique de gestion des vulnérabilités.

En général, les correctifs de sécurité sont installés sur les systèmes serveur ou les pc indépendamment de l’application pour éviter que cette mise à jour ne « casse » l’application. Dans le cas du conteneur, l’application devra être patchée, dans chaque structure, dans le cadre du processus de déploiement de l’application.

Reconstruire l’image du conteneur permettra aux dépendances de l’application d’être automatiquement mises à jour.

L’écosystème d’un conteneur changera le travail que l’administrateur pouvait traditionnellement effectuer, mais les compétences réclamées seront plus élevées ou du moins différentes.

L’usage d’un scanner de vulnérabilité lors de la distribution des correctifs de façon traditionnelle sera à revoir car il ne fonctionnera pas non plus dans cet écosystème. Il faudra en créer de nouveaux dédiés à ces applications.

Bref, la sécurité des conteneurs va soulever de nouveaux problèmes mais de l’avis des personnes intérrogées, il faudra encore attendre pour bénéficier d’outils spécifiques.