L’outil Docker-bench for Security est un script open source qui analyse de nombreuses bonnes pratiques standard lors du déploiement de conteneurs Docker dans un environnement de production. Les tests entièrement automatisés sont conçus pour localiser les problèmes avec votre configuration sur la base des normes CIS Docker Benchmark v1.3.1. Ces tests sont entièrement automatisés et permettent aux utilisateurs d’auto-évaluer les hôtes et les conteneurs docker où ils résident.
Conditions préalables
Une instance de Docker en cours d’exécution sur votre serveur
Un utilisateur administratif avec des autorisations élevées ou un utilisateur associé au groupe docker
Docker 1.13.0≥ (Si une distribution n’utilise pas auditctl, les tests d’audit inclus vérifieront le fichier /etc/audit/audit.rules pour voir si une règle est présente à la place)
Installation
Il existe deux méthodes pour installer et exécuter Docker bench. La principale méthode consiste à utiliser la commande git clone pour répliquer le script localement, et la seconde consiste à exécuter une version conteneurisée du script.
Clone
Exécutez la commande git clone pour répliquer le script. Une fois téléchargé, cd dans le dossier cloné et exécutez le script.
git clone https://github.com/docker/docker-bench-security.git
cd docker-bench-security
sudo sh docker-bench-security.sh
Le script docker conteneurisé nécessite des privilèges élevés pour s’exécuter car il utilise le système de fichiers, le pid et les espaces de noms réseau de l’hôte, car les composants du benchmark s’appliqueront à l’hôte en cours d’exécution.
La deuxième méthode pour exécuter le script utilise un petit conteneur Docker préemballé. C’est le moyen le plus simple d’exécuter Docker Bench contre vos hôtes. L’ajustement des volumes partagés est également nécessaire en fonction du système d’exploitation sur lequel le script est exécuté*.
Construire l’image Docker
Les utilisateurs ont deux choix lors de la création de l’image docker, en utilisant git clone ou docker compound. Les deux méthodes sont indiquées ci-dessous.
git clone https://github.com/docker/docker-bench-security.git
cd docker-bench-security
docker-compose run --rm docker-bench-security
Lancer le script
sh docker-bench-security.sh
Options de scripts
docker-bench-security.sh -h
-b optional Do not print colors
-h optional Print this help message
-l FILE optional Log output in FILE, inside container if run using docker
-u USERS optional Comma delimited list of trusted docker user(s) -c CHECK optional Comma delimited list of specific check(s) id
-e CHECK optional Comma delimited list of specific check(s) id to exclude
-i INCLUDE optional Comma delimited list of patterns within a container or image name to check
-x EXCLUDE optional Comma delimited list of patterns within a container or image name to exclude from check
-n LIMIT optional In JSON output, when reporting lists of items (containers, images, etc.), limit the number of reported items to LIMIT. Default 0(no limit).
-p PRINT optional Disable the printing of remediation measures. Default: print remediation measures.
Par défaut, Docker Bench exécutera tous les tests CIS disponibles. Cela produira deux journaux principaux dans un dossier de journaux dans le répertoire actuel. Vous trouverez ci-dessous les noms des journaux.
docker-bench-security.sh.log.json
docker-bench-security.sh.log.
Lorsque le conteneur docker est utilisé, les fichiers journaux seront créés à l’intérieur du conteneur à l’emplacement /usr/local/bin/log/. Si les utilisateurs souhaitent y accéder à partir de l’hôte après l’exécution du conteneur, un volume de stockage mappé est requis.
Résultats
La sortie du script est divisée en cinq zones principales. Chaque section aborde un domaine de préoccupation différent.
Configuration de l’hôte
Configuration du démon Docker
Fichiers de configuration du démon Docker
Images de conteneur et fichiers de construction
Exécution du conteneur
Dans chacun de ces domaines, les tests renverront l’un des trois résultats; Info, Avertissement ou Pass.
Après chaque vérification, un retour est fourni pour chacune des recommandations de configuration. Dans ces résultats, les utilisateurs peuvent tirer parti du document de référence d’origine pour remédier à tout problème.