首页
社区
课程
招聘
[注意][讨论]核弹级漏洞——Apache Log4j 2 远程代码执行漏洞事件详情及修复方式
发表于: 2021-12-10 16:47 13044

[注意][讨论]核弹级漏洞——Apache Log4j 2 远程代码执行漏洞事件详情及修复方式

2021-12-10 16:47
13044

昨晚一直到现在安全圈可谓是沸腾了,所有人都在关注着一个漏洞——Apache Log4j 2远程代码执行。


Apache Log4j 2是一款非常优秀且流行的开源Java日志记录组件,在各大项目中有着广泛应用。利用该漏洞,攻击者可通过构造恶意请求在目标服务器上执行任意代码,从而实施窃取数据、挖矿、勒索等行为。



事件详情:

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)进行严格的判断,从而造成注入类代码执行。


漏洞影响范围:

Java类产品:Apache Log4j 2.x < 2.15.0-rc2


受影响的应用及组件(包括但不限于)如下:

Apache Solr、Apache Flink、Apache Druid、Apache Struts2、srping-boot-strater-log4j2等。

更多组件可参考如下链接:

8c2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0N6X3&6J5k6i4m8G2M7$3W2@1L8%4u0&6i4K6u0W2j5$3!0E0i4K6u0r3j5i4u0@1K9h3k6S2j5%4c8Q4x3V1k6G2M7X3N6Q4x3X3g2S2M7r3q4U0K9r3g2Q4x3X3g2D9L8$3N6Y4K9h3&6Y4i4K6u0W2L8r3!0Y4y4r3A6Q4x3V1k6D9L8$3M7@1K9W2)9J5k6r3y4G2M7X3g2Q4x3V1k6#2M7$3q4Y4k6i4y4Q4x3@1k6H3i4K6y4p5x3b7`.`.


紧急补救措施:

(1)设置jvm参数 -Dlog4j2.formatMsgNoLookups=true。

(2)设置log4j2.formatMsgNoLookups=True。

(3)设置系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 为 true。

(4)采用 rasp 对lookup的调用进行阻断。

(5)采用waf对请求流量中的${jndi进行拦截。

(6)禁止不必要的业务访问外网。


攻击检测:

(1)可以通过检查日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符来发现可能的攻击行为。

(2)检查日志中是否存在相关堆栈报错,堆栈里是否有JndiLookup、ldapURLContext、getObjectFactoryFromReference等与 jndi 调用相关的堆栈信息。


修复建议:

目前漏洞POC已被公开,官方已发布安全版本,若是使用Java开发语言的系统需要尽快确认是否使用Apache Log4j 2插件,并尽快升级到最新的 log4j-2.15.0-rc2 版本。


地址:71aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6S2M7r3q4U0K9r3g2Q4x3V1k6D9L8$3N6Y4K9h3&6Y4i4K6u0V1L8r3!0Y4y4r3Z5J5i4K6u0r3M7X3g2D9k6h3q4K6k6i4y4Q4x3V1k6@1j5h3N6Q4x3V1k6D9L8$3M7@1K9W2)9J5k6o6u0Q4x3X3f1I4y4g2)9J5k6e0m8Q4x3X3c8J5j5K6t1`.




参考:360网络安全响应中心、 阿里云应急响应、绿盟科技CERT、 奇安信 CERT、斗象智能安全、默安科技




[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 1
支持
分享
最新回复 (5)
雪    币: 55
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
springboot 间接引用了 log4j  ,这种场景怎么搞
2021-12-10 16:53
0
雪    币: 291
活跃值: (218)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
3
SpringBoot默认是Logback。如果用了log4j,替换成2.15.0版本即可。
2021-12-11 02:12
0
雪    币: 1207
活跃值: (681)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4

对于修复方案:设置formatMsgNoLookups=true,补充一下前置条件,需要log4j-core的版本>=2.10,因为formatMsgNoLookups这个是log4j-core 2.10才引入的,如果log4j-core的版本低于2.10,即使设置了该参数也无法防护

最后于 2021-12-11 20:45 被webappsec编辑 ,原因:
2021-12-11 20:44
0
雪    币: 1556
活跃值: (2332)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
他马的,Minecraft服务器都开始变成投毒圣地了
2021-12-12 11:28
0
雪    币: 27
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
安卓工程师表示,不引用这个库
2021-12-12 22:06
0
游客
登录 | 注册 方可回帖
返回