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

阅读量294381

|

发布时间 : 2016-12-20 13:50:54

x
译文声明

本文是翻译文章,文章来源:securingtomorrow.mcafee.com

原文地址:https://securingtomorrow.mcafee.com/mcafee-labs/ssl-death-alert-cve-2016-8610-can-cause-denial-of-service-to-openssl-servers/

译文仅供参考,具体内容表达以及含义原文为准。

https://p5.ssl.qhimg.com/t016542897daca6f92b.png

翻译:m6aa8k

预估稿费:100RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

前言

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


漏洞分析

我们的分析工作是从最近推出的代码的补丁差异报告开始着手的。

http://p6.qhimg.com/t01eae83837232e330f.png

从以上报告可以看到,为了解决这个问题,已经对多个文件进行了相应的修改。

其中,利用diff命令检查include/openssl/ssl.h后发现,它引入了新的错误代码SSL_R_TOO_MANY_WARN_ALERTS(409)。

http://p1.qhimg.com/t018f58ca87ccac4c1e.png

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

http://p7.qhimg.com/t0104abd9fe8207c74a.png

现在,让我们来深入考察实际的补丁代码,它位于文件ssl/record/rec_layer_d1.c和ssl/record/rec_layer_s3.c中。

下图显示了两个文件中的补丁更改情况。

ssl/record/rec_layer_d1.c

http://p0.qhimg.com/t01fa51fd9355f3cf6a.png

ssl/record/rec_layer_s3.c

http://p9.qhimg.com/t01aead493f6274c771.png

正如我们所看到的那样,这个补丁非常简单。它只是对连续的SSL3_AL_WARNING警报包的层数进行累加,并检查计数是否大于5。如果计数大于5,它会引发错误。


利用这个安全问题 

为了针对这种DoS攻击提供相应的检测和预防措施,我们创建了一个最简单的概念证明代码。虽然没有公开的漏洞利用代码可用,但是该漏洞的通报已经提供了大量的技术细节。要想利用这个安全漏洞,我们必须引发SSL握手过程。作为握手过程的一部分,攻击者必须向服务器发送一个正常的客户端 Hello数据包。以下屏幕截图显示了攻击的第一阶段捕获的数据包,即正常的客户端Hello数据包。

https://p2.ssl.qhimg.com/t01c5ff85bf2cb7b364.png

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

http://p8.qhimg.com/t0132ed249b53036d44.png

该警报消息可以进行加密,但就这里而言,我们必须向有此漏洞的服务器发送明文警报。

以下屏幕截图显示了在我们的测试环境中捕获的SSL3_AL_WARNING数据包。

https://p3.ssl.qhimg.com/t0169cb789722d9e917.png

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

https://p2.ssl.qhimg.com/t012a083539b809d044.png

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

http://p3.qhimg.com/t01a543580e0d5a79d8.png

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

http://p7.qhimg.com/t011da1bc2d2078bd73.png

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

http://p5.qhimg.com/t01efca36cfb5a5c4e8.png

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

https://p2.ssl.qhimg.com/t0168f7a14a18d51644.png

当CPU利用率爆表的时候,自然会导致OpenSSL服务器拒绝服务,因为它已经无法访问了。在上述测试环境中,我们注意到,只要该漏洞利用代码一旦停止发送恶意数据包,SSL服务就会立即恢复。


总结

服务器管理员应尽快给OpenSSL服务器安装相应的补丁程序。McAfee网络安全平台(IPS)的0x45c09000签名可以用来检测和预防该攻击。

本文翻译自securingtomorrow.mcafee.com 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
m6aa8k
分享到:微信

发表评论

内容需知
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全客 All Rights Reserved 京ICP备08010314号-66