nixp.ru v3.0

26 мая 2017,
пятница,
16:08:19 MSK

DevOps с компанией «Флант»
Аватар пользователя fly4life
fly4life написал 21 марта 2005 года в 00:11 (369 просмотров) Ведет себя как мужчина; открыл 182 темы в форуме, оставил 5340 комментариев на сайте.

Обнаружилась древнейшая уязвимость под 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]

fly4life

ндя… SuSE 9.1 с последним ядром из их update-репозитория (которое 2.6.5-7.147-default) тоже рушится…

Правда, тут надо уточнить, что значит рушится.

Скоротечное слежение за системой с запущенной forkbomb показало, что съедаются все процессорные ресурсы, плюс, в иксах отказал DCOP сервер (отсюда неработоспособность в KDE KLauncher’а, и, как следствие, невозможность что либо запустить в этом самом KDE). Но если процесс с forkbomb прибить, то работоспособность системы восстанавливается (правда, иксы пришлось перезапустить). Так что «фатального» тоже ничего нету, но всё равно неприятно…

Uncle Theodore

Гы-гы-гы… Эт хто ж таку бонбочку-то написал? ГлАвно, #include оченно к месту… :-)

Форковая бонбочка делается элементарно и в консоли

:(){ :|:& };:

между прочим.

А зашшита от ея становится понятной ежели почитать про ulimit… И ва-аще, че волну-та гнать, старо это как мир, старо…

Good Luck,

UT

Genie
А зашшита от ея становится понятной ежели почитать про ulimit…

а которое именно из?

к примеру,

max user processes (-u) 4095

не то, чтобы так уж помогает… подвисание ощутимое, но — не шибко смертельное.

процесс за несколько минут прибиться-таки смог. точнее X-server получить от клавиатуры Alt-F4… ;))

fly4life
Uncle Theodore
Гы-гы-гы… Эт хто ж таку бонбочку-то написал?

Ну, автора новости можешь найти по первой ссылке ;)

Uncle Theodore
Форковая бонбочка делается элементарно и в консоли

:(){ :|:& };:

между прочим.

Да ладно тебе, UT. Можно хоть на перле напись ;)

Uncle Theodore
А зашшита от ея становится понятной ежели почитать про ulimit… И ва-аще, че волну-та гнать, старо это как мир, старо…

Именно, что «СТАРО»! Об том и речь… Стыдно как-то.. После этого как-то LAND под виндовс вспоминать неприлично даже.

metal
Uncle Theodore
.

А зашшита от ея становится понятной ежели почитать про ulimit… И ва-аще, че волну-та гнать, старо это как мир, старо…

Good Luck,

UT

Проблема в том, что строители самых user friendly дистрибутивов ничего не знают о ulimit.

Longobard

ulimit — зло :)

P.S.: не вижу ничего предрассудительного. Да, система породила столько процессов, сколько задано было в программе, а если админ не установил ulimit — его проблемы. Как вы вам нравилось, если при запуске ВАШЕЙ программы вам система говорила «эй, чувак, а ты не зажрался ли? Многовато твоей программе будет пула на 20 процессов и 30 потоков от каждого, я те дам только 5 процессов ну и пару-тройку потоков на каждый процесс разрешу сделать. Хочешь больше — переведи всего лишь 99.99$ на известный счет и я тебе разрешу пустить еще один поток ;) А можешь купить оптовую лицензию всего за 99999.99$ — и будет тебе щастье, лимит на кол-во процессов в твоей программе будет убран :)»

anonymous

Ээээ… А как это «рушит»? Особенно новые дистры в том числе Gentoo?

-> Gentoo 2004.3 ядро 2.6.7-gentoo-r1 (АМД 2600ХР, 512RAM)

Запускаем (хоть под рутом хоть под юзверем):

1. Загрузка проца на 99%

2. Ждем 3 минуты… Система жива… Даже мыша не тормозит.

3. Ctrl+C — задача снята. Загрузка проца опять 0-2%

fly4life
Гость
Ээээ… А как это «рушит»? Особенно новые дистры в том числе Gentoo?

-> Gentoo 2004.3 ядро 2.6.7-gentoo-r1 (АМД 2600ХР, 512RAM)

Запускаем (хоть под рутом хоть под юзверем):

1. Загрузка проца на 99%

2. Ждем 3 минуты… Система жива… Даже мыша не тормозит.

3. Ctrl+C — задача снята. Загрузка проца опять 0-2%

Не, ну я, конечно, рад за тебя ;). Но всё-таки это очень зависит от настройки системы.

Вот только что попросил соседа по домашней сети (генту, ядро 2.6.10) провести сей эксперимент. В консоли он набрал пример UT:

:(){ :|:& };:

Результат — зависание системы.

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

Результат — зависание системы.

Ага… а это зависло… :(

надо задумываться о ulimit

fly4life
Гость
Ага… а это зависло… :(

ч.т.д.

anonymous
LONGOBARD
ulimit — зло :)

P.S.: не вижу ничего предрассудительного. Да, система породила столько процессов, сколько задано было в программе, а если админ не установил ulimit — его проблемы. Как вы вам нравилось, если при запуске ВАШЕЙ программы вам система говорила «эй, чувак, а ты не зажрался ли? Многовато твоей программе будет пула на 20 процессов и 30 потоков от каждого, я те дам только 5 процессов ну и пару-тройку потоков на каждый процесс разрешу сделать.

Интересно, для чего во фре придуман /etc/login.conf ? ;-)

Хочешь

больше — переведи всего лишь 99.99$ на известный счет и я тебе разрешу пустить еще один поток ;)  А можешь купить оптовую лицензию всего за 99999.99$ — и будет тебе щастье, лимит на кол-во процессов в твоей программе будет убран :)»

Афтар жжот, как всегда. ж-)

myst

У меня под FreeBSD5.3 ни одна из бонбачек не пашет… После того, как процессы переваливают за 3000, всё дерево киляется автоматом. Естественно, ни каких тормозов заметить не успел…

Дмитрий Шурупов

> Linux-уязвимость forkbomb: привет из прошлого

> На высоте оказались BSD-системы и Debian

> У меня под FreeBSD5.3 ни одна из бонбачек не пашет…