近日,OpenSSL官方发布了版本更新,修复了多个OpenSSL漏洞,这次更新所修复的漏洞中,有两个危害等级较高的为CVE-2016-6304和CVE-2016-6305。绿盟科技对此漏洞进行了技术分析并提出了防护方案。

自2014年4月心脏滴血漏洞爆发以来,绿盟科技对OpenSSL的CVE漏洞进行密切的监控,据绿盟科技威胁情报中心(NTI)统计到的数据显示,2年来OpenSSL漏洞变化不大总体持平,总计高危漏洞13个,其中今年9月份3个高危漏洞。绿盟科技漏洞库迄今为止收录了82个重要漏洞。

OpenSSL漏洞影响范围

据据绿盟科技威胁情报中心(NTI)统计到的数据显示,全球OpenSSL主机分布如下:

全球受OpenSSL漏洞影响范围如下:

G20成员国受OpenSSL漏洞影响范围如下:

OpenSSL漏洞影响的版本

OpenSSL Project OpenSSL < 1.1.0a

OpenSSL Project OpenSSL < 1.0.2i

OpenSSL Project OpenSSL < 1.0.1u

OpenSSL漏洞不受影响的版本

OpenSSL Project OpenSSL 1.1.0a

OpenSSL Project OpenSSL 1.0.2i

OpenSSL Project OpenSSL 1.0.1u

OpenSSL漏洞分析

这次更新所修复的漏洞中,有两个危害等级较高的为CVE-2016-6304和CVE-2016-6305。

OpenSSL高危漏洞:CVE-2016-6304

该漏洞的成因是,客户端向服务器持续发送超大的OCSP状态请求扩展,在此过程中,利用TLS扩展 “TLSEXT_TYPE_status_request”填充OCSP ids内存,由于攻击者不断请求重商,从而耗尽服务器的内存导致拒绝服务。

分析官方公布的修复代码,发现所做的修改主要是添加了对上一次握手过程的PACKET_remaining(&responder_id_list)的判断:如果大于0,则将所有OCSP_RESPIDs置空,并保存SSL_AD_INTERNAL_ERROR的状态;否则直接将所有OCSP_RESPIDs置空。代码修复情况如下图所示:

这样就避免了OCSP ids内存不断增加造成的拒绝服务。

OpenSSL高危漏洞:CVE-2016-6305

该漏洞的成因是,攻击者可以通过发送一个空记录,从而在调用SSL_peek()函数时引起拒绝服务。含有漏洞的代码如下:

