共计 1011 个字符,预计需要花费 3 分钟才能阅读完成。
steven
2021-12-13 17:03:08
浏览数 (2365)
最近一段时间小编朋友圈的 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 版本。
原文地址: log4j 爆致命漏洞,正在学习 java 的你中招了嘛?