По какой причине сельдерей не должен запускаться с правами root? - PullRequest
0 голосов
/ 25 ноября 2018

Я вижу рекомендации в оболочке, что я не должен запускать celery как root, что это "абсолютно не рекомендуется!".

Может кто-нибудь объяснить это?

1 Ответ

0 голосов
/ 25 ноября 2018

Это частный случай принципа наименьших привилегий (PoLP) [wiki] :

(...) принципаНаименьшая привилегия (PoLP, также известная как принцип минимальной привилегии или принцип наименьшей власти) требует, чтобы на определенном уровне абстракции вычислительной среды каждый модуль (такой как процесс, пользователь илипрограмма, в зависимости от предмета) должна иметь доступ только к той информации и ресурсам, которые необходимы для ее законного назначения.

Если вы предоставляете доступ корню сельдерея, это означаету него есть доступ ко многим мощным инструментам: он может удалить конфигурацию системы, стереть всю файловую систему, установить новое программное обеспечение, даже манипулировать оборудованием и т. д.

Запуск сельдерея от имени root может привести к нескольким небезопасным сценариям.Например, если хакеру, таким образом, удается «внедрить» код где-то, он может подождать, пока сельдерей выполнит этот код, и, например, создать пользователя с предопределенным паролем, а затем он сможет получить доступ к компьютеру.Уверенный способ хранить код где-то так, чтобы сельдерей выполнялся, является другой проблемой, но обычно лучше всегда предполагать, что все системы в некоторой степени небезопасны, и, таким образом, предоставление этих корневых прав доступа определенно не принесет пользы безопасности.Об этом также говорится в статье в Википедии:

(...) Например, Microsoft заявляет: «Работа в стандартном пользовательском режиме дает клиентам повышенную защиту от непреднамеренного повреждения на уровне системы, вызванного« атаками с разбивкой »и вредоносные программы, такие как руткиты, шпионские программы и необнаружимые вирусы ".

Конечно, если хакеру удастся внедрить код, это все равно может причинить большой ущерб, поэтому запуск процесса celery как неПользователь root, не достаточно.Как правило, также полезно запускать процесс с пользователем, который имеет доступ только к файлам и другим ресурсам, которые ему действительно необходимы.Например, только файлы python, которые используются для процессов, которые он должен выполнять.

...