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/ >

