基于流量的OpenSSL漏洞利用检测方法

CVE-2014-0160漏洞背景

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

OpenSSL受影响和不受影响版本

  • OpenSSL 1.0.1f(受影响)
  • OpenSSL 1.0.1g (不受影响)
  • OpenSSL 1.0.0 branch (不受影响)
  • OpenSSL 0.9.8 branch (不受影响)

对此我们给出如下建议

  • OpenSSL版本升级到最新的1.0.1g
  • 重新生成你的私钥
  • 请求和替换SSL的证书
  • 使用-DOPENSSL_NO_HEARTBEATS参数重新编译低版本的OpenSSL以禁用Heartbleed模块

最新版本升级地址为:https://www.openssl.org/source/. (OpenSSL官方)

分析与验证

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

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地址、路径等信息。

获取敏感信息有内网IP地址、路径等。

图 2 测试网站2

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

获取敏感信息有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端口的网络连接角度进行检测。这样可以发现攻击者或肉鸡的大面积扫描行为。

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

其他

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

参考资料列表:

http://heartbleed.com/

http://www.freebuf.com/vuls/31339.html

http://drops.wooyun.org/papers/1381

http://blog.fox-it.com/2014/04/08/openssl-heartbleed-bug-live-blog/

https://www.nccgroup.com/en/blog/2014/04/heartbleed-openssl-vulnerability/

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2014-04-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

基于ThinkPHP的2个CMS后台GetShell利用

0x00 前言 ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,由于其简单易用,很多cms都基于该框架改写。然而 Thinkphp在缓存使...

50990
来自专栏网络

SEO之404页面应该怎么做?

404页面是什么? 404是网页反馈的状态码之一,4开头的状态码是指用户错误,5开头的是服务器错误。而404页面就是当用户提交信息后服务器无法回应或者反馈信息就...

26580
来自专栏JAVA烂猪皮

分布式消息中间件 — MQ

消息队列(Message Queue,简称 MQ)是阿里巴巴集团中间件技术部自主研发的专业消息中间件。用于保证异构应用之间的消息传递。应用程序通过MQ接口进行互...

15330
来自专栏FreeBuf

CVE-2016-10277在MOTO X手机上的漏洞利用实践

CVE-2016-10277是存在于摩托罗拉系列手机的bootloader高危漏洞,可以通过内核命令注入劫持手机的启动流程,加载攻击者控制的initramfs,...

31770

如何在CentOS 7上安装OpenCart

OpenCart是面向在线商家的免费开源电子商务平台。OpenCart提供了一个专业可靠的基础,您可以以此为基础,成功建立一个在线商店。该基金会吸引了广泛的用户...

85050
来自专栏北京马哥教育

运维工程师必备Linux常见安全策略与实践

操作系统的安全问题是信息安全领域最重要和最基本的问题之一。随着近几年国内互联网技术和行业的迅猛发展,采用Linux网络操作系统作为服务器的用户也越来越多。Lin...

56380
来自专栏源码之家

.htaccess重写让空间绑定多个域名到不同的目录支持多站点

70370
来自专栏渠道合作伙伴技术圈

Windows server环境下混合云部署DFS文件服务

很多传统企业在设计身份验证和文件服务时,都会使用微软的活动目录和windows server自带的文件共享来实现以上的需求, 公有云的出现给这个场...

928160
来自专栏程序猿

安装 VMware workstation

VMware Workstation 是 VMware 公司推出的一款桌面虚拟计算软件,具有 Windows、Linux 版本。VMware Worksta...

853120
来自专栏腾讯云API

【非官方工具】腾讯云API代码生成工具 2.0

1:本工具并非腾讯云官方数据,仅供大家学习使用,使用过程中不要透露自己的SecretId和SecretKey

77140

扫码关注云+社区

领取腾讯云代金券