欢迎user
威胁预警团队
2021/12/18
Log4j是Apache的一个开源项目,它允许开发者以任意间隔输出日志信息,控制每一条日志的输出格式,通过定义每一条日志信息的级别,还能够更加细致地控制日志的生成过程。近日,新华三攻防实验室威胁预警团队监测到网上爆发了Apache Log4j的任意代码执行漏洞(CVE-2021-44228),成功利用此漏洞可以在受害主机上执行任意代码。12月15日,新华三攻防实验室威胁预警团队第二次监测到Apache Log4j官方发布 Apache Log4j 远程代码执行漏洞(CVE-2021-45046)安全通告,完善了非默认配置下对CVE-2021-44228修复措施不完整问题。12月18日,新华三攻防实验室威胁预警团队在持续跟踪该漏洞时再次监测到Apache Log4j官方发布 Apache Log4j 拒绝服务攻击漏洞(CVE-2021-45105)安全通告,修复了在非默认配置下自引用查找导致的无限循环问题,该漏洞可能导致拒绝服务攻击。
当log4j配置中使用带有上下文查找(如$${ctx:loginId})的非默认模式布局时,攻击者可通过控制Thread Context Map (MDC)并构造包含递归查找的恶意输入数据,从而触发栈溢出,导致进程终止,造成拒绝服务(DOS)。
Apache Log4j 2.0-alpha1 - 2.16.0
高危 CVSS: 7.5
1、用户可解压JAR包排查是否存在org/apache/logging/log4j相关路径结构,查看是否使用了存在漏洞的Log4j2组件。
2、若程序使用Maven打包,根据项目pom.xml文件中的org.apache.logging.log4j相关字段及版本信息判断当前使用的log4j版本是否在漏洞影响范围内。
3、若程序使用gradle打包,根据build.gradle编译配置文件中org.apache.logging.log4j相关字段及版本信息判断当前使用的log4j版本是否在漏洞影响范围内。
4、攻击情况排查
a) 报错日志
攻击者在利用前通常采用dnslog方式进行扫描、探测,对于常见利用方式可通过应用系统报错日志中的"javax.naming.CommunicationException"、"javax.naming.NamingException: problem generating object using object factory"、"Error looking up JNDI resource"关键字进行排查。
b) 攻击流量
攻击者发起的恶意数据包中可能存在包含“${jndi:rmi”、“${jndi:ldap”、“${${::”等字样,通过判断该类恶意字符串发现可能的攻击行为。
1、目前官方已发布最新版本,请受影响用户尽快更新。
Java 8或更高版本用户可升级至Apache Log4j 2.17.0版本:https://logging.apache.org/log4j/2.x/download.html
(1)在日志配置的 PatternLayout 中,用Thread Context Map模式(%X、%mdc 或 %MDC)替换 ${ctx:loginId} 或 $${ctx:loginId} 等Context Lookups。
(2)在系统接收应用程序外部数据(如HTTP headers或用户输入)的场景中,在配置中删除对Context Lookups的引用(如 ${ctx:loginId} 或 $${ctx:loginId})。
1、新华三安全设备防护方案
新华三IPS规则库将在1.0.162版本支持对该漏洞的识别,新华三全系安全产品可通过升级IPS特征库识别该漏洞的攻击流量,并进行主动拦截。
鉴于攻击者在攻击过程中可能使用DNSLog进行漏洞探测,新华三IPS规则库中37507__Generic_Suspicious_DNSLOG_CN_DNS_Request_Traffic规则已支持对于DNSLog探测识别。
2、新华三态势感知解决方案
新华三态势感知已支持该漏洞的检测,通过信息搜集整合、数据关联分析等综合研判手段,发现网络中遭受该漏洞攻击及失陷的资产。
3、新华三云安全能力中心解决方案
新华三云安全能力中心知识库已更新该漏洞信息,可查询对应漏洞产生原理、升级补丁、修复措施等。