OpenSSL漏洞补救办法详解(转)

CVE-2014-0160漏洞背景

2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本中存在严重漏洞(CVE-2014-0160)。OpenSSL Heartbleed模块存在一个BUG,问题存在于ssl/dl_both.c文件中的心跳部分,当攻击者构造一个特殊的数据包,满足用户心跳包中无法提供足够多的数据会导致memcpy函数把SSLv3记录之后的数据直接输出,该漏洞导致攻击者可以远程读取存在漏洞版本的OpenSSL服务器内存中多达64K的数据。

在目前已有的资料中,国内外同行已经称本漏洞为 “击穿心脏”、“毁灭级”、“今年最严重”的漏洞。由于SSL协议是网络加密登陆认证、网络交易等的主流安全协议,而OpenSSL又是主流的SSL搭建平台。因此这些称呼好不为过,建议各网络服务提供者、管理机构和用户高度注意本漏洞的处理情况,希望广大用户做出相应的对策。

OpenSSL受影响版本的分布

根据已经公开的信息,该漏洞影响分布情况如下。

1、OpenSSL 1.0.1f (受影响)

2、OpenSSL 1.0.2-beta (受影响)

3、OpenSSL 1.0.1g (不受影响)

4、OpenSSL 1.0.0 branch (不受影响)

5、OpenSSL 0.9.8 branch (不受影响)

处置建议如下

3.1 针对网络管理员,可以做的事情包括

鉴于本漏洞的严重程度,如果确定本漏洞存在,对一般性的网络服务者,暂停服务进行处置是一种较好的应对策略。

如果确定本漏洞存在,又必须保证服务不能停止,可以在漏洞修补过程中,暂时停止https服务,改用http服务,但这会带来相关认证信息明文传输的风险,具体利害需要做出谨慎的判断权衡。

具体修补方式为:

OpenSSL版本升级到最新的1.0.1g

重新生成你的私钥

请求和替换SSL的证书

也可以使用-DOPENSSL_NO_HEARTBEATS参数重新编译低版本的OpenSSL以禁用Heartbleed模块,最新版本升级地址为:https://www.openssl.org/source/. (OpenSSL官方)

3.2 针对普通网络用户,我们郑重提出的建议包括

鉴于本漏洞的严重程度,在不能确定你所网站和服务修补了本漏洞的情况下,在未来2~3天内(2014年4月9日日起)不登陆,不操作是一种较好的应对策略(这些操作包括网购、网银支付等)。

如果你必须进行操作,可以关注这些网站和服务的修改情况。

一些手机客户端的登陆,是对SSL的封装,因此手机登录也不安全。

其他安全企业团队会公布目前仍有问题的站点、或没有问题的站点情况,请予以关注。

分析与验证

目前该漏洞的利用和验证脚本已经可以被广泛获取,地址包括。

http://fi****o.io/Heartbleed/ (web测试页面)

http://s3. ****guin.org/ssltest.py (python脚本)

http:// **.* u u.com/s/1nt3BnVB (python脚本)

尽管从安全团队的角度,我们不适宜明文传播这些地址,但我们必须提醒用户的是,几乎所有的攻击者都已经拥有了相关资源,在过去24小时内,这一漏洞已经遭到了极为广泛的探测和尝试。相信大多数有漏洞的站点均遭到了不止一次的攻击。

鉴于该漏洞的严重程度和攻击爆发事件,我们不得不打破搭建环境,测试验证的管理,

在第一时间,选择相对“轻量级”的网站做出直接验证,以分析其实际后果敏感信息。通过网络中已有的测试方法,我们寻找到几个存在问题的网站进行分析,为了避免行为失当,我们没有选择与金融、交易相关的站点。

存在问题的网站地址:

Ap***.*****.gov.cn (测试时间为2014-04-09 01:00)

my-****.in (测试时间为2014-04-09 01:10)

www.shu****.cn (测试时间为2014-04-09 01:15)

git****.com (测试时间为2014-04-09 01:20)

feng*****.com (测试时间为2014-04-09 01:30)

获取回来的相关信息情况如下:

图 1 测试网站1

通过漏洞利用工具发送数据后,返回的数据中可以看到有内网IP地址、路径等信息。

图 2 测试网站2

