Fork-Bombe
Was ist Fork-Bombe?
Fork-BombeDenial-of-Service-Technik, bei der ein Prozess sich rekursiv selbst forkt und Prozesstabelle, Speicher und CPU des Hosts erschöpft.
Eine Fork-Bombe ist bösartiger oder versehentlicher Code, der rekursiv Kindprozesse erzeugt und sich in jedem Zyklus verdoppelt, bis Kernel-Limits, Speicher oder CPU gesättigt sind und das System nicht mehr reagiert. Der klassische POSIX-Einzeiler :(){ :|:& };: definiert eine Funktion namens :, die zwei Kopien von sich selbst in den Hintergrund pipet und sie dann aufruft; jede Generation verdoppelt die Prozesszahl, sodass sich die Prozesstabelle innerhalb von Sekunden füllt. Die Idee ist weit älter als Unix — einer ihrer frühesten Namen ist das „Wabbit"- bzw. Rabbit-Programm, das Berichten zufolge um 1969–1974 auf einem Burroughs-Mainframe der University of Washington gesichtet wurde.
Fork-Bomben verbreiten sich nicht wie Würmer über Netzwerke; sie sind lokale Angriffe zur Ressourcenerschöpfung, aber sehr wirksam auf gemeinsam genutzten Multi-User-Hosts, CI-Runnern und Containern, wo ein einzelner unprivilegierter Nutzer allen anderen den Dienst verwehren kann.
Abwehrmaßnahmen begrenzen die Ressourcen, die ein Prozessbaum verbrauchen darf, statt den Syscall selbst zu blockieren. Unter Linux sind die wichtigsten Stellschrauben ulimit -u / PAM pam_limits (nproc), um die Prozesse pro Nutzer zu begrenzen, sowie der cgroups-pids-Controller (pids.max) — den Docker und Kubernetes über --pids-limit bereitstellen —, um die Task-Anzahl eines Containers zu deckeln. Account-Isolation, Sandboxes für nicht vertrauenswürdigen Code und dedizierte CI-Executoren begrenzen den Wirkungsradius weiter.
flowchart TD
A[":()-Funktion<br/>ruft sich zweimal selbst auf"] --> B[Kind 1]
A --> C[Kind 2]
B --> D[Enkel]
B --> E[Enkel]
C --> F[Enkel]
C --> G[Enkel]
D --> H["... exponentielles Wachstum ..."]
E --> H
F --> H
G --> H
H --> I{"pids.max / ulimit -u<br/>erreicht?"}
I -->|Kein Limit| J[Prozesstabelle erschöpft — Host hängt]
I -->|Limit gesetzt| K[Neue Forks scheitern mit EAGAIN — Host überlebt]● Beispiele
- 01
Der Bash-Einzeiler `:(){ :|:& };:` als klassische DoS-Demo.
- 02
Fehlerhafte CI-Skripte, die in einer Endlosschleife fork() aufrufen.
● Häufige Fragen
Was ist Fork-Bombe?
Denial-of-Service-Technik, bei der ein Prozess sich rekursiv selbst forkt und Prozesstabelle, Speicher und CPU des Hosts erschöpft. Es gehört zur Kategorie Schadsoftware der Cybersicherheit.
Was bedeutet Fork-Bombe?
Denial-of-Service-Technik, bei der ein Prozess sich rekursiv selbst forkt und Prozesstabelle, Speicher und CPU des Hosts erschöpft.
Wie schützt man sich gegen Fork-Bombe?
Schutzmaßnahmen gegen Fork-Bombe kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Fork-Bombe?
Übliche alternative Bezeichnungen: Wabbit, Kaninchenvirus.