适用场景
WebLogic 安全加固适用于企业生产环境中的 Oracle WebLogic 中间件,尤其是面向公网开放 7001 管理端口、或部署了旧版本(10.3.6、12.1.3 等)的服务器。当发生反序列化漏洞预警(如 CVE-2015-4852、CVE-2017-10271、CVE-2019-2725)时,本方案可作为应急加固与长期基线配置的标准流程。
前置条件
- 可登录 WebLogic 管理控制台或具有服务器 shell 权限
- 确认当前 WebLogic 版本(10.3.6 / 12.1.3 / 12.2.1.x)与补丁情况
- 准备运维变更窗口,T3 协议调整会造成短暂服务中断
- 已备份 domain 目录与 config.xml 配置文件
原理说明
WebLogic 的历史反序列化漏洞源于两个薄弱点:一是 T3/IIOP 协议默认开放且未校验来源,攻击者可通过 7001 端口直接投递序列化对象;二是部分版本对 XMLDecoder、weblogic.jms.common.StreamMessageImpl 等类的反序列化缺乏过滤,构造恶意字节流即可触发远程代码执行。加固的核心是「缩小协议暴露面 + 白名单来源 + 过滤恶意载荷」三层纵深防御。
操作步骤
1. 版本自查与升级
cd /u01/oracle/wlserver/server/lib
java -cp weblogic.jar weblogic.version
核对版本后,优先升级到官方最新 CPU(Critical Patch Update)补丁,这是修复反序列化漏洞最彻底的手段。
2. 关闭 T3 协议或限制来源
在管理控制台进入:环境 > 服务器 > 选择服务器 > 协议,取消勾选「启用 T3 协议」。若业务必须使用 T3,则通过「网络安全 > 筛选器」配置来源白名单:
weblogic.security.net.ConnectionFilterImpl
127.0.0.1 * * allow
192.168.1.0/24 * * allow
0.0.0.0/0 * 7001 deny
将该规则写入 config.xml 的 <connection-filter> 节点并重启服务,非白名单 IP 访问 7001 将被直接拒绝。
3. 删除高危反序列化组件
# 备份后删除 wlfullclient 等含 gadget 的客户端库
rm /u01/oracle/wlserver/server/lib/wlfullclient.jar
# 清理 war 包中多余的 XMLDecoder 相关 class
find /u01/oracle/user_projects -name "*.jar" | xargs grep -l "XMLDecoder"
4. WAF 规则联动拦截
# Nginx + ModSecurity 拦截典型反序列化 payload 特征
SecRule REQUEST_URI "@rx (/(_async|wls-wsat|bea_wls_internal))" \
"id:70001,phase:1,deny,status:403,msg:'WebLogic wls-wsat RCE'"
SecRule REQUEST_BODY "@rx (java\.lang\.Runtime|XMLDecoder|ProcessBuilder)" \
"id:70002,phase:2,deny,status:403,msg:'Serialization gadget'"
# 同时限制管理端口仅内网可达
iptables -A INPUT -p tcp --dport 7001 ! -s 10.0.0.0/8 -j DROP
配置验证
- 使用
nmap -p 7001 --script t3-enum 目标IP确认 T3 握手被拒绝 - 从非白名单 IP 发起
curl -v http://目标IP:7001/,确认连接被筛选器阻断 - 向 /wls-wsat/CoordinatorPortType 发送恶意 XML 请求,确认 WAF 返回 403
- 业务侧验证:T3 依赖的 JMS、EJB 调用是否恢复正常
常见问题
FAQ 1:升级到最新补丁后还需要关闭 T3 吗?
需要。补丁修复的是已知漏洞,而 T3 协议本身的攻击面依然存在,新的反序列化 gadget 仍可能被挖掘利用。建议保留「补丁 + T3 白名单 + WAF」三层防护,纵深防御优于单一手段。
FAQ 2:业务强依赖 T3 协议,无法关闭怎么办?
退而求其次:保留 T3 但必须配置 ConnectionFilter 来源白名单,限制仅应用服务器 IP 段可访问;同时关闭管理端口对公网暴露,管理控制台仅绑定内网或跳板机可达地址。
总结
WebLogic 安全加固的关键在于收敛攻击面:及时升级 CPU 补丁、按需关闭或白名单化 T3/IIOP 协议、清理高危组件,并联动 WAF 与防火墙过滤恶意载荷。完成配置后应定期复查协议端口暴露情况,将加固纳入变更管理与基线审计,防止回归。