Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Атака в Linux - Fork bomb (Rabbit virus)



Атака в Linux - Fork bomb (Rabbit virus)


Что такое вообще Fork bomb?

Форк - это системный вызов, используемый в системах Unix и Linux:
ОС берет существующий процесс (родительский) и реплицирует его, формируя новый процесс (дочерний)
Это позволяет обоим процессам одновременно выполнять уникальные задачи

Fork bomb (известная как Rabbit virus) - атака отказа в обслуживании (DoS):
Системный вызов fork рекурсивно используется до тех пор, пока все системные ресурсы не выполнят команду
Система в конечном итоге становится перегруженной и не сможет отвечать

В отличие от большинства DoS-атак (переполнение сетевых или ресурсов ОС извне), вилочная бомба:
Использует команды внутри системы, которую пытается вывести из строя
Урон даже может быть нанесен самому себе


Описание атаки

При атаке самовоспроизводящиеся дочерние процессы потребляют системные ресурсы:
Блокируют запуск нормальных программ и предотвращают создание новых процессов
Ввод с клавиатуры (например, попытки выхода из системы) игнорируются, что по сути блокирует систему

Цикл вилки потребляет ресурсы ЦП и памяти:
Системные ресурсы обычно истощаются до того, как ОС достигает лимита максимально разрешенных процессов
Это приводит к "панике ядра", т.е. Основная операционная система (ядро) не справляется и дает сбой

Для большинства систем "зависание" длится до перезапуска машины:
Часто для восстановления контроля требуется полная перезагрузка, вероятна потеря данных

Некоторые ядра Linux могут иметь предустановленные ограничения:
Лимиты в конечном итоге позволят администратору получить доступ к системе


Уязвимые операционные системы

Все Unix, Linux или Unix-подобные операционные системы потенциально уязвимы для атаки Fork bomb

ОС Windows не подвержены атакам Fork bomb, поскольку не могут форкать другие процессы:
Чтобы создать атаку, подобную Fork bomb в Windows, необходимо быстро создать набор новых процессов
Это требует более сложного программирования, чем традиционная вилочная бомба


Примеры Fork bomb

Пример Fork Bomb в оболочке Linux

Создайте и запустите скрипт в одну строку (Не делайте на боевой ОС! Он приведет к отказу!):

Т.е. скрипт запуститься рекурсивно и уйдет в фон:
Выполнение команды создает дочерний процесс, который затем повторяется в бесконечном цикле
В итоге ОС не может ответить, т.к. все ресурсы используются для создания пустых процессов

Пример Fork Bomb в языке Python


Предотвращение Fork bomb

Осуществляется путем ограничения максимального количества процессов пользователя

Используйте параметр ulimit в Linux для ограничения количества процессов пользователя

Посмотреть текущее значение для учетной записи:
$ ulimit -u
12186

Внесите учетную запись (или группу - @) и укажите жесткий лимит:
$ sudo vi /etc/security/limits.conf
...
user_login hard nproc 3000
@user_login hard nproc 3000
...

Пример попыток завершить данные бомбы (ProcBombName - имя процесса, связанного с бомбой):

К примеру забомбили сервис сфинкс, в итоге пожрал все доступные ресурсы и плодится, прибьем:

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект