Phi*_*ler 46 security linux mount tmp noexec
许多人(包括Securing Debian Manual)建议/tmp使用一noexec,nodev,nosuid组选项进行安装。这通常表现为“深度防御”策略的一个要素,通过防止让某人写入文件的攻击升级,或防止具有合法帐户但没有其他可写空间的用户的攻击升级。
然而,随着时间的推移,我遇到noexec了一些毫无用处的论点(最突出的是由 Debian/Ubuntu 开发人员 Colin Watson 提出的),原因有以下几个:
/lib/ld-linux.so <binary>尝试运行以获得相同的效果。鉴于这些论点,对更多配置的潜在需求(例如,debconf像一个可执行的临时目录)以及潜在的便利性损失,这是一项值得的安全措施吗?您还知道哪些其他漏洞可以实现规避?
Phi*_*ler 34
以下是我到目前为止提出的实用程序的论据:
现代内核修复了这个/lib/ld-linux.so漏洞,使其无法从noexec文件系统映射可执行页面。
口译员的观点当然仍然是一个问题,尽管我认为这比人们可能声称的要少。我能想到的理由是,有许多特权提升漏洞依赖于进行特定格式错误的系统调用。如果没有攻击者提供二进制文件,进行邪恶的系统调用就会困难得多。此外,脚本解释器应该是无特权的(我知道历史上有时并非如此,例如使用 suid perl),因此需要它们自己的漏洞才能在攻击中发挥作用。显然,至少可以使用 Python 来运行一些漏洞利用。
许多“罐装”漏洞可能会尝试在写入和运行可执行文件/tmp,所以noexec减少跌至脚本攻击的可能性(在漏洞披露和补丁安装的窗口说)。
因此,/tmp使用noexec.
正如描述的Debian的bug跟踪系统,设置APT::ExtractTemplates::TempDir在apt.conf一个目录下,是不是noexec和访问根就避免了debconf的关注。
将以下内容添加到 /etc/apt.conf 或 /etc/apt/apt.conf.d/50remount
DPkg::Pre-Install-Pkgs {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};
Run Code Online (Sandbox Code Playgroud)
许多 Debian 软件包需要 /tmp 可执行才能安装软件包。这些通常被标记为错误(“正常”/“愿望清单”严重性):
https://www.google.com/#q=site:bugs.debian.org+noexec+/tmp
就在今天,我在将更新的内核安装到稳定分支时收到了这个错误。
所以看起来Debian(和衍生品?)还没有准备好挂载/tmp noexec ...
即使您可能选择实施的大多数补充安全措施都存在变通方法,但即使是最容易规避的安全措施(例如挂载 /tmp noexec 或在备用端口上运行 SSH)也会阻止依赖于默认值的自动或脚本化攻击发挥作用。它不会保护您免受坚定且知识渊博的攻击者的攻击,但在超过 99% 的情况下,您不会遇到坚定或知识渊博的攻击者。相反,您将保护自己免受自动攻击脚本的侵害。
| 归档时间: |
|
| 查看次数: |
42473 次 |
| 最近记录: |