Форк бомба на Linux

Форк бомба на Linux

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

Форк бомба Linux – это один из самых старых и наиболее эффективных способов вывести систему Linux из строя. 

Это тип атаки типа “отказ в обслуживании”, которая работает путем порождения все большего количества процессов, пока в конечном итоге все ресурсы системы не будут исчерпаны, и она не рухнет. 

В этом руководстве вы увидите, как разрушить систему Linux с помощью форк бомбы. 

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

Как сломать систему Linux с помощью форк бомбы 

ВНИМАНИЕ

Обязательно тестируйте этот метод только на тестовой или виртуальной машине. 

И в некоторых случаях вам это удастся.

Использование его на другой системе, даже в целях тестирования, сделает вас похожим на злоумышленника, который пытается вывести систему из строя.

Следующая строка кода является коротким вариантом использования: 

$ :(){ :|:& };: 

На первый взгляд, это может показаться абракодаброй и довольно безобидным для выполнения, но давайте посмотрим, что здесь происходит на самом деле: 

  • : – это имя функции
  • :|: вызывает саму функцию и порождает другой процесс
  • & переводит процесс в фоновый режим, чтобы его нельзя было легко убить
  • ; отмечает конец функции
  • : снова вызывает функцию 

Имейте в виду, что существуют и другие типы форк бомб. 

Например, их можно запрограммировать на Perl, Python и других языках. 

Та, которую мы показали здесь, является наиболее часто используемой и будет работать в оболочке Bash. 

Вот тот же вызов функции в более удобочитаемом формате: 

forkbomb(){ forkbomb | forkbomb & }; forkbomb 

Как вы можете видеть, функция вызывает себя дважды . 

Это действие начнет потреблять все ресурсы вашей системы и в конечном итоге приведет к краху вашей Linux-системы. 

Ваши результаты могут отличаться, в зависимости от конфигурации системы Linux, используемого дистрибутива и т.д. 

На нашей тестовой системе Ubuntu выполнение fork bomb заблокировало систему, и в конечном итоге терминал начал заполняться этими сообщениями: 

bash: fork: retry: Resource temporarily unavailable. 

Даже после закрытия терминала система была слишком медлительной и не реагировала ни на что, и мы были вынуждены перезагрузиться. 

ПРИМЕЧАНИЕ

Некоторые дистрибутивы Linux запрограммированы таким образом, чтобы предотвращать такие действия. В таких системах ядро будет убивать все порожденные процессы, чтобы попытаться предотвратить крах вашей системы. 

Как предотвратить крах Linux из-за форк бомбы 

Форк бомба эффективна, потому что она способна порождать неограниченное количество процессов. 

В конце концов, ваша система не сможет обработать их все, и произойдет сбой. 

Поэтому мы можем предотвратить подобные сбои, ограничив количество процессов, которые может порождать пользователь или группа пользователей. 

Лучший способ наложить ограничение на количество процессов, которые может порождать пользователь, – это отредактировать файл /etc/security/limits.conf. 

В качестве примера, давайте попробуем ввести ограничение на количество процессов, которые могут порождать пользователи из группы “corporate”. 

Добавление этой строки в файл позволит пользователям из группы порождать не более 30 процессов. 

@corporate        hard    nproc           30 

Что если мы хотим наложить ограничение на процесс для конкретного пользователя? 

В этом случае мы поместим его имя пользователя в первое значение. 

Вот строка, которую мы используем, чтобы ограничить пользователя с именем itsecforu в порождении максимум 40 процессов. 

itsecforu         hard    nproc          40

Заключение 

В этом руководстве мы рассмотрели, как разрушить систему Linux с помощью команды fork bomb. 

Мы также узнали, как работает бомба, и как предотвратить ее использование пользователями для разрушения системы. 

Ответственность за ограничение количества процессов, доступных для порождения пользователем, находится в руках системного администратора.

Источник


Report Page