热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CVE20160800:OpenSSL安全公告(2016.3.2)

OpenSSL安全公告-北京时间2016年3月2日提示:在此次更新中,OpenSSL默认禁用了SSLv2协议,并且移除了SSLv2协议的EXPORT系列加密算法。考虑到我们在此公告中所罗列出来的问题,

http://p5.qhimg.com/t01659a698e876faa84.jpg

OpenSSL安全公告-北京时间2016年3月2日

提示:在此次更新中,OpenSSL默认禁用了SSLv2协议,并且移除了SSLv2协议的EXPORT系列加密算法。考虑到我们在此公告中所罗列出来的问题,以及协议中存在的一些其他问题(具体信息请点击这里进行查看),我们强烈建议用户停止使用SSLv2协议。

利用SSLv2协议漏洞来对TLS进行跨协议攻击(DROWN)(CVE-2016-0800)

漏洞严重程度:高

研究人员发现了一种跨协议攻击,如果服务器使用了SSLv2协议和EXPORT加密套件,那么攻击者就可利用这项技术来对服务器的TLS会话信息进行破解。需要注意的是,客户端与不存在漏洞的服务器进行通信时,攻击者可以利用其他使用了SSLv2协议和EXPORT加密套件(即使服务器使用了不同的协议,例如SMTP,IMAP或者POP等协议)的服务器RSA密钥来对上述两者的通信数据进行破解。文中所指的这个漏洞就是DROWN(CVE-2016-0800)。

如果攻击者想要破解一个会话通信密钥,那么他不仅需要进行大约2的50次方次计算,而且还要对目标服务器中的上千条通信链接进行处理。但是,现在有一种效率更加高的攻击方式,这种攻击方式也是DROWN攻击的变种版本,它可以对存在漏洞的OpenSSL服务器(版本在1.0.2a,1.0.1m,1.0.0r 和0.9.8zf以下的OpenSSL)进行攻击。

用户可以通过禁用SSL/TLS服务器中的SSLv2协议来解决这个问题,我们强烈建议用户尽快处理这一问题。而且禁用所有的SSLv2加密同样可以解决这一问题。除此之外,我们也已经发布了一个针对漏洞CVE-2015-3197的修复补丁(修复了OpenSSL 1.0.1r和1.0.2f中的安全问题),请用户尽快进行安装和部署。如果服务器没有禁用SSLv2 协议,也没有安装能够修复漏洞CVE-2015-3197的补丁,那么服务器将有可能受到DROWN攻击。即使你可能会认为禁用所有的SSLv2加密也能达到同样的效果,但这只是表面上的,因为攻击者可以通过其他的手段强迫服务器使用SSLv2协议以及EXPORT加密工具。

针对DROWN攻击,OpenSSL 1.0.2g和1.0.1s部署了下列缓解措施:

现在,在OpenSSL安装部署完成之后,默认会禁用SSLv2协议。如果用户在配置过程中没有提供 “enable-ssl2”参数,那么服务器是不支持使用SSLv2协议的。即便是用户使用了“enable-ssl2”参数,用户也可以利用灵活性和扩展性更强的SSLv23_method()来进行通信的协商处理,该方法将会调用下列内容:

SSL_CTX_clear_options(ctx, SSL_OP_NO_SSLv2);
或者
SSL_clear_options(ssl, SSL_OP_NO_SSLv2);

由于攻击者可以通过穷举搜索等方法恢复通信密钥,所以我们也移除了OpenSSL中的SSLv2加密套件。更具体一点来说,SSLv2 40位的EXOPRT密码以及SSLv2 56位的DES加密算法都被移除了。

除此之外,新版的OpenSSL也默认禁用了SSLv3协议中的弱密码,默认配置中也不再提供“enable-weak-ssl-ciphers”参数,而且也不再提供“EXPORT”系列密码和低强度的密码。

l   使用了OpenSSL 1.0.2的用户应该立刻将OpenSSL更新至1.0.2g;

l   使用了OpenSSL 1.0.1的用户应该立刻将OpenSSL更新至1.0.1s;

Nimrod Aviram和Sebastian Schinzel于2015年12月29日将这一问题报告给了OpenSSL团队。随后,OpenSSL团队的Viktor Dukhovni和Matt Caswell共同开发出了针对此漏洞的修复补丁。

DSA算法代码中的多重释放漏洞(CVE-2016-0705)

漏洞严重程度:低

研究人员在OpenSSL解析DSA私钥的过程中发现了一个多重释放漏洞,如果服务器端程序从一个不受信任的来源接收到了DSA密钥,那么攻击者就可以利用这个漏洞来对目标主机进行拒绝服务攻击(DoS),或者引起服务器的内存崩溃。但是发生这种情况的可能性较小。

