Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pumba — Strumento di test del caos, emulazione di rete e stress test per container | Kitploit
Strumenti/GitHubGitHub/alexei-led/pumba
Sicurezza dei ContenitoriDevSecOpsIngegneria del Caos
GitHubalexei-led/pumba

pumba

Strumento di test del caos, emulazione di rete e stress test per container

Vedi Repository
3.1k21516h 4m faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Pumba
Strumento di chaos testing per Docker, containerd e Podman

GitHub Release Release Build and Test Go Report Card Codecov License

Avvio rapido · Guida utente · Chaos di rete · Distribuzione · Contribuire


Pumba è uno strumento di chaos testing ed emulazione di rete per i container Docker, containerd e Podman. Ispirato a Netflix Chaos Monkey, Pumba porta l'ingegneria del caos a livello di container: kill, stop, pause e rimozione dei container, iniezione di ritardi di rete e perdita di pacchetti, oppure stress test delle risorse dei container.

Come funziona

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 supportati

Piattaforme supportate

Pumba ha come target i container Linux: ogni azione di chaos dipende da primitive Linux (netns, cgroups v2, iptables, tc qdisc, socket dei runtime dei container). Binari rilasciati:

Windows non viene volutamente compilato. Le primitive del chaos — scritture netns/cgroup Linux, iniezione sidecar tc/iptables, inoltro dei segnali POSIX (SIGCONT/SIGSTOP/SIGUSR1/SIGUSR2 usati dal runtime containerd) — non hanno un equivalente su Windows. Non esiste un caso d'uso plausibile su Windows nemmeno con il backend WSL2 di Docker Desktop, quindi non viene pubblicato alcun binario Windows. Le PR che aggiungono il supporto Windows non saranno accettate; esegui pumba su Linux (nativo, in container o in VM).

Funzionalità

Avvio rapido

Installazione

Scarica l'ultima release per la tua piattaforma, oppure usa 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

Primo 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 comunica con Podman tramite il socket Docker-compat. --podman-socket è opzionale — se vuoto, pumba controlla in ordine $CONTAINER_HOST, $PODMAN_SOCK, podman machine inspect, /run/podman/podman.sock e $XDG_RUNTIME_DIR/podman/podman.sock.

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 e stress richiedono Podman rootful: in modalità rootless il comando fallisce subito con un messaggio chiaro che indica podman machine set --rootful (macOS) o l'unità systemd rootful (Linux).

Sviluppo su macOS con Podman

Podman su macOS viene eseguito all'interno di una VM Linux. Pumba deve girare sullo stesso kernel dei container target (lettura di /proc/<pid>/cgroup lato host), quindi esegui il binario di pumba dentro 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>

Suggerimento: per il chaos di rete su container senza tc/iptables, usa --tc-image per avviare 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>

Eseguire con 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"

Immagini Docker

RegistryImmagineStato
GitHub Container Registryghcr.io/alexei-led/pumba✅ Principale
Docker Hubalexeiled/pumba⚠️ Obsoleto

Le immagini sono compilate nativamente per linux/amd64 e linux/arm64 (niente QEMU).

Documentazione

Demo

asciicast

Community e supporto

  • Issue: Issue GitHub
  • Blog: Pumba - Chaos Testing for Docker

Licenza

Apache License 2.0

Scarica lo strumento
RuntimeSocket (predefinito)netem / iptables / stressNote
Docker/var/run/docker.sockFunziona come root o con accesso al socketRuntime predefinito.
containerd/run/containerd/containerd.sockRichiede root (mount overlayfs per il sidecar)Namespace: k8s.io (Kubernetes), moby (gestito da Docker), default (containerd puro).
Podman/run/podman/podman.sock (rootful)Richiede Podman rootful (altrimenti fallisce subito)Usa l'API Docker-compat di Podman; su macOS pumba viene eseguito dentro podman machine (vedi sotto).
OSamd64arm64Note
Linux✅✅Target primario. Esegui pumba sullo stesso kernel dei container target.
macOS✅✅Solo ergonomia per gli sviluppatori. Usalo per guidare una VM Docker/Podman/containerd remota (es. Colima, podman machine).
Windows❌❌Non supportato e non pianificato. Vedi sotto.
CategoriaComandiDescrizione
Chaos sui containerkill, stop, pause, rm, restartInterrompi il ciclo di vita dei container
EsecuzioneexecEsegui comandi all'interno dei container
Ritardo di retenetem delayAggiungi latenza al traffico in uscita
Perdita di pacchettinetem loss, iptables lossScarta pacchetti (in uscita e in ingresso)
Effetti di retenetem duplicate, corrupt, rateDuplica, corrompi o limita la velocità dei pacchetti
Stress teststressStress di CPU, memoria e I/O tramite stress-ng (child cgroup o iniezione nello stesso cgroup)
Selezione dei targetnomi, regex (re2:), label, --randomSelezione flessibile dei container
Pianificazione--intervalChaos ricorrente a intervalli fissi
FlagPredefinitoDescrizione
--runtimedockerRuntime dei container (docker, containerd o podman)
--containerd-socket/run/containerd/containerd.sockPercorso del socket di containerd
--containerd-namespacek8s.ioNamespace di containerd (k8s.io per Kubernetes, moby per Docker)
--podman-socket(rilevamento automatico)URI del socket di Podman (es. unix:///run/podman/podman.sock); vuoto attiva il rilevamento automatico
DocumentoDescrizione
Guida utenteComandi di chaos per container, selezione dei target, pianificazione, configurazione
Chaos di retenetem, iptables, scenari avanzati, diagrammi di architettura
Stress testStress test di CPU/memoria/IO con stress-ng
DistribuzioneDocker, Kubernetes DaemonSets, OpenShift
ContribuireCompilare dal sorgente, eseguire i test, struttura del progetto