一个数据包消灭一台服务器的 DNS 漏洞

2015 年 7 月 28 日,世界上应用最广泛的 DNS 服务器 bind9 爆出了一个严重的拒绝服务漏洞(CVE-2015-5477)。

一点背景知识:DNS 是把域名映射到 IP 地址的服务。当你访问 google.com 时,计算机就会问你所在小区的 DNS 服务器,google.com 的 IP 地址是什么?如果你的邻居刚好也在访问 google.com,DNS 服务器就会直接返回其 IP;不然,这个 DNS 服务器就会去问 Google 官方的 DNS 服务器,得到 google.com 的 IP 地址,并返回给你。这个小区的 DNS 服务器叫做递归 DNS;递归 DNS 挂了,会导致它服务的区域无法上网。Google 官方的 DNS 服务器叫做权威 DNS;权威 DNS 挂了,会导致它所服务的网站从地球上消失。

图片来源:
DNS 递归查询(图片来源

这个漏洞严重到什么程度呢?只要发一个 UDP 数据包,就能搞挂一台 DNS 服务器。不管是递归 DNS 还是权威 DNS,不管是 bind9 做了什么样的配置,只要这个数据包被 bind9 进程接收了,它就会立刻抛出异常,终止服务。

继续阅读“一个数据包消灭一台服务器的 DNS 漏洞”