更改服务帐户默认 Shell 的建议

信息安全 linux 硬化
2021-08-12 04:31:49

似乎大多数 Linux 系统都使用/sbin/nologin/bin/false作为服务帐户的默认 shell。许多强化指南(例如 CIS 基准测试)建议将这些帐户的默认 shell 更改为/dev/null. 虽然许多建议都附有分析,但这是我从未见过的合理建议。是什么问题推动了这些建议以及它试图减轻什么威胁?

4个回答

我知道的唯一真正的技术原因是恶意文件替换的可能性。考虑一个攻击者,他找到了一种写入任意文件的方法。如果他们可以用 /bin/bash 的副本覆盖 /sbin/nologin 或 /bin/false,那么他们可以想象一种方法以服务用户身份登录并从那里继续提升他们的权限。

但是, /dev/null 不能以这种方式简单地替换,原因有很多:

  • 它是一个设备,而不是一个平面文件
  • 写入它的任何内容都会消失,因此简单的覆盖将不起作用
  • 如果有人确实用 /bin/bash 替换了它,那么它可能会被使用 /dev/null 作为位接收器的众多程序之一覆盖,从而阻止攻击者
  • 如果有人确实替换了它,它可能会以某种方式破坏某些系统功能,从而提醒管理员出现问题,这比替换“nologin”甚至“false”要严重得多。

还有一个非技术原因,那就是许多管理员受传统和/或他们很久以前学到的习惯的束缚,而 /dev/null 曾经是这种用途的更常见选择(我很确定 /sbin /nologin 20 年前还不存在)。随心所欲。

我不是 Linux 专家,但如果我将此与 Windows 上的服务帐户建议进行比较,我认为这相当于删除所有特权,包括交互式登录的可能性。
这可能只是最小化攻击面/最小权限的问题......:

如果您不需要它,请将其关闭。

好问题!据我所知,这个建议没有任何理由。据我所知,这是个坏建议;/bin/false或者/sbin/nologin很好。(如果我错过了什么,我期待了解我忽略了什么。)

使用 /dev/null 将导致没有未经授权的交互式 shell 登录尝试的安全审计日志。