【问题标题】:Security Concerns on SetUID for non-privileged, malicious process (Linux)非特权恶意进程 (Linux) 的 SetUID 安全问题
【发布时间】:2020-11-10 06:08:15
【问题描述】:

我了解 setUID 位与 Linux 中的 EUID 和 RUID 一起使用,为非预配用户提供对需要它的可执行文件的临时 root 访问权限。但是,我主要担心的是,假设某个进程在计算机上是恶意的。即使进程具有低权限的用户 ID(如 Mac 上的“nobody”),如果他们执行代码所能做的就是使用具有 setUID 位的文件来获取临时根 EUID,那不会失败拥有特权进程的全部目的,因为该进程现在在技术上具有对计算机的 root 访问权限?还是我错过了什么?谢谢!

【问题讨论】:

    标签: linux security process setuid multiple-users


    【解决方案1】:

    仅仅因为可执行文件具有特权访问权限并不意味着执行它的人可以导致它执行任意操作。

    要在 setuid 下运行的程序必须非常小心地编写,以避免以意外的权限提升方式使用。如果他们有安全漏洞,是的,它会产生你描述的问题,并且在将 setuid 标志应用于可执行文件之前,你必须非常小心。

    【讨论】:

    • 此外,如果出现安全问题,进程可能会在不再需要这些提升权限时选择暂时或永久放弃这些权限以限制损害。
    • sudo 可以配置为允许某些用户以其他用户或 root 身份运行特定命令,而不授予他们访问任何其他内容的权限。这通常比编写自定义 setuid 二进制文件更安全,因为许多升级技术已经得到缓解。
    • 大体上同意,但并非设计为在特权升级上下文中运行的命令通常具有允许它们被滥用的功能(vim 是一个特别著名的案例;授予用户vim 的 sudo 权限与授予他们对所有内容的 sudo 权限相同。但finddd 也是如此。)编写自定义 setuid 二进制文件的一个安全优势是可以更仔细地考虑和审核它们,而不是将 sudo 授予通用工具。
    • setuid 和 sudo 也解决了不同的问题。 sudo 允许普通用户访问管理工具。 setuid 允许应用程序访问它需要的东西,而不给调用者任何额外的权限。例如,ps 命令需要提升权限才能运行(至少在某些平台上),但您不希望需要sudo 权限才能使用它。
    猜你喜欢
    • 1970-01-01
    • 2011-03-04
    • 2021-05-01
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多