Обнаружилась древнейшая уязвимость под Linux. От нее можно защититься (причем это сделать очень просто), однако огорчает тот факт, что популярные дистрибутивы «из коробки» оказались дырявыми.
Суть атаки предельно тривиальна и может быть описана, например, следующей программой:
#include pthread.h>
int main() { while(1) fork(); return 0; }
В результате произойдет зацикливание в бесконечном порождении новых процессов. На высоте оказались BSD-системы и Debian. Как отмечает ktirf с bugtraq.ru, его собственная попытка на ALTLinux с ядром 2.6 также не привела к фатальным последствиям. На свежих Mandrake, Fedora и Gentoo forkbomb рушит систему.
http://bugtraq.ru/rsn/archive/2005/03/08.html
[англ. источник: http://www.securityfocus.com/columnists/308]
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ндя… SuSE 9.1 с последним ядром из их update-репозитория (которое 2.6.5-7.147-default) тоже рушится…
Правда, тут надо уточнить, что значит рушится.
Скоротечное слежение за системой с запущенной forkbomb показало, что съедаются все процессорные ресурсы, плюс, в иксах отказал DCOP сервер (отсюда неработоспособность в KDE KLauncher’а, и, как следствие, невозможность что либо запустить в этом самом KDE). Но если процесс с forkbomb прибить, то работоспособность системы восстанавливается (правда, иксы пришлось перезапустить). Так что «фатального» тоже ничего нету, но всё равно неприятно…
Гы-гы-гы… Эт хто ж таку бонбочку-то написал? ГлАвно, #include оченно к месту… :-)
Форковая бонбочка делается элементарно и в консоли
:(){ :|:& };:
между прочим.
А зашшита от ея становится понятной ежели почитать про ulimit… И ва-аще, че волну-та гнать, старо это как мир, старо…
Good Luck,
UT
а которое именно из?
к примеру,
не то, чтобы так уж помогает… подвисание ощутимое, но — не шибко смертельное.
процесс за несколько минут прибиться-таки смог. точнее X-server получить от клавиатуры Alt-F4… ;))
Ну, автора новости можешь найти по первой ссылке ;)
Да ладно тебе, UT. Можно хоть на перле напись ;)
Именно, что «СТАРО»! Об том и речь… Стыдно как-то.. После этого как-то LAND под виндовс вспоминать неприлично даже.
Проблема в том, что строители самых user friendly дистрибутивов ничего не знают о ulimit.
ulimit — зло :)
P.S.: не вижу ничего предрассудительного. Да, система породила столько процессов, сколько задано было в программе, а если админ не установил ulimit — его проблемы. Как вы вам нравилось, если при запуске ВАШЕЙ программы вам система говорила «эй, чувак, а ты не зажрался ли? Многовато твоей программе будет пула на 20 процессов и 30 потоков от каждого, я те дам только 5 процессов ну и пару-тройку потоков на каждый процесс разрешу сделать. Хочешь больше — переведи всего лишь 99.99$ на известный счет и я тебе разрешу пустить еще один поток ;) А можешь купить оптовую лицензию всего за 99999.99$ — и будет тебе щастье, лимит на кол-во процессов в твоей программе будет убран :)»
Ээээ… А как это «рушит»? Особенно новые дистры в том числе Gentoo?
-> Gentoo 2004.3 ядро 2.6.7-gentoo-r1 (АМД 2600ХР, 512RAM)
Запускаем (хоть под рутом хоть под юзверем):
1. Загрузка проца на 99%
2. Ждем 3 минуты… Система жива… Даже мыша не тормозит.
3. Ctrl+C — задача снята. Загрузка проца опять 0-2%
Не, ну я, конечно, рад за тебя ;). Но всё-таки это очень зависит от настройки системы.
Вот только что попросил соседа по домашней сети (генту, ядро 2.6.10) провести сей эксперимент. В консоли он набрал пример UT:
:(){ :|:& };:
Результат — зависание системы.
Ага… а это зависло… :(
надо задумываться о ulimit
ч.т.д.
Интересно, для чего во фре придуман /etc/login.conf ? ;-)
Афтар жжот, как всегда. ж-)
У меня под FreeBSD5.3 ни одна из бонбачек не пашет… После того, как процессы переваливают за 3000, всё дерево киляется автоматом. Естественно, ни каких тормозов заметить не успел…
> Linux-уязвимость forkbomb: привет из прошлого
> На высоте оказались BSD-системы и Debian
> У меня под FreeBSD5.3 ни одна из бонбачек не пашет…
…