DNS是互联网的基础服务,其安全对于维持网络安全运行具有举足轻重的作用。但如今,DNS正面临DDoS攻击、缓存投毒、区域信息泄露等众多威胁,因此了解DNS的安全问题对于应对DNS攻击,建立有效的DNS安全防护十分有必要。本文,防御盾针对DNS的安全问题做下简单介绍。
1.DNS自身的不安全因素
DNS在早期设计时只考虑到网络的适应性,采用的是面向非连接的UDP协议,而UDP协议本身就是不安全的。而从组成结构来看,为了便于查询,DNS采用了树形结构,这种结构单点故障明显,整个DNS体系并不是很稳固。
此外,大部分DNS服务器都是基于BIND软件部署的,BIND虽然能够提供高效的服务,但也存在诸多的安全性漏洞,一种是缓冲区溢出漏洞,如BIND4和BIND8存在一个远程缓冲溢出缺陷,可以使攻击者在DNS上运行各种指令;另一种是拒绝服务漏洞,受攻击后的DNS服务器不能提供正常服务,使得其所管辖的子网无法正常工作。
2.DNS面临的攻击
(1)DDoS攻击
DNS服务器同web服务器一样也会成为DDoS攻击的对象,而且DNS服务器管辖着众多网站的解析记录,其遭受DDoS攻击后将会导致其所辖域名都无法正常解析,所造成的破坏力比仅针对web服务器发起攻击更为致命。且DNS服务器对DDoS攻击没有足够的防御能力,所以针对DNS发起攻击已成为目前网络攻击的一项重要手段。
(2)缓冲区投毒
为了提高查询效率,DNS体系中的多个环节都采用了缓存机制,缓存数据在没过期之前,会直接将缓存中记录的解析结果返回给客户。这个过程虽然缩短了解析查询的路径,解析和访问速度得到明显提升,但也给了攻击者以可乘之机。DNS缓冲区投毒就是在DNS缓存中存入错误的数据,在客户发起请求时将错误的数据返回给客户,从而将客户重定向到错误的IP地址。且缓冲区中毒的机器还可能将错误的数据传播出去,导致更多的服务器缓存中毒,危害性不可谓不小。
(3)区域信息泄露
DNS服务器作为公开开放的数据库,通常情况下不会对域名请求查询加以验证,因此很容易导致网络拓扑、子网结构等信息的泄露,为各类攻击提供机会。
(4)域名劫持
域名劫持是通过获取域名所有者的账号名称和密码取得域名管理权,从而将域名的IP地址指向其他主机,严格来说域名劫持并不是DNS安全问题,但它对DNS解析的准确性威胁也是显而易见的。
从上面可以看出DNS面临自身的先天结构缺陷和外部多种类型的攻击威胁,如果我们不能做出有效应对,其对网络的安全运行将造成各种不可预想的危害。