weblogic漏洞整改示范

目前,Oracle Weblogic保持每个季度一个补丁包更新的速度,对于大规模使用weblogic中间件的系统来说,更新补丁包、重启应用服务器是一个非常繁琐重复的过程。(建议使用ansible类似工具批量打补丁)同时对于CVE-2018-2628等反渗透测试漏洞来说,psu20180417补丁要求升级JDK到最新的版本,更是要了维护人员的老命。(需要应用测试啊!!!)

本文以CVE-2018-2628为例,详细叙述官方解决方案以及临时解决方案(很多问题一劳永逸)。

Oracle官方已经在4月17日的关键补丁更新(CPU)中修复了该漏洞,所以标准的修复方式是安装最新的PSU:

 WebLogic Server 12.2.1.3 WLS PSU 12.2.1.3.180417 Patch 27342434

 WebLogic Server 12.2.1.2 WLS PSU 12.2.1.2.180417 Patch 27338939

 WebLogic Server 12.1.3.0 WLS PSU 12.1.3.0.180417 Patch 27419391

 WebLogic Server 10.3.6.0 WLS PSU 10.3.6.0.180417 Patch 27395085

但在更新上述补丁后,仍然后部分安全防护公司指出,安装最新的PSU后漏洞仍然存在,无法完全抵御反序列化漏洞的攻击。针对上述情况, Oracle安全部门最近发布的文档进行了说明:April 2018 Critical Patch Update: Additional Information about the Oracle WebLogic Server Vulnerability CVE-2018-2628 (Doc ID 2395745.1)。

Oracle has determined that the April 2018 Critical Patch Update provides effective mitigation against vulnerability CVE-2018-2628 when using a combination of supported versions of Oracle products.

These supported versions currently are:

 Supported versions of WebLogic Server are: 10.3.6.0, 12.1.3.0, 12.2.1.2 and 12.2.1.3

 Supported versions of Java SE are: JDK6u191, JDK7u181 and JDK8u172. o

Note: A valid Support license is needed to download either JDK6u191 or JDK7u181

简而意之,就是除了升级PSU180417补丁外,还需要升级JDK版本,包括了 JDK6u191, JDK7u181 and JDK8u172。

常规解决步骤:

1、下载PSU补丁pxxxxxxxx_1036_Generic.zip ,然后解压到对应的bsu下的cachedir目录

2、检查当前补丁版本

cd $WLS_HOME/utils/bsu

./bsu.sh -view -prod_dir=$WLS_HOME/wlserver_10.3 -status=applied -verbose

3、通过补丁号卸载原补丁

./bsu.sh -remove -prod_dir=$WLS_HOME/wlserver_10.3 -patchlist=XXXX -verbose

4、安装新的补丁程序

./bsu.sh -install -patch_download_dir=$WLS_HOME/utils/bsu/cachedir -prod_dir= $WLS_HOME/wlserver_10.3 -patchlist=XXXX -verbose

5、检查

./bsu.sh -view -prod_dir=$WLS_HOME/wlserver_10.3 -status=applied -verbose

注:在使用bsu安装时,建议将bsu.sh中的-Xmx增加到2048-2536M,避免出现OOM错误。

对反渗透测试漏洞等高危风险而言,均是通过使用weblogic的t3端口进行入侵,因此对于只是用http等协议的应用,可以通过临时解决方案对外屏蔽t3协议,达到一劳永逸的效果。

官方说明:

根据CVE-2018-2628相关描述,Java反序列化漏洞 在weblogic上是通过T3协议进行攻击的,T3协议是weblogic内部的通信协议,weblogic运行时必须使用此协议。在对T3协议实现的过程中用到了java序列化技术。所以只要科学合理的管理好T3协议的使用就可以防护住针对weblogic 产品的java反序列化漏洞攻击。

针对暂时无法安装最新PSU或者版本过低,没有对应PSU修复该漏洞的情况,可以考虑通过配置weblogic连接筛选器,屏蔽部分(主要是外部)T3访问的方式临时解决问题。

1、连接筛选器

配置weblogic连接筛选器时,可以选择自定义的连接筛选器,也可以使用weblogic产品提供的默认连接筛选器。一般我们都是使用weblogic默认提供的连接筛选器:'weblogic.security.net.ConnectionFilterImpl'

2、语法

连接筛选器语法规则

连接筛选器规则语法如下所示:

 每行都只能写一条规则。

 规则中的标记用空格分隔开。

 井号 (#) 是注释字符。将忽略行中井号后面的所有内容。

 将忽略规则前后的空格。

 将跳过只包含空格或注释的行。

筛选器规则格式的不同取决于是使用筛选器文件输入筛选器规则,还是在管理控制台中输入筛选器规则。

 如果在管理控制台中输入筛选器规则,则请按照下列格式输入:

targetAddress localAddress localPort action protocols

targetAddress指定要筛选的一个或多个系统。

 localAddress 定义 WebLogic Server 实例的主机地址。(如果指定为星号 (*),则返回的匹配结果将是所有本地 IP 地址。)

 localPort 定义 WebLogic Server 实例正在监听的端口。(如果指定为星号 (*),则匹配返回的结果将是服务器上所有可用的端口)。

 action 指定要执行的操作。该值必须为 allow或 deny。

 protocols 是要匹配的协议名列表。可能指定下列协议:http、https、t3、t3s、ldap、ldaps、iiop、iiops 和 com。(尽管仍然支持giop、giops 和 dcom 协议名称,但是不赞成在 9.0 及更高版本中使用;您应该使用等同的 iiop、iiops 和 com 协议名称。)

3、配置步骤

以该集群3个server为例,一个管理,两个被管:

然后在Weblogic Console 中选择Domain->安全->筛选器 配置如下:

 连接筛选器: weblogic.security.net.ConnectionFilterImpl

网络过滤规则如下:

192.168.8.103 192.168.8.104 7001 allow t3

192.168.8.104 192.168.8.104 7001 allow t3

* 192.168.8.104 7001 deny t3

192.168.8.103 192.168.8.104 8001 allow t3

192.168.8.104 192.168.8.104 8001 allow t3

* 192.168.8.104 8001 deny t3

192.168.8.103 192.168.8.103 8002 allow t3

192.168.8.104 192.168.8.103 8002 allow t3

* 192.168.8.103 8002 deny t3

之后重启域内所有server。内部之间可以通过t3协议通信,外部ip无法访问。

你可能感兴趣的:(weblogic漏洞整改示范)