访问此 YouTube 视频获取更多详情。
这是一篇关于 CVE-2021-44228 安全漏洞(又名 Log4Shell 和 LogJam)在 log4j2 中的缓解措施的快速文章。
所有信息及随附的代码示例仅供教育及参考之用,仅适用于您自己的系统。
请谨慎操作,风险自负。
这是一个零日漏洞,以远程代码执行(RCE)的形式存在于特定版本的流行 Java 日志框架 log4j2 中。
它在通用漏洞评分系统(CVSS)中的评分为 10 分(满分 10 分)。
该漏洞由阿里巴巴云安全团队的陈兆军发现,并于 11 月 24 日由阿里巴巴云安全团队报告给 Apache。
随后于 2021 年 12 月 9 日通过 log4j 项目的 GitHub 公开披露。
使用该日志库的运行中的应用程序如果使用了未经远程清理的用户输入,就会变得脆弱。
当应用程序处理包含用户提供字符串的日志事件时,易受攻击的系统可能从攻击者控制的域名下载并运行恶意代码,从而有效控制该应用程序。
该漏洞影响 Apache Log4j 2 从 2.0-beta9 到 2.14.1 的版本,前提是你引入了以下两个依赖项:
该漏洞不存在于 log4j 的版本 1 中。
JDK 版本大于 6u211、7u201、8u191 和 11.0.1 的不受 LDAP 攻击向量的影响。
为什么会这样?这是因为在这些 JDK 版本中,属性 com.sun.jndi.ldap.object.trustURLCodebase 被设置为 false。
因此,JNDI 无法使用 LDAP 加载远程代码。
流行的 Apache 软件基金会项目,例如:
其他非 ASF 的开源项目,如 Redis、ElasticSearch 和 Logstash 也可能受到影响。
如果你正在使用受影响的版本,请立即将 log4j-core 和 log4j-api 依赖升级到 log4j v2.15。
如果你使用的是 log4j v2.10 及以上版本,且暂时无法立即升级,请修改系统属性:
log4j2.formatMsgNoLookups=true
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
该命令将从受影响的版本的 log4j-core*.jar 文件中移除该类。
请持续关注后续更新。
如有任何疑问,欢迎联系。
谢谢