技术开发 频道

互联网安全攻击目标之DNS服务器


1、概述
  域名系统(DNS)是十分重要的Internet基础设施,它使用分布式数据库系统来实现主机名到IP地址的转换。DNS依赖于信任模型,该模型是在相互信任的时代开发的,与如今的Internet大相径庭。由于Internet本质发生了改变,攻击者利用DNS的信任机制来进行多种类型的攻击,包括缓冲区中毒,域劫持,中间人重定向。

在过去的一年中,通过僵尸网络(botnets)对DNS服务器进行的攻击如下所示。
  (1)递归式拒绝服务攻击:僵尸主控机(Botmaster)在被入侵或为此攻击专门建立的DN S服务器上发布大量DNS记录。随后,Botmaster指挥僵尸网络向公共递归式名字服务器发送UDP/53询问的小数据包,其中包含有指向目标受害者的伪造的返回地址。导致的结果是递归式DNS服务器(而不是僵尸)直接攻击目标受害者。通过发送比典型UDP/53响应数据包更大的DNS记录可以让这种效果进一步放大, 从而强制执行TCP/53处理。

  (2)授权区域应答欺骗:Botmaster在被入侵Web服务器上建立假冒Web站点(钓鱼站点),然后指挥僵尸网络监听DNS请求,并欺骗对某一区域的应答,在该区域的应答均指向被入侵的Web服务器。该攻击的一个变种是通过修改受感染计算机的本地主机文件来达到目的,通常这个文件包含了指向假冒Web站点的入口。

2、如何确定你处于风险当中 
  所有Internet用户都处于从DNS询问返回中存在错误数据的风险。如果在可控的情况下对DNS服务器进行扫描,显示出DNS软件当前版本号或相应的补丁没有安装,那么DNS服务器就处于风险中。

  维护任何DNS服务器安全最有效的方法就是从以下网站订阅定制警告和脆弱性报告,例如SANS、Secunia和其他网站,或者开源脆弱性数据库(http://www.osvdb.org)。除了安警告,通过最近更新的脆弱性扫描器来判断DNS服务器任何潜在脆弱性将更有效果。另外,应该对DNS服务器配置进行检查和测试来确保不合理的递归或更新。

3、如何防止DNS漏洞
  正如任何软件包一样,当DNS服务器软件有最新更新包时应尽快进行更新和打补丁,并进行相应测试,确认是否会对本地网络运行造成影响。

为了防止DNS漏洞:
 应用所有的开发商软件补丁或更新DNS服务器到最新版本。关于DNS安装加固的更多信息,请参见Internet安全DNS BIND中心基准和对OS平台的适当CIS基准中安全名字服务相关文章。(http://www.cisecurity.org/bench_bind.html)
 对不需要从Internet访问的内网中的任何DNS服务器配置适当的防火墙规则。
 为了增加主从DNS服务器区域的安全性,在该区域的数据传输应采用加密的方式,并使用DNS事务签名机制(TSIG)。
 在UNIX系统中,为防止因DNS服务器的漏洞危及到整个系统,应对服务进行限止,以便以非特权用户权限运行。
 在不必要的情况下,应禁止递归式DNS服务器作为其他用途。大多数情况下,防火墙或DNS配置文件都能防止这种情况出现。关闭DNS服务器的recursion和glue fetching选项能防止DNS缓冲区中毒。

 考虑使用DNS安全扩展(DNSSEC)来签名整个区域。
 在大多数应用BIND的系统中, “named –v” 命令将列出其版本号—X.Y.Z,其中X是主版本号,Y是次版本号,Z是补丁级别。目前,两个主要版本号是8和9。Internet系统协会(ISC)建议所有BIND用户尽快升级到版本9。

 DNS服务被整合进了许多通用产品中,如防火墙、企业网络服务器和安全应用系统。在所有内嵌有DNS软件的的服务器、应用和系统系统连接到Internet时,必须对其进行检查以确保按照开发商建议进行了维护。
 在必要时才使用非专门设计用来支持DNS业务的服务器(如邮件、Web或文件服务器)来运行DNS应用程序或后台程序。

4、参考资料
DNS脆弱性列表
• http://www.sans.org/newsletters/risk/display.php?v=4&i=11
• http://www.sans.org/newsletters/risk/display.php?v=4&i=14#widely1
• http://isc.sans.org/presentations/dnspoisoning.php
• http://thekelleys.org.uk/dnsmasq/doc.html
• http://www.icir.org/vern/papers/reflectors.CCR.01/node8.html
DNS版本纵览和服务器软件
• http://mydns.bboy.net/survey/
• http://www.dns.net/dnsrd/servers/
NDS内部工作机制
• http://www.internic.net/faqs/authoritative-dns.html
• http://www.sans.org/rr/whitepapers/dns/
• http://www.cert.org/archive/pdf/dns.pdf
• http://www.isc.org/index.pl
• http://www.microsoft.com/windows2000/technologies/communications/dns/default.mspx
• http://www.dns.net/dnsrd/
DNSSEC部署
• http://www.dnssec-deployment.org/
• http://www.dnssec.net
• http://csrc.nist.gov/publications/nistpubs/800-81/SP800-81.pdf
DNS安全非常好的实践
• http://www.cymru.com/Documents/secure-bind-template.html
• http://www.softpanorama.org/DNS/security.shtml
• http://cookbook.linuxsecurity.com/sp/bind_hardening8.html
• http://www.isc.org/index.pl?/sw/bind/bind-security.php
• http://www.cisecurity.org/bench_bind.html
• http://www.cert.org/tech_tips/usc20_full.html
0
相关文章