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

Сигурност => Системна Сигурност => Темата е започната от: toti84 в Apr 26, 2010, 14:53



Титла: Може ли да се излезе от chroot ?
Публикувано от: toti84 в Apr 26, 2010, 14:53
Здравейте колеги,
интересно ми е дали chroot е на сто процента сигурен инструмент от гледна точка на сигурноста.
т.е. може ли "някой хакер" да излезе от него. Понеже съм направил chroot-a с yum както е описано тук http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=380235888 ($2)
наред с apacheto например се инсталирант доста системи програми: от които изтрих /bin/su
Въпроса ми точно е дали по някакъв начин мога да вдигна сигурноста относно chroot-a
Благодаря предварително ...

П.П. Трябва ли да забия някаква здрава парола на root протребитела в chroot-a ...


Титла: Re: Може ли да се излезе от chroot ?
Публикувано от: teh в Apr 26, 2010, 16:47
http://www.bpfh.net/simes/computing/chroot-break.html
http://kerneltrap.org/Linux/Abusing_chroot

Можеш да "вдигнеш сигурността" като махнеш всички suid бинарита. Така намаляваш шанса някой да придобие root в chroot-а. Но ако някой има root вътре - излиза.


Титла: Re: Може ли да се излезе от chroot ?
Публикувано от: toti84 в Apr 27, 2010, 12:04
http://www.bpfh.net/simes/computing/chroot-break.html
http://kerneltrap.org/Linux/Abusing_chroot

Можеш да "вдигнеш сигурността" като махнеш всички suid бинарита. Така намаляваш шанса някой да придобие root в chroot-а. Но ако някой има root вътре - излиза.

Доколкото разбрах от горните две статий се оптват да ме обедат, че ако си направя затвор
Код
GeSHi (Bash):
  1. mkdir /chroot/
влезна вътре като root потребител:
Код
GeSHi (Bash):
  1. chroot /chroot/
и след това като напрява това:
Код
GeSHi (Bash):
  1. chroot ../
или това:
Код
GeSHi (Bash):
  1. cd ../
Ще излеза, @teh правилно ли съм разбрал, защото ако "да" просто НЕСТАВА


Титла: Re: Може ли да се излезе от chroot ?
Публикувано от: gat3way в Apr 27, 2010, 13:36
Значи chroot() е викнат като хората,  тоя номер минава ако преди chroot(), текущата директория не е била тази, където е chroot средата.

Има много начини chroot средите да се чупят ако имаш root права. Елементарен пример - качваш там по някакъв начин mount, монтираш /proc, пишеш cd /proc/1/cwd и си вън. Друг вариант - mknod-ваш си блоковото устройство, монтираш го и си го бърникаш. Има и по-advanced методи, но мисля, че това е напълно достатъчно и не изисква много мислене.

Ползването на chroot() е лоша идея просто. Ползването на chroot()-нати среди с root-ски привилегии е простотия.


Титла: Re: Може ли да се излезе от chroot ?
Публикувано от: toti84 в Apr 27, 2010, 14:57
Тук не става въпрос за това някой да има права на роот в затвора и да не може да излезе.
Става въпрос за мерки против придобиването на роот права в затвора,
С уговорката например че ще се пускат приложения от сорта на apache, mysql, sendmail

Това което направих, незнам дали е правилно, ако може кажете и вашето мнение

chmod gu-s -R $chroot/
chattr +i -R $chroot/etc/
chattr +i -R $chroot/var/www/

другото което се замислих е в $chroot/etc/passwd да сложа на root /sbin/nologin
също така незнам дали ще е добра идея да махна $chroot/bin/bash (само не знам дали ще сработи sendmail-a), което е без предметно ако някой си качи негов bash.

@gat3way мойте уважения към теб, но няма ли да е по-трудно да ти превземата целя ком. ако си сложиш публичните услуги в chroot, а и естествено си го конфигурирал по-възможно най-правилния начин.



Титла: Re: Може ли да се излезе от chroot ?
Публикувано от: laskov в Apr 27, 2010, 15:18
също така незнам дали ще е добра идея да махна $chroot/bin/bash (само не знам дали ще сработи sendmail-a), ...
За sendmail има специален шел за целта - smrsh
Edit: не че те насърчавам да го правиш, само отбелязвам факта.


Титла: Re: Може ли да се излезе от chroot ?
Публикувано от: v_badev в Apr 27, 2010, 15:21
Те хората ти казаха, ама да се присъединя и аз - http://kerneltrap.org/Linux/Abusing_chroot :)
Няма значение дали ще махнеш bash от chroot-а. Преди време имаше експлойт с който можеше да се изпълни код като root през cron. Мисля че точно по този начин беше пробита една от основните машини на Debian (цък ($2)).


Титла: Re: Може ли да се излезе от chroot ?
Публикувано от: toti84 в Apr 27, 2010, 16:07
Добре след като chroot не е security tool има ли някаква алтернатива в тази насока.
Вие как си пускате публичните услуги. Добра идея ли е да се използва нещо като vserver.


Титла: Re: Може ли да се излезе от chroot ?
Публикувано от: gat3way в Apr 27, 2010, 17:19
Цитат
@gat3way мойте уважения към теб, но няма ли да е по-трудно да ти превземата целя ком. ако си сложиш публичните услуги в chroot, а и естествено си го конфигурирал по-възможно най-правилния начин.

Ми ще бъде само малко по-трудно :)

Това дали лошите ще успеят да се сдобият с административни права е основната драма и в двата случая. Ако се сдобият с такива и са в chroot среда, ще излязат оттам. Да, може да се правят разни фокуси, примерно с capability-тата на изпълнимите файлове (но излизаме извън дискусията).

Ако идеята е да изолираш услугите с оглед на сигурността, най-добре ги подкарай в отделни виртуални машини. Там имаш пълна изолация и лошите трябва да разчитат единствено на уязвимости в хипервайзора, за да направят каквото и да е било извън виртуалната машина. А и според мен, така е доста по-лесно. chroot среди се правят трудно като хората и смисълът не е особено голям.

Един голям плюс на този подход е че доста по-лесно се customize-ват отделните виртуални машини в сравнение с отделните chroot среди. Примерно искаш различна дистрибуция, различно ядро - няма проблеми.