能够更改根用户密码(漏洞?)

信息安全 linux 重设密码
2021-08-18 23:15:24

我正在为我的 RHCSA 考试而学习,其中一个主题是“更改忘记的 root 用户密码”的能力。这是一个正式的考试目标,甚至还有官方的 Redhat 文档

这怎么不是一个明显的安全漏洞?不应该不存在更改root用户密码的能力吗?我知道您需要对机器进行物理访问(这使得实施变得更加困难)但是如果可以像这样更改密码,为什么还要有密码呢?有没有办法禁用这个“功能”,这样它就不能像这样从 GRUB 改变?

你也可以在所有其他 Linux 发行版中这样做吗?还是这是 Redhat 独有的能力?

2个回答

当您说您需要物理访问机器时,您几乎一针见血。

如果您有物理访问权限,则无需通过官方步骤来重置根密码,因为您可以直接翻转硬盘驱动器上的位,如果您知道自己在做什么。即,您可以从 DVD 或闪存驱动器启动恢复操作系统,并以这种方式安装驱动器以获得对整个磁盘的完全读/写访问权限。

磁盘加密将减轻风险,但不会完全消除风险*,反而会使攻击更加复杂。最好假设具有物理访问权限的攻击者能够及时影响设备的各个方面。

由于假设具有物理访问权限的攻击者最终将始终获得特权帐户访问权限,因此如果合法管理员丢失密码,就没有什么意义。

我使用过的每个 Linux 发行版都具有此功能,尽管某些针对更偏执的受众的发行版可能会禁用此功能。

此外,它是 BSD Unix 中的标准功能,至少 15 年前我在 Cisco 设备上使用它时在 CCNA 考试中进行了测试,如果没有明确保护,在 Windows 机器上重置密码是相当简单的。

*例如,攻击者可以在/boot目录中添加后门内核或 initrd,因为引导加载程序必须能够读取内核和 initrd 文件,所以需要对其进行解密。

这怎么不是一个明显的安全漏洞?

它是。对系统的物理访问最终的漏洞。

有没有办法禁用这个“功能”,这样它就不能像这样从 GRUB 改变?

你也可以在所有其他 Linux 发行版中这样做吗?还是这是 Redhat 独有的能力?

让自己意识到这里发生了什么:

当攻击者控制您的系统时,您的操作系统甚至还没有运行。

虽然 GRUB与 Linux打包在一起,但它并不是它的一个组成部分,实际上,攻击者可以用其他一些引导加载程序替换 GRUB,而无需操作系统更聪明。

因此,与您的操作系统易受攻击无关。这是关于您的操作系统,实际上是任何操作系统,都已被排除在外

即使您对硬盘进行了加密,也要求用户在实际启动之前输入密码。通过物理访问您的系统,没有什么可以阻止攻击者例如安装键盘记录器(硬件或软件)以在下次输入密码时获取该密码。

由于几乎没有办法防御对您的机器具有物理访问权限的攻击者,因此通用操作系统不会费心让具有此类特权的攻击者变得困难(呃)。在这一点上,你已经输掉了战斗。

具有物理访问权限人实际上是 root 用户。