Fork bomba je jedna z lokálních podob útoku typu odmítnutí služby. Jejím principem je zneužití běžného systémového volání fork, které slouží k spouštění dalšího procesu.

Principem fork bomby je neustávající dělení procesů

Protože systém má jen omezené množství prostředků, může v něm běžet jen omezené množství procesů. V rámci fork bomby je ovšem spuštěno rychlé a neomezené množení procesů. To má za následek jednak postupné zpomalování počítače, kterému dochází volná paměť i procesorový čas, jednak posléze povede k tomu, že některý ze zdrojů dojde. Následkem toho nelze pouštět další procesy a to obvykle znamená, že ani nelze pustit proces (například kill), který by fork bombu ukončil. Jediným řešením, jak obnovit normální chod, tak bývá nové nabootování.

Obrana editovat

Jedním způsobem ochrany před fork bombou je limitovat počet procesů jednoho uživatele. Například v UN*Xových standardních příkazových interpretech je příkaz ulimit, který umožňuje nastavit maximální počet procesů.

Příklady editovat

Bash editovat

Jedním z nejznámějších příkladů fork bomby je následující třináctiznakový příkaz pro bash:

:(){ :|:& };:

Ten je možné rozepsat:i

:()      # bude následovat definice funkce „:“
{        # začátek definice
    :    # spusť funkci :
    |    # a její výstup pošli
    :    # další instanci funkce :
    &    # to vše na pozadí, takže konec nadřízené funkce neovlivní běh jejích dětí
}        # konec definice funkce :
;        # Po definici následuje …
:        # … spuštění funkce :

Dávkový soubor ve Windows editovat

Fork bomba je též možná vytvořit užitím dávkového souboru ve Windows. Jeho příkaz je:

%0|%0

Tento příkaz rekurentně spouští sám sebe (%0 označuje jméno spuštěného souboru) a zahlcuje paměť systému novými procesy, dokud nedojde k pádu systému.

Perl editovat

V Perlu je vytvoření fork bomby také snadné

fork while fork