Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Fork-bomba - Wikipedia, wolna encyklopedia

Fork-bomba

Z Wikipedii

Idea fork-bomby opiera się na rozmnożeniu procesów, aż do wykorzystania dostępnych zasobów.
Idea fork-bomby opiera się na rozmnożeniu procesów, aż do wykorzystania dostępnych zasobów.

Fork-bomba (ang. fork bomb) jest rodzajem ataku Denial of Service na systemy komputerowe.

Atak opiera się na założeniu, że w środowisku wieloprocesowym tylko pewna ilość procesów może być efektywnie wykonywana naraz. Atak polega na bardzo szybkim "rozmnożeniu" kopii programu (fork to nazwa funkcji systemowej służącej do tworzenia nowych procesów) w celu wypełnienia tablicy procesów systemu operacyjnego. W takiej sytuacji wywołanie nowego procesu (mającego na celu np. zabicie procesów bomby) jest wstrzymane do czasu zwolnienia choćby jednego wpisu, co jednak jest mało prawdopodobne, ponieważ każdy proces bomby jest gotów w tym momencie się rozmnożyć.

Ponieważ każdy z procesów bomby wykonuje jakiś kod (nie usypia się) planista systemowy każdemu z nich przydziela czas procesora, co praktycznie zatrzymuje działanie systemu. Jedną z technik obrony przed fork-bombami jest ustalenie górnego limitu procesów, jakie może utworzyć dany proces lub użytkownik (dotyczy to również jego dalszych potomków).

[edytuj] Przykłady fork-bomb

Microsoft Windows, program wsadowy:

:s
start %0
goto s
#include <unistd.h>

int main(void)
{
  while(1) { 
    fork(); 
  } 
  return 0; 
} 
:(){ :|:& };:

Wyjaśnienie: zdefiniowana jest tutaj funkcja o nazwie ":" nie przyjmująca żadnego parametru. W swoim ciele (ograniczanym przez "{" i "}") wywołuje się rekurencyjnie dwukrotnie, przekierowując wyjście pierwszego wywołania na wejście drugiego wywołania poprzez mechanizm nienazwanych potoków (pipes, "|") i przechodzi do tła - "&" - dzięki czemu zabicie procesu-ojca nie zabije procesów-potomków. Średnik kończy definicję funkcji, a końcowy dwukropek jest jej pierwszym wywołaniem. Poniżej znajduje się bardziej przejrzysty zapis (zmieniono nazwę funkcji):

bomba()
{
bomba | bomba &
}
bomba
perl -e "fork while fork"

[edytuj] Trudność naprawy

Kiedy fork-bomba zostanie poprawnie uruchomiona, odzyskanie sprawności systemu może nie być możliwe bez ponownego uruchomienia, ponieważ jedynym sposobem na zniszczenie fork-bomby jest zabicie wszystkich jej procesów. Próba użycia programu do zabicia złośliwych procesów zwykle potrzebuje utworzenia odrębnego procesu, co może się nie udać, gdy nie ma wolnych miejsc w tablicy procesów lub wolnej pamięci.

[edytuj] Zapobieganie

Jedną z możliwości zapobieżenia fork-bombie jest ustanowienie limitu ilości procesów, które może uruchomić użytkownik. Gdy proces próbuje utworzyć inny proces, a jego rodzic posiada już więcej niż przewiduje maksimum, sklonowanie nie zachodzi. Maksimum powinno być wystarczająco niskie, aby w razie zaatakowania maszyny przez wielu użytkowników naraz pozostawić wystarczającą ilość wolnych zasobów na uniknięcie katastrofy.

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com