Přeskočit na obsah

Fork bomba

Z Wikipedie, otevřené encyklopedie
Principem fork bomby je neustávající dělení procesů

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.

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í.

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 | editovat zdroj]

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 | editovat zdroj]

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.

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

fork while fork