暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SSL/TLS漏洞修复实施方案

原创 一个老兵 2024-05-20
7280

漏洞编码

(CVE-2015-2808)

(CVE-2011-1473)

(CVE-2013-2566)

(CVE-2016-2183)

(CVE-2014-3566)

2022年8月

目录

SSL/TLS漏洞修复实施方案 1

一、 漏洞详情 2

1、 SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 2

4、 SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566) 3

5、 检测到目标主机加密通信支持的SSL加密算法 3

6、 SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566) 3

二、 漏洞服务器 3

三、 修复步骤 4

1、 SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 4

2、无法禁用重新协商策略的建议: 6

3、 SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566) 6

1、禁止apache服务器使用RC4加密算法 6

2、关于lighttpd加密算法  6

4、 SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 7

5、 SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566) 7

6、 检测到目标主机加密通信支持的SSL加密算法 9

漏洞详情

  1. SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

"TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。

TLS, SSH, IPSec协商及其他产品中使用的IDEA、DES及Triple DES密码或者3DES及Triple 3DES存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击,获取纯文本数据。

<*来源:Karthik Bhargavan

Gaetan Leurent

链接:https://www.openssl.org/news/secadv/20160922.txt

*>"

  1. 支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)

该漏洞存在于SSL renegotiation的过程中。对于使用SSL重协商功能的服务都会受其影响。特别的,renegotiation被用于浏览器到服务器之间的验证。虽然目前可以在不启用renegotiation进程的情况下使用HTTPS,但很多服务器的默认设置均启用了renegotiation功能。该漏洞只需要一台普通电脑和DSL连接即可轻易攻破SSL服务器。而对于大型服务器集群来说,则需要20台电脑和120Kbps的网络连接即可实现。SSL是银行、网上电子邮件服务和其他用于服务器和用户之间保护私人数据并安全通信必不可少的功能。所以本次拒绝服务漏洞影响范围非常广危害非常大。

  1. SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)

SSL/TLS协议是一个被广泛使用的加密协议,Bar Mitzvah攻击实际上是利用了"不变性漏洞",这是RC4算法中的一个缺陷,它能够在某些情况下泄露SSL/TLS加密流量中的密文,从而将账户用户名密码,信用卡数据和其他敏感信息泄露给黑客。

  1. SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)

"安全套接层(Secure Sockets Layer,SSL),一种安全协议,是网景公司(Netscape)在推出Web浏览器首版的同时提出的,目的是为网络通信提供安全及数据完整性。SSL在传输层对网络连接进行加密。传输层安全(Transport Layer Security),IETF对SSL协议标准化(RFC 2246)后的产物,与SSL 3.0差异很小。

SSL/TLS内使用的RC4算法存在单字节偏差安全漏洞,可允许远程攻击者通过分析统计使用的大量相同的明文会话,利用此漏洞恢复纯文本信息。"

  1. 检测到目标主机加密通信支持的SSL加密算法

该插件连接到目标主机服务,检测到目标服务加密通信使用的SSL加密算法。

  1. SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566)

"SSL3.0是已过时且不安全的协议,目前已被TLS 1.0,TLS 1.1,TLS 1.2替代,因为兼容性原因,大多数的TLS实现依然兼容SSL3.0。

为了通用性的考虑,目前多数浏览器版本都支持SSL3.0,TLS协议的握手阶段包含了版本协商步骤,一般来说,客户端和服务器端的最新的协议版本将会被使用。其在与服务器端的握手阶段进行版本协商的时候,首先提供其所支持协议的最新版本,若该握手失败,则尝试以较旧的协议版本协商。能够实施中间人攻击的攻击者通过使受影响版本浏览器与服务器端使用较新协议的协商的连接失败,可以成功实现降级攻击,从而使得客户端与服务器端使用不安全的SSL3.0进行通信,此时,由于SSL 3.0使用的CBC块加密的实现存在漏洞,攻击者可以成功破解SSL连接的加密信息,比如获取用户cookie数据。这种攻击被称为POODLE攻击(Padding Oracle On Downgraded Legacy Encryption)。

此漏洞影响绝大多数SSL服务器和客户端,影响范围广泛。但攻击者如要利用成功,需要能够控制客户端和服务器之间的数据(执行中间人攻击)。"

漏洞服务器

序号

IP地址

漏洞编号

修复方法

1

10.208.200.6

CVE-2015-2808

CVE-2011-1473

CVE-2013-2566

CVE-2016-2183

CVE-2014-3566

详见目录三、1

详见目录三、2

详见目录三、3

详见目录三、4

详见目录三、5

2

10.208.200.7

3

10.208.200.8

4

10.208.200.9

修复步骤

SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

对于NGINX的修补

修改nginx配置文件中的 ssl_ciphers项

ssl_ciphers"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

ssl_prefer_server_ciphers on;

重新加载

$sudo /etc/init.d/nginx reload

对于apache的修复

打开配置文件

$ sudo vi /etc/httpd/conf.d/ssl.conf

修改配置

SSLCipherSuite

HIGH:MEDIUM:!aNULL:!MD5;!RC4

$ sudo /etc/init.d/httpd restart

