分布式 log4j2 漏洞修复方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式 log4j2 漏洞修复方案相关的知识,希望对你有一定的参考价值。

参考技术A

dble 运行依赖许多组件的 jar 包,当遇到某个组件有漏洞时,需要紧急修复。

安全漏洞说明: https://nosec.org/home/detail/4917.html

⚠️:方案1可实施,截止至北京时间2021年12月14日11时,log4j 官方已经发布 2.16.0 版本,相关 release notes: https://github.com/apache/logging-log4j2/blob/rel/2.16.0/RELEASE-NOTES.md

⚠️:下面介绍的2,3步骤是临时缓解步骤,不排除有其他问题

dble版本:2.19.07.x - 3.21.10.x版本,2.19.07.x之前的版本需要自行尝试替换方案,官方不再提供支持

影响:需要重启 dble

步骤:

1.1 停止 dble

1.2 将 dble 服务器上 log4j 的 jar 包进行备份并 mv 至 /tmp/ 目录下

/path/to/dble/lib 下有四个 jar 包分别是:(操作前需要确认一下)

执行下面的操作:

1.3 将 log4j 2.16.0 版本的相关 jar 包,上传到该路径下/path/to/dble/lib,并变更权限
参考链接: https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.16.0/ ,其他jar在此网站上查找

1.4 重复1.2,1.3步骤升级其余三个jar包

1.5 启动dble

dble版本:理论上全版本dble适配

影响:需要重启dble

步骤:

在 dble 配置文件 /path/to/dble/conf 下添加配置文件 log4j2.component.properties

修改文件权限:

添加如下配置:

验证方式:

开发环境验证该变量重启后被加载,不重启情况下,不会被加载。

dble版本:适用于dble版本 < 3.20.07.0

3.20.07.0及之后的dble版本由于对 JVM 参数进行了限制,因此不支持此种方式,会在近期修复。

影响:需要重启dble

步骤:

在 dble 配置文件/path/to/dble/conf/wrapper.cof 中添加如下配置,并重启dble。

配置:

原环境中是否存在 wrapper.java.additional 的参数,下面配置中的14在原环境中按需替换

执行以下命令判断是否使用该参数启动:

不推荐

struts2架构网站漏洞修复详情与利用漏洞修复方案

struts2从开发出来到现在,很多互联网企业,公司,平台都在使用apache struts2系统来开发网站,以及应用系统,这几年来因为使用较多,被***者挖掘出来的struts2漏洞也越来越,从最一开始S2-001到现在的最新的s2-057漏洞,本文着重的给大家介绍一下struts2漏洞的利用详情以及漏洞修复办法。
技术分享图片

先从1开始吧,S2-001影响的版本是Struts 2.0.0 - Struts 2.0.8版本,最早开始的版本漏洞太低级,当时的apache官方并没有设置安全机制,导致在提交参数的时候紧接的执行了递归化查询数据,导致可以插入恶意参数进行SQL注入***。
技术分享图片
s2-001漏洞的修复是将struts2的默认altsyntax功能进行关闭使用其他方式进行递归化的查询,为什么要关闭altsyntax功能是因为这个功能的标签会自动的进行表达式的安全解析,关闭该功能就不会进行解析恶意参数了。

s2-003漏洞是没有过滤恶意参数,导致可以进行参数注入,影响的版本是Struts 2.0.0 - Struts 2.0.11.2版本,这次的版本新添加了一个功能就是安全拦截器,在参数传输过程中进行了关键词安全检测,一些非法注入的参数可以被过滤掉,但是apache官方并没有过滤掉特殊编码的方式进行提交,导致伪造编码进行了sql注入***,该漏洞的修复方案是关于编码注入这里进行详细的过滤,并使用了正则表达式进行过滤非法的注入参数。

s2-005漏洞产生的原因也跟上次的S2-003大致相同,也是在传入参数值的时候带进了恶意非法注入参数,导致可以使用ognl解析的方式来进行远程代码的注入执行。关于该漏洞的修复是需要将apache系统参数值denyMethodExecution设置为关闭,然后将参数的拦截过滤系统进行了升级,更为严格的一个正则表达式过滤。

S2-007,S2-008,S2-009漏洞详情是需要开启decmode开发模式,在调试开发代码过程中存在了注入的漏洞,甚至对于单引号并没有进行安全限制,导致可以提交到后台进行转义,造成变量上的转义注入,S2-009也是POST提交参数的注入***,跟S2-005,S2-003的参数注入不同的是,没有对其参数里的安全值进行过滤,导致可以插入恶意参数进行SQL数据库注入***。 同样的官方修复方案是对其过滤系统进行升级,严格执行正则表达式过滤一些可能导致注入的非法参数。
技术分享图片

S2-012漏洞的产生原因是默认的apache 配置文件struts.xml对默认的对象进行了重定向的一个功能设置,导致该重定向之解析表达式的过程中产生了远程代码执行漏洞,关于该漏洞的修复官方进行了表达式解析的安全过滤。

S2-013漏洞利用是因为标签属性的原因,标签设置参数里竟然可以执行表达式,会让URL值的参数进行传递表达式,漏洞的修复也很简单对其标签属性进行了删除。S2-015的漏洞是因为系统配置里的任意通配符映射导致二次执行ognl表达式进行了远程代码的执行漏洞,首先该系统没有对网站URL进行白名单的安全检测,当使用一些特殊符号叹号,百分号的时候可以直接提交上去。造成了恶意代码的远程执行。漏洞的修补办法是对DefaultActionMapper的类进行了安全检测,过滤非法的注入代码。

如果您对网站的漏洞不懂的话,建议让网站安全公司帮您修复网站漏洞,以及清除***后门,做好网站安全加固防止被***,国内的网站安全公司,像SINE安全公司、绿盟安全公司、启明星辰、都是比较专业的。

以上是S2-001到S2-015漏洞的产生原因,以及漏洞修复的办法介绍,因为文章字数限制,其他版本的struts2漏洞将会在下一篇文章中给大家讲解。

以上是关于分布式 log4j2 漏洞修复方案的主要内容,如果未能解决你的问题,请参考以下文章

腾讯安全刚刚给出了Log4j2核弹级漏洞线上修复方案!紧急修复

Log4j2远程执行代码漏洞如何攻击? 又如何修复

快速修复 Log4j2 远程代码执行漏洞步骤

Apache Log4j2 远程代码执行漏洞修复

Apache Log4j2 远程代码执行漏洞修复

快速修复 Log4j2 远程代码执行漏洞步骤