本文共 2557 字,大约阅读时间需要 8 分钟。
之后,绿盟科技发布技术分析与防护方案。全文如下:
ISC互联网系统协会(Internet Systems Consortium)官网发布了一个安全通告,公布了编号为CVE-2016-2776的漏洞及其修复情况。该漏洞位于文件buffer.c中,当程序在为精心构造的查询请求构建响应包时会遇到断言失败,导致程序崩溃,从而造成拒绝服务。详情请见如下链接:https://kb.isc.org/article/AA-01419
BIND(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
该漏洞的成因是BIND 9在构造响应包时,错误计算了所需保留空间的长度,导致后续断言失败,终止程序,造成拒绝服务漏洞。该漏洞位于dns_message_renderbegin函数中,此函数的实现如下图所示:
图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,如下图所示:
图2 构造恶意DNS请求
从下面截图中可以看到BIND 9断言失败、终止运行的情况:
图3 断言失败,程序终止
官方在修复代码中对长度进行了重新计算,加上了之前忽略的DNS_MESSAGE_HEADERLEN长度,确保r.length的大小大于msg->reserved与DNS_MESSAGE_HEADERLEN二者之和。代码修复情况如下图所示:
图4 代码修复
截止到今天,我们统计全球范围内存在此安全漏洞的设备数量就已经达到70,392个。
这些受此漏洞影响的设备数量最多的国家是美国,占全部的43.13%,其次是俄罗斯联邦,占10.7%,第三是中国,占8.58%,剩余国家分别是印度、瑞典、印度尼西亚、巴西、德国、乌克兰、保加利亚等。
Top20国家的受此漏洞影响的设备数量占全球总数的83.87%,其余16.13%的设备分散于其他国家和地区内。
图5 受此漏洞影响的设备全球分布图
图6 全球受此漏洞影响的分布国家TOP20占比
图7 G20成员国受影响暴露面
中国各省份及地区分布的受此漏洞影响的设备总数量达6039个。其中台湾地区所占数量最多,有1752台设备受影响,其次是北京、山东等地区。TOP10省份的受此漏洞影响的设备数量占中国总数的84.47%。其余15.53%的数量分散于其他省份或地区内。
图8 受此漏洞影响的设备中国各省份及地区分布图
图9 受此漏洞影响的设备中国TOP10省份排名
官方已经发布了版本升级,建议用户升级到最新版本,下载链接如下:http://www.isc.org/downloads
已经购买了绿盟科技防护类产品服务的客户可以通过产品升级进行防护。
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
原文发布时间:2017年3月24日
本文由:绿盟科技 发布,版权归属于原作者
原文链接:http://toutiao.secjia.com/nsfocus-isc-bind-9-dos-vulnerability-analysis-protection
本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站