[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Безопасность chroot



29 августа 2009 г. 14:43 пользователь Alexey Pechnikov
(pechnikov@mobigroup.ru) написал:
> Hello!
>
> On Saturday 29 August 2009 15:06:56 Иван Лох wrote:
>> Просто подумай о том, что никакой chroot не отменяет вызовы ядра, которыми можно
>> сделать все. В отличии от виртуалки. Поэтому chroot в котором работают под root
>> и не имеет смысла. И chroot в котором достаточно полная система, чтобы обеспечить
>> эскалацию привилегий тоже смысла не имеет. Для целей безопасности, разумеется.
>
> 1) selinux и подобные решения могут запретить "сделать все". Это конкретно к вопросу
> о запуске init 0 в чруте - даже если пользователю удалось повысить свои привелегии,
> что может произойти и на основной системе. Однако в чруте, вероятно, можно и какие-то
> другие техники применить, вот и вопрос - какие?
Никаких других техник нет. Чрут только позволяет сменить корневой каталог. Всё.
Приложение запущенно в чрут от _root_, может сделать всё то, что и без
чрута. В том числе и получить доступ к файлам вне чрута. И это
нормально. Чрут предназначен не для этого.
И кстати запустить init в чруте не выйдет. В системе уже есть процесс с pid 0

>
> 2) Запуск от рута одного init-процесса в чруте еще не дает возможности пользователям
> и приложениям получить права рута. И "работать от рута" абсолютно не то же самое, что
> иметь запущенные в системе процессы от рута (которые, кстати, есть во всех линуксах,
> но это не отменяет возможность и необходимость защиты системы).
>
> 3) "Обеспечить эскалацию привелегий" - это не проблема чрута как технологии, хотя бы
> потому, что многие гипервизоры это тоже позволяют. Так что виртуалка на практике не
> надежнее чрута, а скорее, наоборот, т.к. добавляется много лишнего кода, работающего
> с высшими привелегиями. В чруте, например, можно не монтировать /proc, что, насколько
> я понимаю, сделает невозможным вызов init 0. На виртуалке же вы и такой возможности
> не имеете. А вот что нужно "отрезать" в чруте, чтобы блокировать означенную угрозу, как
> раз и представляет интерес.
Чрут и виртуалка решают РАЗНЫЕ проблемы.

Конкретно в вашем случае чрут бесполезен. Как вы будете тестировать
новый init не перезагружаясь в чруте ?

>
> Best regards, Alexey Pechnikov.
> http://pechnikov.tel/
>

Reply to: