Jump to content

Вилочная бомба

Концепция вилочной бомбы: процессы постоянно воспроизводят себя, что может привести к отказу в обслуживании.

В вычислительной технике ( форк-бомба также называемая кроличьим вирусом ) представляет собой атаку типа «отказ в обслуживании» (DoS) , при которой процесс постоянно воспроизводит себя, истощая доступные системные ресурсы, замедляя или приводя к сбою системы из-за нехватки ресурсов .

История [ править ]

Примерно в 1978 году сообщалось, что ранний вариант вилочной бомбы под названием «ваббит» работал на System/360 . Возможно, это произошло в результате аналогичной атаки под названием RABBITS, о которой сообщалось в 1969 году на Burroughs 5500 в Вашингтонском университете . [1]

Реализация [ править ]

Форк-бомбы действуют как за счет потребления процессорного времени в процессе разветвления , так и за счет насыщения операционной системы . таблицы процессов [2] [3] Базовая реализация вилочной бомбы — это бесконечный цикл , который неоднократно запускает новые копии самого себя.

В Unix -подобных операционных системах вилочные бомбы обычно пишутся с использованием системного вызова fork . [3] Поскольку разветвленные процессы также являются копиями первой программы, как только они возобновляют выполнение со следующего адреса в указателе кадра , они продолжают бесконечно разветвляться внутри своей собственной копии того же бесконечного цикла; это приводит к экспоненциальному росту процессов. Поскольку современные системы Unix обычно используют метод управления ресурсами копирования при записи при создании новых процессов, [4] вилочная бомба обычно не насыщает память такой системы.

Операционные системы Microsoft Windows не имеют функций, эквивалентных системному вызову Unix fork; [5] Поэтому форк-бомба в такой операционной системе должна создавать новый процесс, а не ответвление от существующего.

Классический пример вилочной бомбы — написанный в оболочке Unix. :(){ :|:& };:, возможно датируемый 1999 годом, [6] что легче понять как

fork() {
    fork | fork &
}
fork

В нем определена функция ( fork()) как называющий себя ( fork), затем трубопровод ( |) его результат в себя, все в фоновом задании ( &).

Код с использованием двоеточия : поскольку имя функции недопустимо в оболочке, как определено POSIX, который допускает только буквенно-цифровые символы и символы подчеркивания в именах функций. [7] Однако его использование разрешено в GNU Bash в качестве расширения. [8]

Профилактика [ править ]

Поскольку режим работы форк-бомбы полностью инкапсулируется путем создания новых процессов, одним из способов предотвратить серьезное влияние форк-бомбы на всю систему является ограничение максимального количества процессов, которыми может владеть один пользователь. В Linux этого можно добиться с помощью утилиты ulimit ; например, команда ulimit -u 30 ограничит затронутого пользователя максимум тридцатью собственными процессами. [9] В системах с поддержкой PAM это ограничение также можно установить в /etc/security/limits.conf, [10] а в *BSD системный администратор может установить ограничения /etc/login.conf. [11] Современные системы Linux также позволяют более детально предотвращать разветвление бомбы с помощью контрольных групп и контроллеров номера процесса (PID). [12]

См. также [ править ]

Ссылки [ править ]

  1. ^ Раймонд, Эрик С. (1 октября 2004 г.). "ваббит " Жаргонный лексикон. Архивировано из оригинала 15 мая . Получено 15 . октября
  2. ^ Йе, Нонг (2008). Безопасные компьютерные и сетевые системы: моделирование, анализ и проектирование . Джон Уайли и сыновья. п. 16. ISBN  978-0470023242 .
  3. ^ Jump up to: а б Цзелин, Донг (2007). Сетевой словарь . п. 200. ИСБН  978-1602670006 .
  4. ^ Дхамдере, Дхананджай М. (2006). Операционные системы: концептуальный подход . Высшее образование МакГроу-Хилл. п. 285. ИСБН  0-07-061194-7 .
  5. ^ Хаммонд, Марк (2000). Программирование на Python в Win32: помощь для программистов Windows . «О'Рейли Медиа, Инк.». п. 35. ISBN  1565926218 .
  6. ^ Михал Залевский (19 августа 1999 г.). «[RHSA-1999:028-01] Переполнение буфера в libtermcap tgetent()» . Группа новостей : muc.lists.bugtraq . Проверено 10 декабря 2022 г. bash$ :(){ :|:&};:}
  7. ^ «Базовые спецификации открытой группы, выпуск 7, издание IEEE Std 1003.1™-2017, 2018 г., раздел 3.235» . Открытая группа/IEEE. Имя: на командном языке оболочки — слово, состоящее исключительно из символов подчеркивания, цифр и букв переносимого набора символов. Первый символ имени не является цифрой.
  8. ^ «Справочное руководство GNU Bash, раздел 3.3» . Проверено 11 декабря 2022 г. Когда оболочка находится в режиме POSIX (см. Режим Bash POSIX), fname должно быть допустимым именем оболочки и не может совпадать с одним из специальных встроенных модулей (см. Специальные встроенные функции). В режиме по умолчанию именем функции может быть любое слово оболочки без кавычек, не содержащее символа $.
  9. ^ Купер, Мендель (2005). Расширенное руководство по написанию сценариев Bash . стр. 305–306. ISBN  1430319305 .
  10. ^ Сойинка, Уэйл (2012). Администрирование Linux: Руководство для начинающих . МакГроу Хилл Профессионал. стр. 364–365. ISBN  978-0071767590 .
  11. ^ Лукас, Майкл В. (2007). Абсолютная FreeBSD: Полное руководство по FreeBSD . Нет крахмального пресса. стр. 198–199. ISBN  978-1593271510 .
  12. ^ «Контроллер номеров процессов в документации/как появился в ядре Linux 5.3» . 8 октября 2019 года. Архивировано из оригинала 8 октября 2019 года . Проверено 8 октября 2019 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3acd2646a22df2e2b2052108461842de__1714118940
URL1:https://arc.ask3.ru/arc/aa/3a/de/3acd2646a22df2e2b2052108461842de.html
Заголовок, (Title) документа по адресу, URL1:
Fork bomb - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)