log4j爆致命漏洞,正在学习java的你中招了嘛?

2021-12-13 17:03:08 浏览数 (72)

最近一段时间小编朋友圈的java程序员都在熬夜应急。2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。该漏洞在12月9号开始大规模爆发,十号的时候已经有许多程序员连夜修复漏洞了,那么log4j是个什么东西呢?出现了这个漏洞还能使用吗?请继续阅读该文章了解相关信息。

什么是日志?

我们在学习编程的时候,会打开debug模式进行代码调试,我们可以看到代码中各个变量的状态。但在实际生产中是没有debug模式的,我们只能使用输出这个变量的方式进行判断。小编刚开始不会使用debug模式就是使用这样的方式进行代码状态的判断:即使用print语句把变量输出出来。对于服务器而言,这样的方法不现实(总不能派个人一直去盯着服务器吧),更合理的方式是将输出写入文本,并带上写入时间,这样每天都能生成一个文件,这就是日志。

什么是日志管理工具?

使用最简单(思路简单)的写文件的方法来写日志,会有代码复杂,日志杂乱,日志等级划分不清楚的问题,这时候就引入日志管理工具了,很多语言都有日志管理工具,比如JavaScript的console.log()方法,就是一个写日志的函数(不过它会在控制台输出),java也有一个logging工具用于日志管理。

什么是log4j,为什么要用他?

log4j是一个更优秀的日志管理工具,logging的易用性没有那么好,结合log4j使用会更加舒适。

哪些项目会用到log4j?

日志管理工具在各个地方都可以用得到,从桌面应用程序到web服务器再到安卓app都可以使用。常见的使用log4j的应用如下:大部分springboot的web应用、大部分的ssh,ssm框架都会集成log4j(属于开发者自行集成,并不是自带,但很多开发者都会选择log4j,这也是这次漏洞为什么会那么严重的原因),桌面应用比较出名的像Minecraft也使用了log4j(所以经由Minecraft进行攻击的案例也很多,而且正在飞速上涨)

怎么回避这个bug?

将log4j升级到最新版本。12 月 10 日上午,阿里云安全团队再次发出预警,发现 Apache Log4j 2.15.0-rc1 版本存在漏洞绕过,建议及时更新至 Apache Log4j 2.15.0-rc2 版本。


2 人点赞