日志框架Log4j2被爆出存在远程代码执行漏洞,众多软件系统受影响

近期一个Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。该漏洞等级为严重危险级别,影响众多Java软件系统安全,需软件开发者和使用者紧急整改。

漏洞分析

Apache Log4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,被广泛地应用在中间件、开发框架与Web应用中,用来记录日志信息。大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。此次漏洞触发条件为只要外部用户输入的数据会被日志记录,即可造成远程代码执行。

由于Apache Log4j2某些功能存在递归解析功能,未经身份验证的攻击者通过发送特别构造的数据请求包,可在目标服务器上执行任意代码。漏洞PoC已在网上公开,默认配置即可进行利用,该漏洞影响范围极广,建议相关用户尽快采取措施进行排查与防护。

燃旭软件团队已经成功复现此漏洞



参考链接:

https://issues.apache.org/jira/projects/LOG4J2/issues/LOG4J2-3201?filter=allissues

判断应用系统是否受影响方式,用户只需排查Java应用是否引入 log4j-api , log4j-core 两个jar。若存在应用使用,极大可能会受到影响。


影响范围

Apache log4j2 在2.0至2.14.1版本均受影响。

供应链影响范围:

已知受影响应用及组件:

Apache Solr

Apache Flink

Apache Druid

srping-boot-strater-log4j2

更多组件可参考如下链接:

https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/usages?p=1


不受影响版本:

Apache log4j-2.15.0-rc1


漏洞检测

3.1 人工检测

1、相关用户可根据Java jar解压后是否存在org/apache/logging/log4j相关路径结构,判断是否使用了存在漏洞的组件,若存在相关Java程序包,则很可能存在该漏洞。

2、若程序使用Maven打包,查看项目的pom.xml文件中是否存在下图所示的相关字段,若版本号为小于2.15.0,则存在该漏洞。

3、若程序使用gradle打包,可查看build.gradle编译配置文件,若在dependencies部分存在org.apache.logging.log4j相关字段,且版本号为小于2.15.0,则存在该漏洞。


3.2 攻击排查

1、攻击者在利用前通常采用dnslog方式进行扫描、探测,常见的漏洞利用方式可通过应用系统报错日志中的"javax.naming.CommunicationException"、"javax.naming.NamingException: problem generating object using object factory"、"Error looking up JNDI resource"关键字进行排查。

2、攻击者发送的数据包中可能存在"${jndi:}" 字样,推荐使用全流量或WAF设备进行检索排查。

解决方案

目前官方已发布测试版本修复该漏洞,受影响用户可先将Apache Log4j2所有相关应用到该版本,下载链接:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1

注:由于此版本非正式发行版,可能出现不稳定的情况,建议用户在备份数据后再进行升级。

升级供应链中已知受影响的应用及组件:Apache Solr、Apache Flink、Apache Druid、srping-boot-strater-log4j2

总结

近期软件安全漏洞频频爆出,燃旭软件提醒用户及时关注使用的应用系统的安全,因为数据价值高于一切,一旦系统被攻破,前期积累的数据将毫无安全可言。燃旭软件也会一如既往的维护系统,以用户信息安全为己任,保证用户业务运转不受影响。

关于作者

一站式软件方案提供商,专注解决信息化问题,与企业共同创造价值。燃旭软件通过专业的技术,为企业提供标准化一站式落地服务。与企业共同进步,客户的信任是我们最大的追求。