OpenSSL CVE-2016-0800和CVE-2016-0703漏洞修复细节拾趣

  1. 引子

本文讲的是OpenSSL CVE-2016-0800和CVE-2016-0703漏洞修复细节拾趣,本来最近和360 Nirvan Team的DQ430愉快的参加某加密厂商的年度大会,结果openssl也出来碰热闹,也许真是为了DH兄弟送大礼,苦了我们这些安全运维的。

感谢Shawn的指点!
hf!

  1. 细节

360在内部信息安全实践历程中,“360信息安全部”逐步秉承最佳安全实践,在https等ssl领域逐渐做出了明显的变化。比如重要系统中禁止不安全的加密套件使用,来减少ssl的攻击面。

我们在今天的内部运维修复中发现了个有趣的现象或者说尝试,我们想去确定禁止不安全的加密套件会对今天的两个高危漏洞有什么影响。
CVE-2016-0800
CVE-2016-0703

0800漏洞官方已经描述了如果是cipher none的话,能保证是不受影响的,或者说这是一个缓解措施。

但是0703就不一样了,我们花了几个小时尝试去证明如果cipher none的话确实也是不受影响的。

0703过程大略如下:
client:
send hello msg ( 包括 ciphers,和一个随机数 cr )

server:
send hello msg ( 包括 ciphers,和一个随机数 sr )

client:
send masterkey msg ( 指定一个 cipher,且包含 masterkey 的一部分明文 mkc 和一部分密文 mks,mkc长度可为0 )

server:
send verify msg

client:
send finish msg

server:
send finish msg

这个过程由于client可以指定不安全的算法(RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export)
导致密文部分只有40bit

client 根据 cr, mk = mkc||mks, 和收到的 verify msg,可计算出 server key

server_key = MD5(mk||”0″||cr||sr)

所以我们认为攻击的条件依然需要类似RC4_128_WITH_MD5 的套件。
a、关键是 client 指定了 export cipher,导致 mks 只有5个字节

b、不止 RC4_128_WITH_MD5 一个 export,默认情况,openssl 编译出来共有两个 export cipher:

EXP-RC2-CBC-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export
EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export

c、计算出的 server_key 是 session key,双方可以互相计算

