www.wikidata.de-de.nina.az
Eine Forkbomb englisch Fork bomb auch Rabbit genannt ist ein Computerprogramm dessen einziger Zweck es ist rekursiv Kopien seiner selbst zu starten alle verfugbaren Systemressourcen zu verbrauchen und so das System zu blockieren Unter Unix geschieht das im einfachsten Fall mit dem Aufruf des Systemcalls fork in einer Endlosschleife Rekursive ProzesserzeugungIn Pseudocode sieht eine Forkbomb etwa so aus ProgrammX Rufe ProgrammX auf Rufe ProgrammX auf Warte bis ProgrammX beendet wurde Das Programm ruft zwei Kopien seiner selbst auf und wartet bis sie wieder beendet wurden Dieser Zustand wird jedoch niemals erreicht werden da die Kopien genauso verfahren Aus einem Programmaufruf werden somit zunachst 2 dann 4 dann 8 und nach nur 10 solcher Zyklen sind bereits uber tausend Kopien gestartet und aktiv Allgemein lasst sich festhalten dass nach n Zyklen 2n Prozesse erzeugt worden sind ihre Anzahl also exponentiell zunimmt Diese verbrauchen selbst wenn sie keinen komplizierten Code enthalten CPU Zeit und Speicher zur Verwaltung durch das Betriebssystem Ein normaler Betrieb beziehungsweise normales Arbeiten ist bereits wenige Sekunden nach Aufruf der Forkbomb nicht mehr moglich Der konkrete Effekt einer Forkbomb hangt in erster Linie von der Konfiguration des Betriebssystems ab Beispielsweise erlaubt PAM auf Unix und Unix ahnlichen Betriebssystemen die Zahl der Prozesse und den maximal zu verbrauchenden Speicher pro Benutzer zu beschranken Explodiert eine Forkbomb auf einem System welches diese Moglichkeiten der Beschrankung nutzt scheitert irgendwann der Versuch neue Kopien der Forkbomb zu starten und das Wachstum ist eingedammt Inhaltsverzeichnis 1 Beispiele fur Forkbombs 1 1 Microsoft Windows Batch Datei 1 2 Programmiersprache C 1 3 Java 1 4 Perl 1 5 PHP 1 6 Ruby 1 7 Python 1 8 Bash 2 LiteraturBeispiele fur Forkbombs BearbeitenUm die Stabilitat des Systems nicht zu gefahrden wird empfohlen die nachstehend genannten Beispiele nicht auszufuhren Microsoft Windows Batch Datei Bearbeiten Beispiel fur eine Microsoft Windows Batch Datei in Kurzform 0 0 oder echo off start start Forkbomb high 0 goto start Programmiersprache C Bearbeiten Beispiel fur C unter Unix include lt unistd h gt int main void for fork return 0 Beispiel fur C unter Windows include lt windows h gt int main int argc char argv STARTUPINFO si PROCESS INFORMATION pi ZeroMemory amp si sizeof si si cb sizeof si while 1 SetConsoleCtrlHandler 0 1 CreateProcess argv 0 0 0 0 CREATE NEW CONSOLE 0 0 amp si amp pi return 0 Java Bearbeiten Beispiel fur Java public class ForkBomb implements Runnable public static void main String args new ForkBomb run public void run new Thread this start this run Perl Bearbeiten Beispiel fur Perl als Kommandozeilenaufruf perl e fork while fork PHP Bearbeiten Beispiel fur PHP lt php while true pcntl fork gt Ruby Bearbeiten Beispiel fur Ruby loop fork Python Bearbeiten Beispiel fur Python als Programm import os while True os fork oder als Kommandozeilenaufruf python c while 1 import os fork Bash Bearbeiten Beispiel fur Bash in Normalform function f f f amp f Um die Eigenschaft als Forkbomb zu verschleiern wird obiger Code haufig in folgender Kurzform gegeben amp Erklarung Definition der Funktion immer wenn aufgerufen wird tue das folgende eine neue Kopie von laden und seine Standardausgabe umleiten auf eine weitere Kopie von die auch in den Speicher geladen werden muss erzeugt also einfach 2 Kopien von immer wenn es aufgerufen wird amp die Befehlszeile unabhangig vom aufrufenden Prozess machen im Hintergrund ausfuhren Durch wird die Definition von beendet und durch den Aufruf von die Kettenreaktion in Gang gesetzt Literatur BearbeitenEric S Raymond The New hacker s dictionary With foreword and cartoons by Guy L Steele Jr 3rd edition MIT Press Cambridge MA u a 1996 ISBN 0 262 68092 0 Online Cyrus Peikari Anton Chuvakin Security warrior O Reilly Beijing u a 2004 ISBN 0 596 00545 8 Abgerufen von https de wikipedia org w index php title Forkbomb amp oldid 236556140