开发者社区> 晚来风急> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

绿盟科技发布ISC BIND 9 DoS漏洞技术分析与防护方案

简介:
+关注继续查看

高危漏洞通告 BIND最新漏洞将导致DoS攻击 绿盟科技发布预警通告 之后,绿盟科技发布技术分析与防护方案。全文如下:

ISC互联网系统协会(Internet Systems Consortium)官网发布了一个安全通告,公布了编号为CVE-2016-2776的漏洞及其修复情况。该漏洞位于文件buffer.c中,当程序在为精心构造的查询请求构建响应包时会遇到断言失败,导致程序崩溃,从而造成拒绝服务。详情请见如下链接:https://kb.isc.org/article/AA-01419

什么是BIND

BIND(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。

影响的版本

  • BIND 9 version 9.0.x -> 9.8.x
  • BIND 9 version 9.9.0->9.9.9-P2
  • BIND 9 version 9.9.3-S1->9.9.9-S3
  • BIND 9 version 9.10.0->9.10.4-P2
  • BIND 9 version 9.11.0a1->9.11.0rc1

不受影响的版本

  • BIND 9 version 9.9.9-P3
  • BIND 9 version 9.10.4-P3
  • BIND 9 version 9.11.0rc3

漏洞分析

该漏洞的成因是BIND 9在构造响应包时,错误计算了所需保留空间的长度,导致后续断言失败,终止程序,造成拒绝服务漏洞。该漏洞位于dns_message_renderbegin函数中,此函数的实现如下图所示:

dns%20message%20renderbegin.png

图1 dns_message_renderbegin函数实现

其中r.length表示dns响应包的长度,固定为512字节。msg->reserved表示所需保留的响应数据长度。当 r.length < msg->reserved 时,所需的响应数据长度超过数据包的大小,因此返回ISC_R_NOSPACE,表示没有足够空间;而当 r.length >= msg->reserved 时,则有足够的空间用于构造返回的响应包,此时返回ISC_R_SUCCESS。

但程序在比较 r.length 和 msg->reserved 长度时没有考虑后面加入的DNS_MESSAGE_HEADERLEN长度大小。DNS_MESSAGE_HEADERLEN大小为12字节,表示Message头的长度。因此当msg->reserved大于500且小于等于512时,再加上后面DNS_MESSAGE_HEADERLEN的12字节,就会使得总长度大于512字节,超出响应包大小,从而在后续断言检查中失败,程序终止运行。

通过向BIND 9发送精心构造的DNS请求,操纵Additional RR中长度,可以使msg->reserved大小大于500,如下图所示:

dns%20request.png图2 构造恶意DNS请求

从下面截图中可以看到BIND 9断言失败、终止运行的情况:

program%20terminated.png

图3 断言失败,程序终止

官方在修复代码中对长度进行了重新计算,加上了之前忽略的DNS_MESSAGE_HEADERLEN长度,确保r.length的大小大于msg->reserved与DNS_MESSAGE_HEADERLEN二者之和。代码修复情况如下图所示:

code%20repaired.png

图4 代码修复

绿盟威胁情报中心NTI关于本漏洞全球影响分析

全球漏洞分布情况

截止到今天,我们统计全球范围内存在此安全漏洞的设备数量就已经达到70,392个。

这些受此漏洞影响的设备数量最多的国家是美国,占全部的43.13%,其次是俄罗斯联邦,占10.7%,第三是中国,占8.58%,剩余国家分别是印度、瑞典、印度尼西亚、巴西、德国、乌克兰、保加利亚等。

Top20国家的受此漏洞影响的设备数量占全球总数的83.87%,其余16.13%的设备分散于其他国家和地区内。

NTI%20devices.png

图5 受此漏洞影响的设备全球分布图

global%20top20.png

图6 全球受此漏洞影响的分布国家TOP20占比

G20%20member.png图7 G20成员国受影响暴露面

中国地区受此漏洞影响的设备分布情况

中国各省份及地区分布的受此漏洞影响的设备总数量达6039个。其中台湾地区所占数量最多,有1752台设备受影响,其次是北京、山东等地区。TOP10省份的受此漏洞影响的设备数量占中国总数的84.47%。其余15.53%的数量分散于其他省份或地区内。

NTI%20chinese%20devices.png

图8 受此漏洞影响的设备中国各省份及地区分布图

china%20top20.png图9 受此漏洞影响的设备中国TOP10省份排名

防护方案

官方已经发布了版本升级,建议用户升级到最新版本,下载链接如下:http://www.isc.org/downloads

  • 使用绿盟科技防护类产品IPS/IDS/NF进行防护。
  • 使用绿盟科技的远程评估系统RSAS进行安全评估。

已经购买了绿盟科技防护类产品服务的客户可以通过产品升级进行防护。

  • 短期服务:绿盟科技工程师现场处理。确保第一时间消除网络内相关风险点,控制事件影响范围,提供事件分析报告。
  • 中期服务:提供 3-6个月的风险监控与巡检服务。根除风险,确保事件不复发。
  • 长期服务:基于行业业务风险解决方案(威胁情报+攻击溯源+专业安全服务)。

绿盟科技声明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。



原文发布时间:2017年3月24日

本文由:绿盟科技 发布,版权归属于原作者

原文链接:http://toutiao.secjia.com/nsfocus-isc-bind-9-dos-vulnerability-analysis-protection

本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
智能家居技术:Zigbee,Z-Wave,Thread和Dotdot
Zigbee和Z-Wave是主要的智能家庭网络协议。Thread是一个强大的新来者。DotDot,一种新的Zigbee-Thread联合协议,可能会变得更好。
378 0
C# .NET 根据Url链接保存Image图片到本地磁盘
原文:C# .NET 根据Url链接保存Image图片到本地磁盘 根据一个Image的Url链接可以在浏览器中显示一个图片,如果要通过代码将图片保存在本地磁盘可以通过以下方式: 1、首先获取图片的二进制数组。
1988 0
ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取
前文索引:ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证ASP.NET Core教程【一】关于Razor Page的知识 实体字段属性 再来看看我们的实体类 public class Movie { public int...
1674 0
云技术让UC浏览器TV版 赋予懒人超能力
本文讲的是云技术让UC浏览器TV版 赋予懒人超能力,
1137 0
IDC:全球经济危机为云计算带来曙光
本文讲的是IDC:全球经济危机为云计算带来曙光,据市场调研机构IDC称,当下美国的经济危机让那些投资云计算的IT公司看到了希望的曙光,这将给他们未来五年带来大幅度的增长。
1056 0
ionic3项目实战教程 - 第9讲 ionic3应用内主题浏览器ThemeableBrowser的使用
这一讲主要实现商品的"抢购"功能 1.安装ThemeableBrowser插件; 2.使用ThemeableBrowser插件; 1.安装插件 分别执行以下命令: ionic cordova plugin add cordova-plugin-t...
1326 0
Linux下C语言执行过程(预处理,编译,汇编,链接,执行)
1、C语言的执行过程包括5个步骤:分别是:预处理,编译,汇编,链接,执行 第一步:编写C源代码,截图如下: 2、预处理,命令为:gcc -E variable.c -o variable.i(这步的作用是文件的展开和宏替换),生成的文件类型是.i类型的。 3、编译:命令为:gcc -S variable.i -o variable.s,这里的.s文件就成了会变语言,截图如下:
1091 0
+关注
9363
文章
243
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载