通过漏洞利用工具发送数据后,返回的数据中可以看到有APP信息、cookie信息和用户名信息等。

图 3 测试网站3

通过漏洞利用工具发送数据后,返回的数据中可以看到有手机号码等。

图 4 测试网站4

通过漏洞利用工具发送数据后,返回的数据中可以看到有信箱和密码等信息。

通过上面的几个网站的分析测试,发现该漏洞确实可以获取到带有敏感信息的内存内容。例如:用户的cookie信息、内网IP地址、用户名、密码、手机号、信箱等。如攻击者利用此漏洞对网络交易、证券、银行等网络进行攻击,那么将会获取到用户名、密码、银行账号等敏感信息。再次提醒网站管理员和使用SSL协议连接网站的用户请尽快按照我们的处置建议进行操作。

网络检测相关方法

通用Snort规则检测

由于众所周知的SSL协议是加密的,我们目前没有找到提取可匹配规则的方法,我们尝试编写了一条基于返回数据大小的检测规则,其有效性我们会继续验证,如果有问题欢迎反馈。

alert tcp $EXTERNAL_NET any -> $HOME_NET 443 (msg:"openssl Heartbleed attack";flow:to_server,established; content:"|18 03|"; depth: 3; byte_test:2, >, 200, 3, big; byte_test:2, <, 16385, 3, big; threshold:type limit, track by_src, count 1, seconds 600; reference:cve,2014-0160; classtype:bad-unknown; sid:20140160; rev:2;)

Snort规则说明:此次漏洞主要针对的SSL协议。是针对心跳数据包前4个字节中包含\x18\x03,而在数据包第5个字节和第6个字节的数值按大尾模式转化成数值在200和16385之间,在后面则是一些报警和过滤功能,日志记录里,每10分钟记录一次。

行为检测

从公共网络管理者的角度,可以从同一IP短时间探测多个443端口的网络连接角度进行检测。这样可以发现攻击者或肉鸡的大面积扫描行为。

另外由于攻击者可能定期性的进行数据持续获取,也可以从连接持续规律的时间性和首发数据数量的对比的角度进行检测。

其他

是否相关攻击的主机痕迹和取证方式,我们正在验证。

IT168:http://www.techweb.com.cn/ucweb/news/id/2025856

转载于:https://www.cnblogs.com/websilva/p/3656340.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SharePoint 自定义WebPart之间的连接

1、创建SharePoint解决方案&#xff0c;添加两个WebPart分别用来发送和接收&#xff1b; 2、发送值的WebPart需要继承自IWebPartField(当然&#xff0c;根据需要还可以选择IWebPartField,IWebPartParameters,IWebPartRow,IWebPartTable&#xff0c;具体参见msdn)&#xff0c;原…

[python 进阶] 9. 符合Python风格的对象

文章目录9.1 对象表示形式9.2 再谈向量类9.3 备选构造方法9.4 classmethod与staticmethod9.5 格式化显示9.6 可散列的Vector2d什么是可散列的数据类型9.6 可散列的Vector9.7 Python的私有属性和“受保护的”属性9.8 使用 __slots__ 类属性节省空间本章包含以下话题&#xff1a;…

android软件获取系统签名

有时候有的功能必须要有系统签名才能使用&#xff0c;例如调用系统自带的Surface.screenShot方法时&#xff0c;就必须在androidManifest.xml里声明android:sharedUserId"android.uid.system" 但是这个时候在编译生成的apk很有可能无法安装的情况 并且报这个错误&…

Python3中的可变与不可变类型

在描述变量是否是可变类型时&#xff0c;可变与否实际上说的是对变量进行“修改”时变量的内存地址是否会发生变化&#xff0c;而非值是否可变。在Python中&#xff0c;对不可变的变量进行“修改”实际上是重新赋值&#xff0c;对可变的变量进行修改才是真正的修改&#xff0c;…

python中带*(单星号)的变量和**(双星号)的变量

一、*args的使用方法 *args 用来将参数打包成tuple给函数体调用二、**kwargs的使用方法 **kwargs 打包关键字参数成dict给函数体调用注意点&#xff1a;参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序&#xff0c;否则程序会报错。单…

百度知道回答的依赖注入

