通过拥有 4xx 权限而不是 6xx 权限的文件是否可以获得任何安全性?

通过拥有 4xx 权限而不是 6xx 权限的文件是否可以获得任何安全性?

如果一个文件只能由其所有者(400)读取,这是否比具有读写权限的文件更安全?

这充其量不会只是帮助防止您对自己的文件犯下愚蠢的错误,而不是增加任何实际的安全性吗?如果您拥有某个文件,则可以更改其权限。因此,如果有人恶意获得了对用户的访问权限,那么将该用户拥有的文件设置为 400 不会阻止攻击者更改该文件的权限并对其进行写入吗?

通过拥有一个不可写入的文件来获得任何安全性吗?

答案1

如果您的威胁模型是二进制的 - 用户帐户未受到损害或完全受到损害(任意命令执行) - 没有任何区别。正如您所注意到的,攻击者只能访问chmod u+w该文件。

然而,部分妥协是可能发生的。例如,如果攻击者仅获得“写入任何文件”的权限,那么他就无法写入0400文件。不过,在很多情况下,这的好处值得怀疑——“写入任何文件”通常可以相当容易地提升为任意命令(例如,写入~/.bashrc)。

此外,具有父目录的写入权限,您仍然可以删除(取消链接)模式 0400 文件。这意味着攻击者可以删除现有文件并使用相同名称放置一个新文件。

我想到的一个“安全”用途是 FTP(等)保管箱。您可以在其中放置一个自述文件,模式为 0400。如果您的保管箱父目录设置为a+rwxt,那么每个人都可以在那里添加新文件(并且由于+t)只能删除他们拥有的文件。所以你的自述文件将受到保护。

所以我认为总的来说,它是一个预防事故的功能,而不是一个安全功能。

答案2

愚蠢的错误会破坏数据。防止愚蠢的错误可能会保存您的数据。没有对您真正想要保留的文件设置写权限与不是自动使用-fon rmrm如果您不小心尝试,则会向您投诉rm -r /,并且不是root一直运行你的 shell 。如果您知道自己在做什么,那么它们都不是必需的,但它们在某种情况下都可能有用。

但是,安全漏洞从小处开始。用户输入可用于决定要访问的文件名,如果未经处理,他们可能会诱使程序访问最终用户不应该访问的内容。 (比如经典的东西../../../passwd。)

如果一个重要的文件在没有写权限的情况下保存,那么仅仅能够决定文件名将不允许写入该文件。不过,这有多重要,取决于他们可能重写哪些其他文件。(实际上,最好修复那些未经处理的输入的使用。)

答案3

简而言之,不,你没有获得任何值得你付出努力的东西。正如您正确地提到的,任何设法读取该文件的人都可以更改其权限。

始终需要考虑安全性与可用性之间的平衡,在这种情况下,我什至很难看到收益,更不用说根据维护此解决方案的努力来衡量它了。

相关内容