为什么在 Linux 中挂载内部驱动器时需要 root 密码?

信息安全 linux
2021-09-01 06:19:50

就安全而言,这个限制是为了什么?通过 USB 连接外部驱动器时,不需要 root 密码。我无法理解其中的逻辑。

我在 fstab 中使用以下规则在运行时连接内部驱动器:

LABEL=disk /media/user/disk ext4 rw,nosuid,nodev,noexec,discard,relatime,user

这样的规则将如何增加漏洞?

4个回答

挂载文件系统有多个非常高的安全风险,不应掉以轻心。

话虽如此,有多种工具(如 udisks 和 fstab 中的用户选项)以提升的权限运行并尝试在允许用户挂载磁盘的同时降低风险。大多数缓解措施都是通过仔细控制挂载选项来实现的。

以下是可能风险的简短(且不完整)列表:

  • 恶意格式错误的文件系统可能导致系统崩溃或触发内核中的缓冲区溢出错误(缓解措施:首先运行文件系统检查并拒绝或修复格式错误的文件系统)
  • 恶意填充的文件系统可能包括 setuid 二进制文件或具有允许权限提升的开放权限的设备(缓解措施:使用 nosuid、nodev 和可能的 noexec 挂载)
  • 挂载选项可以允许挂载现有分区,同时通过挂载选项强制更改文件所有权(缓解:限制用户提供挂载选项)
  • mount 可以替换现有的系统目录(缓解:仅允许用户触发在特殊指定目录上的挂载)
  • 卸载任意文件系统可能会导致拒绝服务攻击(缓解措施:仅允许用户卸载用户安装的文件系统)

总而言之,mount 是一个系统关键功能,它的影响会严重影响系统的完整性和安全性,因此只有在极其受限的条件下才能由非管理员用户允许。

在大多数现代 Linux 发行版中,有一个名为的帮助udisks程序允许用户挂载可移动驱动器,例如 USB 驱动器,这样他们就不必拥有 root 权限。但是,此帮助程序通常不会在不可移动磁盘上运行,因此它不适用于内部驱动器。

挂载磁盘需要特权的主要原因是因为它将内核引入了不受信任的数据,这是有风险的。文件系统可能是恶意的或格式错误的,例如具有自引用数据结构,这可能导致非特权用户导致 DoS 或任意代码执行。如 user10489 所述,其他各种原因也是可能的。

更重要的是,挂载和卸载都需要相同的权限,通常 udisks 只能在可移动驱动器上工作的原因是允许用户在控制台登录机器卸载内部磁盘可能会导致系统停止工作。例如,如果我有一台受限的信息亭或商务中心计算机,并且可以卸载根文件系统,我可以让其他人停止服务信息亭,直到有人来重新启动它。这就是卸载驱动器通常需要特权的原因,因为 Unix 系统是为多个用户设计的。

在不知道您正在运行的命令的情况下,很难说出系统为什么要求您输入密码。fstab当然不能要求您输入密码,因为它不是可执行文件。

正如您user为 指定的那样/media/user/disk,以常规方式运行mount /media/user/disk不应要求输入密码。事实上,mount从不要求输入密码,它要么成功,要么失败。您可能正在运行sudo mount /media/user/disk,并且sudo无论如何都要求您输入密码,因为它无法知道您将要运行的命令不需要执行为root

另请注意,noexec指定时隐含nosuid、 和nodev参数user,因此它们无效。

就安全而言,这个限制是为了什么?通过 USB 连接外部驱动器时,不需要 root 密码。我无法理解其中的逻辑。

类 Unix 系统被设计为多用户系统,驱动器的安装被认为是一种管理行为。磁盘可能包含某些用户不允许访问的数据,它可能包含造成安全风险的 setuid 二进制文件。

随着通常一次由单个用户使用的台式机(甚至笔记本电脑)系统变得越来越普遍,设计了一些机制来授予本地登录到计算机的用户一些通常保留给系统管理员的权限. 多年来,这样的系统已经有好几代了,据我所知,Debian 目前为此目的使用了 policykit。

大多数带有桌面的 Linux 发行版默认授予在本地登录的用户安装“可移动”媒体的权限。逻辑大概是可移动磁盘由坐在计算机旁的人控制,如果每次有人想要插入或弹出磁盘时都必须调用系统管理员,它们就不会很有用。通过限制挂载位置和挂载选项,在一定程度上缓解了挂载的安全漏洞。

当 USB 驱动器出现时,从默认策略的角度来看,它们与可移动媒体分组,大概是因为大多数用户在实践中使用它们的方式。

如果您正在经营一家高度安全的商店,您可能需要查看默认策略。操作系统发行版中的默认策略始终是安全性和可用性之间的折衷方案。即使使用受限的挂载选项来挂载潜在的恶意驱动器也会带来一些风险。

另一方面,内部驱动器仍被视为系统管理员的域,并且可能包含当前坐在计算机前的用户不应访问的内容。