Linux за българи: Форуми

Сигурност => Системна Сигурност => Темата е започната от: delyanyanev в Mar 15, 2013, 00:40



Титла: Forkbomb
Публикувано от: delyanyanev в Mar 15, 2013, 00:40
Здравейте,
при преглеждане на тази секция не намерих нищо по въпроса та реших да  споделим опит и добри практики относно защитата и оптимизацията на системната  сигурност и производителност.Така наречените Forkbombs могат да се създадат от не super user  привилегирован потребител,като да се стигне до отказ на услуги и поражения по системата.Едно от средствата за предотвратяване на такива атаки е ограничаването на отделните потребители до системни ресурси посредством ulimit,както и използването sysctl за подобряване на производителността на сървъра.Та тук искам да споделим добри практики от използването на тези средства,както и допълнителна информация относно темата.
Благодаря :) 


Титла: Re: Forkbomb
Публикувано от: shoshon в Mar 15, 2013, 11:28
Hahaha

Fork бомбите  бяха проблем едно време. Сега всички ОС идват така:

[hpeivged@ivan-laptop Videos]$ ulimit -a
Код:
core file size          (blocks, -c) 0                                                                                                                                                               
data seg size           (kbytes, -d) unlimited                                                                                                                                                       
scheduling priority             (-e) 0                                                                                                                                                               
file size               (blocks, -f) unlimited                                                                                                                                                       
pending signals                 (-i) 30924                                                                                                                                                           
max locked memory       (kbytes, -l) 64                                                                                                                                                             
max memory size         (kbytes, -m) unlimited                                                                                                                                                       
open files                      (-n) 1024                                                                                                                                                           
pipe size            (512 bytes, -p) 8                                                                                                                                                               
POSIX message queues     (bytes, -q) 819200                                                                                                                                                         
real-time priority              (-r) 0                                                                                                                                                               
stack size              (kbytes, -s) 8192                                                                                                                                                           
cpu time               (seconds, -t) unlimited                                                                                                                                                       
max user processes              (-u) 1024                                                                                                                                                           
virtual memory          (kbytes, -v) unlimited                                                                                                                                                       
file locks                      (-x) unlimited     


Виждаш ли - max user proceses = 1024. Има обаче един голям проблем.

max memory size         (kbytes, -m) unlimited


Много се смях веднъж. Ама много...
http://www.openwall.com/lists/oss-security/2012/12/22/6
CVE-2012-5667

Long story short.

grep match-ва редове. Ако реда е твърде голям умира със съобщение че няма памет.

Някой C спец ( сигурно такъв като мене) е "оправил" това и имаше период в който реда можеше да е много дълъг...

Убих си лаптопа с простото

grep "U gonna die" /dev/zero

:D

                                                                                                                                                                       

[ivan@ivan-laptop Videos]$  grep "U gonna die" /dev/zero
grep: паметта е изчерпана                                                                                                                                                                           
[ivan@ivan-laptop Videos]$ ^C                                                                                                                                                                   
          # след 30 мин първи отговор от шел-а                                                                                                     
[ivan@ivan-laptop Videos]$ uptime                                                                                                                                                               
 11:24:39 up  2:15,  5 users,  load average: 26,32, 49,89, 26,41   

Кви форк бомби кви пет леа. Вече е по лесно :)




Титла: Re: Forkbomb
Публикувано от: dejuren в Mar 15, 2013, 16:39
Много се смях веднъж. Ама много...
http://www.openwall.com/lists/oss-security/2012/12/22/6
CVE-2012-5667

Long story short.

grep match-ва редове. Ако реда е твърде голям умира със съобщение че няма памет.

Някой C спец ( сигурно такъв като мене) е "оправил" това и имаше период в който реда можеше да е много дълъг...

Убих си лаптопа с простото

grep "U gonna die" /dev/zero

[ivan@ivan-laptop Videos]$  grep "U gonna die" /dev/zero
grep: паметта е изчерпана                                                                                                                                                                           
[ivan@ivan-laptop Videos]$ ^C                                                                                                                                                                   
          # след 30 мин първи отговор от шел-а                                                                                                     
