全民日志组件 Apache Log4j2 爆发漏洞,赶紧加班修复

2年前 (2022) 程序员胖胖胖虎阿
182 0 0

🍅 Java学习路线配套文章:Java学习路线总结,搬砖工逆袭Java架构师(全网最强)
🍅 基础推荐:Java基础教程系列
🍅 实战推荐:Spring Boot基础教程
🍅 简介:Java领域优质创作者🏆、CSDN哪吒公众号作者✌ 、Java架构师奋斗者💪
🍅 扫描主页左侧二维码,加入群聊,一起学习、一起进步
🍅 欢迎点赞 👍 收藏 ⭐留言 📝

目录

    • 一、log4j2是什么
    • 二、log4j工作流程
    • 三、maven依赖
    • 四、日志漏洞,劲爆来袭
    • 五、漏洞详情
    • 六、排查方式
    • 七、影响版本
    • 八、解决方案
      • 1、民间解决方案:
      • 2、官方解决方案:

一、log4j2是什么

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

二、log4j工作流程

log4j的三个重要组成: Logger(日志产生), Layout(格式化), Appender(日志输出)
在这个过程中,logger是日志的产生源,appender负责把产生的日志输入到各个目的地(console/file/database…),layout负责格式化日志。

三、maven依赖

	<!--log4j2jar-->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.12.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.12.1</version>
    </dependency>
    <!--log4j2的slf4j实现-->
     <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.12.1</version>
    </dependency>

四、日志漏洞,劲爆来袭

近日,Apache Log4j2 的远程代码执行漏洞刷爆网络,该漏洞一旦被攻击者利用会造成严重危害。而且此次漏洞影响巨大,Apache Log4j2可是全民级的日志组件,百分之九十的java项目,都是通过log4j2输出日志的,甚至BAT大厂也是如此,很多互联网企业也都连夜做了应急措施。据说是阿里团队发现的,再次膜拜阿里爸爸。

五、漏洞详情

打印日志时,如果是一段可执行的代码或超链,就会有被执行的可能,类似于sql注入,秒懂没?
这可能导致服务器被黑客控制,从而进行页面篡改、数据被盗、网络瘫痪等行为。

六、排查方式

排查应用是否引入 log4j-api、log4j-core 两个jar,若存在应用使用,极大可能会受到影响

七、影响版本

经验证,2.15.0-rc1 版本存在绕过,实际受影响范围如下:
Apache Log4j 2.x < 2.15.0-rc2

八、解决方案

1、民间解决方案:

  1. 升级到最新版,log4j2最新版下载地址,由于事态紧急,小编也没有进行实际的测试。
  2. 对日志进行加密解密操作,纳尼?对日志进行加密解密?那岂不是很耗费性能。

2、官方解决方案:

升级版本:

  1. 升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
  2. 升级 Apache Log4j2 所有相关应用到最新的 log4j-2.15.0-rc1 版本,地址:https://logging.apache.org/log4j/2.x/download.html
    建议同时采用如下临时措施进行漏洞防范:
  3. 禁止没必要的外网访问;
  4. 设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true” 在应用 classpath下添加 log4j2.component.properties配置文件,文件内容为log4j2.formatMsgNoLookups=true;
  5. 系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”
  6. 部署使用第三方防火墙产品进行安全防护。

全民日志组件 Apache Log4j2 爆发漏洞,赶紧加班修复


添加微信,备注6666,报名参加CSDN第二季新星计划

相关文章

暂无评论

暂无评论...