当 Apache 或 nginx 服务静态文件时,即使有符号链接指向一个其他系统用户所有的文件(例如与其它订阅相对应的),也会跟踪这些符号链接。这样,可访问某个订阅的攻击者就能够读取其它订阅的文件,包括含有 WordPress 和其它 CMS 系统的密码和设置的文件。

缓解漏洞

文件系统权限

若您正使用 WordPress Toolkit,缓解 WordPress 实例漏洞的最简单的方式就是使用 Toolkit:

  1. 转到 WordPress Toolkit。
  2. 选择所有的 WordPress 实例然后点击 检查安全性
  3. 核查“文件和目录的权限” 是否标记为“确定”。
  4. 若没有,请点击 保护安全

如果您未使用 WordPress Toolkit 或若您需要保护 WordPress 之外的某 CMS 系统的安全,则需要运行以下命令拒绝“其它”组的所有权限来手动更正您想要保护的所有文件上的权限:

chmod o-rwx <file_name>

注解: 没有适合任何 web 应用程序或 CMS 一体适用的安全保护文件列表。必须更改其权限以保护 Web 应用程序安全的确切文件取决于所涉及的应用程序。

Apache 配置

此缓解漏洞的方式适用于将 Apache 用作其 web 服务器的订阅(若在 主机与 DNS > Apache 与 nginx 设置 中启用了 “代理模式”,则为使用 Apache 的订阅)。

若要缓解漏洞,请如下操作:

  1. 转到 服务方案 > 您的方案 > “Web 服务器”选项卡(或您的订阅 > 网站与域名 > 主机与 DNS > Apache 与 nginx 设置)。
  2. 选择“限制跟踪符号链接的功能” 复选框。

对某个服务方案执行此操作可以缓解基于该服务方案的所有订阅的漏洞(也就是说,能够访问某个订阅的攻击者将无法再执行对其它订阅的攻击)。对某个订阅执行此操作只能缓解该订阅的漏洞。

注解: 使用导向至自己文件的符号链接的网站若未在 .htaccess 文件中使用 “FollowSymLinks” 选项,将继续保持工作运行,因为会默认启用 “SymLinksIfOwnerMatch” 选项。如果此类网站在 .htaccess 文件中使用 “FollowSymLinks” 选项,将停止工作运行。

警告: 应用此方案仍将使您易受到与 Apache 的 “SymLinksIfOwnerMatch” 选项相关的 “time-of-check to time-of-use” 竞赛状况的影响。若要同时缓解漏洞,您可以将此补丁应用到 Apache(该补丁尚未经 Plesk 测试,需自行承担风险)或使用此文章中进一步阐述的一个基于内核的符号链接保护选项。

Nginx 配置

此缓解漏洞的方式适用于将 nginx 用于直接服务静态文件的订阅(若在 主机与 DNS > Apache 与 nginx 设置 中关闭了“代理模式” 或者开启了“代理模式”且启用了“直接由 nginx 服务静态文件” 选项,则为使用 nginx 的订阅)。

若要缓解漏洞,请如下操作:

  1. 转到 服务方案 > 您的方案 > “Web 服务器”(或您的订阅 > 网站与域名 > 主机与 DNS > Apache 与 nginx 设置)。
  2. 选择“限制跟踪符号链接的功能” 复选框。

对某个服务方案执行此操作可以缓解基于该服务方案的所有订阅的漏洞(也就是说,能够访问某个订阅的攻击者将无法再执行对其它订阅的攻击)。对某个订阅执行此操作只能缓解该订阅的漏洞。

注解: 此选项不适用于运行 2.6.39 或更早版本的 Linux 内核版本的计算机(若您正运行 CentOS 6、Red Hat Enterprise Linux 6 或 CloudLinux 6,则您会有此内核版本)。若要缓解此类机器上的漏洞,我们建议要么将操作系统升级到最新稳定版本或采用下面列出的一个基于内核的符号链接保护机制。

mod_hostinglimits for CloudLinux 中的 SecureLinks

在运行 CloudLinux 的计算机上,您可以通过启用作为 Apache HostingLimits 模块的一部分的符号链接所有者匹配保护机制来缓解漏洞。请参阅 CloudLinux 文档了解更多信息

用于 CentOS 6 & 7 的 KernelCare 符号链接保护补丁集(免费可用)

在运行 CentOS 6 or CentOS 7 的计算机上,您可以通过安装 CloudLinux 的免费符号链接保护补丁集来缓解漏洞。请参阅 CloudLinux 文档了解更多信息

Grsecurity(Linux 内核的一组补丁,着重安全提升,需要付费订阅)

若以上缓解漏洞的选项都不适用于您目前的情况,您可以安装 grsecurity 一组 Linux 内核的安全强化补丁,然后配置GRKERNSEC_SYMLINKOWN 功能。注意使用 grsecurity 不免费而是需要购买年订阅。