[ivan@ivan-laptop Videos]$ uptime                                                                                                                                                               
 11:24:39 up  2:15,  5 users,  load average: 26,32, 49,89, 26,41   


CVE-2012-5667 е фиксиран във версия grep >= 2.11


Титла: Re: Forkbomb
Публикувано от: vyrgozunqk в Mar 15, 2013, 17:19
Брех, това бил готин начин за чистене на паметта... от 2 ГБ използвана с

[ceco@linux-7788 ~]$ grep "U gonna die" /dev/zero
grep: memory exhausted


Кърнъла, разкара всичко излишно и изпразни до 700МБ след прекратяването на операцията... хахаха


Титла: Re: Forkbomb
Публикувано от: dejuren в Mar 15, 2013, 17:58
... И ти уби кеша, всички приложения трябва да се изчетат пак от диска при стартиране барабар с отворените документи, машината става по-бавна до въстановяването на кеша в паметта...

Въобще тролинга може и да мине веднаж-дваж, докато народа се усети, че не е "чистене на паметта" а набутване :-)


Титла: Re: Forkbomb
Публикувано от: gat3way в Mar 15, 2013, 18:33
Всъщност изхвърлянето на кешовете става доста по-безаварийно през procfs. Мен друго ме интересува - защо не направят подобен мехзнизъм, който примерно изхвърля указан от потребителя процент (грубо разбира се, няма как да стане точно) от кешираните данни. Идеята е че има частни случаи, в които memory management-а в линукс прави глупости. Например когато някой процес задели бързо голямо количество памет (както обикновено jvm-ите при стартиране), в този момент, ядрото понякога предпочита вместо да изхвърли кеширани страници памет, да pageout-ва, което е ужасно глупаво (и не, бутането на proc/sys/vm/swapiness няма много ефект за такива моменти). Като резултат имаш гигабайти кеширани работи и си да речем половин гигабайт навътре в swap-а. След което минават ония kernel thread-ове дето се занимават с page-ването, kswapd ли кво беше и се почва едно бавене и чагъртане по дисковете, много дразни.


Титла: Re: Forkbomb
Публикувано от: !ntel в Mar 15, 2013, 22:16
Последното ми направи много голямо впечатление заради държанието на една виртуална машина.
Седя си аз и по едно време почва да ми чегърта диска. Кога поглеждам, нищо ново не съм пуснал да се зарежда - wtf?
След малък "оглед" разбирам, че проблема е в виртуалната машина.

И то, вината е разпределена м/у самата операционна система на виртуалната машина и едновременно с това - hypervisor-a за виртуализация. Да не навлизам в скучни подробности, но най-голямо впечатление ми направи, това че swapiness наистина не помага, колкото и да го връткаш.
А най-странното е, че виртуализатора показва много по-малко заета памет от колкото виртуалната машина, което си е направо странно ако питате мен. Проблема с тези пусти кешове си е доста голям в тази област. Но просто някой го мързи да измисли/имплементира по-читав способ. Както казва gw - всичко е чудесно, докато в един хубав момент не почне звука от хард диска :D


Титла: Re: Forkbomb
Публикувано от: vyrgozunqk в Mar 16, 2013, 17:17
[ceco@linux-7788 ~]$ grep "U gonna die" /dev/zero

'ша ви Управи! хаха  :D >:D

тролололоо


Титла: Re: Forkbomb
Публикувано от: gat3way в Mar 17, 2013, 00:10
Добре де, каква е тази радост :) Същото ще го постигнеш с няколко реда програмка, която цикли malloc(). Може дори с цел да прецакаш ulimit ограниченията да форкваш повече процеси, които правят същото, защото ulimit -m е per-process ограничение.

Ако сега разбирате че линукс въобще не е чак толкова дуракоустойчива система и ако някой има локален достъп, може да натвори доста глупости, значи това си е ваш проблем :)


