NOPE LinkedIn

Catégories:
Docker

Docker Bench

Docker Bench

Qu’est-ce que Docker-bench ?

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
docker run --rm --net host --pid host --userns host --cap-add audit_control \

    -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \
    -v /etc:/etc:ro \
    -v /usr/bin/containerd:/usr/bin/containerd:ro \
    -v /usr/bin/runc:/usr/bin/runc:ro \
    -v /usr/lib/systemd:/usr/lib/systemd:ro \
    -v /var/lib:/var/lib:ro \
    -v /var/run/docker.sock:/var/run/docker.sock:ro \
    --label docker_bench_security \
    docker/docker-bench-security

Conteneur Docker

Avertissement

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 build --no-cache -t docker-bench-security .
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. docker bench 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.

Référence