Les conteneurs docker RapidFort
Qu'est-ce qu'un conteneur RapidFort ? Je vous explique ce qu'il en est, avec un comparatif et mon ressenti.
Dans le monde de la cybersécurité, la sécurité des conteneurs est devenue une priorité absolue. Les conteneurs sont de plus en plus utilisés par les entreprises pour développer et déployer des applications de manière rapide et efficace. Cependant, les conteneurs peuvent également être vulnérables aux attaques. C'est pourquoi il est important d'utiliser des images sécurisées pour créer vos conteneurs.
RapidFort est une société qui génère des images sécurisées pour Docker. Leurs images sont basées soit sur une base d'images provenant de Bitnami ou des images officielles des éditeurs (l'image porte alors un nom comme rapidfort/nginx-official
) et sont régulièrement mises à jour pour corriger les vulnérabilités. RapidFort propose (par abonnement payant) une variété de fonctionnalités de sécurité, telles que la découverte des vulnérabilités, la remédiation des vulnérabilités et la surveillance de la sécurité.
Les avantages des images RapidFort
L'utilisation d'images sécurisées présente de nombreux avantages, notamment :
- Une sécurité accrue : les images sécurisées sont moins vulnérables aux attaques que les images officielles. Un rapport de vulnérabilité est d'ailleurs fourni par RapidFort pour chaque conteneur.
- Une mise en conformité : ces images peuvent vous permettre de vous conformer aux exigences de sécurité de votre entreprise en fonction des politiques SSI en place.
- Une meilleure performance : les images sont souvent plus performantes que les images non sécurisées / officielles, car elles sont plus légères et ne contiennent pas de superflu.
- Un meilleur temps de mise sur le marché (time to market) : ce sont des images durcies, déjà optimisées et prêtes à l'emploi. Ainsi, vous passez moins de temps à analyser et optimiser vos conteneurs.
Comment utiliser les images sécurisées de RapidFort ?
Pour utiliser les images sécurisées de RapidFort, vous pouvez soit créer un compte sur leur site Web, soit utiliser l'une des images sécurisées publiques disponibles sur Docker Hub. Il existe un abonnement pour les entreprises ayant des besoins précis, le plus simple étant de contacter directement les équipes commerciales pour avoir un tarif officiel.
Si vous utilisez l'une des images sécurisées publiques disponibles sur Docker Hub, vous n'aurez pas besoin de créer un compte. Cependant, vous n'aurez pas accès aux fonctionnalités de sécurité avancées offertes par RapidFort (SSO, tracking de vulnérabilité, hausse de la limite de conteneurs et support technique). À ce jour, je pull des conteneurs RapidFort depuis le Docker Hub, sans problème ni contrainte jusqu'alors.
Un rapide comparatif entre un conteneur RapidFort Nginx et un conteneur Nginx officiel :
RapidFort Nginx
- Plus petit : le conteneur RapidFort Nginx (rapidfort/nginx) est plus petit que les conteneurs Nginx officiels, il utilise moins d'espace disque et peut réutiliser d'autres layers de conteneurs RapidFort.
- Plus sécurisé : le conteneur est sécurisé comparé aux conteneurs Nginx officiels, car il est mis à jour et a déjà été nettoyé pour corriger les vulnérabilités connues.
- Image provenant de Bitnami, donc configuration personnalisée et à contrôler avant utilisation (notamment pour intégrer vos données et vos configurations).
Rapport du conteneur "rapidfort/nginx". La taille de l'image est réduite par 4 (!), le nombre de vulnérabilités aussi, comparé à une image nginx officielle.
Nginx officiel
- Sources officielles, donc assurance d'un conteneur fiabilisé par le créateur.
- Suivi strict de la configuration, des chemins et emplacements de fichiers.
- Ce n'est pas le plus optimal possible, mais fonctionne sans se poser de questions.
Mon utilisation et mon ressenti
Le rythme de mise à jour des conteneurs RapidFort est plus lent que les builds officiels. Il est important de noter qu'aujourd'hui, en considérant le contexte informatique actuel, privilégiez la sécurité à la performance.
J'utilise quotidiennement les conteneurs RapidFort, y compris pour ce site web. Que ce soit pour les bases de données MariaDB, Nginx ou encore redis, j'essaie au maximum d'utiliser ces images durcies. Il arrive que certaines applications ne soient pas compatibles avec les builds RapidFort, notamment parce qu'une librairie ou un programme (curl, wget) n'existe plus dans l'image. Dans ce cas, je reprends une image officielle "stock".
Un exemple auquel je n'utilise pas l'image RapidFort puisqu'il n'y a pas de plus-value : Traefik. Selon le rapport, il n'y a que peu de paquets enlevés et de réduction de l'image de base. Ceci s'explique par l'utilisation d'une image de base "Alpine" et du strict minimum déjà installé dans le build officiel de Traefik. Ainsi, j'utilise directement l'image officielle plutôt que celle de RapidFort.
Cherchez et comparez les builds, regardez le Dockerfile et la façon dont est construit le conteneur. Ne faites pas totalement confiance parce qu'il s'agit d'une image officielle, étudiez la conception et réfléchissez sur la meilleure manière de mettre en place votre conteneur. Prenez en compte votre infrastructure, vos besoins et vos contraintes.
Il m'arrive même parfois de copier deux Dockerfile pour générer mon propre Dockerfile, avec une base Debian-slim, pour contrôler au plus près ce qui est dans le conteneur.
Les images intéressantes
Je répertorie ici les images RapidFort que j'utilise dans mon homelab. Plutôt que d'utiliser une version "latest" qui risque d'être incompatible avec les autres conteneurs, je force une version pour chaque image.
Bases de données
- https://hub.docker.com/r/rapidfort/mariadb (docker pull rapidfort/mariadb:10.11)
- https://hub.docker.com/r/rapidfort/postgresql (docker pull rapidfort/postgresql:15.3)
- https://hub.docker.com/r/rapidfort/mysql (docker pull rapidfort/mysql:8.0)
Web
- https://hub.docker.com/r/rapidfort/nginx (version stable : docker pull rapidfort/nginx:1.24)
Système
- https://hub.docker.com/r/rapidfort/redis (docker pull rapidfort/redis:7.0)
- https://hub.docker.com/r/rapidfort/prometheus (docker pull rapidfort/prometheus:2.44)
Ce que j'envisage d'utiliser (tests en cours) :
- Ghost : https://hub.docker.com/r/rapidfort/ghost (docker pull rapidfort/ghost:5.52)
- HAProxy : https://hub.docker.com/r/rapidfort/haproxy (docker pull rapidfort/haproxy:2.8)
- ElasticSearch : https://hub.docker.com/r/rapidfort/elasticsearch
- Vault : https://hub.docker.com/r/rapidfort/vault
- Telegraf : https://hub.docker.com/r/rapidfort/telegraf
Il y a aussi quelques images de conteneurs provenant de l'entité "Iron Bank". Les images sont intitulées "rapidfort/nomImage-ib". Au départ, j'étais un peu surpris de voir le peu d'informations à l'encontre de ce fournisseur. Après quelques recherches, il s'agit d'un dépôt d'images devant être OCI compliant, en plus de respecter le guide "container hardening DoD" provenant du département de la Défense des États-Unis d'Amérique. Ce sont donc des images durcies, encore plus durcies, respectant strictement des processus et conventions spécifiques. Je n'ai pas encore pris le temps de tester ces images, elles sont d'ailleurs beaucoup sous une base RHEL.
Avez-vous ou utilisez-vous déjà utilisé ce genre d'image de conteneur ?