Является ли fakechroot уязвимостью безопасности?

Является ли fakechroot уязвимостью безопасности?

Недавно я узнал больше о fakechroot. AFAIK это кажется опасным, так как оно повышает привилегии пользователя, даже если оно в chroot. Я знаю, fakerootно это не то же самое, так как вы не можете сделать с ним ничего, что требует root.

Однако с помощью которого fakechrootвы можете на самом деле выполнять вещи, требующие привилегий root внутри chroot. Так означает ли это, что используя fakechrootобычного пользователя, у вас есть возможность получить root-доступ к chroot, а затем выйти как root на хост?

Я прочитал на их странице руководства, что fakechrootпривилегии пользователя не повышаются, но не уверен, что до конца понимаю это.

решение1

Некоторые приложения Linux будут работать только если текущий пользователь — root. Большинство этих приложений связаны с изменением самого Linux, поэтому защищены от обычных пользователей.

Однако иногда, работая в качестве обычного пользователя, нам хотелось бы запускать такие команды без повышения прав root, только для временного использования этих команд для определенной цели.

Такие команды не являются уязвимостью безопасности, поскольку они выполняются от имени текущего пользователя и не оказывают никакого реального влияния на работающую версию Linux.


Лучшим примером таких команд является fakeroot. Его функция заключается в том, чтобыпритворятьсячто текущий пользователь - это root, хотя на самом деле этого не происходит.

Это позволяет программам, которые, как ожидается, будут запущены от имени пользователя root, на самом деле работать от имени обычного пользователя, ошибочно полагая, что операции, требующие прав root, выполнены успешно.

Обычно это используется при сборке пакета, чтобы процесс установки устанавливаемого пакета мог продолжаться без ошибок, даже если он запускается chown root:root, или install -o rootи т. д. fakerootзапоминает поддельное владение, которое он якобы предоставил этим файлам, поэтому последующие операции, проверяющие владение, будут видеть rootв качестве владельца вместо настоящего.

Это позволяет, например, последующим tarзапускам сохранять файлы как принадлежащие root. fakerootв этом случае создаст tarball, содержащий файлы, принадлежащие root и suid. Однако вы не сможете извлечь этот tarball и сохранить эти разрешения, если не сделаете это как root, без повышения привилегий.

fakerootзатем позволяет запустить сборку как обычный пользователь, сохраняя при этом эффекты, которые были бы у сборки, если бы она была запущена как root, позволяя воспроизвести их позже. Применение эффектов "по-настоящему" потребует настоящих привилегий root, для которых не fakerootпредусмотрено никакого способа получения.


Другой пример:поддельныйchroot. fakechroot— это обычная не-setuid программа. Она не повышает привилегии пользователя и не снижает безопасность системы. Она создает среду, в которой можно использовать команду chroot(8) без привилегий root, что полезно для вызова aptустановки пакетов без необходимости привилегий root. Таким образом, пользователь создает среду root в своем собственном маленьком пузыре, не влияя ни на кого другого в системе.

fakechrootне предоставляет fakerootфункционал, поэтому требует вызова fakechrootчерез fakerootкоманду. Эти две команды являются взаимодополняющими и часто используются вместе.

Связанный контент