项目

一般

简介

【v10汇总_最新】SSL弱密码套件_处理方案

chen zh6 个月 之前添加

一.【漏洞描述】:

漏洞报告中出现"弱密码套件"、"支持较老的TLS版本"、"检测到弱密码"等关键字时,可参考本方案(注意有一些特殊情况,需看第四点

 

二.【处理分析】:

弱密码套件的处理方式,本质是禁用相关的弱密码套件,由于套件有各自的TLS版本,所以还需禁用低版本的TLS(一般只使用TLS 1.2)

 

三.【处理方案】:

1、首先我们需核实,漏洞报告中的相应漏洞的服务端口,是否为aas的服务端口(一般是https),属于aas需处理的漏洞,否则就做了无用功;

2、确定为aas服务端口漏洞后,分析漏洞报告,报告中一般会指出明确的弱密码套件,如下图:

3、找到漏洞后,我们通过管控台进行处理,一般是https的漏洞,即http-listener-2的监听器处理

3.1 配置只使用高版本TLS

【位置】:配置管理-->server-config-->网络配置-->协议配置-->点击http-listener-2

注意:a、server-config是默认的主实例配置,如果服务是部署在独立实例上的话,要注意配置在独立实例-config上;

【位置】:SSL-->只保留勾选TLS1.2,点击保存

注意:如果是"支持较老的TLS版本"这个漏洞,配置到这里就可以了,不用配置3.2

 

3.2 禁用弱密码套件

【位置】:配置管理-->server-config-->网络配置-->协议配置-->点击http-listener-2 和(sec-admin-listener)-->SSL-->下拉

对比漏洞报告里的弱密码套件,在管控列表中使用ctrl+f进行检索,禁用相关密码套件(即平移到左边),点击保存;

密码套件规则如下:

左边 右边
在左边的密码套件,为禁用状态

在右边的密码套件,为使用状态

特殊说明,若全部密码套件都在左边,四个方框都在左边为全部使用  

如上图例子,左边的套件为需禁用的,右边为可用的:

 

四.【特殊情况】:

4.1 漏洞报告中的弱密码套件,在管控的密码套件列表中找不到

处理方式参考4.2 【SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱】的配置方式处理

 

4.2 【SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱】漏洞处理

步骤1、先添加jvm参数-Djdk.tls.ephemeralDHKeySize=2048
添加方式参考:添加jvm参数的方法 - 技术支持项目 - 项目管理系统

步骤2、修改{安装目录}/domains/mydomain/config/domain.xml,注意是server-config中的模块,红色部分为添加内容,注意识别;修改前最好提前备份,便于还原

<protocol name="http-listener-2" security-enabled="true">
   <http http2-enabled="false" max-connections="250">

        <file-cache></file-cache>            
   </http>             
   <ssl classname="com.sun.enterprise.security.ssl.ApusicSSLImpl" client-auth="want" cert-nickname="kaas" ssl3-tls-ciphers="+TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,+TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,+TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_DHE_DSS_WITH_AES_128_GCM_SHA256">
   </ssl>  
</protocol>

注意:如果上面的配置没用,需观察一下项目实际domain.xml中绿色内容默认是在哪个配置块下的:cert-nickname="kaas"是在http-listener-2还是sec-admin-listener中?上面的案例是在http-listener-2,如果实际domain.xml中是在sec-admin-listener中,就把红色部分的内容添加sec-admin-listener中,案例如下:

<protocol name="sec-admin-listener" security-enabled="true">
   <http encoded-slash-enabled="true" default-virtual-server="__asadmin">
         <file-cache></file-cache>
   </http>
   <ssl classname="com.sun.enterprise.security.ssl.ApusicSSLImpl" client-auth="want" cert-nickname="kaas" ssl3-tls-ciphers="+TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,+TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,+TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_DHE_DSS_WITH_AES_128_GCM_SHA256">
   </ssl>
</protocol>

步骤3、重启服务