Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/alexei-led/pumba
Sécurité des ConteneursDevSecOpsIngénierie du Chaos
GitHubalexei-led/pumba

pumba

Outil de test de chaos, d'émulation réseau et de test de stress pour conteneurs

Voir le dépôt
3.1k215il y a 16h 5mVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Pumba
Outil de test de chaos pour Docker, containerd et Podman

GitHub Release Release Build and Test Go Report Card Codecov License

Démarrage rapide · Guide de l'utilisateur · Chaos réseau · Déploiement · Contribuer


Pumba est un outil de test de chaos et d'émulation réseau pour les conteneurs Docker, containerd et Podman. Inspiré de Netflix Chaos Monkey, Pumba apporte l'ingénierie du chaos au niveau des conteneurs — tuer, arrêter, suspendre et supprimer des conteneurs, injecter des latences réseau et des pertes de paquets, ou tester la résistance des ressources des conteneurs.

Comment ça marche

root@kitploit:~
graph LR
    A[Pumba CLI] -->|Docker API / containerd API / Podman compat API| B[Container Runtime]
    B -->|List & Filter| C[Target Containers]

    A -->|kill / stop / pause / rm| C

    A -->|netem / iptables| D[Helper Container / Direct Exec]
    D -->|Shares network namespace| C
    D -->|Runs tc / iptables| E[Network Chaos]

Runtimes pris en charge

Plateformes prises en charge

Pumba cible les conteneurs Linux — chaque action de chaos dépend des primitives Linux (netns, cgroups v2, iptables, tc qdiscs, sockets des runtimes de conteneurs). Binaires publiés :

Windows n'est volontairement pas compilé. Les primitives de chaos — écritures netns/cgroups Linux, injection sidecar tc/iptables, transfert de signaux POSIX (SIGCONT/SIGSTOP/SIGUSR1/SIGUSR2 utilisés par le runtime containerd) — n'ont pas d'équivalent Windows. Il n'existe aucun cas d'usage plausible sous Windows, même avec le backend WSL2 de Docker Desktop, donc aucun binaire Windows n'est publié. Les PR ajoutant la prise en charge de Windows ne seront pas acceptées ; veuillez exécuter pumba sous Linux (natif, conteneur ou VM).

Fonctionnalités

Démarrage rapide

Installation

Téléchargez la dernière version pour votre plateforme, ou utilisez Docker :

root@kitploit:~
# Binary
curl -sL https://github.com/alexei-led/pumba/releases/latest/download/pumba_linux_amd64 -o pumba
chmod +x pumba

# Docker (recommended)
docker pull ghcr.io/alexei-led/pumba:latest

Premier chaos

root@kitploit:~
# Kill a random container matching "test" every 30 seconds
pumba --interval=30s --random kill "re2:^test"

# Add 3 seconds network delay to mydb for 5 minutes
pumba netem --duration 5m delay --time 3000 mydb

# Drop 10% of incoming packets to myapp for 2 minutes
pumba iptables --duration 2m loss --probability 0.1 myapp

# Stress CPU of mycontainer for 60 seconds
pumba stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer

Runtime containerd

root@kitploit:~
# Kill a container by ID via containerd
pumba --runtime containerd --containerd-namespace k8s.io kill <container-id>

# Add network delay via containerd (requires tc in the container image)
pumba --runtime containerd --containerd-namespace moby \
  netem --duration 5m delay --time 3000 <container-id>

Runtime Podman

Pumba communique avec Podman via son socket Docker-compat. --podman-socket est facultatif — s'il est vide, pumba sonde $CONTAINER_HOST, $PODMAN_SOCK, podman machine inspect, /run/podman/podman.sock et $XDG_RUNTIME_DIR/podman/podman.sock dans cet ordre.

root@kitploit:~
# Kill a container by name via Podman (rootful socket auto-detected)
sudo pumba --runtime podman kill mycontainer

# Add network delay via Podman (requires rootful socket)
sudo pumba --runtime podman netem --duration 5m delay --time 3000 mycontainer

# Stress CPU via Podman (default child-cgroup mode)
sudo pumba --runtime podman stress --duration 60s --stressors="--cpu 4 --timeout 60s" mycontainer

# Explicit socket override
pumba --runtime podman --podman-socket unix:///run/podman/podman.sock kill mycontainer

