情况概述
2018 年 8 月 22 日,Apache Foundation 发布了针对 CVE-2018-1176 的重要安全更新,这个远程代码执行漏洞存在于 2.3 到 2.3.34,以及 2.5 到 2.5.16 版本的 Apache Struts 中。Apache Foundation 已敦促大家尽快应用此安全更新。
本博客文章旨在提供信息来帮助组织评估其漏洞风险,并向 Palo Alto Networks 客户提供保护措施,助其在应用安全更新之前降低风险。已部署 2018 年 8 月 24 日发布的最新漏洞签名的 Palo Alto Networks 客户将受到保护。
漏洞信息
根据 Apache Foundation 和安全研究员 Man Yue Mo 所述,该漏洞可以在运行易受攻击的 Apache Struts 版本的服务器上实现远程代码执行。该方法通过向易受攻击的系统发送特制 URL 进行攻击。在大多数情况下,这意味着利用该漏洞无需进行身份验证。
如攻击成功,便可在 Struts 使用的安全情境中运行代码。在某些情况下,这会导致系统受到全面入侵。
但是,请特别注意,如果使用默认配置则无法利用该漏洞。只有满足以下两个条件的系统才容易受到攻击:
- 将 Struts 配置中的 alwaysSelectFullNamespace 标记设置为“true”。(注意:如果您的应用使用热门的 Struts Convention 插件,则该插件会将此项默认设置为“true”。
- Struts 应用使用未指定命名空间或通过包含通配符的命名空间而配置的“操作”。此条件适用于在 Struts 配置文件中指定的操作和命名空间。注意:如果您的应用使用流行的 Struts Convention 插件,此条件也适用于在 Java 代码中指定的操作和命名空间。
即使 Struts 应用不满足这两个条件,您的应用也可能容易受到攻击,但就目前而言不会通过 CVE-2018-11776 遭到漏洞利用。
特别是,如果您的应用使用热门的 Struts Convention 插件,则与其他不使用该插件的 Struts 实施相比,您遭到漏洞利用的风险可能会更高。
威胁环境信息
在 8 月 22 日,已同时公开了该漏洞和用于解决该漏洞的安全更新。其中包含有关该漏洞以及目前如何利用该漏洞的详细信息。还提供了可用的概念验证 (PoC) 代码。如上所述,该 PoC 仅适用于易受攻击且满足可被利用条件的系统。
有些人已经注意到,在去年发布安全更新和漏洞信息仅三天后,就发生了一起 Struts 漏洞被主动攻击的严重事件。
目前没有已知的主动攻击,且存在两个要实现漏洞利用必须满足的非默认条件,因此当前的威胁环境有所不同。
然而,通过可用的主动 PoC 所进行的一些基本测试,我们仍认为在短期可能会出现针对该漏洞的主动利用。
在解决下面四个问题之前,组织需要将针对可能发生的攻击进行严格的风险评估:
- 是否在使用 Struts Convention 插件?
- 是否同时满足漏洞利用所需的两个条件?
- 是否存在将目前的 PoC 进行改造或用于攻击的迹象?
- 开发出的新 PoC 或攻击是否不再需要漏洞利用所需的两个条件?
适用于 Palo Alto Networks 客户的指导建议和保护措施
运行易受攻击的 Apache Struts 版本的所有组织应尽快部署此安全更新。
组织可以并且应该根据安全策略和风险评估以及当前可用信息来优先安排和部署此安全更新。
已部署 2018 年 8 月 24 日发布的内容发行版本 8057(包括 ID 33948,名称:Apache Struts 2 Remote Code Execution Vulnerability)中的漏洞签名的 Palo Alto Networks 客户,可有效防御已知的针对该漏洞的漏洞利用。
客户仍应按照上面的建议部署此安全更新,但可以而且应该立即部署最新的漏洞签名以获得更多保护。对于这些附加的保护措施,我们的客户可以并应该在进行安全决策、安全更新部署以及漏洞和威胁环境的风险评估时将其纳入考量。
与往常一样,我们会密切监控情况,并适时提供更多详细信息。