作为最近"rowhammer“利用概念证明的一部分,一个读-suid-exec工具"ping”被用来创建一个更精细的概念验证。
那么,我的问题是--为什么各种发行版都在准备可读和可执行的suid (特别是root)可执行文件?
我的推测包括:
在(3)中,隐藏公共发行版的二进制文件只提供了安全的一页-- (5)几乎是名称调用。
发布于 2015-03-16 21:08:04
不是一个完整的答案,但我发现,如果setuid根程序存储在NFS服务器上,则需要使它们具有可读性。
让我再说一遍:在本地文件系统上,对于setuid根程序来说,chmod 4711就足够了,但是在NFS上,所需的模式是4755。
发布于 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可执行文件的读取权限没有帮助。我们不能删除这些库的读取权限,否则它们将不可用。
https://stackoverflow.com/questions/29083388
复制相似问题