【问题标题】:Meaning of the read permission for binary executable?二进制可执行文件的读取权限的含义?
【发布时间】:2020-09-16 08:20:21
【问题描述】:

我对二进制可执行文件的读取权限的全部影响感兴趣。确实,我遇到了一些我想了解的行为。

假设我有一个只调用 sleep(300) 的 C 程序。当二进制文件具有读取权限时,我可以检查与正在运行的程序关联的 /proc/$PID 文件夹。但是当我删除此权限时,我无法访问该文件夹:它不存在。

同样,如果我有一个更聪明的程序将 str 从一个指针复制到另一个指针,则在此可执行文件上调用 strace ,如果二进制文件是“可读”的,则会产生更好的结果。 (例如,strace 将显示每个指针指向的内容) 由于 strace 依赖 ptrace 来分析正在运行的程序内部,所以我不了解读取权限的影响。事实上,我相信读取权限只与依赖读取二进制文件的静态分析相关。

鉴于观察到的读取权限的影响,这是否意味着在安全性至关重要的服务器上删除所有二进制文件的读取权限是一种好习惯?

【问题讨论】:

    标签: linux security


    【解决方案1】:

    正如您所发现的,在 Linux 上当然有可能只有执行权限的二进制文件。正如您还发现的那样,这样做可能会导致故障排除问题,因为这会使过程更难检测。

    我当然见过管理员系统地从他们自己的所有二进制文件中删除读取权限的安装。我有时觉得这样做会引起问题,尽管进行这种事情的安装非常复杂,很难确定。

    我想您必须权衡安全性的小幅提高和可维护性的小幅降低所带来的好处。我的经验是,无论删除读取权限有什么好处,它似乎都不是 Linux 世界的常见做法。

    【讨论】:

      猜你喜欢
      • 2014-12-14
      • 1970-01-01
      • 2013-08-26
      • 2014-06-17
      • 2021-02-21
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2013-10-24
      相关资源
      最近更新 更多