netem, iptables et stress nécessitent Podman rootful — en rootless, l'échec est rapide avec un message clair indiquant podman machine set --rootful (macOS) ou l'unité systemd rootful (Linux).

Développement macOS avec Podman

Podman sur macOS s'exécute dans une VM Linux. Pumba doit s'exécuter sur le même noyau que les conteneurs ciblés (lecture côté hôte de /proc/<pid>/cgroup), donc exécutez le binaire pumba dans la VM podman machine :

root@kitploit:~
# one-time setup
brew install podman
podman machine init --rootful --cpus 4 --memory 4096 --now
podman machine ssh sudo dnf install -y bats      # optional, for bats tests

# copy a linux/arm64 or linux/amd64 pumba binary into the VM
podman machine ssh sudo cp /path/to/pumba /usr/local/bin/

# run inside the VM
podman machine ssh sudo pumba --runtime podman --log-level debug ps
podman machine ssh sudo pumba --runtime podman netem --duration 10s delay --time 200 <container-id>

Astuce : Pour le chaos réseau sur des conteneurs sans tc/iptables, utilisez --tc-image pour lancer un sidecar :

root@kitploit:~
pumba --runtime containerd netem --tc-image ghcr.io/alexei-led/pumba-alpine-nettools:latest \
  --duration 5m delay --time 3000 <container-id>

Exécution avec Docker

root@kitploit:~
docker run -it --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/alexei-led/pumba --interval=10s --random kill "re2:^test"

Images Docker

RegistryImageStatus
GitHub Container Registryghcr.io/alexei-led/pumba✅ Principal
Docker Hubalexeiled/pumba⚠️ Obsolète

Les images sont compilées nativement pour linux/amd64 et linux/arm64 (pas de QEMU).

Documentation

Démo

asciicast

Communauté et support

  • Problèmes : GitHub Issues
  • Blog : Pumba - Tests de chaos pour Docker

Licence

Licence Apache 2.0

Télécharger l’outil
RuntimeSocket (default)netem / iptables / stressNotes
Docker/var/run/docker.sockWorks as root or with socket accessRuntime par défaut.
containerd/run/containerd/containerd.sockRequires root (overlayfs mounts for sidecar)Namespaces : k8s.io (Kubernetes), moby (géré par Docker), default (containerd pur).
Podman/run/podman/podman.sock (rootful)Requires rootful Podman (fails fast else)Utilise l'API Docker-compat de Podman ; sur macOS, pumba s'exécute dans podman machine (voir ci-dessous).
OSamd64arm64Notes
Linux✅✅Cible principale. Exécutez pumba sur le même noyau que les conteneurs ciblés.
macOS✅✅Ergonomie développeur uniquement. Utilisez-le pour piloter une VM Docker/Podman/containerd distante (ex. Colima, podman machine).
Windows❌❌Non pris en charge et non prévu. Voir ci-dessous.
CatégorieCommandesDescription
Chaos conteneurkill, stop, pause, rm, restartPerturbe le cycle de vie des conteneurs
ExécutionexecExécute des commandes dans les conteneurs
Latence réseaunetem delayAjoute de la latence au trafic sortant
Perte de paquetsnetem loss, iptables lossSupprime des paquets (sortants et entrants)
Effets réseaunetem duplicate, corrupt, rateDuplique, corrompt ou limite le débit des paquets
Test de stressstressStress CPU, mémoire, I/O via stress-ng (injection dans un cgroup enfant ou le même cgroup)
Ciblagenoms, regex (re2:), étiquettes, --randomSélection flexible des conteneurs
Planification--intervalChaos récurrent à intervalles fixes
FlagDéfautDescription
--runtimedockerRuntime de conteneurs (docker, containerd ou podman)
--containerd-socket/run/containerd/containerd.sockchemin du socket containerd
--containerd-namespacek8s.ionamespace containerd (k8s.io pour Kubernetes, moby pour Docker)
--podman-socket(auto-détecté)URI du socket Podman (ex. unix:///run/podman/podman.sock) ; vide déclenche l'auto-détection
DocumentDescription
Guide de l'utilisateurCommandes de chaos conteneur, ciblage, planification, configuration
Chaos réseaunetem, iptables, scénarios avancés, schémas d'architecture
Test de stressTest de stress CPU/mémoire/IO avec stress-ng
DéploiementDocker, DaemonSets Kubernetes, OpenShift
ContribuerCompilation depuis les sources, exécution des tests, structure du projet