DNS缓存感染
攻击者使用DNS请求,将数据放入一个具有漏洞的的DNS服务器的缓存当中。这些缓存信息会在客户进行DNS访问时返回给用户,从而把用户客户对正常域名的访问引导到入侵者所设置挂马、钓鱼等页面上,或者通过伪造的邮件和其他的server服务获取用户口令信息,导致客户遭遇进一步的侵害。
DNS信息劫持
TCP/IP体系通过序列号等多种方式避免仿冒数据的插入,但入侵者如果通过监听客户端和DNS服务器的对话,就可以猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,DNS服务器根据这个ID号获取请求源位置。攻击者在DNS服务器之前将虚假的响应交给用户,从而欺骗客户端去访问恶意的网站。假设当提交给某个域名服务器的域名解析请求的DNS报文包数据被截获,然后按截获者的意图将一个虚假的IP地址作为应答信息返回给请求者。原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行访问,这样他就被欺骗到了别处而无妨连接想要访问的那个域名。
DNS重定向
攻击者将DNS名称查询重定向到恶意DNS服务器上,被劫持域名的解析就完全在攻击者的控制之下。
ARP欺骗
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP病毒,则感染该ARP病毒的系统将会试图通过”ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
ARP欺骗通常是在用户局网中,造成用户访问域名的错误指向。如果IDC机房也被ARP病毒入侵后,则也可能出现攻击者采用ARP包压制正常主机、或者压制DNS服务器,以使访问导向错误指向的情况。
本机劫持
本机的计算机系统被木马或流氓软件感染后,也可能会出现部分域名的访问异常。如访问挂马或者钓鱼站点、无法访问等情况。本机DNS劫持方式包括hosts文件篡改、本机DNS劫持、SPI链注入、BHO插件等方式。
防范Arp攻击、采用UDP随机端口、建立静态IP映射、运行最新版本的BIND、限制查询、利用防火墙进行保护、利用交叉检验、使用TSIG机制、利用DNSSEC机制。
下面分别做出说明。
防范Arp攻击
主要是针对局域网的DNS ID欺骗攻击。如上所述,DNS ID欺骗是基于Arp欺骗的,防范了Arp欺骗攻击,DNS ID欺骗攻击是无法成功实施的。
采用UDP随机端口
不再使用默认的53端口查询,而是在UDP端口范围内随机选择,可使对ID与端口组合的猜解难度增加6万倍,从而降低使DNS缓存攻击的成功率。
建立静态IP映射
主要是指DNS服务器对少部分重要网站或经常访问的网站做静态映射表,使对这些网站的访问不再需要经过缓存或者向上一级的迭代查询,从而在机制上杜绝DNS欺骗攻击。
运行最新版本的BIND
使用最新版本的BIND,可以防止已知的针对DNS软件的攻击(如DoS攻击、缓冲区溢出漏洞攻击等)。应密切关注BIND安全公告,及时打好补丁。
限制查询
在BIND8和BIND9之后,BIND的allow-query子句允许管理员对到来的查询请求使用基于IP地址的控制策略,访问控制列表可以对特定的区甚至是对该域名服务器受到的任何查询请求使用限制策略。如限制所有查询、限制特定区的查询、防止未授权的区的查询、以最少权限运行BIND等。
利用防火墙进行保护
这种保护方式可以使受保护的DNS服务器不致遭受分布式拒绝服务攻击、软件漏洞攻击。原理是在DNS服务器主机上建立一个伪DNS服务器共外部查询,而在内部系统上建立一个真实的DNS服务器专供内部使用。配置用户的内部DNS客户机,用于对内部服务器的所有查询,当内部主机访问某个网站时,仅当内部DNS服务器上没有缓存记录时,内部DNS才将查询请求发送到外部DNS服务器上,以保护内部服务器免受攻击。
利用交叉检验
这种保护方式可以从一定程度上防范DNS欺骗攻击。原理是反向查询已得到的IP地址对应的主机名,用该主机名查询DNS服务器对应于该主机名的IP地址,如果一致,则请求合法,否则非法。
使用TSIG机制
TSIF(事物签名)机制(RFC2845)通过使用共享密钥(Secret Key)及单向散列函数(One-way hash function)提供信息的验证以及数据的完整性。当配置了TSIG后,DNS消息会增加一个TSIF记录选项,该选项对DNS消息进行签名,为消息发送者和接受者提供共享密钥,从而保证了传输数据不被窃取和篡改。TSIP机制的部署步骤不做赘述,相关RFC文档有详细说明。
利用DNSSEC机制
为保证客户机发送的解析请求的完整性,保护DNS服务器及其中的信息,防止入侵者冒充合法用户向他人提供虚假DNS信息,IETF(网络工程任务组)提出了DNS安全扩展(DNSSEC)的安全防范思想。
1、 DNSSEC工作原理
为提高DNS访问数据包的安全性,DNSSEC在兼容现有协议的基础上引入加密和认证体系,在每个区域都有一对区域级的密钥对,密钥对中的公钥对域名记录信息进行数字签名,从而使支持DNSSEC的接收者可以校验应答信息的可靠性。
BIND90支持DNS的安全扩展功能。DNSSEC引入两个全新的资源记录类型:KEY和SIG,允许客户端和域名服务器对任何DNS数据来源进行密钥验证。DNSSEC主要依靠公钥技术对于包含在DNS中的信息创建密钥签名,密钥签名通过计算出一个密钥Hash数来提供DNS中数据的完整性,并将该Hash数封装进行保护。私/公钥对中的私钥用来封装Hash数,然后可以用公钥把Hash数翻译出来。如果这个翻译出的Hash值匹配接收者计算出来的Hash数,那么表明数据是完整的、没有被篡改的。
2、 DNSSEC的实施
1)、创建一组密钥对
#cd/vat/named
#dnssec -keygen -a RSA -b 512 -n ZONE qfnueduKqfnuedu+002+27782
2)、生成密钥记录
#dnssec –makekeyset -t 172802 I
3)、发送密钥文件到上一级域管理员,以供签名使用
#dnssec -signkey keyset -qfnuedu Kedu+002+65396private
然后将返回qfnuedusignedkey文件
4)、在进行区域签名之前,必须先将密钥记录添加到区域数据文件之中
#cat“$include Kqfnnedu+002+27782key”>>dbqfnuedu
5)、对区域进行签名
#dnssec –signzone -O qfnuedu dbqfnuedu
6)、修改namedconf里的zone语句,系统将会载新的区域数据文件
3、 DNSSEC的不足
一方面,DNSSEC安全性虽然有所提高,但是标记和校验必然产生额外的开销,从而影响网络和服务器的性能,签名的数据量很大,家中了域名服务器对骨干网以及非骨干网连接的负担,同时简明校验也对CPU造成了很大的负担,同时签名和密钥也占用了占用的磁盘空间以及RAM容量。
另一方面,安全性能方面的考虑。绝大多数的DNS软件是美国出口的,它们为了通过美国政府的安全规定而被迫降低加密算法和过程的安全强度。
第三方面,RSA算法的使用。RSA拥有美国专利,与某些厂商和组织倡导的“免费/开放”目标有所冲突,但是同时又别无选择。在成本方面也是部署中的一个问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)