前些天 Apache Log4j2 接连报了几个重大漏洞,好在我们的系统使用的 logback,可当我们正庆幸的时候,logback 也爆出漏洞了。今天我们一起来看一下这几个漏洞。

CVE-2021-42550

先看一下官方的漏洞描述:

In logback version 1.2.7 and prior versions, an attacker with the required privileges to edit configurations files could craft a malicious configuration allowing to execute arbitrary code loaded from LDAP servers.

The vulnerability is considered to pose a lesser threat than log4shell because it requires access to logback's configuration file by the attacker, sign of an already compromised system.This CVE-2021-42550 is intended to prevent an escalation of an existing flaw to a higher threat level.

首先让我们松一口气的是,logback 的这个漏洞不像 log4j 那样严重。如果是 SpringBoot 项目,没有做日志配置的话,默认使用的就是 logback。

logback 官方的修复速度也是非常给力,短时间内发布了 5 个版本:

  • 14th of December, 2021, Release of version 1.2.8

  • 16th of December, 2021, Release of version 1.3.0-alpha11

  • 16th of December, 2021, Release of version 1.2.9

  • 22nd of December, 2021, Release of version 1.3.0-alpha12

  • 23rd of December, 2021, Release of version 1.2.10

从上面官方的截图我们可以看到,有两个方法可以避开这个漏洞

  • logback 版本升级到 1.2.9

  • 把 logback.xml 文件配置为只读

SpringBoot 项目也跟着 logback 的升级做了升级,比如  SpringBoot v2.6.2 版本就把 logback 升级到了 1.2.9。

但是对于真实的系统环境,升级 SpringBoot 版本牵扯到的测试太多了,要快速修复还是升级一下 logback 版本最快。

<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.9</version>
</dependency>

CVE-2021-44228

这个漏洞的另一个编号是 CNVD-2021-95914。

Log4j2 日志组件在处理程序日志记录时存在 JNDI 注入缺陷,攻击者可以利用该漏洞,获得目标服务器权限,向目标服务器发送恶意数据,在目标服务器任意代码执行。这个攻击主要针对有外网访问的应用,如果没有外网访问,可以不用太担心。

影响范围:2.0 <= Apache log4j <Log4j-2.15.0

修复措施:

  • 升级 Log4j2 版本到 2.16.0

  • 改用日志框架,使用 Log4j 或者 logback

  • 添加 jvm 启动参数 -Dlog4j2.formatMsgNoLookups=true

  • 在应用 classpath 下添加配置文件 log4j2.component.properties,文件内容为 log4j2.formatMsgNoLookups=true

  • 升级 JDK 版本,使用 11.0.1、8u191、7u201、6u211 及以上的高版本

  • 禁用 JNDI,比如在 spring.properties 里添加 spring.jndi.ignore=true

  • 部署使用第三方防火墙产品进行安全防护,并更新 WAF、RASP 规则

可以看到,最快的方式就是添加 jvm 参数然后重启服务。

CVE-2021-45046

CVE-2021-44228 的一种形式,如启 Log4j2 用日志配置查找(例如,$${ctx:loginId})或上下文映射模式(%X、%mdc或%MDC)时,将允许远程攻击者使用JNDI查找模式加载恶意类,从而导致远程代码执行或信息漏洞等风险。

这个漏洞只对使用 log4j-core 的应用受影响。

影响范围:2.0 <= Apache log4j <Log4j-2.15.0

建议:将 Log4j2 升级到 1.17.0。

CVE-2021-45105

由于 Log4j2 某些特殊配置,使用非默认的模式布局和上下文查找(例如,$${ctx:loginId})时,攻击者可以通过构造包含递归查找数据包的方式,控制线程上下文映射 (MDC),导致 StackOverflowError 产生并终止进程,实现拒绝服务攻击。

这个漏洞只对使用 log4j-core 的应用受影响。

影响范围:2.0 <= Apache log4j <Log4j-2.16.0

建议:将 Log4j2 升级到 1.17.0。

CVE-2021-4104

这个攻击是针对 Log4j1.x 而不是 Log4j2。

当应用程序启用了 JMSAppende,且攻击者可以控制 JMSAppender 添加 JMSBroker 时,将允许远程攻击者进行代码执行攻击。

影响范围:Log4j1.x版本

因 2015 年 8 月起官方已停止维护  Log4j1.x 版本组件,因此不会提供 Log4j1.x 的版本更新,可以从类路径中移除JMSAppender 类进行修复。命令如下:

zip-q-dlog4j-*.jarorg/apache/log4j/net/JMSAppender.class

总结

上面的漏洞都是跟日志组件相关的,官方已经修复。

如果使用 logback,只要把版本升级到 1.2.9 之上就可以。

如果使用了 log4j2,把版本升级到最新版本,也就是 2.17.0 就可以了。

如果使用 log4j,可以从 classpath 中移除 JMSAppender,但这不是长久之计,建议还是升级到 log4j2 或者改用 logback,毕竟 log4j 1.x 版本官方已经不再维护了。

最后,作为程序员,要时刻关注系统中的技术栈,关注新版本修复的问题是否对系统有影响。

