Бързо обяснение на виличната бомба. Какво прави вилката бомба в GNU / Linux?
: () {: |: &};:
Това е вид отказ от услуги или DoS атака, която основно това, което прави, насища наличното пространство на компютъра, въпреки че е възможно да се използват вилични бомби на всеки език, ще се съсредоточа само върху тряскам, по формата си, която изглежда толкова странна
Въпреки че изглежда много сложно, просто е, това е проста функция, която се извиква ... Сега виличната помпа четена от човека XD
: () {: |: &};:
Тук проста функция ...
функция () {var1 = $ 1 ехо "Функция"}
За всеки, който знае как да чете и малко програмиране
bomb () {bomb | помпа &}; помпа
Както можете да видите, той е наистина прост, той създава функция, която се извиква, която създава цикъл, който не спира, докато не достигне целта си, насищайки компютъра.
В резюме ...
: () {
Това е функцията, наречена:
: |:
Функцията се извиква чрез рекурсия и тръби. Най-лошото е, когато се обадите втори път ...
&
Прави функцията на заден план да работи, така че процесът не може да бъде прекратен, докато не се изчерпят всички ресурси
} ;:
Функцията приключва и тя се извиква отново ...
В случай, че някой е любопитен да види онзи съблазнителен код, който за newbe може дори да е странен, но нищо, че малко логика не решава
Алфред.
Всъщност е интересно, въпреки че днес, ако ви хвърлят вилична бомба, нищо няма да се случи, защото има нива на сигурност, които вие задавате, където ограничавате броя на процесите, които всяка програма може да генерира, само дистрибуции като Arch, Gentoo и т.н. нямат тези ограничения по подразбиране и трябва да ги създадете.
Смешно е, защото двамата с Тет прекарваме един ден, заклевайки се от смях с тази тема, много хора, които инсталират Arch, само я инсталират и поставят средата върху нея, но забравят много други много важни неща, които са необходими за конфигуриране (или поне бяха необходимо, истината е, че нямам представа как е сега) и затова беше казано, че е "лесно и бързо да се инсталира".
Както и да е, мисля, че би било малко по-просто да го обясня с бомбата в python, което е още по-ясно.
Всъщност тези настройки за изпълнение на процеса обикновено са доста важни при инсталиране на дистрибуция на GNU / Linux с минимализъм като Arch и / или Gentoo.
И между другото, времената, в които започвам да използвам Arch, са да тествам версиите на програми и интерфейси, които току-що са излезли от фурната. Както и да е, тази вилична бомба е доста интересна.
Да, много по-лесно е да се разбере в python, оставям ги тук, в случай че някой се интересува:
импортирам ви
докато е вярно:
—-Os.fork ()
И с рекурсия:
импортирам ви
def bomb ():
—-Os.fork ()
--бомба()
бомба()
И нано трябва да се отбележи, че в debian 7 Stable също няма сигурност за това, поне не с python, системата виси незабавно.
Поздрави.
Е, изпълних вилка-бомба в Ubuntu и компютърът спря незабавно
За да деактивирате помпата, процесите в терминала са ограничени с: ulimit -u 50 и помпата е деактивирана: p.
Във всеки случай трябва да се спомене, че настоящите ОС са ограничили колко процеса могат да имат активни, става въпрос за изстрелване на вилка бомба на Fedora и нищо няма да се случи.
Без съмнение, но например solaris и windows (където съм го тествал) не са защитени.
ГОТИНО! 🙂
Направи същото; но този път го направете полезен, т.е. стартирайте на windows и вижте какво ще се случи. Не на GNU / Linux.
Много любопитно, близостта до темата за компютърната саботаж, не знам дали това може да е случаят с плейъра Gnash: на сайта Vimeo той изпълнява видеоклипове безупречно, но в YouTube едва достига резолюция от 240 пиксела; В Dailymotions не възпроизвежда, според мен нещо неразбираемо за мен, тъй като не съм програмист.
Ако това не се промени, мисля, че не е лоша идея за поддръжниците на свободен софтуер да публикуват нашите видеоклипове, където се разпространяват сред всички, без дискриминация.
Gnash трябва да обърне внимание на това, но тъй като развитието му е бавно, Mozilla избра да създаде свой собствен Flash плейър, базиран на Javascript, наречен Shumway. Надявам се Shumway да излезе скоро, за да мога да заменя Flash Player, който имам на GNU / Linux.
И тъй като сме, не е достатъчно да кажем как да се предпазим, един много основен начин (и особено за Noobs Archers) е да ограничим броя на процесите, за това отиваме на /etc/security/limits.conf и добавяме следния ред:
* твърд nproc 1000
С това ограничаваме процесите до това количество, например аз го настройвам до това количество (въпреки че цялата операционна система на пълен старт с много по-малко, около 200-300 процеса) и когато прилагам вилката бомба, моята операционна система остава напълно функционална и имунно, ясно е, че ако ограничим броя на процесите до нещо много ниско, това може да доведе до някакви други последици, тъй като някаква програма би искала да създава процеси и операционната система не би позволила, в моя случай, ограничена до 1000 процеса, е перфектно
Аз го сложих
* soft nproc 500
* hard nproc 1000
Въпреки че arch wiki препоръчва меко при 100 и твърдо при 200.
Въпреки че не би трябвало да има проблем, страхувам се да хвърля бомба, за да тествам ... xD
Най-лесният начин да се предпазите е като ограничите граничната стойност, за да може процесът на помпата да бъде убит.
Интересна статия, за да я предотвратим в Slackware, използваме ulimit във файла / etc / profile
Проблемът с ограничаването на ulimit е, че може да ограничи използването на системата в зависимост от това, което правите.