这是在另一个问题的评论中出现的,如果有人能向我解释一下原因我会很高兴。
我建议让 Apache 将给定 VHost 的错误记录到用户的主目录中。但由于不安全,这个建议被否决了。为什么?
我在回复评论中要求澄清,但我得到的回答是,让 root 在非 root 拥有的文件夹中写入是不安全的。同样,有人可以解释一下吗?
谢谢,
巴特。
答案1
因为一个邪恶用户可以恶意尝试将正在写入的文件指向root
其他位置这不是那么简单,但确实有可能。
例如,如果用户想找到制作符号链接从所谓的 Apache 日志到,比如说,/etc/shadow您的系统会突然不可用。Apache ( root
) 会覆盖您的用户凭证,导致系统出现故障。
ln -s /etc/shadow /home/eviluser/access.log
如果访问日志文件不可由用户写入,因此劫持它可能很困难,但最好避免这种可能性!
一种可能性是使用 logrotate 来完成工作,创建指向尚不存在的文件的链接,但日志旋转一旦日志增长就会覆盖:
ln -s /etc/shadow /home/eviluser/access.log.1
笔记:
这符号链接方法只是可能的攻击之一,作为概念证明。
必须通过白名单思维,不列入黑名单我们知道成为一个问题。
答案2
不让进程写入不属于它们或不信任的目录的一般原则是好的。但在这个特定情况下,有理由相信 Apache 代码使用O_NOFOLLOW
etc 打开日志:登录到用户的主目录是一种常见的设置。