🍅 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、民间解决方案:
- 升级到最新版,log4j2最新版下载地址,由于事态紧急,小编也没有进行实际的测试。
- 对日志进行加密解密操作,纳尼?对日志进行加密解密?那岂不是很耗费性能。
2、官方解决方案:
升级版本:
- 升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
- 升级 Apache Log4j2 所有相关应用到最新的 log4j-2.15.0-rc1 版本,地址:https://logging.apache.org/log4j/2.x/download.html
建议同时采用如下临时措施进行漏洞防范: - 禁止没必要的外网访问;
- 设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true” 在应用 classpath下添加 log4j2.component.properties配置文件,文件内容为log4j2.formatMsgNoLookups=true;
- 系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”
- 部署使用第三方防火墙产品进行安全防护。
添加微信,备注6666,报名参加CSDN第二季新星计划