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
OpenSSL漏洞补救办法详解(转)的更多相关文章
- 基于ORA-12170 TNS 连接超时解决办法详解
转自原文 基于ORA-12170 TNS 连接超时解决办法详解 1.开始----程序-----Oracle------配置和移植工具-----Net Manager----本地----服务命名---o ...
- SQL注入漏洞技术的详解
SQL注入漏洞详解 目录 SQL注入的分类 判断是否存在SQL注入 一:Boolean盲注 二:union 注入 三:文件读写 四:报错注入 floor报错注入 ExtractValue报错注入 Up ...
- 新浪微博的XSS漏洞攻击过程详解
今天晚上(2011年6月28日),新浪微博出现了一次比较大的XSS攻击事件.大量用户自动发送诸如:“郭美美事件的一些未注意到的细节”,“建 党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉 ...
- [CNBETA]Intel CPU底层漏洞事件完全详解:全球手机/电脑无一幸免[转帖]
http://www.cnbeta.com/articles/tech/685897.htm 由Intel CPU漏洞问题衍生出来的安全事件已经波及全球几乎所有的手机.电脑.云计算产品,ARM确认 C ...
- php+Mysql中网页出现乱码的解决办法详解
$conn = mysql_connect("$host","$user","$password");mysql_query("S ...
- Jrebel实现tomcat热部署,遇到的问题以及解决办法,详解
我的安装的详细过程: 下载Jrebel: https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4 我的是winx64,所以选择如下的: 下载 ...
- PHP TCPDF ERROR: [Image] Unable to get image解决办法详解
使用TCPDF输出pdf文件时,有时会直接显示pdf文件不可显示,仔细调试之下会报错TCPDF ERROR: [Image] Unable to get image.问题出现Image()函数中.第一 ...
- HTTP 错误 500.19 - Internal Server Error解决办法详解
最近在服务器端部署程序发现这个问题,HTTP 错误 500.19 - Internal Server Error,程序在本地跑是没有问题的.但是部署完,浏览程序就出现这个问题,今天这篇文章就是记录一下 ...
- [转载]OpenSSL中文手册之命令行详解(未完待续)
声明:OpenSSL之命令行详解是根据卢队长发布在https://blog.csdn.net/as3luyuan123/article/details/16105475的系列文章整理修改而成,我自己 ...
随机推荐
- 今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下
要实现二维码登录,需要解决2个技术,1.需要js websocket 与后台php实现长连接技术 2.实现二维码生成技术 要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要 ...
- Android——播放器和图片轮播
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
- 用shebang编写一个ssh自动登陆脚本
单例模式是软件开发中非常普遍的一种模式.它的主要作用是确保系统中,始终只存在一个类的实例对象. 这样做的好处有两点: 1.对于需要频繁使用的对象,在每次使用时,如果都需要重新创建,并且这些对象的内容都 ...
- C/C++中const的用法 分类: C/C++ 2015-07-05 00:43 85人阅读 评论(0) 收藏
const是C语言的关键字,经C++进行扩充,变得功能强大,用法复杂.const用于定义一个常变量(只读变量),当const与指针,引用,函数等结合起来使用时,情况会变得复杂的多.下面将从五个方面总结 ...
- 备忘录模式(Memento Pattern)
在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 备忘录模式主要思想是——利用备忘录对象来对保存发起人的内部状态,当发起人需要恢复原 ...
- Linux环境下段错误的产生原因及调试方法小结(转)
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...
- Django模型层Meta内部类详解
Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.以下对此作一总结: abstract 这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会对应 ...
- golang: 根据json生成go源文件
https://github.com/ChimeraCoder/gojson $ git clone https://github.com/ChimeraCoder/gojson.git$ cd go ...
- linux开机启动mongodb
方式一(不推荐) ubuntu编辑/etc/rc.local /home/wyt/bin/mongodb-linux-x86_64-ubuntu1404-3.2.8/bin/mongod --dbpa ...
- C#子类调用基类构造备忘
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace First ...