coolwolf0: (Default)
coolwolf0 ([personal profile] coolwolf0) wrote2020-04-24 06:28 pm

СЯУ: "Fork Bomb"

Формальное объяснение на языке вейсманистов-морганистов:
https://www.cyberciti.biz/faq/understanding-bash-fork-bomb/

Остальным расскажу "на пальцах". Итак, в шелле можно не только "who mom likes" писать, но и целые конструкции строить, как в настоящих языках программирования. Правда, когда я говорю своим коллегам "давайте это быстренько напишем на шелле" они делают большие глаза и говорят "ну... это же сложно". Вот такой я, испорченный гик. Короче, на шелле можно и функции определять. В результате программа может стать рекурсивной, причём тут никто за стеком и памятью интерпретатора не следит. Таким образом и работает "форк-бомба" - определяется рекурсивная функция и тут же исполняется, вводя всю систему в медленный но верный ступор. Классическая бомба выглядит как многоэтажный смайлик

:(){ :|:& };:



Я говорил, что нельзя её запускать? Если запустили, то поздно - эта штука медленно но верно съедает ресурсы памяти пока не завесит систему намертво. Если упала на синтаксисе, есть более совместимая, но менее "смайловая" версия

b(){ b|b& };b



У вас нет под рукой подопытного линукса? Тогда потренируйтесь на кошках в онлайн-версии, например тут

https://copy.sh/v86/?profile=linux26

Сначала вроде бы ничего не произойдёт... Но в какой-то момент система просто перестанет отвечать на нажатие команд.

Вы спросите, а как же защититься от такой тупой атаки? Ответ - в статье на басурманском языке

ulimit -S -u 5000



Мораль: нельзя отдавать процессам полный контроль, особенно в плане форканья.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting