是否可以限制程序读取其需要之外的任何内容?

是否可以限制程序读取其需要之外的任何内容?

我理解以非 root 用户身份运行程序是为了限制程序写入系统文件,从而防止恶意软件危害系统安全。

但在大多数情况下,这些程序仍然能够这些系统文件,即使他们无法写入它们(例如/etc/fstab),这会使系统容易受到各种间谍软件的攻击。

那么,是否有可能以更严厉的方式限制程序,使它们无法访问定义环境之外的任何内容?例如,我可以允许firefox使用~/.mozilla~/.cache/mozilla~/Downloadsfirefox永远无法从/etc或 等读取任何内容。

Linux 中有这样的功能吗?

答案1

在 Ubuntu 上限制访问的方法是使用 apparmor。

https://wiki.ubuntu.com/AppArmor

Firefox 附带了针对 Firefox 的 apparmor 配置文件,该配置文件是专门为安全性而开发的。

正如 Rinzwind 所指出的,ro 访问不一定是一个安全问题。

大型程序(例如 Firefox)并不是最好的例子,因为 Firefox 具有从网络访问到硬件访问的相当广泛的功能。

如您所见,firefox apparmor 配置文件非常大。如果您愿意,您当然可以根据自己的特定需求/顾虑修改 apparmor 配置文件。只需确保保存原始配置文件的副本,以便在破坏 Firefox 功能时可以恢复它。

其他浏览器,例如 Chromium,运行在沙盒中。

如果您对安全性特别感兴趣,您可以使用 selinux 运行 Fedora 并在 selinux 沙箱中运行应用程序。

apparmor 配置文件可在此处获取

https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/AppArmorProfiles

答案2

是的,它被称为环境chroot(见http://en.wikipedia.org/wiki/Chroot)。

相关内容