当前位置: 首页 > 科技观察

Logback也爆了漏洞,总结一下最近日志相关的漏洞

时间:2023-03-18 01:56:37 科技观察

大家好,我是君哥,周末快结束了。日前,ApacheLog4j2陆续报告了几个重大漏洞。好在我们系统中使用了logback,但是在我们庆幸的时候,logback也有一个漏洞。今天我们就一起来看看这些漏洞。CVE-2021-42550先看官方漏洞描述:在logback版本1.2.7及之前的版本中,具有编辑配置文件所需权限的攻击者可以制作恶意配置,允许执行从LDAP服务器加载的任意代码。该漏洞被认为比log4shell造成的威胁更小,因为它需要攻击者访问logback的配置文件,这是系统已经受损的标志。此CVE-2021-42550旨在防止现有缺陷升级到更高的威胁级别。让我们先松一口气,logback的这个漏洞没有log4j那么严重。如果是SpringBoot项目,没有日志配置,默认使用logback。logback官方修复速度也很快,短时间内发布了5个版本:2021年12月14日,发布1.2.8版本2021年12月16日,发布1.3.0-alpha11版本2021年12月16日,发布1.2.9版本2021年12月22日,发布1.3.0-alpha12版本2021年12月23日,发布1.2.10版本从上面的官方截图可以看出,有避免该漏洞的两种方法logback版本升级到1.2.9,logback.xml文件配置为只读。SpringBoot项目也随着logback的升级而升级。比如SpringBootv2.6.2版本升级logback到1.2.9。但是,对于真实的系统环境,升级SpringBoot版本涉及的测试太多,升级logback版本是最快快速修复的方法。另一个ch.qos.logbacklogback-classic1.2.9CVE-2021-44228是CNVD-2021-95914。Log4j2日志组件在处理程序日志记录时存在JNDI注入缺陷。攻击者可利用该漏洞获取目标服务器的权限,向目标服务器发送恶意数据,在目标服务器上执行任意代码。这种攻击主要针对有外网访问权限的应用。如果没有外网访问,则不用太担心。影响范围:2.0<=Apachelog4j修复措施:将Log4j2版本升级到2.16.0改用日志框架,使用Log4j或logback添加jvm启动参数-Dlog4j2.formatMsgNoLookups=true添加配置文件log4j2.component。applicationclasspath下的properties,文件内容为log4j2.formatMsgNoLookups=true升级JDK版本,使用11.0.1、8u191、7u201、6u211及以上禁用JNDI,例如在中添加spring.jndi.ignore=truespring.properties部署和使用第三方防火墙产品进行安全防护,更新WAF和RASP规则。可以看到最快的方式就是添加jvm参数,重启服务。CVE-2021-45046CVE-2021-44228的一种形式,在启用日志配置查找(例如$${ctx:loginId})或上下文映射模式(%X、%mdc或%MDC)时允许Log4j2远程攻击者使用JNDI查找模式加载恶意类,导致远程代码执行或信息漏洞等风险。此漏洞仅影响使用log4j-core的应用程序。范围:2.0<=Apachelog4j建议:将Log4j2升级到1.17.0。CVE-2021-45105由于Log4j2的一些特殊配置,当使用非默认模式布局和上下文查找(例如,$${ctx:loginId})时,攻击者可以通过构造包含递归查找的数据包来控制线程上下文映射(MDC),导致StackOverflowError并终止进程,实现拒绝服务攻击。此漏洞仅影响使用log4j-core的应用程序。范围:2.0<=Apachelog4j建议:将Log4j2升级到1.17.0。CVE-2021-4104此攻击针对Log4j1.x而不是Log4j2。当应用程序启用了JMSAppende并且攻击者可以控制JMSAppender添加JMSBroker时,这允许远程攻击者进行代码执行攻击。影响范围:Log4j1.x版本自2015年8月起停止维护Log4j1.x版本组件,因此不再提供Log4j1.x的版本更新,可将JMSAppender类从classpath中移除进行修复。命令如下:zip-q-dlog4j-*.jarorg/apache/log4j/net/JMSAppender.class总结以上漏洞与日志组件相关,官方已修复。如果使用logback,只需将版本升级到1.2.9或以上即可。如果使用log4j2,只需将版本升级到最新版本,即2.17.0。如果您使用log4j,您可以从类路径中删除JMSAppender,但这不是一个长期的解决方案。建议升级到log4j2或改用logback。毕竟官方已经不再维护log4j1.x版本了。最后,作为程序员,要时刻关注系统中的技术栈,注意新版本修复的问题是否对系统有影响。