前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache Log4j 2远程代码执行漏洞

Apache Log4j 2远程代码执行漏洞

作者头像
随心助手
发布2021-12-13 14:45:30
6510
发布2021-12-13 14:45:30
举报
文章被收录于专栏:nginx遇上redisnginx遇上redis

漏洞描述

Apache Log4j是一个基于Java的日志记录工具。Log4j是几种Java日志框架之一。该项目在Apache接手后进行了代码重构,解决了框架中的架构问题并在Log4j 2中提供了一个插件架构,这使其更具扩展性。用户可以更为精确的对日志进行细粒度的控制,支持将日志信息发送到服务器、写入到文件或是发送给GUI组件等,通过定义日志信息的级别、输出格式,发送参数来对日志进行更完善的管理。

Log4j 2.X中采用了LDAP的简单目录服务结构进行日志的查询。在进行递归查询时,JNDI方法在处理查询参数的过程中存在注入漏洞,攻击者可利用该漏洞在未授权的情况下,构造恶意参数以远程方式在目标服务器上执行恶意代码。

该漏洞的POC在11月底被安全研究人员发布,12月8日网络上出现该漏洞POC。该漏洞影响范围非常广泛,目前无法准确统计受影响的具体资产和组件的数量。

漏洞影响范围

Apache Log4j 2.x:

含有该漏洞的Log4j 2影响到超过 6000个中间件或应用,目前已知的可能受影响的应用及组件包括但不限于如下清单中所列出的:

Spring-Boot-strater-log4j2

Apache Struts2

Apache Solr

Apache Flink

Apache Druid

ElasticSearch

Flume

Dubbo

Redis

Logstash

Kafka

漏洞分析

在受影响版本中,攻击者可以利用该漏洞在未授权的情况下,构造恶意参数以远程方式在目标服务器上执行恶意代码,从而获取目标服务器的控制权限。

该漏洞的POC在11月底被安全研究人员发布,12月8日网络上出现该漏洞POC。该漏洞以及已公开的POC进行分析,在Log4j 2组件的版本低于2.15 RC2的情况下均能成功执行任意代码,通过POC可以成功获得受害服务器返回的连接。具体测试截图如下:

访问漏洞环境,构造带有dnslog地址的payload:“$”并提交请求,如下图所示。

排查方法、缓解措施

(1)针对应用自身排查

在应用内部搜索log4j-core-*.jar以及log4j-api-*.jar两个关键字,查看其版本是否在受影响的版本范围中,同时查看其pom.xml文件内部的版本号进行二次确认。也可以通过查看内部JAVA源代码库中所引入的组件清单列表来确认是否引入了Apache Log4j 2.x的Jar包。

(2)入侵排查

攻击者在利用前通常采用dnslog方式进行扫描、探测,针对该漏洞利用可通过应用系统报错日志中的如下关键字进行排查:

攻击者发送的恶意数据包中可能存在“{jndi:rmi”、“{jndi:ldap”关键字,推荐使用全流量或WAF设备进行检索排查。

检测:

在WAF中添加如下两条自定义规则:

tcp_payload^%24%7Bjndi%3Aldap%3A%2F%2F

http_msgbody^%24%7Bjndi%3Aldap%3A%2F%2F

临时缓解措施(任选一种):

修改jvm启动参数 -Dlog4j2.formatMsgNoLookups=true

修改配置log4j2.formatMsgNoLookups=True

设置系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 为 true

临时缓解措施自动化处置脚本:

1. Windows 操作系统:使用管理员权限运行log4j2_hjcs.bat

Windows 处置脚本下载地址:

https://www.antiy.com/tools/Log4j2_hjcs.bat:

@echo off

:: 设置环境变量:

代码语言:javascript
复制
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS=true
wmic ENVIRONMENT create name="FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS",username="<system>",VariableValue="true"  
echo %FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS%    
echo Set successfully!
pause
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 nginx遇上redis 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档