给其他用户写入访问Apache日志可能导致根漏洞 – 这是如何工作的?

在http://httpd.apache.org/docs/2.2/logs.html上

任何可以写入Apache正在写日志文件的目录的人,几乎都可以访问服务器启动的uid,通常是root。 不要让人们在不知道后果的情况下写入存储日志的目录, 详细信息请参阅安全性提示文档

这个怎么用? 如何写入Apache正在写入的文件来授予对Apache Parent Process用户(root)的访问权限?

查看安全提示页面。

http://httpd.apache.org/docs/2.2/misc/security_tips.html

如果允许非root用户修改root或者执行或写入的任何文件,则可以打开系统以解决根本问题。 例如,有人可以replacehttpd二进制文件,以便下次启动它时,它将执行一些任意的代码。 如果日志目录是可写的(通过非root用户),则某人可以用符号链接replace某个其他系统文件的日志文件,然后root可能会用任意数据覆盖该文件。 如果日志文件本身是可写的(通过非root用户),那么有人可能能够使用伪造数据覆盖日志本身。

由于apache以root用户身份打开并读取日志文件,因此存在滥用的危险。 不知道为什么你会希望一个非root(apache)用户有写访问权限的文件。 您可以安全地授予读取访问权限,但是会build议只能对已经轮换的旧文件执行写入访问。 当您使用logrotate来pipe理日志循环时,Apache不会打开这些文件。

如果apache以root用户身份运行,并且非root用户为apache写脚本来执行……那么通过进程的工作方式……脚本以root身份运行。 作为一种安全措施,大多数发行版本不以root身份运行apache,而是像“www-data”或“apache”或“httpd”这样的专用用户。