Oracle发布4月关键补丁更新,Weblogic反序列化漏洞(CVE-2018-2628)威胁全球服务器安全
事件概要:

北京时间 4 月 18 日凌晨,Oracle 官方发布了 4 月份的关键补丁更新,即 CPU(CriticalPatchUpdate)。此更新中包含一个高危的 Weblogic 反序列化漏洞,也就是 CVE-2018-2628。通过这个漏洞,攻击者能够在未获得授权的情况下,实现远程执行代码的操作。攻击者发送精心构造的 T3 协议数据,就能获取目标服务器的权限。攻击者可凭借该漏洞来控制组件,进而影响数据的可用性、保密性和完整性。
BUG 描述
Weblogic T3 服务会产生此漏洞,所有开放了 Weblogic 控制台端口的应用,都会默认开启 T3 服务,所以会造成较大范围的影响。根据绿盟态势感知平台的查询结果,在全球范围内有 19,229 个对互联网开放 Weblogic 服务的资产,其中归属中国地区的受影响资产数量是 1,787。
BUG 影响
此BUG为高危级!
此漏洞产生于 WebLogic T3 服务。若开放 WebLogic 控制台端口(默认为 7001 端口),T3 服务会默认开启,这会造成较大影响。结合曾经爆出的 WebLogicWLS 组件漏洞(CVE-2017-10271),不排除有攻击者利用挖矿的可能。所以,建议受影响的企业用户尽快部署防护措施。
请提供需要改写的句子呀,你没有给出具体的内容呢。
受影响的版本
1.Weblogic 官方还在支持的版本
Weblogic Server 10.3.6.0
Weblogic Server 12.1.3.0
Weblogic Server 12.2.1.2
Weblogic Server 12.2.1.3
2.Weblogic 官方不在支持的版本
Weblogic Server 9
WeblogicServer 10
WeblogicServer 10.3
WeblogicServer 11g(除上述版本外)
Weblogic Server 12c(除上述版本外)
请提供需要改写的句子呀,你没有给出具体的内容呢。
BUG 补丁
Oracle官方发布补丁,见下表:
WLS Release
Required Patches
12.2.1.3
PSU 于 2017 年 10 月 17 日发布的 12.2.1.3 版本(补丁 27342434)
12.2.1.2
PSU 于 2017 年 10 月 17 日发布的版本为 12.2.1.2.20171017,该版本包含补丁 27338939
12.1.3.0
PSU 于 2017 年 10 月 17 日发布的 12.1.3.0.20171017 版本(补丁号 27419391)
10.3.6.0
PSU 于 2017 年 10 月 17 日发布的版本为 10.3.6.0.20171017(补丁号为 27395085)
临时方案
方案一:
此方案会禁止所有的 t3 协议进行访问,并且会致使无法运用命令行来停止 weblogic。
进入连接筛选器配置。
在连接筛选器里输入“weblogic.security.net.ConnectionFilterImpl”,同时在连接筛选器规则中输入“* * 7001 deny t3 t3s”。
3.保存后规则即可生效,需要重新启动。
使用检测脚本,可看到防护效果已经生效:
方案二:
此方案能够添加对 t3 协议的访问许可,同时会禁止那些未被添加的 t3 协议的访问。当添加了允许访问的 ip 后,不会影响到使用命令行来停止 weblogic。(推荐采用此方案)
进入 WebLogic 控制台后,在 base_domain 的配置页面里,接着进入“安全”选项卡页面,然后点击“筛选器”,最后进入连接筛选器配置。
在连接筛选器中输入“weblogic.security.net.ConnectionFilterImpl”,并且在连接筛选器规则里。
输入:ip * * allow t3 (ip为允许的ip)
0.0.0.0/0 * *deny t3 t3s
当受管节点与管理节点不在同一个 ip 时,就需要将受管节点的 ip 添加为允许的 ip。
3.保存后规则即可生效,需要重新启动。
使用检测脚本,可看到防护效果已经生效:
注:连接筛选器规则的格式为:target、localAddress、localPort、action、protocols 。其中:target 表示目标;localAddress 表示本地地址;localPort 表示本地端口;action 表示动作;protocols 表示协议。
解决方案(安装补丁PSU20180417)
10.3.6补丁安装(目前无效)
对于 10.3.6 版本,目前经测试发现,更新补丁后使用漏洞验证脚本,该漏洞未被修复。所以对于该版本,推荐使用临时方案来进行漏洞修复。关于进一步的进展,我们会随时留意 Oracle 官方的说明。
1、使用weblogic安装用户登录到中间件服务器;
2、关闭所有的weblogic节点;
在 weblogic 的安装路径,例如 weblogic/Oracle/middleware/wls1036 这个路径下,进入 bsu 文件夹,也就是进入 weblogic/Oracle /middleware/wls1036/utils/bsu 。
4、执行”./bsu.sh”生成cache_dir文件夹
使用 FTP 把补丁包以二进制的方式上传到 cache_dir 目录里。
进入 cache_dir 目录。然后解压补丁包“unzip p27453773_1036_Generic.zip”。
7、进入bsu目录执行上述配置好的命令:
8、验证安装:
(1)通过bsu命令验证检查;
启动 weblogic 服务后,通过启动日志进行验证。在后台的输出信息里能够看到“10.3.6.0.180417”版本字样,这就表示安装成功了。
通过 console 页面进行验证:首先登录 weblogic 的控制台,接着进入左侧的“环境”,然后再进入“服务器”,在其中选择任意一个服务器,之后进入“监视”,再进入“一般信息”,这样就可以查看指定 server 的详细版本号,从而验证补丁安装是否成功。
9、补丁回退,执行命令
检查回退结果:
10、注意事项:
执行 bsu.sh 时出现了报错,报错信息为 java.lang.OutOfMemoryError: Java heap space
解决办法:
修改 bsu.sh 这个操作,需要将 MEM_ARGS 设置为“-Xms4096m -Xmx4096m”。
12.1.3补丁安装(目前无效)
对于 12c 版本,目前已发现更新补丁后,经漏洞验证脚本测试,该漏洞未被修复。所以对于该版本,推荐使用临时方案来进行漏洞修复。关于进一步的进展,我们会随时留意 Oracle 官方的说明。
WebLogic 从 12c 版本起,其更新补丁的方式发生了改变,不再是之前的方式,而是改由 opatch 来执行更新。
以下步骤适用于所有12c版本。
检查 ORACLE_HOME 环境变量,该环境变量指向已安装的 ORACLE WEBLOGIC SERVER 的目录。
停止所有的 Managed 服务器 。
3.设置环境变量
将 JAVA_HOME 导出为 /usr/java/jdk1.7.0_79 。
设置环境变量 JAVA_BIN 为 /usr/java/jdk1.7.0_79/bin ,具体操作为将其导出 。
将路径进行导出操作,即把 JAVA_HOME 下的 bin 目录添加到系统路径 PATH 中,具体来说就是让 PATH 等于 JAVA_HOME 下的 bin 目录与原 PATH 的结合。
将类路径进行导出,具体为:. 以及 $JAVA_HOME/lib/dt.jar 和 $JAVA_HOME/lib/tools.jar 这两个路径。
将 ORACLE_HOME 进行导出,其路径为 /home/weblogic/Oracle/Middleware/Oracle_Home
注:斜体加粗部分需要针对定制环境修改
进入 Opatch 目录后,把补丁程序 zip 文件压缩到 tmp_dir 里,即执行 unzip -d tmp_dir/ p27342434_122130_Generic.zip 操作。
进入解压后的目录,然后执行 opatch 。接着执行 opatch 的安装命令。
cd tmp_dir/27342434
ORACLE_HOME 中的 OPatch 执行 opatchapply 操作,同时指定 JAVA_HOME 路径
6.验证补丁是否安装
ORACLE_HOME 中的 OPatch 执行 opatchlsinventory 操作。
已打补丁的输出中可以看到如下字样
卸载补丁
若在安装该补丁程序时遇到任何问题,请将该补丁删除
停止 AdminServer 以及所有的 Managed 服务器。
2.运行opacth卸载该补丁程序
在 ORACLE_HOME 目录下的 OPatch 中执行 opatchrollback 操作,并指定 id 为 27342434
重新启动 AdminServer 以及所有的托管服务器。
漏洞验证
使用python脚本检查漏洞是否存在
先决条件
客户机需安装 python2.7 及更高版本,同时要安装 python 的 requests 组件。
执行脚本
链接如下:
注:脚本源自网络
测试结果
在没有打补丁时,执行脚本,结果为:
打补丁后,执行脚本,结果为:
使用临时方法后,执行脚本,结果为:
如果服务器端的 weblogic 没有启动,那么就会返回 False 的错误。