Linux: fork() bomb verstehen

2019-01-30 von admin

Eine Forkbomb ist eine Form eines Denial of Service (DoS) Angriffs gegen ein Linux System. Dabei sollen alle verfügbaren Systemressourcen aufgebraucht werden, um so das System zu blockieren.

 

Warnung

Die Ausführung des hier abgebildeten Codes kann Ihr System abstürzen lassen!

Beispielcode

In dem hier aufgeführten Beispiel handelt es sich um eine Bash Funktion, welche die „fork“ Operation verwendet und rekursiv aufgerufen wird. Wenn die Forkbomb aktiviert wurde, kann es passieren, dass der normale Betrieb des Systems erst nach einem Neustart wieder möglich ist.

Analyse

Code Beschreibung
:() Definiert eine Funktion mit dem Namen „:“

 

Lesbar formatiert stellt sich die Funktion so dar:

Code Beschreibung
{ Klammer, die den Funktionsbereich öffnet
:|: Ruft die Funktion selbst auf (Rekursion) und gibt die Ausgabe an eine Kopie von „:“ weiter.
& Führt die Funktion im Hintergrund aus und ist somit unabhängig vom aufrufenden Prozess
} Klammer, die den Funktionsbereich schließt
; Beendet die Funktionsdefinition
: Startet die Funktion „:“

 

Verallgemeinerte Darstellung

 

System schützen

Unter Linux können unter „/etc/security/limits.conf“ Datei- und Prozesslimitierungen vorgenommen werden. Das Programm „ulimit“ ermöglicht die Beschränkungen der systemweiten Ressourcennutzung zu konfigurieren.

Mit der Ausführung wird eine Nummer angezeigt, diese gibt an, wie viele Prozesse auf dem System laufen können. Um das System zu schützen muss die Nummer verringert werden. Mit dem folgenden Befehl wird die aktuelle Session auf max. 4000 Prozesse beschränkt.

Wenn jetzt versucht wird, eine Forkbomb zu starten, sollte folgende Fehlermeldung erscheinen: „fork: resource temporarily unavailable“. Dies bedeutet, dass Ihr System der Forkbomb nicht erlaubt hat, weitere Prozesse zu starten.

 

Bildquelle: pixabay.com/de/bombe-computer-virus-z%C3%BCnden-gefahr-152795/

Kategorie: IT