Votre conteneur et votre image Docker sont-ils sécurisés ?
Découvrons-le !
Les pirates informatiques sont devenus très actifs ces dernières années. Même de grandes organisations comme Facebook, Google et Yahoo ont été victimes d’attaques qui leur ont fait perdre des millions de dollars. C’est pourquoi la sécurité d’une application est la chose la plus importante dans chaque organisation aujourd’hui.
Nombre de ces applications tournent aujourd’hui dans des conteneurs, car ils sont facilement évolutifs, rentables, plus rapides à déployer, prennent moins de place en mémoire et utilisent les ressources bien mieux que les machines virtuelles. Le facteur de sécurité de ces conteneurs est donc très important. Une image de conteneur est composée de plusieurs couches, et pour avoir une compréhension réelle de la vulnérabilité d’une image, vous devez accéder à chaque couche. Les petites images de conteneurs ont moins de chances d’être exposées à des vulnérabilités potentielles.
Laconteneurisation est l’une des principales étapes du processus DevOps où la sécurité doit être prise au sérieux. Une image de conteneur peut contenir de nombreux bogues et vulnérabilités de sécurité, ce qui donne une bonne occasion aux pirates d’accéder à l’application ou aux données présentes sur le conteneur, ce qui coûte des millions à l’entreprise.
Il est donc essentiel de scanner et d’auditer régulièrement les images et les conteneurs. DevSecOps joue un rôle important dans l’ajout de la sécurité aux processus DevOps, notamment en analysant les images et les conteneurs à la recherche de bogues et de vulnérabilités.
Un scanner de sécurité des conteneurs vous aidera à trouver toutes les vulnérabilités à l’intérieur de vos conteneurs et à les surveiller régulièrement contre toute attaque, tout problème ou tout nouveau bogue.
Explorons les options disponibles.
Clair
Clair est un projet open-source qui propose une analyse statique de la sécurité et des vulnérabilités pour les conteneurs Docker et les conteneurs d’applications (appc).
Il s’agit d’un moteur d’analyse basé sur les API qui recherche les failles de sécurité dans les conteneurs, couche par couche. Vous pouvez créer des services à l’aide de Clair, qui peut surveiller vos conteneurs en permanence pour détecter les vulnérabilités des conteneurs. Il vous informe d’une menace potentielle dans le conteneur. Il vous informe d’une menace potentielle dans le conteneur en se basant sur la base de données Common Vulnerabilities and Exposures (CVE) et d’autres bases de données similaires.
Si vous identifiez une menace ou un problème qui figure déjà dans la base de données nationale sur les vulnérabilités (NVD), il récupère les détails et les fournit dans le rapport.
Caractéristiques de Clair :
- Recherche les vulnérabilités existantes et les empêche d’être introduites à l’avenir.
- Fournit une API REST pour l’intégration avec d’autres outils
- Envoie une notification lorsqu’il identifie une vulnérabilité
- Fournit un rapport au format HTML avec tous les détails de l’analyse
- Met à jour les métadonnées à intervalles réguliers
Anchore
Anchore est un projet open-source pour l’analyse approfondie des images Docker.
Il certifie également une image docker en indiquant si elle est sécurisée ou non. Le moteur Anchore peut fonctionner de manière autonome ou sur des plateformes d’orchestration telles que Kubernetes, Rancher, Amazon ECS, Docker Swarm. Anchore est également disponible dans les plugins Jenkins pour analyser le pipeline CI/CD.
Si vous avez simplement besoin d’un scanner Kubernetes, consultez ces outils pour trouver des failles de sécurité dans Kubernetes.
Vous devez soumettre une image docker à anchore, qui l’analysera et vous fournira des détails si elle présente des vulnérabilités. Vous pouvez également utiliser votre politique de sécurité personnalisée pour évaluer une image dans anchore.
Vous pouvez accéder au moteur d’anchore par l’intermédiaire de CLI ou d’API REST.
Caractéristiques d’Anchore :
- Inspection approfondie des images de conteneurs, des paquets de systèmes d’exploitation et des artefacts logiciels tels que les fichiers jar
- S’intègre de manière transparente à votre pipeline CI/CD pour détecter les failles de sécurité
- Définit et applique des politiques pour empêcher la construction et le déploiement d’images dangereuses
- Vérifiez uniquement les images certifiées et sécurisées avant de les déployer sur une plateforme d’orchestration.
- Personnalisez les contrôles pour les vulnérabilités, les fichiers de configuration, les secrets d’image, les ports exposés, etc.
Dagda
Dagda est un outil open-source pour l’analyse statique des vulnérabilités connues telles que les chevaux de Troie, les logiciels malveillants, les virus, etc. dans les images et les conteneurs Docker. Il utilise le moteur antivirus ClamAV pour détecter ces vulnérabilités.
Il importe tout d’abord toutes les vulnérabilités connues de CVE, Red Hat Security Advisories (RHSA), Red Hat Bug Advisories (RHBA), Bugtraq IDs (BID) et Offensive Security dans une base de données MongoDB. Les images et les conteneurs sont ensuite analysés en fonction des vulnérabilités importées.
Caractéristiques de Dagda :
- Prise en charge de plusieurs images Linux (CentOS, Ubuntu, OpenSUSE, Alpine, etc.)
- Analyse les dépendances de java, python node js, javascript, ruby, PHP
- S’intègre à Falco pour surveiller les conteneurs en cours d’exécution
- Stocke chaque rapport d’analyse dans MongoDB pour conserver l’historique de chaque image ou conteneur Docker
Falco
Falco est un projet open-source et un moteur de détection des menaces pour Kubernetes. C’est un outil de sécurité d’exécution pour détecter les activités anormales dans les hôtes et les conteneurs fonctionnant sur Kubernetes. Il détecte tout comportement inattendu dans votre application et vous alerte sur les menaces au moment de l’exécution.
Il utilise une syntaxe de type tcpdump pour construire les règles et s’appuie sur des bibliothèques telles que libscap et libinsp qui ont la capacité d’aller chercher des données dans votre serveur API Kubernetes ou dans votre environnement d’exécution de conteneurs.
Ensuite, vous pouvez utiliser ces métadonnées pour obtenir des pods, des étiquettes et des espaces de noms afin de créer des règles spécifiques à un espace de noms particulier ou à une image de conteneur particulière. Les règles se concentrent sur les appels système et sur ce qui est autorisé ou non sur le système.
Aqua Security
Aqua Security protège les applications construites à l’aide de technologies cloud-natives telles que les conteneurs. Il fournit une analyse et une gestion des vulnérabilités pour les orchestrateurs tels que Kubernetes.
Il s’agit d’une plateforme de sécurité complète qui garantit que les applications exécutées sur les conteneurs sont sécurisées et qu’elles s’exécutent dans un environnement sûr.
Lorsque les développeurs créent des images, ils disposent d’un ensemble de technologies et de bibliothèques pour construire leurs images. Aqua security leur permet d’analyser ces images pour s’assurer qu’elles sont propres, qu’elles ne présentent pas de vulnérabilités connues, qu’elles n’ont pas de mots de passe ou de secrets connus, et qu’il n’existe aucune menace de sécurité susceptible de rendre cette image vulnérable.
Si une vulnérabilité est détectée, Aqua Security la signale au développeur et lui recommande les mesures à prendre pour corriger ces images vulnérables.
Aqua Security dispose également de technologies qui lui permettent de s’assurer qu’il n’est pas attaqué ou pénétré par une quelconque menace de sécurité une fois que le conteneur fonctionne en production.
Docker Bench
Docker Bench Security est un script avec plusieurs tests automatisés pour vérifier les meilleures pratiques pour le déploiement de conteneurs en production.
Pour exécuter Docker Bench Security, vous devez disposer de Docker 1.13.0 ou d’une version ultérieure.
Vous devez exécuter la commande ci-dessous pour exécuter docker bench security.
docker run -it --net host --pid host --userns host --cap-add audit_control \
-e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \N- V
-v /var/lib:/var/lib \N- v /var/run/docker:/var/lib
-v /var/run/docker.sock:/var/run/docker.sock \n- /var/run/docker.sock
-v /usr/lib/systemd:/usr/lib/systemd \N- v /usr/lib/systemd:/usr/lib/systemd:/usr/lib/systemd
-v /etc:/etc --label docker_bench_security \N- /etc --label docker_bench_security \N
docker/docker-bench-security
Après cela, le script s’exécutera, et il partagera les détails pour INFO
, WARN
, PASS
. Après avoir exécuté le script, vous pouvez vérifier tous les messages d’avertissement et apporter les corrections nécessaires.
Harbor
Harbor est un registre open-source et cloud natif de confiance qui fournit des politiques de sécurité et un contrôle d’accès basé sur les rôles (RBAC). Il stocke, signe et scanne les images docker à la recherche de vulnérabilités. Il peut être installé sur un cluster Kubernetes ou tout autre système qui prend en charge Docker.
Caractéristiques de Harbor :
- Facilement déployable à l’aide de Docker Compose
- Analyse de la sécurité et des vulnérabilités
- Signature et validation de contenu multi-locataires
- Intégration des identités et contrôle d’accès basé sur les rôles
- API et interface utilisateur extensibles
- Réplication d’images entre les instances
- Prise en charge de LDAP/AD et OIDC pour la gestion et l’authentification des utilisateurs
JFrog Xray
JFrog X ray est un outil d’analyse d’artefacts universel et de sécurité open-source continu.
Avec JFrog Xray, vous pouvez analyser en continu vos artefacts et dépendances pour détecter les vulnérabilités de sécurité et les problèmes de conformité de licence.
En tant que solution universelle d’analyse des artefacts, Xray identifie de manière proactive les vulnérabilités en matière de sécurité et les risques liés aux licences. Avant de se manifester en production, Xray s’intègre nativement à JFrog Artifactory, offrant une visibilité sur toutes les métadonnées des artefacts, y compris l’état de la sécurité dans un seul écran.
La base de données Xray de JFrog sur les nouvelles vulnérabilités et technologies est en constante expansion, ce qui vous permet de prendre de meilleures décisions techniques avec moins de compromis. Il vérifie tous vos composants par rapport à sa base de données croissante de nouvelles vulnérabilités et vous avertit des nouveaux problèmes, même après la publication.
Il prend en charge tous les types de paquets et utilise une analyse récursive profonde pour examiner toutes les couches et dépendances soulignées, même celles emballées dans des images Docker et des fichiers zip. JFrog Xray crée également un graphique de la structure de vos artefacts et dépendances, ainsi qu’une analyse d’impact des vulnérabilités et des problèmes de licence découverts
Qualys
Qualys container security est un outil utilisé pour découvrir, suivre et protéger en permanence les environnements de conteneurs. Il recherche les vulnérabilités à l’intérieur des images ou des conteneurs dans le pipeline DevOps et les déploiements sur des environnements cloud ou sur site.
Qualys propose une version gratuite de l’application de sécurité des conteneurs pour donner aux utilisateurs un aperçu de ce qu’elle peut offrir. Elle vous donne une vue des images et des conteneurs en cours d’exécution dans l’environnement. Si vous souhaitez les analyser, vous devez souscrire à un abonnement payant.
Il fournit également une sécurité d’exécution pour les conteneurs en offrant un pare-feu au niveau de la fonction pour les conteneurs. Il offre une visibilité approfondie du comportement des conteneurs et protège l’image et les conteneurs en cours d’exécution à l’aide de la couche Qualys CRS (sécurité d’exécution des conteneurs).
Docker Scan
Encore en version bêta, Docker Scan s’appuie sur le moteur Synk et est capable d’analyser les fichiers Docker locaux, les images et leurs dépendances pour trouver les vulnérabilités connues. Vous pouvez lancer Docker Scan
à partir de Docker Desktop.
docker scan mydockerimage
Grype
De nos jours, la sécurité des conteneurs est un sujet populaire. Le scanner de sécurité des conteneurs est l’un des nombreux outils que vous pouvez utiliser pour sécuriser vos conteneurs. Grype est un scanner de sécurité pour les conteneurs utilisé pour identifier les vulnérabilités dans les conteneurs fonctionnant sur n’importe quelle plateforme.
Il est disponible sur GitHub et est open source. Une application web et un outil en ligne de commande sont disponibles pour Grype.
Cet outil open-source d’analyse des vulnérabilités des conteneurs aide les équipes DevOps à trouver et à résoudre les failles de sécurité dans leurs environnements d’exécution et leurs images de conteneurs.
Il vérifie que les conteneurs en cours d’exécution ne présentent pas de failles de sécurité potentielles et analyse les images Docker publiques et privées à la recherche de vulnérabilités. Grype peut être utilisé seul ou comme plug-in pour des instruments DevOps bien connus comme Jenkins, CircleCI et Travis CI.
Caractéristiques principales
- Prise en charge de tous les systèmes d’exploitation courants, y compris Redhat, Oracle, Ubuntu, CentOS, etc.
- Installation simple et compatibilité avec plusieurs autres langages, dont Java, Ruby, PHP et DotNet
- Accepte les formats d’entrée Syft, SPDX et CycloneDX SBOM
- Le format de sortie peut être défini à l’aide de modèles Go
- Supporte plusieurs sources pour construire des bases de données de vulnérabilités afin d’augmenter la fiabilité de l’appariement des vulnérabilités.
Grype gagne en popularité car il est simple à installer et peut être utilisé sur n’importe quelle plateforme supportant les conteneurs.
Comme il existe de nombreuses façons d’attaquer un conteneur, il est essentiel de disposer d’un scanner de sécurité solide. C’est pourquoi un nouveau scanner de sécurité pour conteneurs, Grype, peut être utilisé pour trouver les vulnérabilités dans les conteneurs et prévenir les attaques.
Conclusion
Maintenant que vous savez que les scanners de sécurité des conteneurs existent, vous n’avez plus d’excuses. Allez-y et essayez de voir comment ils peuvent vous aider à garder votre application conteneurisée sûre et sécurisée.