CVE-2021-44228: Apache Log4j 严重远程代码执行漏洞概念验证现已可用 (Log4Shell)
常用日志记录库 Log4j 2 中的严重漏洞影响了许多服务和应用程序,包括 Minecraft、Steam 和 Apple iCloud。攻击者已经开始主动扫描并试图利用该缺陷。
12 月 21 日更新: 12 月 17 日发布了一篇常见问题 (FAQ) 博客文章,其中包含有关 Log4Shell 和其他相关漏洞的信息。有关最新信息,请参考我们的博客文章:CVE-2021-44228,CVE-2021-45046,CVE-2021-4104: 有关 Log4Shell 和关联漏洞的常见问题
背景
12 月 9 日,研究人员发布了 Apache Log4j 2 中一个严重漏洞的概念验证 (PoC) 漏洞利用代码,Apache Log4j 2 是一个许多应用程序和服务都在使用的 Java 日志记录库,包括但不限于:
研究人员将其称为 Log4Shell,该漏洞最初引发关注是因有几篇报道称该漏洞影响了流行沙盒视频游戏 Minecraft 的几个版本。
现在有一个 minecraft 客户端和服务器漏洞利用处于打开状态,该漏洞利用会滥用 log4j 版本 2.0 到 2.14.1 中的漏洞,已经有一些概念验证出现。
— ᵃᵈᵃᵐ (@twokilohertz) 2021 年 12 月 9 日
此外,诸如 Steam 和 Apple iCloud 等云服务也受到影响。
该漏洞影响非常恶劣,Cloudflare CEO 计划为所有客户提供保护。
分析
CVE-2021-44228 是 Apache Log4j 2 中的一个远程代码执行漏洞 (RCE)。未经身份验证的远程攻击者可以通过向运行有漏洞的 log4j 版本的服务器发送精心编制的请求来利用此漏洞。精心编制的请求通过各种服务使用 Java 命名和目录接口 (JNDI) 注入,这些服务包括:
- 轻型目录访问协议 (LDAP)
- 安全的 LDAP (LDAPS)
- 远程访问调用 (RMI)
- 域名服务 (DNS)
如果有漏洞的服务器使用 log4j 来记录请求,则该漏洞利用将通过上述服务之一从攻击者控制的服务器请求针对 JNDI 的恶意有效负载。漏洞利用得手可能会造成 RCE。
对于 Minecraft,用户能够利用此漏洞,方法是通过 Minecraft 聊天发送精心编制的消息。
然后执行代码?? #log4j #minecraft pic.twitter.com/aSFzhsm87l
— John Hammond (@_JohnHammond) 2021 年 12 月 10 日
GreyNoise 和 Bad Packets 均已检测到搜索使用 Log4j 服务器的大规模扫描活动。
从多台主机检测到大量的扫描活动,检查使用 Apache Log4j (Java 日志记录库) 的服务器是否易于执行远程代码 (https://t.co/GgksMUlf94)。
向我们的 API 查询“tags=CVE-2021-44228”,获取源 IP 地址和其他 IOC。#threatintel— Bad Packets (@bad_packets) 2021 年 11 月 10 日
现在有报道称,该漏洞正被用来植入加密货币挖矿程序。
此 log4shell 载荷是... 一个挖矿机
该漏洞已传到 pic.twitter.com/XUR7I5ydpP— Kevin Beaumont (@GossiTheDog) 2021 年 12 月 10 日
概念验证
CVE-2021-44228 的第一个 PoC 于 12 月 9 日发布,随后分配了其 CVE 标识符。 在发表这篇博文时,GitHub 上还提供了另外几个 PoC。
解决方案
尽管 Apache 于 12 月 6 日发布了一个候选解决方案来解决此漏洞,但该解决方案并不完整。Apache 于 12 月 10 日发布了2.15.0。
Log4j 2.15.0 需要 Java 8。 因此,使用 Java 7 的企业需要升级才能更新到 Log4j 的补丁版本。
Apache 建议,如果无法立即修补,可以采取缓解方法来挫败利用此漏洞的企图:因为 Apache 提供的信息会持续更新,所以请在此处参考其指导。
因为 Log4j 包含在许多 Web 应用程序中,并被各种云服务使用,所以这个漏洞的影响深度在一段时间内不为人知。不过,在这篇博文发布时,有些产品和服务已确认易遭此漏洞攻击,其中包括:
产品/服务 | 确认受到影响 |
---|---|
Minecraft | 是 |
Steam | 是 |
Apple iCloud | 是 |
Tencent | 是 |
是 | |
百度 | 是 |
Didi | 是 |
Cloudflare | 是 |
Amazon | 是 |
Tesla | 是 |
ElasticSearch | 是 |
Ghidra | 是 |
有一个 GitHub 存储库正在跟踪此漏洞的攻击面。
识别受影响的系统
用于识别此漏洞的插件列表在发布后显示在这里。此外,我们想重点关注以下插件(在插件集 202112112213 和更高版本中提供) :
远程检查
- 插件 ID 156014 - 通过回调关联的 Apache Log4Shell RCE 检测 (Direct Check HTTP) - 该远程检查可用于识别漏洞,而无需身份验证。该插件与 Tenable 云扫描程序兼容
- 插件 ID 155998 - Apache Log4j 消息查找替换 RCE (Log4Shell)(Direct Check) - 该插件监听来自目标主机的 LDAP 绑定连接。它与 Tenable.io 云扫描程序不兼容,并且会因其他安全设备的防火墙规则或干扰,可能无法在某些网络中返回结果。我们继续研究其他检测选项,并推荐 Tenable.io 云扫描程序客户使用以下四个插件。
有关插件 ID 156014 和 155998 的概要说明,请访问 Tenable Community 上的这篇贴文。
版本检查和本地检测(需要身份验证)
- 插件 ID 155999 - Apache Log4j < 2.15.0 远程代码执行
- 插件 ID 156000 - Apache Log4j 已安装(Unix)
- 插件 ID 156001 - Apache Log4j JAR 检测 (Windows)
- 插件 ID 156002 - Apache Log4j < 2.15.0 远程代码执行
此外,一款全面的 Tenable.io Web App Scanning (WAS) 插件已经发布,该插件可用于测试用来利用 Log4Shell 漏洞的输入字段。
- 插件 ID 113075 - Apache Log4j 远程代码执行 (Log4Shell)
有关上述每个插件的支持信息,请在 Tenable Community 上访问访问此贴文。
Tenable 已经发布了 Tenable.io、Tenable.sc 和 Nessus Professional 的扫描模板,这些模板已预先配置好,可以快速扫描此漏洞。此外,Tenable.io 客户可以在插件库中使用新的仪表盘和插件。Tenable.sc 用户还可使用新的 Log4Shell 仪表盘。 要确保您的扫描程序可以使用最新插件,Tenable 建议手动更新您的插件集。包括 Tenable.io Nessus 扫描程序在内的 Nessus 用户可以使用以下 Nessus CLI 命令:
nessuscli fix --secure --delete feed_auto_last
有关使用 nessuscli 的更多信息,请参考这篇文章。
Tenable.sc 用户可以使用插件/源配置用户界面中的 [更新] 链接手动更新插件,如下图所示
目前未使用 Tenable 产品的企业可以注册 Nessus Professional 的免费试用版来扫描此漏洞。
获取更多信息
- 网络研讨会漏洞警报 - 对 Apache Log4j 中 Log4Shell 的响应
- Apache Log4j2-3201:限制 jNDI 可以使用的协议并限制 LDAP 使用范围
- 安全公告:Apache Log4j2 远程代码执行漏洞 (CVE-2021-44228)
- Log4Shell:在常用的 Java 日志记录包 log4j2 中发现了 RCE 零日漏洞
- Apache Log4j 2 发布页面
- Nessus 如何接收插件和软件更新
在 Tenable Community 上加入 Tenable 的安全响应团队。
相关文章
- Vulnerability Management