授予其他用户对 apache 日志的写权限可能会导致 root 漏洞 - 这是如何工作的?

授予其他用户对 apache 日志的写权限可能会导致 root 漏洞 - 这是如何工作的?

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

任何可以写入 Apache 写入日志文件的目录的人几乎都可以访问启动服务器的 uid,通常是 root。不要在不了解后果的情况下授予人们存储日志的目录的写入权限;有关详细信息,请参阅安全提示文档

这是如何工作的?如何通过写入 Apache 正在写入的文件来授予 Apache 父进程用户 (root) 访问权限?

答案1

查看安全提示页面。

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

如果您允许非 root 用户修改 root 可执行或写入的任何文件,那么您的系统将面临 root 攻击的风险。例如,有人可以替换 httpd 二进制文件,这样下次启动时,它将执行一些任意代码。如果日志目录是可写的(非 root 用户可写),有人可以用指向其他系统文件的符号链接替换日志文件,然后 root 可能会用任意数据覆盖该文件。如果日志文件本身是可写的(非 root 用户可写),那么有人可能会用虚假数据覆盖日志本身。

由于 apache 以 root 身份打开并读取日志文件,因此存在滥用的危险。不确定为什么您希望非 root (apache) 用户拥有文件的写访问权限。您可以安全地授予读取访问权限,但建议仅向已轮换的旧文件授予写访问权限。当您使用 logrotate 管理日志轮换时,Apache 不会打开这些文件。

答案2

如果 apache 以 root 身份运行... 并且非 root 用户编写了脚本供 apache 执行... 那么根据进程的工作方式... 该脚本将以 root 身份运行。出于安全考虑,大多数发行版不会以 root 身份运行 apache... 而是以专用用户身份运行,例如“www-data”或“apache”或“httpd”。

相关内容