if (!peek) {
SSL3_RECORD_sub_length(rr, n);
SSL3_RECORD_add_off(rr, n);

从上面的代码可以看到,如果peek为空,!peek则为真,然后进入代码段中,直接进行sub和add等运算,这样就会进入到一个死循环当中,程序不能继续执行。

漏洞修复之后的代码如下图所示:

代码会对读取的记录rr进行长度计算,如果为0,则重新读取下一个记录,从而保证程序顺利进行。

OpenSSL漏洞修复建议

官方已经发布版本更新,建议尽快升级到最新版,下载链接如下:

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

如果无法升级到最新版本,为了在一定程度上缓解该威胁,则需要重新编译OpenSSL源代码,在重新编译的时候,启用“no-ocsp”编译时选项。

  1. 产品服务:使用绿盟科技的产品进行检测及防护,比如绿盟远程评估系统RSAS进行安全评估,使用绿盟Web应用防火墙WAF提供防护。
  2. 短期服务:绿盟科技工程师现场处理。确保第一时间消除网络内相关风险点,控制事件影响范围,提供事件分析报告。
  3. 中期服务:提供 3-6个月的风险监控与巡检服务。根除风险,确保事件不复发。
  4. 长期服务:基于行业业务风险解决方案(威胁情报+攻击溯源+专业安全服务)。

OpenSSL漏洞汇总描述

2016年9月22日,OpenSSL官方发布了版本更新,修复了多个漏洞:

OpenSSL漏洞01:CVE-2016-6304

提交时间:2016年8月29日

漏洞描述:OpenSSL服务器在默认配置下,一个恶意客户端可以向服务器持续发送超大的OCSP状态请求扩展,从而耗尽服务器的内存导致拒绝服务。

严重程度:高

OpenSSL漏洞02:CVE-2016-6305

提交时间:2016年9月10日

漏洞描述:攻击者可以通过发送一个空记录,从而在调用SSL_peek()函数时引起拒绝服务。

严重程度:中

OpenSSL漏洞03:CVE-2016-2183

提交时间:2016年8月16日

漏洞描述:该漏洞涉及SWEET32攻击,一种针对64位分组密码算法的生日攻击。

严重程度:低

OpenSSL漏洞04:CVE-2016-6303

提交时间:2016年8月11日

漏洞描述:该漏洞是存在于函数MDC2_Update()中的一个整数溢出,导致内存破坏,进而允许拒绝服务攻击。

严重程度:低

OpenSSL漏洞05:CVE-2016-6302

提交时间:2016年8月19日

漏洞描述:位于ssl/t1_lib.c中的函数tls_decrypt_ticket(),在确认ticket的长度时没有考虑HMAC的大小,导致内存越界读取,进而引起拒绝服务。

严重程度:低

OpenSSL漏洞06:CVE-2016-2182

提交时间:2016年8月2日

漏洞描述:位于crypto/bn/bn_print.c的函数BN_bn2dec()没有检验BN_div_word()函数的返回值,允许内存越界写入,从而引起拒绝服务。

严重程度:低

OpenSSL漏洞07:CVE-2016-2180

提交时间:2016年7月21日

漏洞描述:位于crypto/ts/ts_lib.c中的函数TS_OBJ_print_bio()存在越界写入问题,允许拒绝服务。

严重程度:低

OpenSSL漏洞08:CVE-2016-2177

提交时间:2016年5月4日

漏洞描述:在计算堆缓冲区的边界时出错,允许攻击者发起拒绝服务攻击。

严重程度:低

OpenSSL漏洞09:CVE-2016-2178

提交时间:2016年5月23日

漏洞描述:位于crypto/dsa/dsa_ossl.c中的函数dsa_sign_setup(),没有正确处理constant-time,允许攻击者通过边信道攻击获得DSA的私钥。

严重程度:低

OpenSSL漏洞10: CVE-2016-2179

提交时间:2016年6月22日

漏洞描述:在DTLS的实现中,没有正确处理未按序到达的握手消息缓存,允许攻击者同时维护多个精心构造的DTLS会话,导致拒绝服务。

严重程度:低

OpenSSL漏洞11: CVE-2016-2181

提交时间:2015年11月21日

漏洞描述:DTLS实现中的抗重放攻击部分存在缺陷,允许攻击者发起拒绝服务攻击。

严重程度:低

OpenSSL漏洞12:CVE-2016-6306

提交时间:2016年8月22日

漏洞描述:在OpenSSL的1.0.2及更早版本中,缺少对一些消息长度的校验,导致内存越界读取,在理论上允许拒绝服务攻击。

严重程度:低

OpenSSL漏洞13: CVE-2016-6307

提交时间:2016年9月18日

漏洞描述:tls_get_message_header()函数存在检查缺陷,导致攻击者可以通过精心构造的数据包,使内存过度分配,进而借此大量消耗服务器的内存导致拒绝服务。

严重程度:低

OpenSSL漏洞14:CVE-2016-6308

提交时间:2016年9月18日

漏洞描述:dtls1_preprocess_fragment()存在检查缺陷,导致服务器的内存可以过度分配,进而以前拒绝服务攻击。

严重程度:低

官方公告地址如下:https://www.openssl.org/news/secadv/20160922.txt

什么是OpenSSL?

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

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

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

绿盟科技声明

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

绿盟科技发布OpenSSL高危漏洞技术分析与防护方案的相关文章请参看

OpenSSL安全公告高危漏洞 可以对默认配置的服务器发动DDoS攻击

原文发布时间:2017年3月24日

本文由:绿盟科技 发布,版权归属于原作者

原文链接:http://toutiao.secjia.com/nsfocus-released-openssl-high-risk-vulnerability-analysis-and-protect-solution

本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站

绿盟科技发布OpenSSL高危漏洞技术分析与防护方案 G20成员国美国、中国、德国受影响较大...相关推荐

  1. 绿盟科技 linux漏洞,绿盟科技发布LINUX内核本地提权漏洞技术分析与防护方案

    Linux内核的内存子系统在处理写时拷贝(Copy-on-Write,缩写为COW)时存在条件竞争漏洞,导致可以破坏私有只读内存映射.一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,进 ...

  2. NetSarang软件中nssock2.dll模块被植入恶意代码技术分析与防护方案

    NetSarang是一家提供安全连接解决方案的公司,该公司的产品主要包括Xmanager, Xmanager 3D, Xshell, Xftp 和Xlpd.最近,官方在2017年7月18日发布的软件被 ...

  3. NetSarang的Xmanager和Xshell多种产品被植入后门 绿盟科技发布分析与防护方案

    NetSarang的Xmanager和Xshell等远程连接产品在日常安全运维中使用量不小,但不幸的是,近日安全公司发现官方发布的软件版本中,nssock2.dll模块源码被植入后门.绿盟科技发布技术 ...

  4. 中国最受欢迎50大技术博客评选结果详见

    中国最受欢迎50大技术博客评选结果详见: http://blog.zdnet.com.cn/popblogger50.shtml 首届中国最受欢迎50大技术博客获奖名单如下: 第一名:李会军  htt ...

  5. OWASP-TOP10漏洞详解以及防护方案

    OWASP TOP 10 漏洞详解以及防护方案 OWASP介绍 官网:http://www.owasp.org.cn/ OWASP TOP10 指出了 WEB 应用面临最大风险的 10 类问题,是目前 ...

  6. 安天移动安全:Janus高危漏洞深度分析

    一.背景介绍 近日,Android平台被爆出"核弹级"漏洞Janus(CVE-2017-13156),该漏洞允许攻击者任意修改Android应用中的代码,而不会影响其签名. 众所周 ...

  7. Log4j2高危漏洞CNVD-2021-95914分析复现修复

    漏洞描述 安全公告编号:CNTA-2021-0033 安全公告编号:CNTA-2021-0032 2021年12月10日,国家信息安全漏洞共享平台(CNVD)收录了Apache Log4j2远程代码执 ...

  8. 瑞星发布“MSN骗子”病毒技术分析报告

    10月10日,瑞星全球反病毒监测网截获了一个传播速度极快的蠕虫病毒,它可以通过QQ和MSN传播,向线上好友发送"FUNNY.EXE"文件,用户点击后就会中毒.病毒会屏蔽937个主流 ...

  9. 区块链Opyn ETH Put逻辑漏洞技术分析

    ​ 截至发稿前,官方发文回应此次事件:遭到黑客攻击,并已对可能遭受攻击的资产进行转移,但此次漏洞只涉及ETH合约,并不影响其他合约. ​​ -安全实验室第一时间对本次事件进行跟踪分析,以下是态势感知系 ...

最新文章

  1. 介绍一个效率爆表的数据采集框架
  2. 统计学原理-----概率分布
  3. P3项目全球模板狗血设置之一 --- 发货到成本中心需要输入Customer
  4. 2019年六月刷题列表
  5. 卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现
  6. tp5 sum某个字段相加得到总数
  7. leetcode-剑指 Offer 44. 数字序列中某一位的数字
  8. C语言代码规范(七)#define
  9. ubuntu下mongodb启动脚本
  10. 通用权限管理平台--数据模型定义
  11. 史上最强微商指南之能力篇
  12. Spring Boot实战笔记(一)-- Spring简介
  13. 输入文字加下划线_Word下划线你知道多少?
  14. 计算机组成原理白中英第四章,计算机组成原理 白中英第四章 指令系统.ppt
  15. Java性能调优指南pdf阅读0-100页
  16. mysql 模糊匹配比自己短潆字符_根据中文字符串查询拼音声母
  17. 腾讯android 热更新,Android 腾讯 Bugly 热更新
  18. 台式计算机cpu允许温度,台式cpu温度多少正常呢?老司机科普一下CPU常见问题
  19. 什么是僵尸进程(Zombie Processes)
  20. 微信公共号消息推送给你心爱的她/他-Python3版本

热门文章

  1. boost::detail模块实现数字特征的测试程序
  2. GDCM:模板空白图片的测试程序
  3. Boost:bimap双图的突变关系的测试程序
  4. VTK:可视化算法之ProbeCombustor
  5. VTK:PolyData之ShrinkPolyData
  6. VTK:Matlab之MatlabEngineFilter
  7. C++Miller Rabin算法的实现(附完整源码)
  8. QT的QScriptValueIterator类的使用
  9. python 排列组合_python解决排列组合
  10. snmp linux arm,Net-SNMP的交叉编译 for ARM64