漏洞描述

OpenSSL是一款开放源码的SSL实现,用来实现网络通信的高强度加密。漏洞与OpenSSLTLS/DTLS传输层安全协议heartbeat扩展组件(RFC6520)相关,因此漏洞又被称为“heartbleed bug”(中文名称:“心脏出血”漏洞)。CNVD测试结果表明,该漏洞无需任何特权信息或身份验证,就可以获得X.509证书的私钥、用户名与密码、cookies等信息,进一步可直接从服务提供商和用户通讯中窃取聊天工具消息、电子邮件以及重要的商业文档和通信等私密数据。


漏洞相关信息:

OpenSSL漏洞

涉及产品

  CNVD对该漏洞的综合评级为“高危”。受该漏洞影响的产品包括:OpenSSL 1.0.1-1.0.1f版本。目前,根据WOOYUN网站以及相关白帽子的测试结果,一些大型互联网企业的网站服务器受到影响。由于OpenSSL还会应用到一些VPN、邮件、即时聊天等类型的服务器上,因此对服务提供商以及用户造成的威胁范围将会进一步扩大。互联网上已经出现了针对该漏洞的攻击利用代码,预计在近期针对

该漏洞的攻击将呈现激增趋势。

  这个函数的后面进行了以下工作:

  unsigned char *buffer, *bp;

  int r;

  /* Allocate memory for the response, size is 1 byte

  * message type, plus 2 bytes payload length, plus

  * payload, plus padding

  */

  buffer = OPENSSL_malloc(1+2+payload+padding);

  bp = buffer;

  所以程序将分配一段由访问者指定大小的内存区域,这段内存区域最大为 (65535+1+2+16) 个字节。变量bp是用来访问这段内存区域的指针。

  /* Enter response type, length and copy payload */

  *bp++ = TLS1_HB_RESPONSE;

  s2n(payload, bp);

  memcpy(bp, pl, payload);

  宏s2n与宏n2s干的事情正好相反:s2n读入一个16 bit长的值,然后将它存成双字节值,所以s2n会将与请求的心跳包载荷长度相同的长度值存入变量payload。然后程序从pl处开始复制payload个字节到新分配的bp数组中,pl指向了用户提供的心跳包数据。

最后,程序将所有数据发回给用户。

  如果用户并没有在心跳包中提供足够多的数据,会导致什么问题?比如pl指向的数据实际上只有一个字节,那么memcpy会把

这条SSLv3记录之后的数据,无论那些数据是什么都复制出来。


处置建议

 “心血”漏洞仅存在于支持心跳扩展到OpenSSL版本中。通俗地讲,这是一个特定的C语言代码实现方面的bug,代码实现没有检查用户提交的心跳请求包的有效载荷(payload)长度,从而导致SSL服务器端响应一个最长为64K的内存数据,可能包含敏感信息,导致泄密。

  TLS心跳由一个请求包组成,其中包括有效载荷(payload),通信的另一方将读取这个包,并发送一个响应,其中包含同样的载荷。在处理心跳请求的代码中,载荷大小是从攻击者可能控制的包中读取的:

  /* Read type and payload length first */

  hbtype = *p++;

  n2s(p, payload);

  pl = p;

  宏n2s从指针p指向的数组中取出前两个字节,并把它们存入变量payload中——这实际上是心跳包载荷的长度域(length)。注意程序并没有检查这条SSLv3记录的实际长度。变量pl则指向由访问者提供的心跳包数据。

bug出在载荷长度没有根据请求包的大小进行检查。因此,memcpy()发送任意载荷长度(最大64K)加上一个小载荷,就能读取请求存储位置之外的任意数据。目前,OpenSSL1.0.1g已修复该漏洞。


  HB电子游戏app公司产品现状

  HB电子游戏app公司NSAE应用安全网关产品或NetGate SSL VPN产品以及其它PKI类产品对外提供SSL服务的相关模块,未使用OpenSSL开源代码,不受此漏洞影响。

  HB电子游戏app公司NSAE应用安全网关产品或NetGate SSL VPN产品管理设备用到的HTTPS管理页面,使用OpenSSL开源代码,具体使用版本与影响如下表格所示:

  产品 系统版本 管理页面SSL使用版本 存在Bug的SSL版本 是否存在漏洞 

  NSAE NSAE 6.x.x OpenSSL 0.9.8y OpenSSL 1.0.1----1.0.1f 不存在漏洞 

  NSAE NSAE 8.x.x OpenSSL 1.0.0k OpenSSL 1.0.1----1.0.1f 不存在漏洞 

  NetGate NetGate 8.x.x OpenSSL 0.9.6a OpenSSL 1.0.1----1.0.1f 不存在漏洞 

  NetGate NetGate 9.x.x OpenSSL 1.0.0k OpenSSL 1.0.1----1.0.1f 不存在漏洞


  另外:未使用我公司产品的用户可使用下列网站提供的工具对自身网站进行检测:

  SSL LABS :https://www.ssllabs.com/ssltest/index.html

  HeartBleed:http://filippo.io/Heartbleed/或 /default/index/news


  参考资料:

  OpenSSL“心脏出血”漏洞原理及处理方法

  4月8日,国家信息安全漏洞共享平台CNVD收录了OpenSSL存在的一个内存泄露高危漏洞

  (CNVD编号:CNVD-2014-02175,对应CVE-2014-0160)。攻击者利用漏洞可以读取系统的内存数据,从而获得密钥、

  用户账号密码和cookies等敏感信息,对目前各类基于OpenSSL的服务器应用安全构成严重的威胁。

 


联系方式

电话:800-810-8890

微信公众号:infosectech

地址 北京市西城区宣武门外大街甲1号环球财讯中心C座四层

4006705518

X

北京HB电子游戏app科技股份有限公司·页面版权所有:(C) 2017 Copyright@2013 京ICP备16060718号