OpenSSL漏洞简述与网络检测方法

1、CVE-2014-0160漏洞背景 2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本中存在严重漏洞(CVE-2014-0160)。OpenSSL Heartbleed模块存在一个BUG,问题存在于ssl/dl_both.c文件中的心跳部分,当攻击者构造一个特殊的数据包,知足用户心跳包中没法提供足够多的数据会致使memcpy函数把SSLv3记录以后的数据直接输出,该漏洞致使攻击者能够远程读取存在漏洞版本的OpenSSL服务器内存中多达64K的数据。 CVE-2014-0160(TLS心跳读远程信息泄露)漏洞简述 在目前已有的资料中,国内外同行已经称本漏洞为 “击穿心脏”、“毁灭级”、“今年最严重”的漏洞。因为SSL协议是网络加密登录认证、网络交易等的主流安全协议,而OpenSSL又是主流的SSL搭建平台。所以这些称呼好不为过,建议各网络服务提供者、管理机构和用户高度注意本漏洞的处理状况,但愿广大用户作出相应的对策。 2、OpenSSL受影响版本的分布 根据已经公开的信息,该漏洞影响分布状况以下。 OpenSSL 1.0.1f (受影响) OpenSSL 1.0.2-beta (受影响) OpenSSL 1.0.1g (不受影响) OpenSSL 1.0.0 branch (不受影响) OpenSSL 0.9.8 branch (不受影响) 3、处置建议 一、针对网络管理员,能够作的事情包括 鉴于本漏洞的严重程度,若是肯定本漏洞存在,对通常性的网络服务者,暂停服务进行处置是一种较好的应对策略。 若是肯定本漏洞存在,又必须保证服务不能中止,能够在漏洞修补过程当中,暂时中止https服务,改用http服务,但这会带来相关认证信息明文传输的风险,具体利害须要作出谨慎的判断权衡。 具体修补方式为: OpenSSL版本升级到最新的1.0.1g 从新生成你的私钥 请求和替换SSL的证书 也可使用-DOPENSSL_NO_HEARTBEATS参数从新编译低版本的OpenSSL以禁用Heartbleed模块 最新版本升级地址为:https://www.openssl.org/source/. (OpenSSL官方) 二、针对普通网络用户,咱们郑重提出的建议包括 鉴于本漏洞的严重程度,在不能肯定你所网站和服务修补了本漏洞的状况下,在将来2~3天内(2014年4月9日日起)不登录,不操做是一种较好的应对策略(这些操做包括网购、网银支付等)。 若是你必须进行操做,能够关注这些网站和服务的修改状况。 一些手机客户端的登录,是对SSL的封装,所以手机登陆也不安全。 其余安全企业团队会公布目前仍有问题的站点、或没有问题的站点状况,请予以关注。 4、分析与验证 目前该漏洞的利用和验证脚本已经能够被普遍获取,地址包括。 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) 获取回来的相关信息状况以下: CVE-2014-0160(TLS心跳读远程信息泄露)漏洞简述 图 1 测试网站1 经过漏洞利用工具发送数据后,返回的数据中能够看到有内网IP地址、路径等信息。 CVE-2014-0160(TLS心跳读远程信息泄露)漏洞简述 图 2 测试网站2 经过漏洞利用工具发送数据后,返回的数据中能够看到有APP信息、cookie信息和用户名信息等。 CVE-2014-0160(TLS心跳读远程信息泄露)漏洞简述 图 3 测试网站3 经过漏洞利用工具发送数据后,返回的数据中能够看到有手机号码等。 CVE-2014-0160(TLS心跳读远程信息泄露)漏洞简述 图 4 测试网站4 经过漏洞利用工具发送数据后,返回的数据中能够看到有信箱和密码等信息。 经过上面的几个网站的分析测试,发现该漏洞确实能够获取到带有敏感信息的内存内容。例如:用户的cookie信息、内网IP地址、用户名、密码、手机号、信箱等。如攻击者利用此漏洞对网络交易、证券、银行等网络进行攻击,那么将会获取到用户名、密码、银行帐号等敏感信息。再次提醒网站管理员和使用SSL协议链接网站的用户请尽快按照咱们的处置建议进行操做。 5、网络检测相关方法 通用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端口的网络链接角度进行检测。这样能够发现攻击者或肉鸡的大面积扫描行为。 另外因为攻击者可能按期性的进行数据持续获取,也能够从链接持续规律的时间性和首发数据数量的对比的角度进行检测。 其余 是否相关攻击的主机痕迹和取证方式,咱们正在验证。