这个漏洞将会影响OpenSSL 1.0.2和1.0.1,所以我们建议用户:

l   使用了OpenSSL 1.0.2的用户应该立刻将OpenSSL更新至1.0.2g;

l   使用了OpenSSL 1.0.1的用户应该立刻将OpenSSL更新至1.0.1s;

Adam Langley于2016年2月7日将这一漏洞的详细信息报告给了OpenSSL团队。OpenSSL团队的Stephen Henson开发出了针对此漏洞的修复补丁。

BIO_*printf函数中的内存问题得到了修复(CVE-2016-0799)

漏洞严重程度:低

在此之前,安全研究人员在OpenSSL的BIO_*printf()函数中发现了几个问题。但现在这些问题都已经得到了解决。

系统在调用内部函数“fmtstr”来处理BIO_*printf函数中的“%s”格式字符串时,需要对字符串的长度进行计算,但是这将有可能导致数据溢出的发生,并且在该函数打印输出某一长度非常大的字符串时,也有可能引起系统的崩溃。

BIO_*pinrtf函数的主要功能是负责解释和转换格式字符串,该函数的输入参数为_dpor()。dpor()可以以一种渐进的方式对格式字符串中的字符逐个进行扫描,并利用doapr_outch()函数对数据进行输出。

除此之外,当内存空间分配失败时,内部函数“doapr_outch”仍然会尝试向内存空间写入带外数据(OOB)。在1.0.2及其以下版本中,这一问题将会导致系统在分配内存缓冲区的空间时,分配空间的大小会超过INT_MAX长度所规定的值,而这种情况一般会在系统处理某一较长的“%s”格式字符串时发生。与此同时,系统还有可能会发生内存泄漏。

考虑到编译器的工作机制,第一个问题很有可能会掩盖上述的第二个问题。因为在这种情况下,大量不受信任的数据就可以被传递至BIO_*pirntf函数之中,然后攻击者就可以利用这些漏洞来对目标进行攻击。如果应用程序使用了这些功能函数,那么他们的系统就变得不安全了。当OpenSSL需要打印输出人类可识别的ASN.1数据时,将会使用到这些函数。因此,如果需要输出的数据来自于一个不受信任的信息源,那么负责打印输出这些数据的应用程序也将有可能受到攻击。除此之外,如果OpenSSL的命令行工具所要打印输出ASN.1数据来源于不受信任的信息源,那么它同样也是可以被攻击的。

这个问题将会影响OpenSSL 1.0.2和1.0.1。所以我们建议用户:

l   使用了OpenSSL 1.0.2的用户应该立刻将OpenSSL更新至1.0.2g;

l   使用了OpenSSL 1.0.1的用户应该立刻将OpenSSL更新至1.0.1s;

Guido Vranken于2016年2月23日将此问题报告给了OpenSSL团队。OpenSSL团队的Matt Caswell已经开发出了针对此漏洞的修复补丁。

除了OpenSSL之外,Apache httpd也使用了BIO_printf函数,所以它也会受到这一漏洞的影响。但是,我们目前还没有对其进行分析检测,所以暂时还不知道该漏洞将会给这一产品带来多大的影响。除此之外,还有一些其他著名的应用程序也使用了BIO_printf(),具体信息请点击这里进行获取。

用户提醒

根据我们的产品发布策略以及之前所发布的安全公告(具体信息请点击这里查看),我们将会在2016年12月31日停止对OpenSSL 1.0.1提供技术支持。在此之后,OpenSSL团队将不会再为此版本发布任何的安全更新补丁。所以我们建议OpenSSL 1.0.1的广大用户尽快更新OpenSSL版本。

除此之外,OpenSSL团队已经于2015年12月31日时停止对OpenSSL 0.9.8和1.0.0提供技术支持,这些版本将不再接收到相应的安全更新。

参考信息

安全公告地址:

https://www.openssl.org/news/secadv/20160301.txt

请注意:随着时间的推移,我们所提供的在线公告可能会随时进行更新,用户可以持续关注我们的网站来获取有关这些问题的最新信息。

如果用户对OpenSSL漏洞的安全等级分类方式感兴趣的话,可以点击下列地址进行了解:

https://www.openssl.org/policies/secpolicy.html

可以参考:

http://bobao.360.cn/news/detail/2787.html

        漏洞检测工具:https://github.com/nimia/public_drown_scanner 

        360安全播报会对本漏洞持续报道,并且在此文持续更新文章链接


推荐阅读
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了使用数据库管理员用户执行onstat -l命令来监控GBase8s数据库的物理日志和逻辑日志的使用情况,并强调了对已使用的逻辑日志是否及时备份的重要性。同时提供了监控方法和注意事项。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
author-avatar
何包蛋0727
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有