程序声称有一个专门的用户来运行自己

信息安全 linux 用户名
2021-08-28 13:33:21

运行 Ubuntu Linux 14.04 LTS 的桌面似乎比平时慢。top结果表明,用于 Unix 反病毒程序的数据库更新实用程序freshclam 工作得最努力。

freshclam --version 显示版本是昨天的:

ClamAV 0.100.3/25835/Sat Jun  6 14:51:26 2020

该程序在用户下运行clamav,而不是 root 或用户。

  • 程序要求专用用户配置文件自行运行是否通常?
  • 这实际上是一个好兆头吗,因为它增加了无论如何发生的事情的透明度?
  • 这实际上是一个坏兆头,因为这样的临时用户可以侵入其他“东西”吗?
  • 我可以检索我的计算机中安装的程序列表,并声明使用专用用户名的这项权利吗?基本上,用户可以监督这些行为吗?

任何适用于理解这些情况的常识性提示都值得赞赏。

4个回答

Clamav 是一个守护进程Linux 标准基础核心规范建议守护进程在单独的用户 ID 下运行这样,您就可以对每个守护进程进行细粒度的访问控制,并且如果其中一个受到威胁,攻击者不会自动获得对系统的无限制访问(例如,如果守护进程以 root 身份运行,他们就会这样做)。

适用于理解此类情况的任何常识性提示

任何应用程序都需要一些帐户才能运行。使用 root 帐户运行每个应用程序可能很危险。如果这样的应用程序有一个严重的错误,例如它允许在系统中执行其他应用程序,可能的攻击的成功基本上取决于这样的应用程序的权限。

如果此应用程序使用 root 帐户运行,则实际上它执行的任何操作都将被系统接受并执行。意味着,攻击可以成功。但是,如果应用程序使用一些权限较少的受限帐户运行,那么许多恶意操作将是不可能的,因为系统将拒绝执行它们。

使用单独的帐户可以更精确地控制特定应用程序所需的权限。您可以准确地为此类帐户提供它需要的权限,而不是更多。此外,您可以快速撤消此类帐户的权限,甚至将其删除。拥有一个单独的帐户允许应用程序保护其数据(配置文件、日志文件)不受其他用户的影响,而无需 root 帐户。

这就是想法。

在现实中,我们应该牢记以下几点:

1)可能是权限的粒度太粗了,您必须提供比您想要的更多的权限。

2) 为每个应用程序(进程、服务、守护程序)维护一个单独的帐户需要付出努力。这就是我们估计风险并考虑努力的原因。如果风险很低,那么保持低努力并尽可能少地维护账户是有意义的。

3) 许多应用程序都有一个可配置的用户帐户,它们将用于运行。它的名称类似于应用程序名称。您可以保留它或为此应用程序使用其他用户帐户。

4)关于clamav:拥有一个单独的帐户并不可疑,这是正常的。

应用程序通常在安装过程中以 root 身份运行脚本。该脚本可以使用 root 权限来创建受限用户帐户,该帐户仅具有程序所需的权限。这是一种正常且良好的方法。

如有疑问,请使用

   ps -e -f

查看命令行的完整性并验证正在运行的二进制文件的位置。

安装支持较少的程序需​​要管理员创建这些帐户和脚本以切换到它们。

程序通常要求自己的用户配置文件自行运行吗?

在后台运行的程序以自己的用户身份运行是正常的。

这实际上是一个好兆头吗,因为它增加了无论如何发生的事情的透明度?

这很好,因为它提供了特权分离,如果所有后台程序都以同一个用户身份运行,那么一个人的妥协可以更容易地传播给其他人,它也有助于监控。

这实际上是一个坏兆头,因为这样的临时用户可以侵入其他东西吗?

类 unix 的系统不区分人类用户和系统用户之间的用户名当然是次优的,但它是一个旧的设计,很难回去修复:(。Debian 现在建议新的下划线前缀添加了系统用户名,但似乎没有任何尝试更改大量现有用户名的愿望。

我可以检索我的计算机中安装的程序列表,并声明使用自己的用户名工作的权利吗?基本上,用户可以监督这些行为吗?

作为 Debian 类系统的一般规则,系统用户可以通过用户 ID 在 0 到 999 范围内来区分,而普通用户的用户 ID 通常在 1000 到 59999 范围内(参见https://www.debian. org/doc/debian-policy/ch-opersys.html了解更多详情)

至于哪些程序实际使用每个用户,这很难说,有时您可能会在初始化脚本、systemd 服务文件、cron 作业等中找到它,但某些服务以 root 身份启动,然后在获得特定特权后下拉到其特定用户初始化任务(主要绑定到特权 TCP/UDP 端口)已完成。