oC 或者 DI 或者 ...一大堆的缩写词不管是面向对象&#xff0c;还是面向过程&#xff0c;都需要分成许多的块&#xff0c;然后由这些部件协同工作完成任务 要协同工作就会产生依赖&#xff0c;一个方法调用另一个方法&#xff0c;一个对象包含另一个对象 如果对象A包含对象B的话…

Django model中的 class Meta 详解

参考 (1) https://www.cnblogs.com/tongchengbin/p/7670927.html

C\C++ 获取当前路径

C\C 获取当前路径 获取当前工作目录是使用函数&#xff1a;getcwd。cwd指的是“current working directory”&#xff0c;这样就好记忆了。 函数说明&#xff1a; 函数原型&#xff1a;char* getcwd(char* buffer, int len); 参数&#xff1a;buffer是指将当前工作…

[python进阶]11接口:从协议到抽象基类

本章讨论的话题是接口&#xff1a;从鸭子类型的代表特征动态协议&#xff0c;到使接口更明确、能验证实现是否符合规定的抽象基类&#xff08;Abstract Base Class&#xff0c;ABC&#xff09;。 首先&#xff0c;本章说明抽象基类的常见用途&#xff1a;实现接口时作为**超类(…

ie11浏览器不能显示最新修改的程序,调试出现代码逻辑错误却依旧执行

1、问题&#xff1a;ie11浏览器不能显示最新修改的程序&#xff0c;调试也不能&#xff0c;出现代码逻辑错误却依旧执行 2、百度解决方案&#xff1a;http://blog.163.com/wang_hj138126/blog/static/1408001062012631508444/ FireFox每次访问页面时检查最新版本 2012-07-31 …

C# 基础备忘录

1. decimal 类型调用ToString()方法后没把末尾的0去掉的解决办法: 例子&#xff1a;decimal? money Convert.ToDecimal(10.8950);string moneyStrmoney.Value.ToString(); 结果在同一台机子&#xff0c;两个项目里面会出现两个不同的结果。结果一&#xff1a;moneyStr"1…

[python进阶]12.继承的优缺点

本章探讨继承和子类化&#xff0c;重点是说明对 Python 而言尤为重要的两个细节&#xff1a; 子类化内置类型的缺点多重继承和方法解析顺序 12.1 子类化内置类型很 12.2 多重继承和方法解析

Android中用GridView实现九宫格的两种方法(转)

Android中用GridView实现九宫格的两种方法http://blog.csdn.net/shakespeare001/article/details/7768455 1.传统办法&#xff1a;实现一个继承BaseAdapter的 ImageAdapter package com.test; import android.app.Activity; import android.content.Context; import andro…

django框架中的模型

文章目录关联关系Many-to-one relationshipsMany-to-many relationshipsdjango学习——model中的get和filter方法的区别模型模型是您的数据唯一而且准确的信息来源。它包含您正在储存的数据的重要字段和行为。一般来说&#xff0c;每一个模型都映射一个数据库表。基础&#xff…

虚拟主机TOMCAT配置

在tomcat中添加虚拟主机&#xff1a;   编辑"tomcat\conf\server.xml"&#xff0c;在"<Engine></Engine>"元素中新加子元素"<Host></Host>"&#xff0c;如下&#xff1a;  </Host>     <Host name&quo…

django框架中表单

参考官方文档,太详细了 (https://docs.djangoproject.com/zh-hans/2.1/topics/forms/)

鸟哥学习笔记六(基础篇第十一章)

type:查看指令是否是bash内建指令 变量的设定规则 1. 变量与变量内容以一个等号『』来连结&#xff0c;如下所示&#xff1a; 『mynameVBird』 2. 等号两边不能直接接空格符&#xff0c;如下所示为错误&#xff1a; 『myname VBird』或『mynameVBird Tsai』3. 变量名称只能…

django-models类索引外键时候的related_name属性作用

其实可以就理解为,一对多关系拿对象的解决 可以把引用理解为主从关系 主引用从,即一对多 , 注意外键字段是放在多的一端的,比如一个班级class 有很多同学 students,那么就在students类里面设置class字段值是外键类型 从students拿class数据很好拿, studet.class就拿到了 但是从…

查找算法分析

参考&#xff1a; https://www.cnblogs.com/maybe2030/p/4715035.html#_label0