【问题标题】:What is the reason that celery should not run as root?芹菜不应该以root身份运行的原因是什么?
【发布时间】:2018-11-25 18:30:54
【问题描述】:

我在 shell 中看到我不应该以 root 身份运行 celery 的建议,“绝对不推荐!”。

谁能解释一下?

【问题讨论】:

  • 通常建议不要以 root 身份运行任何东西,除非你真的必须这样做。通过以 root 身份运行,您可以访问大量系统设置/文件/...

标签: python django celery django-celery


【解决方案1】:

这是Principle of least privilege (PoLP) [wiki]的具体情况:

(...) 最小特权原则(PoLP,也称为最小特权原则或最小权限原则)要求在计算环境的特定抽象层中,每个模块(例如进程、用户或程序,取决于主题)必须只能访问其合法目的所必需的信息和资源

如果您授予 celery 根访问权限,则意味着它可以访问许多强大的工具:它可以删除系统配置、擦除整个文件系统、安装新软件,甚至操作硬件等。

以 root 身份运行 celery 可能会导致一些不安全的情况。例如,如果黑客因此设法在某处“注入”代码,它可以等到 celery 运行该代码,例如创建一个具有预定义密码的用户,然后它就可以访问机器。当然设法将代码存储在某个地方以便 celery 运行是另一个挑战,但通常最好总是假设所有系统在某种程度上都是不安全的,因此给予这些 root 访问权限肯定不会有利于安全性。这在维基百科文章中也有说明:

(...) 例如,Microsoft 声明“在标准用户模式下运行可以为客户提供更好的保护,以防止因“粉碎攻击”和恶意软件(如 root 工具包、间谍软件和无法检测的病毒)造成的意外系统级损坏。

当然,如果黑客设法注入代码,这仍然会造成很大的损害,因此以非 root 用户身份运行 celery 进程是不够的。通常,与仅有权访问文件和它真正需要的其他资源的用户一起运行进程也很有用。例如,仅用于它必须执行的进程的 python 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-30
    • 2014-01-30
    • 2014-10-15
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2013-12-19
    相关资源
    最近更新 更多