server_key = MD5(mk||”0″||cr||sr)
client_key = MD5(mk||”1″||cr||sr)
(“||”见 RSA PKCS1#v1.5)

d、server 回应的 verify msg 中大有玄机,是最终利用的关键,与sslv2标准有关,且听下回分解吧。

  1. 结尾

虽然能表明“360信息安全部”的安全实践能有效抵挡 CVE-2016-0703 的攻击,但在此依然希望大家按照官方的建议去升级对应的补丁。
gl!
以下是我们的基本修复建议:

漏洞编号: CVE-2016-0703
漏洞说明:
使用OpenSSL并支持SSLv2协议的服务器可接受指向长度非零非导出密钥组件的SSLv2连接握手,攻击者可利用这个缺陷解密已经建立的加密会话。
漏洞等级: 高

漏洞编号: CVE-2016-0800
漏洞说明:
SSLv2协议中存在一个填充内容缺陷,攻击者可以利用这个缺陷解密使用新版SSL/TLS协议会话中由RSA算法加密的内容。通过这种利用方式,可造成DROWN攻击(Decrypting RSA using Obsolete and Weakened eNcryption)
漏洞等级: 高

漏洞详情: https://www.openssl.org/news/secadv/20160301.txt

受影响的服务版本:
Apache: 非2.4.x版本
Nginx: 0.7.64、0.8.18及更早版本
Postfix: 早于2.9.14、2.10.8、2.11.6、3.0.2的版本 (在2015.07.20之前发布)
Openssl: 1.0.2a、1.0.1m、1.0.0r、0.9.8zf及更早版本

检测方式:

OpenSSL版本检测:
openssl version
若版本低于修复版本请更新openssl

针对web server:
openssl s_client -connect 待测域名或IP:443 -ssl2

针对SMTP server:
openssl s_client -connect 待测域名或IP:25 -starttls smtp -ssl2

如果出现如下错误信息,则SSLv2已禁用:
419:error:1407F0E5:SSL routines:SSL2_WRITE:ssl handshake failure:s2_pkt.c:428:

修复步骤:
(1). 升级OpenSSL软件包

CentOS、Redhat 可以通过以下命令来升级

#yum clean
#yum update openssl

对应的RPM包:
CentOS 5: openssl-0.9.8e-39.el5_11、 openssl-devel-0.9.8e-39.el5_11、 openssl-perl-0.9.8e-39.el5_11
CentOS 6: openssl-1.0.1e-42.el6_7.4、 openssl-devel-1.0.1e-42.el6_7.4、 openssl-perl-1.0.1e-42.el6_7.4、 openssl-static-1.0.1e-42.el6_7.4
CentOS 7: openssl-1.0.1e-51.el7_2.4、 openssl-devel-1.0.1e-51.el7_2.4、 openssl-libs-1.0.1e-51.el7_2.4、 openssl-perl-1.0.1e-51.el7_2.4、 openssl-static-1.0.1e-51.el7_2.4

(2). ubuntu 版本可以通过以下命令来升级

#apt-get upgrade openssl

禁用 Apache、Nginx、Postfix 中的SSLv2
在Apache 的 SSL 配置文件中禁用SSLv2
SSLProtocol all -SSLv2
重启apache服务
在 Nginx 的 SSL 配置文件中设置只允许使用 TLS 协议:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
重启nginx服务

在Postfix配置中禁用SSLv2

# Minimal recommended settings.  Whenever the built-in defaults are
# sufficient, let the built-in defaults stand by deleting any explicit

# overrides.  The default mandatory TLS protocols have never included

# SSLv2, check to make sure you have not inadvertently enabled it.

smtpd_tls_protocols = !SSLv2, !SSLv3

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3

tlsproxy_tls_protocols = $smtpd_tls_protocols

tlsproxy_tls_mandatory_protocols = $smtpd_tls_mandatory_protocols

smtp_tls_protocols = !SSLv2, !SSLv3

smtp_tls_mandatory_protocols = !SSLv2, !SSLv3

lmtp_tls_protocols = !SSLv2, !SSLv3

lmtp_tls_mandatory_protocols = !SSLv2, !SSLv3

smtpd_tls_ciphers = medium

smtp_tls_ciphers = medium

# Other best practices

# Strongly recommended:

# http://www.postfix.org/FORWARD_SECRECY_README.html#server_fs

smtpd_tls_dh1024_param_file=${config_directory}/dh2048.pem

smtpd_tls_eecdh_grade = strong

# Suggested, not strictly needed:

smtpd_tls_exclude_ciphers =

EXPORT, LOW, MD5, SEED, IDEA, RC2

smtp_tls_exclude_ciphers =

EXPORT, LOW, MD5, aDSS, kECDHe, kECDHr, kDHd, kDHr, SEED, IDEA, RC2

by 360信息安全部- au2o3t@360 CloudSec Team

原文发布时间为:三月 2, 2016
本文作者:aqniu
本文来自合作伙伴安全牛,了解相关信息可以关注安全牛。
原文链接:http://www.aqniu.com/learn/14036.html

时间: 2024-10-29 07:50:34

OpenSSL CVE-2016-0800和CVE-2016-0703漏洞修复细节拾趣的相关文章

绿盟科技互联网安全威胁周报2016.25 持续关注思科防火墙漏洞

绿盟科技发布了本周安全通告,周报编号NSFOCUS-16-25,绿盟科技漏洞库本周新增46条,其中高危12条.本次周报建议大家关注持续关注思科防火墙漏洞CVE-2016-6366,虽然思科已经给出补丁,但有消息说,攻击者也更新了代码. 焦点漏洞 漏洞描述:Cisco Adaptive Appliance SNMP远程执行代码漏洞 NSFOCUS ID:34586 CVEID:CVE-2016-6366 漏洞点评 Cisco Adaptive Security Appliance (ASA)Sof

绿盟科技互联网安全威胁周报2016.32 请关注GitLab目录遍历漏洞CVE-2016-9086

绿盟科技发布了本周安全通告,周报编号NSFOCUS-16-32,绿盟科技漏洞库本周新增98条,其中高危83条.本次周报建议大家关注GitLab目录遍历漏洞,可导致远程代码执行.目前官方已经给出了解决方案,强烈建议用户检查自己的gitlab是否为受影响的版本,如果是,按照官方方案进行修复. 焦点漏洞 GitLab目录遍历漏洞 NSFOCUS ID  35391 CVE ID  CVE-2016-9086 受影响版本 8.13.0-8.13.2 8.12.0-8.12.7 8.11.0-8.11.9

绿盟科技互联网安全威胁周报2016.34 本周关注ntp拒绝服务漏洞

绿盟科技发布了本周安全通告,周报编号NSFOCUS-16-34,绿盟科技漏洞库本周新增42条,其中高危13条.本次周报建议大家关注 ntp拒绝服务漏洞 ,可导致信息泄露.目前官方已经发布更新,强烈建议用户检查自己使用的ntp是否为受影响的版本,如果是,尽快升级. 焦点漏洞 ntp拒绝服务漏洞 NSFOCUS ID 35472 CVE ID CVE-2016-9312 受影响版本 nptd version < ntp-4.2.8p9 ntp-4.3.0 <= ntpd version <

黑云压城城欲摧 - 2016年iOS公开可利用漏洞总结

黑云压城城欲摧 - 2016年iOS公开可利用漏洞总结 作者:蒸米,耀刺,黑雪 @ Team OverSky   0x00 序 iOS的安全性远比大家的想象中脆弱,除了没有公开的漏洞以外,还有很多已经公开并且可被利用的漏洞,本报告总结了2016年比较严重的iOS漏洞(可用于远程代码执行或越狱),希望能够对大家移动安全方面的工作和研究带来一些帮助. 0x01 iOS 10.1.1 公开的可利用漏洞 mach_portal攻击链:该攻击链是由Google Project Zero的Ian Beer公

价值10000美元的Uber漏洞,可随意重置任何账户的密码

本文讲的是价值10000美元的Uber漏洞,可随意重置任何账户的密码, Uber曝出"密码重置"漏洞 近日,一名意大利安全专家在Uber系统中发现了一个关键的身份验证不当漏洞,利用该漏洞,攻击者可以对任何账户重新设置密码. 意大利安全专家Vincenzo C(网名为@Procode701)在7个月前就发现了Uber平台存在这一关键漏洞,该漏洞允许攻击者对任何Uber帐户重置密码.据悉,该研究人员通过Uber在Hackerone平台发布的"漏洞悬赏计划"报告了该&qu

网络边界的迷失?关键要获得真实可视性

Ixia解决方案营销高级总监AregAlimian向您阐述消除网络盲点以及确保可靠.快速与安全业务应用的最佳实践. 您的企业网络可曾有过边界迷失?这种案例并不少见.随着虚拟化.云迁移.物联网设备的普及不断挑战着各个企业的网络边界,我们对这些界限与界限之外网络的能见度越来越低.而IT基础架构极少通过单一流程进行云迁徙则使得情况愈加复杂.企业对预算.安全性与性能的考虑意味着它们正在使用混合的模式,不论是否是业务关键型工作负载也将被暴露于主要内部部署和私有云的环境之外. 这些复杂的混合环境和内部应用.

绿盟科技互联网安全威胁周报2016.29 ISC BIND buffer.c拒绝服务漏洞CVE-2016-2776

绿盟科技发布了本周安全通告,周报编号NSFOCUS-16-29,绿盟科技漏洞库本周新增140条,其中高危116条.本次周报建议大家关注持续关注ISC BIND buffer.c拒绝服务漏洞CVE-2016-2776,目前漏洞细节已经披露,可能导致大规模对此漏洞的利用,强烈建议用户尽快安装官方发布的修复补丁. 焦点漏洞 ISC BIND buffer.c拒绝服务漏洞 NSFOCUS ID 34961 CVE ID CVE-2016-2776 受影响版本 BIND 9 version 9.0.x -

绿盟科技互联网安全威胁周报2016.28 思科操作系统0Day漏洞CVE-2016-6415

绿盟科技发布了本周安全通告,周报编号NSFOCUS-16-28,绿盟科技漏洞库本周新增66条,其中高危14条.本次周报建议大家关注持续关注Cisco IOS操作系统信息泄露漏洞CVE-2016-6415,思科公司官方网站已针对该漏洞发布漏洞检测工具,但修复补丁暂未发布. 焦点漏洞 Cisco IOS操作系统信息泄露漏洞(CVE-2016-6415) NSFOCUS ID:33447 CVE ID:CVE-2016-6415 受影响版本 Cisco IOS XR 4.3.x Cisco IOS X

绿盟科技互联网安全威胁周报2016.31 Memcached多个整数溢出漏洞CVE-2016-8704

绿盟科技发布了本周安全通告,周报编号NSFOCUS-16-31,绿盟科技漏洞库本周新增31条,其中高危21条.本次周报建议大家关注持续关注Memcached多个整数溢出漏洞CVE-2016-8704.CVE-2016-8705.CVE-2016-8706,目前官方已发布修补后的最新版本,请广大用户检查自身Memcache版本,尽快升级. 焦点漏洞 Memcached多个整数溢出漏洞 CVE ID CVE-2016-8704 CVE-2016-8705 CVE-2016-8706 受影响版本 ve