2021年12月9日,国内多家机构监测到Apache Log4j存在任意代码执行漏洞,并紧急通报相关情况。由于Apache Log4j存在递归解析功能,未取得身份认证的用户,可以从远程发送数据请求输入数据日志,轻松触发漏洞,最终在目标上执行任意代码。
该漏洞CVSS评分达到了满分10分,影响全球一大半的互联网企业,包括百度、苹果等企业都被爆出存在该漏洞,众多媒体将这个漏洞形容成“史诗级”“核弹级”漏洞,可以说相当贴切。
一、事件详情
2021年12月9日,Apache官方发布了紧急安全更新以修复该远程代码执行漏洞,但更新后的Apache Log4j 2.15.0-rc1 版本被发现仍存在漏洞绕过,多家安全应急响应团队发布二次漏洞预警。
12月10日凌晨2点,Apache官方紧急发布log4j-2.15.0-rc2版本,以修复Apache log4j-2.15.0-rc1版本远程代码执行漏洞修复不完善导致的漏洞绕过。
据了解,此次漏洞是由 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在处理数据时,并未对输入(如${jndi)进行严格的判断,从而造成注入类代码执行。
二、影响范围
Apache Log4j 2.x <= 2.15.0-rc1
受影响的应用及组件(包括但不限于)如下:
Apache Solr、Apache Flink、Apache Druid、Apache Struts2、srping-boot-strater-log4j2等。
三、攻击检测
(1)可以通过检查日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符来发现可能的攻击行为。
(2)检查日志中是否存在相关堆栈报错,堆栈里是否有JndiLookup、ldapURLContext、getObjectFactoryFromReference等与 jndi 调用相关的堆栈信息。
四、修复方案建议
综合国内机构意见,目前针对Apache Log4j漏洞的主要应对方法如下:
1. Apache Log4j 官方已经发布了解决上述漏洞的安全更新,建议受影响用户尽快升级到安全版本:
安全版本:log4j-2.15.0-rc2
官方安全版本下载可以参考以下链接:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2. 建议对 Apache Struts2/Apache Solr/Apache Flink/Apache Druid 等已知受影响的应用及组件进行升级
五、临时缓解措施
(1)设置jvm参数 -Dlog4j2.formatMsgNoLookups=true。
(2)设置log4j2.formatMsgNoLookups=True。
(3)设置系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 为 true。
(4)采用 rasp 对lookup的调用进行阻断。
(5)采用waf对请求流量中的${jndi进行拦截。
(6)禁止不必要的业务访问外网。
极牛网精选文章《核弹级漏洞 Apache Log4j2 席卷全球!漏洞详情和修复建议》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://geeknb.com/17423.html