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的系列文章整理修改而成,我自己 ...
随机推荐
- poj1852 Ants ——想法题、水题
求最短时间和最长时间. 当两个蚂蚁相遇的时候,可以看做两个蚂蚁穿过,对结果没有影响.O(N)的复杂度 c++版: #include <cstdio> #define min(a, b) ( ...
- Roslyn 学习笔记(二)
参考:https://github.com/dotnet/roslyn/wiki/Getting-Started-C%23-Syntax-Analysis 语法分析过程主要用到以下类或结构: Synt ...
- Spring 发送 Email
本文转自:http://zl198751.iteye.com/blog/757617 看到了本文,收获颇丰,感谢之至! 首先介绍下Email的发送流程: 需要选中smtp邮件服务器,Yahoo不提供免 ...
- 【Django】Django 定时任务实现(django-crontab+command)
一.编写自定义django-admin命令 注:利用django-admin自定义命令我们可以ORM框架对model进行操作,如:定时更新数据库,检测数据库状态..... Django为项目中每一个应 ...
- ionic tab导航在android 真机测试中 导航在顶部解决办法
1.打开app.js文件 2.找到.config(function($stateProvider, $urlRouterProvider)){ $stateProvider ... ... } 3.加 ...
- BZOJ 1801中国象棋 DP
1801: [Ahoi2009]chess 中国象棋 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1426 Solved: 826[Submit][ ...
- JavaEE视频学习
1.实现东西应先实现静态,即使用固定的数据,比如链接数据库应先实现指定数据库如mysql的链接,成功后再向动态链接修改.方法也要这样写,一步步推进,不能一下子写出动态方法,这样很容易出错.
- iostat
http://m.blog.csdn.net/article/details?id=43196731 http://blog.csdn.net/haiross/article/details/4319 ...
- 10天学会phpWeChat——第四天:大U函数U()的使用
在第三天,我们创建了一个"增强版"的文章模块,实现了数据从数据库到视图端展示的流程.但是我们仅仅是实现了数据列表的展示,对于文章详情等页面跳转并未涉及. 本文重点讲解phpWeCh ...
- facebook darkforest围棋ai测试
0.darkforest说明 darkforest是facebook田渊栋博士开发的深度学习围棋程序,2016的uec cup得了第二名(http://jsb.cs.uec.ac.jp/~igo/en ...