对于TOMCAT的修复

server.xml 中SSL connector加入以下内容:

SSLEnabled="true"sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"ciphers=“TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA”

tomcat例子:

<connector port="443"maxhttpheadersize=“8192” address="127.0.0.1"enablelookups=“false” disableuploadtimeout="true"acceptCount=“100” scheme=“https” secure="true"clientAuth=“false” SSLEnabled="true"sslEnabledProtocols=“TLSv1,TLSv1.1,TLSv1.2” ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"keystoreFile="mydomain.key"keystorePass="password"truststoreFile="mytruststore.truststore"truststorePass=“password”/>;

  1. 支持TLS Client-initiated重协商攻击(CVE-2011-1473)

Apache解决办法:

升级到Apache 2.2.15以后版本

IIS解决办法:

IIS 5.0启用SSL服务时,也会受影响。可以升级IIS 6.0到更高的版本。

Lighttpd解决办法:

建议升级到lighttpd 1.4.30或者更高,并设置ssl.disable-client-renegotiation = “enable”。

http://download.lighttpd.net/lighttpd/releases-1.4.x/

Nginx解决办法:

0.7.x升级到nginx 0.7.64

0.8.x升级到 0.8.23 以及更高版本。

http://nginx.org/en/download.html

Tomcat解决办法:

1、使用NIO connector代替BIO connector,因为NIO不支持重协商,参考如下配置:

(可能会影响Tomcat性能);

2、配置Nginx反向代理,在Nginx中修复OpenSSL相关问题。

参考链接:

https://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

http://tomcat.apache.org/security-7.html#Not_a_vulnerability_in_Tomcat

https://tomcat.apache.org/tomcat-6.0-doc/config/http.html#Connector_Comparison

Squid解决办法:

升级到3.5.24以及以后版本

http://www.squid-cache.org/Versions/

缓解或者修复建议:

1、建议关闭重协商,举例:ssl renegotiation disable

2、无法禁用重新协商策略的建议:

a)则仅允许安全重新协商并限制SSL握手的次数,或者通过添加SSL加速器之类的产品来升级服务器资源。不支持不安全的重新协商

b)请限制SSL握手的次数,或者通过添加SSL加速器之类的产品来升级服务器资源。

c)增加防火墙规则,限制端口访问等策略

d)使用iptable规则,限制每个ip地址的请求数

如果扫描器跟目标机之间存在WAF,请优先检查WAF配置。

  1. SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)

避免使用RC4算法

1、禁止apache服务器使用RC4加密算法

vi /etc/httpd/conf.d/ssl.conf

修改为如下配置

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!RC4

重启apache服务

2、关于lighttpd加密算法

在配置文件lighttpd.conf中禁用RC4算法,例如:

ssl.cipher-list = "“EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"”

重启lighttpd 服务。

  1. SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

建议:避免使用IDEA、DES和3DES算法

1、OpenSSL Security Advisory [22 Sep 2016]

链接:https://www.openssl.org/news/secadv/20160922.txt

请在下列网页下载最新版本:

https://www.openssl.org/source/

2、对于nginx、apache、lighttpd等服务器禁止使用DES加密算法

主要是修改conf文件

编辑nginx.conf文件,修改ssl_ciphers后面的参数

server {

listen 443 ssl;

server_name www.cookie.com;

ssl_certificate cert/2022_www.cookie.com.pem;

ssl_certificate_key cert/2022_www.cookie.com.key;

ssl_session_timeout 5m;

#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

ssl_ciphers HIGH:!ADH:!MD5;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

重启nginx服务

  1. SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566)

临时解决方法:

SSL如果不能及时安装补丁,建议采用如下防护措施:

* 禁用SSL 3.0协议(ssl version ssl3.0 disable)。

目前常用浏览器只有IE 6.0仍然不支持TLS 1.0,禁用SSL 3.0协议将影响IE 6客户的SSL访问。

服务端禁用方法:

Apache 2.x:

在mod_ssl配置文件中使用如下命令禁用SSLv2和SSLv3:

SSLProtocol All -SSLv2 -SSLv3

重启Apache

Nginx:

在配置文件中使用:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

重启Nginx

lighttpd:

确认lighttpd为1.4.29及以上版本

在配置文件中使用

ssl.use-sslv3 = ““disable””

重启lighttpd

tomcat参考:

https://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

浏览器禁用方法:

IE:

““工具”” -> ““Internet 选项”” -> ““高级”” ,取消""使用 SSL 3.0""的复选框。

Chrome:

复制一个平时打开 Chrome 浏览器的快捷方式,在新的快捷方式上右键点击,进入属性,

在"“目标”"后面的空格中字段的末尾输入以下命令 --ssl-version-min=tls1

FireFox:

在地址栏输入"“about:config”",然后将 security.tls.version.min 调至 1。

如果扫描器跟目标机之间存在WAF,请优先检查WAF配置。"

  1. 检测到目标主机加密通信支持的SSL加密算法

该漏洞仅仅是一个信息获取的漏洞,可以不做修复。

回退方案

操作前对系统配置文件进行备份,当出现异常问题可以通过备份文件进行恢复。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论