Титла: Re: Forkbomb
Публикувано от: vyrgozunqk в Mar 17, 2013, 01:02
Е това " U gonnna die"  не те ли гъделичка... как няма да се кефя хахаха.... Ташак да става ... ::) :D

И от какъв зор да пиша " няколко реда програма ", като мога да фрасна " U gonna Die " и тия, които гледат проектора да умрат...  ;D ;D ;D :D


Титла: Re: Forkbomb
Публикувано от: gat3way в Mar 17, 2013, 01:04
Ми ето  една причина - някой е решил да реши проблема като си настрои лимитите за максимална памет на процес. Пишеш 20 реда програма и лимитите отиват "фостата". Не е ли забавно :)


Титла: Re: Forkbomb
Публикувано от: vyrgozunqk в Mar 17, 2013, 01:08
това е добра идея, трябва да вкараш и едно ASCII снимче на спиндерман, да се извежда при изпълняване...  :P ;D


Титла: Re: Forkbomb
Публикувано от: gat3way в Mar 17, 2013, 01:14
Това което ме притеснява е че филмчето може и да не завърши преди машината да сдаде багажа и тогава язък за креативното творчество :)


Титла: Re: Forkbomb
Публикувано от: vyrgozunqk в Mar 17, 2013, 01:17
Еми тогава ще стане от "фостата" на "фаноса"  :)

(http://ii.kefche.com/avatars/mv/likhmvbe.jpg)


Титла: Re: Forkbomb
Публикувано от: gat3way в Mar 17, 2013, 01:26
Ееее ама ти много се вживя с този спайдърмен сега :)


Титла: Re: Forkbomb
Публикувано от: go_fire в Mar 17, 2013, 11:10
По детският канал дават „Върховният Spiderman“. Смешното е, че го гледахме точно по времето, когато Вие си говорихте а него. Има нещо съдбоносно. Всички вкупом се вдетиняваме.


Титла: Re: Forkbomb
Публикувано от: !ntel в Mar 17, 2013, 19:11
По детският канал дават „Върховният Spiderman“. Смешното е, че го гледахме точно по времето, когато Вие си говорихте а него. Има нещо съдбоносно. Всички вкупом се вдетиняваме.

Явно не знаеш за новата простотия обхванала голяма част от фаце-то: Спиндермаан ($2) ... И с какви песни се поздравяват само: Slatkaristika ft. Gjeorgji Shareski - Me boli kur ($2)


Титла: Re: Forkbomb
Публикувано от: dev_urandom в Mar 17, 2013, 21:56
По детският канал дават „Върховният Spiderman“. Смешното е, че го гледахме точно по времето, когато Вие си говорихте а него. Има нещо съдбоносно. Всички вкупом се вдетиняваме.

Явно не знаеш за новата простотия обхванала голяма част от фаце-то: Спиндермаан ($2) ... И с какви песни се поздравяват само: Slatkaristika ft. Gjeorgji Shareski - Me boli kur ($2)

/off
 :( :( :(


Титла: Re: Forkbomb
Публикувано от: gat3way в Mar 17, 2013, 22:19
Мене па ме кефи :)

(http://sphotos-a.ak.fbcdn.net/hphotos-ak-ash4/485019_10200133821221190_1903600529_n.jpg)


Титла: Re: Forkbomb
Публикувано от: !ntel в Mar 19, 2013, 01:58
/off
В този контекст от картинката, да  ;D
Но "създателят" надали е мислел да създаде този "герой" за цели като тази....
Това си е трол фейса в нова кожа, така че всяко чудо за три дни.

Btw, много добра форк бомба пуснаха определени хора наричани за по-кратко "енергийна мафия".
Пушилката и щетите ще са дълготрайни. Като гледам и колко прецизно я пуснаха тая бомба - точно преди изборите.
Няма 6-5, много удобно стана това увеличение. Ако си зададем елементарния въпрос, кой има най-голяма изгода от това? - отговора макар и парадоксален, той ще бъде - ЕРП-тата...

Съжалявам за спама, но поне опитах да направя някаква връзка с темата :D