【问题标题】:How can UNIX access control create compromise problems?UNIX 访问控制如何产生妥协问题?
【发布时间】:2011-01-27 11:30:18
【问题描述】:

我的系统管理员建议我在设置文件和目录的访问控制时要小心。他给了我一个例子,我很困惑,这里是: 保护模式为 644(八进制)的文件包含在保护模式为 730 的目录中。 所以意思是:

  • 文件:110 100 100(所有者、组、其他:rw- r-- r--)
  • 目录:111 011 000(所有者、组、其他:rwx -wx ---)

在这种情况下文件如何被泄露?

【问题讨论】:

  • 完全相同的问题在“计算机安全:原则和实践”,(第二版,Stallings & Brown),问题 4.5(第 157 页)中。

标签: security unix inode


【解决方案1】:

这取决于你所说的“妥协”是什么意思,也取决于谁属于这个群体。

目录权限很关键。由于组成员可以访问目录('x')并且可以修改目录('w'),即使他们不能列出目录(没有'r'),这意味着如果组成员知道文件的名称,该人也可以删除它,因为删除文件需要写入目录的权限 - 文件权限无关紧要(即使 'rm' 之类的命令会让您知道何时您对目录没有写入权限文件,这是一种礼貌,因为它与 'unlink()' 系统调用无关)。

因此,如果您的组的成员(或者更准确地说,目录所属组的成员)知道文件的名称,他们可以删除该文件。如果他们知道文件的名称,他们也可以读取文件,如果原始文件已经丢失,他们可以创建一个同名的文件。从文件权限来看,能够读取文件并没有受到损害 - 如果这很重要,您将拒绝组读取访问(和公共读取访问)。

请注意,虽然您的组成员不能修改文件,因为他们可以删除文件并创建一个新的同名文件,结果与能够修改文件基本相同。一个关键的区别是您会知道哪个用户做了恶作剧,因为该用户将拥有该文件。 (好吧,是某个有权访问该用户 ID 的人搞砸了。)

【讨论】:

  • 比我的解释好多了,+1。
【解决方案2】:

由于可以写入目录,如果攻击者在目录所有者的组中,则可以简单地用另一个文件覆盖该文件。

【讨论】:

  • 所以你的意思是具有目录组访问权限的攻击者可以覆盖目录并可以根据自己的目的更改文件。
  • @Berkay:是的,就是这个意思。 “更改”的意思是“删除当前文件并创建具有相同名称但(可能)不同权限的新文件 - 如所有者不同”。
  • 谢谢我知道了,也不需要覆盖,乔纳森提到如果组成员知道文件名,那个人也可以删除它,因为删除文件需要写入权限目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 2021-07-18
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 2013-10-20
相关资源
最近更新 更多