OpenSSL技术分析与处理建议

2016年4月28日(Thu Apr 28 13:20:13 UTC 2016),OpenSSL官方公告,将会在2016年5月4日(Thu May 3 12:00-15:00 UTC 2016)发布新版本,修复多个关于OpenSSL高级别威胁漏洞。

OpenSSL公告地址如下:
https://mta.openssl.org/pipermail/openssl-announce/2016-April/000069.html

OpenSSL官方定级标准:

OpenSSL官方定级标准

]1 OpenSSL官方定级标准

2016年5月4日(Thu May 3 13:57:13 UTC 2016),OpenSSL发布新版本代码,其中修复了2个高级别威胁漏洞和4个低级别威胁漏洞。

CVE_ID

]2 CVE_ID

详情见如下地址:
https://www.openssl.org/news/secadv/20160503.txt

什么是OpenSSL?

SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输,能使用户/服务器之间的通讯数据不被攻击者窃听,并且始终对服务器进行认证和有条件的对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上,实现对应用层数据的加密传输与完整性保护。

OpenSSL是一个强大的安全套接字层密码开源库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

大多数通过SSL/TLS协议加密的网站都使用了OpenSSL的开源软件包。当OpenSSL被爆出安全漏洞,影响将会涉及到所有使用OpenSSL开源包的应用。

OpenSSL产品生命周期

  • 版本1.1.0技术支持到2018年4月30日。
  • 版本1.0.2技术支持到2019年12月31日。
  • 版本1.0.1技术支持到2016年12月31日。
  • 版本1.0.0已经停止支持。
  • 版本0.9.8已经停止支持。

影响的版本

  • OpenSSL Project OpenSSL < 1.0.2h
  • OpenSSL Project OpenSSL < 1.0.1t

不受影响的版本

  • OpenSSL Project OpenSSL 1.0.2h
  • OpenSSL Project OpenSSL 1.0.1t

漏洞技术分析

OpenSSL 2016年5月发布的安全公告中,有2个安全等级标记为High的漏洞,分别为CVE-2015-2107和CVE2015-2108。下面结合OpenSSL的安全公告和源码信息来分析一下这两个漏洞。

  • CVE-2015-2107 Padding oracle in AES-NI CBC MAC check

攻击者利用此漏洞可以通过中间人的方式解密使用AES CBC模式加密的网络流量。
此漏洞是由修补CVE-2013-0169(Lucky 13 padding attack)不充分导致的。在CVE-2013-0169的 修复中通过对填充字段的检查,确保每次都读取相同字节并比较消息摘要和填充字节的数据,但其没有检查是否有足够的空间容纳消息摘要和填充字节的数据。
根据源码信息,如下图所示,可以看到在修复方案中通过constant_time_ge函数增加了对填充字节长度的校验。

代码12

由constant_time_ge函数确保最大可以填充字节的长度始终大于当前要填充字节的长度。

代码13

  • CVE-2016-2108 Memory corruption in the ASN.1 encoder

攻击者利用此漏洞可以越界写内存数据,造成内存破坏。
ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。

OpenSSL中的ASN.1解析器在对数据解析时没有正确处理特定标签,当遇到V_ASN1_NEG_INTEGER和 V_ASN1_NEG_ENUMERATED标签时,ASN.1解析器也会将其视作ASN1_ANY类型,从而解析其中的数据。当数据再次编码序列化时,可能造成数据越界写入,引起内存损坏。

在修复方案中,可以看到ASN.1解析器只对包含V_ASN1_INTEGER标签的数据视作ASN1_ANY类型, 删除了之前可能引发漏洞的V_ASN1_NEG_INTEGER和V_ASN1_NEG_ENUMERATED标签,如图所示。

代码14

V_ASN1_NEG_INTEGER和V_ASN1_NEG_ENUMERATED标签只用作内部标识,不再用于数据在网络上传输时的编码标签。

修复方法

  • OpenSSL 1.0.2的用户可以升级到 1.0.2h。
  • OpenSSL 1.0.1的用户可以升级到 1.0.1t。

目前厂商已经发布了升级补丁修复了安全问题,请到厂商主页下载:
http://www.openssl.org/

绿盟科技处理建议

1) 内网安全管理,防欺骗,网关设备和终端绑定,防止中间人攻击。

2) 使用扫描类产品确定使用了受影响OpenSSL版本的设备并进行OpenSSL版本升级。根据官方给出的每个版本的生命周期,建议用户升级到1.0.2h。

声 明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技

绿盟科技(NSFOCUS Co., Ltd.)是中国网络安全领域的领导企业,致力于网络和系统安全问题的研究、高端网络安全产品的研发、销售与网络安全服务,在入侵检测/保护、远程评估、 DDoS攻击防护等方面提供具有国际竞争能力的先进产品,是国内最具安全服务经验的专业公司。有关绿盟科技的详情请参见: http://www.nsfocus.com

如果您需要了解更多内容,可以
加入QQ群:486207500
直接询问:010-68438880-8669

Spread the word. Share this post!

Meet The Author

Leave Comment