欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

CVE-2016-8610:对导致拒绝服务的“SSL Death Alert”漏洞补丁分析

来源:本站整理 作者:佚名 时间:2016-12-20 TAG: 我要投稿

最近,一个针对OpenSSL红色警戒(SSL Death Alert)漏洞的安全补丁引起了我们的关注。与其他严重的安全漏洞一样,这个漏洞同样也引起了我们的注意,因为据漏洞的发现者称,有此漏洞的OpenSSL Web服务器可能会受到拒绝服务攻击的威胁。为了更好地保护我们的客户免受这种攻击,McAfee Labs IPS漏洞研究小组针对这个问题展开了深入的调查,以便提供针对该漏洞的检测和预防措施。
漏洞分析
我们的分析工作是从最近推出的代码的补丁差异报告开始着手的。

从以上报告可以看到,为了解决这个问题,已经对多个文件进行了相应的修改。
其中,利用diff命令检查include/openssl/ssl.h后发现,它引入了新的错误代码SSL_R_TOO_MANY_WARN_ALERTS(409)。

在ssl/record/record_locl.h中,我们可以看到其中引入了MAX_WARN_ALERT_COUNT,并将其设为5。

现在,让我们来深入考察实际的补丁代码,它位于文件ssl/record/rec_layer_d1.c和ssl/record/rec_layer_s3.c中。
下图显示了两个文件中的补丁更改情况。
ssl/record/rec_layer_d1.c

ssl/record/rec_layer_s3.c

正如我们所看到的那样,这个补丁非常简单。它只是对连续的SSL3_AL_WARNING警报包的层数进行累加,并检查计数是否大于5。如果计数大于5,它会引发错误。
利用这个安全问题
为了针对这种DoS攻击提供相应的检测和预防措施,我们创建了一个最简单的概念证明代码。虽然没有公开的漏洞利用代码可用,但是该漏洞的通报已经提供了大量的技术细节。要想利用这个安全漏洞,我们必须引发SSL握手过程。作为握手过程的一部分,攻击者必须向服务器发送一个正常的客户端 Hello数据包。以下屏幕截图显示了攻击的第一阶段捕获的数据包,即正常的客户端Hello数据包。

如安全公告中所述,为了耗尽CPU,我们需要向服务器发送大量精心设计的明文SSL3_AL_WARNING警报数据包。为此,我们必须了解警报包的结构。根据这个TLS协议备忘录的规定,该消息如下所示。

该警报消息可以进行加密,但就这里而言,我们必须向有此漏洞的服务器发送明文警报。
以下屏幕截图显示了在我们的测试环境中捕获的SSL3_AL_WARNING数据包。

接下来,我们看一下在单个消息中打包的多个警报。

该警报包的结构如下所示:

为了对开发的漏洞利用代码进行测试,我们配置了一个支持OpenSSL、自签名证书和私钥的测试服务器。以下屏幕截图表明,该服务器正在侦听4433端口,并且正在与SSL客户端进行通信。

当服务器与客户端进行正常SSL通信的时候,该服务器进程的CPU消耗并未出现异常。

然而,一旦通过该漏洞利用代码对服务器发动攻击,我们就会发现该服务器进程立即就会停止响应,因为CPU使用率马上高达99%,并且几秒钟后会达到100%。

当CPU利用率爆表的时候,自然会导致OpenSSL服务器拒绝服务,因为它已经无法访问了。在上述测试环境中,我们注意到,只要该漏洞利用代码一旦停止发送恶意数据包,SSL服务就会立即恢复。
总结
服务器管理员应尽快给OpenSSL服务器安装相应的补丁程序。McAfee网络安全平台(IPS)的0x45c09000签名可以用来检测和预防该攻击。
 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载