29 августа 2009 г. 14:43 пользователь Alexey Pechnikov
([email protected]) написал:
> 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/
>

Ответить