中盈优创资讯系统有限公司 靳纳 符凯 1 摘要 域名服务(DNS)是IP网最基本的网络服务之一,为所有的其他IP网应用服务提供IP地址与域名的逻辑映射关系。各省电信提供的DNS服务器承担了最主要的域名解析任务,对整个Internet服务的响应起着至关重要的作用。目前,Internet网上针对DNS的攻击日益增多,严重时往往造成DNS服务瘫痪,直接影响公众上网服务。因此,加强对DNS服务的安全防范,打造安全的电信DNS平台,对于提升IP网的服务品质,具有很重要的意义。 DNS平台的安全措施,主要分为两类: 一是加强配置的安全性,提高DNS服务的本身的抗攻击能力, 二是部署DNS入侵检测和防御系统,为DNS服务提供安全屏障。 【关键字】 DNSBIND IDS 2 电信DNS平台介绍 2.1 DNS概述 域名服务(DNS)是IP网络的命名标准,是IP网最基本的网络服务之一,通过在网络中构建一个层次化的树状服务结构,建立IP地址与域名的逻辑映射关系,供几乎是所有的其他IP网应用服务使用。 DNS服务器的角色可以分成3种:根(Root)、授权(Authoritative)和解析(Resolver)。不同角色的DNS对安全的要求层次也不同。由于历史原因,所有的根服务器都分布在北美和欧洲。我国电信运营商,一般都会在各省统一部署DNS服务器,提供本地域名授权和递归解析服务。 目前,大多数电信域名服务器运行的解析软件是Internet软件联盟(ISC)的BIND。尽管还存在MSDNS,DJBDNS以及其他一些商业DNS,BIND以其提供的完善的域名解析服务和全球标准化,到目前为止始终是最流行的DNS守护进程。作为最好的例证,全球所有根服务器运行的守护进程都是BIND。 DNS是Internet的基础,在IP网中,几乎每个用户的每次访问都会使用到域名解析,因此域名解析的准确程度和响应速度对整个网络的服务质量的影响至关重要,特别是对于基础电信运营商的IP网络而言,用户对网络响应速度的期望值较高,如何保证对域名的管理和解析统一、迅速、准确,打造稳定可靠的电信级DNS平台,正日益成为运营商所关注的问题。 2.2 DNS安全现状 随着我国上网用户的飞速发展,对DNS服务器的性能要求也日益增长。通常的做法是增加更多、更快的DNS服务器,组建DNS服务器组,通过四层交换机实现负载平衡,统一对外提供服务。然而,单纯依赖硬件配置的增长,带来的性能提升是有限度的。通过分析,我们发现影响DNS性能和可靠性的主要有以下方面: n 域名服务器负载高 造成服务器负载高的原因可能会包括: Ø 性能不够,包括设备性能、域名服务软件的性能不够(BIND的版本较旧); Ø 用户DNS请求数量增多,可能是攻击数据; Ø 未实现多台DNS服务器对用户请求的分担; Ø 本地域授权和非本地域解析在同一组设备上; Ø 无法限制非本地的用户请求; Ø 无法判断并去掉非正常的请求。 n 容易受到网络攻击 Internet网的开放性带来的一个副作用就是不安全性。各种网络病毒、黑客工具、端口扫描等网络攻击的威胁随时存在。 常见的DNS攻击包括DoS/DDoS攻击、版本泄漏、区域传输、高速缓存破坏、缓冲区溢出等。 DNS服务器由于其位置的特殊性,最容易遭到DoS攻击。常见的如SYNFLOOD攻击,使用虚假的SYN包可以如洪水般淹没DNS服务器有限的可用TCP端口,从而阻止服务器进行通信。伪造来源的分布式DoS(DDoS)攻击,是目前为止最难防御的DoS攻击,可能会填满可用的上行带宽资源,使客户端的所有通信停滞。他们会大大的消耗服务器系统的资源,一般系统和应用很难判断和阻止这样的攻击。一些城域网的DNS,由于攻击导致的CPU占用率高达20%以上。 n 配置管理复杂,容易出错 BIND只提供命令行的配置管理方式,通常采用直接编辑文件的方法增、删、改域名配置数据,存在步骤烦琐、容易出错、容易出现语法错误、效率低等弊端。另一方面,由于配置文件为文本文件,很难直接在文本结构的域名数据库文件上及时准确地统计域名数据的情况,不适应管理的需要。 n 难以处理域名服务器中的垃圾数据 长时间提供本地用户的域名注册解析服务,因为没有自我检查机制,导致许多域名已经过期或被别人注册、转移后,依然在域名服务系统里保留记录,会导致本地用户在访问此类域名提供服务的外地网站无法解析出正确地址,服务无法到达。 n 无法限制用户来访问的IP地址 尽管BIND本身提供了ACL功能,但是很多DNS系统同时提供递归和非递归查询的组合服务,使得我们无法限制只向本地用户提供递归服务,而对非本地用户只提供非递归服务;也就无法限制来自外网的域名服务攻击。 n 服务异常或中断没有完善的检测手段和保护措施 域名服务出现异常或者域名服务进程僵死,服务无法提供,且无法迅速发现,影响用户服务。 可见,除了本身的配置不够,安全因素(包括网络安全、主机安全和配置安全)是目前DNS平台面临的最主要问题。 2.3 电信DNS平台安全目标 作为电信的DNS平台,提供稳定、高效的域名解析服务是首要目标。具体到安全而言,主要是要做到以下几点: n 减少配置错误的可能性及其影响,保证BIND服务长时间稳定运行; n 降低DoS/DDoS攻击的影响,保证DNS服务器的CPU利用率没有大的波动,维持在正常水平; n 降低网络入侵的可能性,屏蔽不安全的访问,保证域名数据的安全性。 由于DNS具有天生的不安全性,完全消除其不安全因素是几乎不可能的。但是通过有限而有效的措施,可以解决大多数的安全问题。 3 DNS安全配置 安全重在管理。正确的配置管理,往往是解决安全问题最基础也是最有效的手段。 3.1 网络配置 由于DNS的特殊性,往往暴露在网络防火墙之外。但是在可能的情况下,还是应该在网络配置时对DNS服务器加以保护。 n 限制访问DNS服务器53以外的端口。对于管理端口,需要限制访问地址 n 根据历史统计数据,对于DNS服务器端口进行限速,减少DDoS攻击时的网络负担 n 限制允许访问的IP地址列表,应用Bogon列表,禁止以国际上规定的所有私有网段、广播网段、测试网段地址封装的数据包进行欺骗性攻击 3.2 主机加固与监测 通常对UNIX主机的攻击都是有针对性的,攻击者往往会利用操作系统或者常见进程的漏洞,如缓冲区溢出,进行攻击以获得主机的控制权。这就需要一个从底层开始就安全的平台。一个安全的OS和守护进程是减少缓冲区溢出最好的工具。 电信级的DNS通常运行于商业UNIX平台,如Solaris,及时从SUN网站获取并安装相应的补丁,是非常必要的安全措施。还可以向专业的安全解决方案提供厂商,寻求专门的主机加固方案。 运行DNS的主机,应该尽可能减少所运行的其他网络服务,以减少被攻击的可能。 管理员应该经常监测主机的运行情况: n 监视主机所运行的进程 n 利用top或其它命令查看系统的资源使用情况 n 监视主机的网络端口使用情况 n 监视主机的系统日志(登录日志、sulog等) n 监视主机的当前用户,删除不必要的帐号 3.3 服务分离 各省的DNS系统一方面面向应用,对外为企业用户提供本地的域名注册解析业务,另一方面面向网络服务,为所有的internet网络用户提供DNS递归解析服务。此两个功能对系统配置及安全策略的要求有本质上的不同,且互相制约,使整个系统安全及性能无法得到提高。将本地查询与递归分开配置,可以分别采用不同的安全策略,而且可以根据不同需求,配置不同的容量。 递归查询,一般是为本网用户提供Cache服务,通常来讲,在本网用户负载较高的情况下,希望拒绝来自外省或其它运营商的请求。要求建立能够区分用户请求来源的服务机制,从而可以只向本网用户提供递归和非递归服务。 对于本地企业域名服务,只提供本地注册域名解析,需要向整个互联网上的所有用户提供本地域名的权威解析,可以拒绝提供所有递归解析服务。 3.4 DNS保护性配置 对于针对DNS服务的攻击,可以采取一些共性的保护性配置。 n 禁用或隐藏服务器的版本响应。可以防止攻击者利用版本信息采用针对性的攻击 n 限制区域传输,只允许授权的域传输请求 n 对于BIND暴露的安全漏洞,应及时升级或安装对应的补丁。多年以来,BIND被发现有着无数漏洞,对应推出了很多的补丁和新版本。BIND的最新版本为9.x,相对于之前广泛应用的BIND8版本,在安全性、功能和性能上都有了很大的提高。 n 建立访问控制列表ACL,采用排除法,将通过互联网无法到达中心域名服务器的全部IP地址屏蔽,避免遭到来自IP地址欺骗的攻击 3.5 DNS配置与管理工具 DNS的配置功能主要通过修改named.conf、zone等配置文件实现,尤其对于本地域查询服务器,由于需要提供域名授权查询服务,涉及较多的配置操作,采用专门的配置工具,可以大大简化原本十分复杂的命令维护操作。同时,对named进程及日志进行集中监控和分析,也有助于对整个DNS系统进行全局监控,及时发现故障和隐患。 n DNS高速Cache管理 清理或装载一台或多台域名服务器cache中的指定域名记录,减少垃圾数据,提高服务器性能和准确性,同时减少全局重载对服务的影响。 n 域名服务配置 提供对域名配置的图形化界面,实现对域名的添加、修改、关闭、删除操作,并能够触发生效,可以立即触发生效,也可以在指定时间生效。在分布式环境下,保证多台服务器配置的同步。 n DNS进程监控 实现对服务进程占用CPU、内存情况的监控。 n DNS服务监控 实现对BIND服务的性能的监控,检测域名服务系统的服务状态,避免域名服务僵死此类具有隐蔽性的服务中断。 4 DNS入侵检测与防御 DoS通常是最无法控制的系统漏洞,防御DoS的最好方法是采用入侵检测系统(IDS),并制定相应的入侵防御计划。用于DNS的入侵检测系统基本和普通的IDS系统类似,只是需要针对DNS应用的特殊性,采用相对特定的策略。 4.1 IDS部署 IDS系统通常由传感器、服务器和管理控制台组成。 传感器的主要作用是抓包,它是IDS系统的核心。根据实际网络情况的不同,可以有不同的部署方式。 n 作为agent直接部署在DNS服务器上 这种方式最为简单和直接,是一些系统常用的方案。但是它也有显著的缺点。由于直接部署在DNS服务器上,可能影响DNS服务本身的性能。另一方面,由于DNS服务器位置的暴露性,部署在上面的IDS系统容易遭受其它的网络攻击。 n 使用单独的IDS服务器,通过交换机镜像或复制流量 在较大的电信DNS平台中,都会使用L4交换机连接DNS服务器。只需要通过端口镜像的功能将访问DNS的流量SPAN到IDS服务器即可。前提是L4交换机有多余的端口。 n 使用单独的IDS服务器,与DNS服务器部署在同一网段 通常,IDS服务器要求使用两块网卡,一块用作管理接口。另一块专门用于抓包接口,不分配IP地址,并配置成混杂模式接收所有的包。可能的话还可以使用专门的单向试探网线(只收不发),尽量保证IDS服务器的安全。 服务器的作用是根据一定的入侵规则,收集告警数据进行整理和保存。 管理控制台的作用是查看和告警数据和配置告警规则。 n 配置管理,包括白名单管理、黑名单管理、入侵规则管理等 n 入侵实时监控,对最近的入侵数据进行展示 n 入侵管理,提供入侵监测到的可能进入黑名单的IP地址的管理 n 入侵采样分析,获得指定域名服务器的DNS请求数据并进行展示 n 入侵地址分析,对黑名单的浏览功能,包括历史黑名单的管理 n 入侵特点分析,查看指定主机指定入侵地址的入侵情况,从时间角度、攻击请求构成两个角度进行分析 4.2 入侵防御系统 IDS自身并不能制止入侵,它需要有人来对警报分析做出反应来阻止入侵。IDS系统分析员是整个IDS中代价最高且最不可靠的因素。人对一个入侵做出反应需要几个小时或几天,这对于防止损失发生往往太迟。更好的办法是结合入侵防御系统,根据IDS数据的分析结果,自动地采取正确的行动,包括丢弃或过滤与特征或预定义条件匹配的数据包。 入侵防御通常是通过与四层交换机或者主机防火墙的接口,根据黑名单阻断来自特定源地址或者源端口的攻击流量。需要注意,在网络部署时要保证对攻击流量的屏蔽不能影响IDS系统的统计,以免IDS误以为攻击已经停止。对于不再发起攻击的流量,系统应允许在满足一定条件后解除阻断。BIND自身也有ACL的功能,但是最好用于相对固定的目的,而不用于动态的入侵防御,以减少配置错误的风险。 5 中盈优创ITE-DNS Guardian产品介绍 中盈优创咨询有限公司推出的ITE-DNSGuardian产品,是集BIND配置、DNS主机性能监控、入侵检测与防御三位一体的解决方案,使得对域名服务的闭环管理成为可能。 系统由域名管理、性能监控、入侵监测、统计分析与系统管理组成,统一构建在中盈优创基础管理平台之上。域名管理主要完成对域名主机、域名服务、域名配置管理功能,完成域名系统的资源管理工作;性能监控主要完成对域名主机、域名服务进程的性能监控,并能对性能进行告警(告警界面或告警接口);入侵监测对流向域名系统的流量数据进行监听,对数据按照规则进行分析处理,查找出高危攻击源,通过入侵防御模块进行相关操作处理,截断入侵流量。 系统具有如下功能特点: n 提供对域名业务运营的全面管理,覆盖网管、监控、入侵监测全程; n 采用管理-代理架构,能够对域名服务进行单点集中管理; n 提供完全的基于web的用户管理界面,管理界面直观易用,减少配置工作量,提高维护工作水平; n 实时监测域名访问请求,并对其进行分析,可以提供域名请求报表、域名请求排名、网站请求排名、区域请求报表等分析报告; n 通过设计访问请求策略,识别出异常的访问用户,并自动对其采取访问限制策略 n 根据用户网络特点制定相应的访问策略,识别访问异常的客户,实施封闭措施,能够处理90%以上的动态攻击(如UDP FLOOD)。 根据多个地市的实际系统数据,在安装域名入侵检测系统之后,DNS服务器的平均负载和负载波动情况都有明显缓解,提高了系统的稳定性和处理能力。 6 结论 虽然无法确保DNS完全不受DDoS攻击和一些恶意攻击的影响,对于个别针对DNS服务器的恶意攻击,还需要管理员人工进行分析和应对,但是采用适当的防范措施,可以有效降低大多数攻击的危害,大大提高域名服务的质量。通过实施安全配置和部署入侵检测防御系统,再辅以相应的域名配置管理系统,实现DNS系统的集中监控和管理,可以大大提高DNS系统的安全性、可靠性和可维护性,实现安全的电信DNS平台的建设目标。