上个月,流行DNS软件BIND中的一个严重DoS漏洞得到了修补,但是该漏洞已经被广泛利用,以摧毁系统。
该漏洞由互联网系统联盟(ISC)发现并以CVE-2016-2776的ID进行追踪。9月下旬,BIND 9.9.9-P3、9.10.4-P3、9.11.0rc3的发布修补了这一漏洞。攻击者可通过特制的DNS报文,利用该漏洞进行DoS攻击。
BIND是什么1984年,加州大学伯克利分校的几个学生弯沉管理Unix名称服务DNS,称为Berkeley Internet Name Domain(BIND)。目前,它是物联网上使用最为广泛的DNS服务软件。
BIND的发行版一般包含三个部分:域名服务器、域名解析器库、软件测试工具
BIND漏洞PoC已经开始散播10月4日,在有人提供概念验证(PoC)代码和Metasploit模块之后不久,ISC宣布其已知道有导致服务器崩溃的攻击明显利用了这个漏洞。日本国家警察局也发出警告,提醒用户小心“无差别攻击”。
该漏洞与DNS服务器如何构造针对特定查询的响应有关。如果针对一个查询的响应大于默认的512字节,就会导致BIND名称服务器(named)进程崩溃。
在周三发布的一篇博文中,安全公司Trend Micros描述了这一漏洞的成因:
“当针对一个DNS查询构造响应时,DNS服务器保留了响应缓冲区中的空间(默认为512)。然后,它按照Answer RR所需大小增加msg->reserved的大小。Answer RR所需大小也会与msg->reserved的大小一起增加,如果响应缓冲拥有其他资源记录(Resource Records)的话,两者将相同。
在修补漏洞之前,服务器并未考虑12字节的DNS头部。通过dns_message_rendersection()函数从Query渲染Resource Records之后,DNS头部字节也会增加响应流量的大小。所以,如果DNS响应(r.length)的流量小于512字节(msg->reserved),该函数会返回true。但是,加上12字节头部之后,如果响应流量超过固定保留的512字节,服务就会终止。”
发布概念验证利用程序和Metasploit模型的Infobyte的研究人员相信,对msg->reserved变量的使用会导入类似CVE-2016-2776的漏洞。
这并不是第一次有攻击者利用BIND中的DoS漏洞攻击DNS服务器。去年,研究人员就警告过,攻击者广泛利用了重要漏洞(CVE-2015-5477),可能导致严重的服务中断。