Logback也爆漏洞了,总结下最近log相关的几个漏洞相关推荐

  1. linux系统漏洞测试过程,Linux下bash破壳漏洞检测方法

    如果Linux服务器存在bash破壳漏洞,将可能导致远程攻击者操作系统来执行任意命令,威胁等级较高,那么我们要怎么知道Linux系统是否存在该漏洞,又该如何修复呢?下面随学习啦小编一起来了解下吧. 问 ...

  2. spring漏洞合集 下

    前言 现在的 java 开放的网站十个里面有九个是 spring 写的.网上对 spring 相关漏洞的资料很多,但是总结的文章却很少,再加上 spring 庞大的生态,每当看到 spring 相关网 ...

  3. 修复linux bash破壳漏洞,Linux系统下如何检测并修复bash中的破壳漏洞​​

    问题:我想要知道我的Linux服务器是否存在bash破壳漏洞,以及如何来保护我的Linux服务器不受破壳漏洞侵袭. 2014年9月24日,一位名叫斯特凡·沙泽拉的安全研究者发现了一个名为"破 ...

  4. wordpress漏洞_聊聊 WordPress 5.1.1 CSRF to RCE 漏洞

    作者:LoRexxar'@知道创宇404实验室 时间:2019年3月14日 2019年3月13日, RIPS团队公开了一篇关于WordPress 5.1.1的XSS漏洞详情,标题起的很响亮,叫做wor ...

  5. vc++ 6.0 创建程序快捷方式的一个例子源码_漏洞复现:phpcms v9.6.0任意文件上传漏洞(CVE201814399)...

    文章说明 漏洞复现是为了学习漏洞利用所写,漏洞都是互联网上以流传已久的各种漏洞的利用及原理,用来增强自己见识,培养自己动手能力,有兴趣的朋友可自行搭建环境练习.源码下载连接在文章最后. 漏洞说明 PH ...

  6. [译] APT分析报告:08.漏洞利用图谱–通过查找作者的指纹来寻找漏洞

    这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织和恶意代码分析的方法,希望对您有所帮助.当然,由于作者英语有限,会借助机翻进行校验,还请包涵!前 ...

  7. 缓冲区溢出漏洞攻击演示实验(CProxy 6.2缓冲区溢出漏洞)

    实验内容: 分析缓冲区溢出漏洞,利用CCProxy 6.2的这个缓冲区溢出漏洞,利用ping命令向其发送一个长的字符串,溢出局部变量,覆盖RET的位置,从而实现程序跳转到自己想要让其执行的程序上去. ...

  8. Pikachu CSRF GET/POST/TOKE级别漏洞实战Pikachu exec “ping“ exec “evel“OS命令执行漏洞

    Pikachu CSRF GET/POST/TOKE级别漏洞实战&&Pikachu exec "ping" && exec "evel&q ...

  9. 计算机软件漏洞引发的问题论文,【计算机安全论文】计算机漏洞检测分析(共3404字)...

    1漏洞的定义与特点 可以将漏洞定义为存在于一个系统内的弱点或缺陷,这些弱点或缺陷导致系统对某一特定的威胁攻击或危险事件具有敏感性,或具有进行攻击威胁的可能性[1].软件漏洞产生通常是由于在软件的设计和 ...

最新文章

  1. java中@Qualifier(string)是什么用法
  2. 新手学JAVA(六)----处理随机性的数据
  3. mysql正则表达式配置,MySQL REGEXP:正则表达式
  4. FPS, VSync, Triple Buffering
  5. 一位40岁“老程序员”的经历,给你们说一些我的真实想法!
  6. 【渝粤题库】国家开放大学2021春2718动物生理基础题目
  7. DI(destination imagination)活动
  8. x86构架之-Intel8042键盘控制器简介
  9. 【经典算法】——KMP,深入讲解next数组的求解
  10. CMS4.0——后知后觉
  11. php与mysql事物处理
  12. labelme标注的json文件转换成png格式
  13. C语言中逻辑非和取反的不同
  14. Django 开发的个人博客源码分享
  15. 【新知实验室 腾讯云TRTC实时音视频体验】
  16. TED地道用语学习 - <脆弱的力量> - 3
  17. dell r720xd 裸机配置系列 3 配置网络
  18. 花洒水龙头加州节水认证CEC
  19. 爬取东方财富股吧评论
  20. 最简单的单例模式,Go版本的实现你写对了吗?

热门文章

  1. java中的多态_Java中的多态
  2. feign调用如何传递token_走进Spring Cloud之五 eureka Feign(服务调用者)
  3. ThreadLocal的正确使用与原理
  4. 英国工程巨头遭勒索攻击:运营临时中断 至少损失4亿元
  5. 详细介绍Vue的数据响应式
  6. java别踩白块_java别踩白块(基础功能)
  7. php用户类,php用户登陆类
  8. 关于UnimplementedError: Fused conv implementation does not support grouped convolutions for now.报错
  9. HDU3949(线性基算法模版)
  10. 关于学习Python的一点学习总结(52->模块就是程序)