首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么二进制(ELF) SUID可执行文件也允许读取访问?

为什么二进制(ELF) SUID可执行文件也允许读取访问?
EN

Stack Overflow用户
提问于 2015-03-16 17:37:14
回答 2查看 403关注 0票数 2

作为最近"rowhammer“利用概念证明的一部分,一个读-suid-exec工具"ping”被用来创建一个更精细的概念验证。

那么,我的问题是--为什么各种发行版都在准备可读和可执行的suid (特别是root)可执行文件?

我的推测包括:

  1. 与"ldd“一起使用方便
  2. 允许tripwire或包更新检查软件以非root方式运行。
  3. 这并不重要,因为大多数发行版都是公共的,任何人都可以获得ELF二进制文件(安装到VM中,等等)。
  4. selinux可以用来使这个不相关。
  5. 懒惰的开发人员

在(3)中,隐藏公共发行版的二进制文件只提供了安全的一页-- (5)几乎是名称调用。

EN

回答 2

Stack Overflow用户

发布于 2015-03-16 21:08:04

不是一个完整的答案,但我发现,如果setuid根程序存储在NFS服务器上,则需要使它们具有可读性。

让我再说一遍:在本地文件系统上,对于setuid根程序来说,chmod 4711就足够了,但是在NFS上,所需的模式是4755

票数 0
EN

Stack Overflow用户

发布于 2015-05-24 16:48:50

它是“不重要”(3)和“懒惰的开发人员”(5)的混合体。

关闭对SUID可执行文件的读取访问等不必要的权限是很好的做法,因为它通常可以减少攻击面,但在许多情况下没有多大区别。

正如您所说的(3),隐藏程序数据并不会阻止攻击者搜索ROP小工具等等,因为数据通常在二进制文件的公共发行版中可见。

请注意,这不适用于零项目博客帖子中描述的基于rowhammer的漏洞。因此,该漏洞不希望读取SUID可执行文件中的数据,它只想使用/proc/self/pagemap来了解哪些物理地址包含可执行文件的数据。

但是,正如博客文章所述,如果攻击者不能打开() SUID可执行文件,它就可以打开()它使用的库(如/lib64/ld-linux-x86-64.so.2 ),并将攻击应用于此。因此,限制SUID可执行文件的读取权限没有帮助。我们不能删除这些库的读取权限,否则它们将不可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29083388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档