域名服务安全及解决策略

昆明大学学报  2006, 17(4):41~43  Journal of K un m i ng Un iversityCN 53-1144/G 4域名服务安全及解决策略黄建业, 王 锋(昆明理工大

昆明大学学报  2006, 17(4):41~43  Journal of K un m i ng Un iversity

CN 53-1144/G 4

域名服务安全及解决策略

黄建业, 王 锋

(昆明理工大学信息工程与自动化学院, 云南昆明 650093)

摘 要:域名服务是i n t e rne t 最重要和最基本的服务, DN S 的稳定和安全直接关系到internet 的正常与否。本

文分析DNS 服务及应用所面临的安全问题, 重点探讨了DNS 体系结构的弱点。并提出相关建议和解决方案。关键词:ACL ; TSI G ; FQDN ; DN SSEC ; 递归查询; 数字签名; 单点故障

[中图分类号]TP 393. 08 [文献标识码]A  [文章编号]1671-2056(2006) 04-0041-03

请求查询通常不加以验证, 网络拓扑、子网结构等敏感信息容易泄漏, 导致增加了被攻击的可能和降低了攻击的难度。尤其是存在区传送的情况下, 如果配置不当, 很容易导致敏感信息的泄漏。

1 引言

DNS (域名系统) 是一个多层次的分布式数据库, 它主要完成域名解析(即I P 地址和域名的映射) 和资源定位服务, 在interne t 上起着定位的作用, 是许多inte r ne t 服务(如www 、ft p 、e m ail 等) 的基础。它通过客户端———服务器的方式工作, 在服务器中存放域名信息, 允许客户端访问所需的数据, 其数据库的结构为倒着的树形结构, 每一个树节点即为一个域, 每个域由不同的组织进行管理, 每个域下有子节点构成子域, 形成一个完整的分布式数据库。如图:

2. 2 DNS 结构的单点故障

DNS 采用层次化的树状结构, 由树叶走向树根就可以形成一个全资格域名(full y qua lified do -m ain na m e , FQDN ), 每个FQDN 都是惟一的, 而DNS 服务器作为该FQDN 唯一对外的域名数据库和对内部提供递归域名查询的系统, DNS 服务器系统和DNS 服务的安全和稳定就存在单点故障风险问题。2001年1月, 著名的微软公司就是由于其权威名字服务器发生了单点故障从而导致了实际上的拒绝服务攻击(DOS ) , 同时也给全球的DNS 流量增加了大量额外的负载和明显的时延。而常见的解决办法就是取了非常严密的安全防护措施, 使得其抵御故障和攻击的能力大大增强, 例如使用主从服务器并分布在不同网段来降低单点故障的风/

险, 加固DNS 系统等。但是这样同样会带来其它的安全问题, 如区传送、区域数据的一致性等问题和DNS 系统性能、成本上的问题。

2. 3 DNS 系统软件的漏洞

DNS 服务是internet 的基本支撑, 其安全问题具有举足轻重的地位, 但是同其它TCP /IP 协议一样, DNS 本身从开始设计就没有考虑到安全性, 它既没有在DNS 内部对DNS 中的数据提供认证机制和完整性检查, 也不提倡对DNS 提供的服务进行访问控制和限制, 造成了很多安全漏洞并遭受到了各种各样的安全攻击, 对整个inte r ne t 的活动造成了巨大和深远的影响。

Inter net 上的DNS 系统绝大多数采用I SC 的BI ND (Ber ke l ey I nte r ne t Na m e Do m ain ) , 其它还有微软自带的DNS 、C isco N et wo r k Reg istrar 、Lucen t Q I P 、Foundation ANS 、VGRS ATL AS 等, 使用都不太广泛。B I ND 提供高效服务的同时也存在着众多的安全性漏洞, Ce rt2002年度报告中指出, BI ND 的安全漏洞成为当年最具威胁的漏洞。构成严重威胁DNS 的漏洞主要在下面几方面:

(1) DNS 系统软件所在的操作系统漏洞:DNS 系统需要操作系统的支持, 如W indow s 、Unix /L inux , 各种操作系统都存在不同程度安全漏洞和系统配置漏洞, 而操作系统的问题会直接导致DNS 系统的安全问题。

(2) DNS 缓冲区溢出漏洞:严重的可以使攻

2 DNS 存在的安全问题

2. 1 区域信息泄漏

DNS 服务器作为公开开放的数据库, 对域名

收稿日期:2006-10-31

作者简介:黄建业(1972-), 男, 云南永胜人, 硕士研究生, 昆明大学信息中心实验师, 主要从事网络安全、系统

究.

,

42               昆明大学学报                    第17卷

免费使用。B I ND 不断增加新的安全功能, 填补以前的安全漏洞, 因此使用B I ND 的最新版本可以大大提高DNS 的安全性。但是随着新漏洞的发现, 最新版本也将成为不安全的旧版本。

保证足够的容灾和容错手段, 如硬件的冗余、多点网络连接和建立M aster /Slave DNS 服务器, 防止单点故障的发生。

击者在DNS 服务器上执行任意指令, 如B I ND4和B I ND8中存在一个远程缓冲溢出缺陷(B I ND S I G Cached RR O ve rflo w DOS CAN -2002-1219) , 该缺陷使得攻击者可以在DNS 服务器上运行任意指令。

(3) DNS 拒绝服务(DoS ) 漏洞:受攻击后DNS 服务器不能提供正常服务, 使得其所辖的子网无法正常工作和导致该FQDN 对外的解析不能运行。如B I ND S I G Exp iry T i m e DoS (CAN -2002-1221) 递归方式的B I ND 8服务程序会因为使用一个无效空指针而突然中断服务。

3. 2 对DNS 进行安全配置(以BI N D9为基础)

3. 2. 1 访问控制列表(ACL ) 进行查询控制

访问控制列表(ACL s ) 是地址的匹配列表, 建立一个访问地址列表并指定名称, 在以后的al -lo w -no tify , a llo w -quer y , allo w -recursion , b lac k -ho le , all ow -transfe r 等配置里面使用。访问控制列表可以对访问域名服务器的I P 进行良好的控制, 实现ACL s 来控制对服务器的访问。对外部的用户I P 地址来限制对服务器的访问可以防止对域名服务器的欺骗和DoS 攻击。下面是一个应用ACLs 的例子:

 //创建一个名称为”bogusnets ”的ACLs 来阻止经常用于欺骗性攻击的(RFC 1918) 地址空间

acl bogus nets {0. 0. 0. 0/8; 1. 0. 0. 0/8; 2. 0. 0. 0/8; 192. 0. 2. 0/24; 224. 0. 0. 0/3; 10. 0. 0. 0/8; 172. 16. 0. 0/12; };

acl our -ne ts {x . x . x . x /24; x . x . x . x /21; }; /创建一个名称为/ou r -ne ts 的ACL , 并将其配置/为实际现网的/ip 地址

options {

 allo w -q uery {our -nets ; }; /允许内部网络进行查询/

 allo w -recursion {our -nets ; }; /允许内部网络进行递归调用查询/

 ve rsion “None o f your business ”; //B I ND 版本保护, 隐藏版本信息

 …

 b lackho le {bogusne ts ; }; /不允许进行查询的网络地址/

 … };

 zone “exa m ple . co m ”{/权威区域名/

 t ype m aste r ; /主/DNS 服务器

 file “exa m ple . co m ”;

/权威区域正向解析数据库文件/

 allo w -q uery {any ; }; /允许所有/I P 地址来对该权威区域进行查询

 }; 3. 2. 2 以最小权限运行BI ND

以超级用户的身份运行像B I ND 这样的网络服务器是非常危险的, 在UN I X 服务器中, 可以用“-t ”选项让运行在指定的环境中(chr oo t ()) , 这种方法可以提高系统的安全性, 主要是在系统遭到破坏时降低损失, 称为“沙箱”。

I 在UN I X 2. 4 缓冲区中毒

DNS 为了提高查询的效率, 采用缓存机制,

在DNS 的缓存数据还没有过期之前, 在DNS 的缓存区中已存在的记录一旦被客户查询, DNS 服务器将把缓存区中的记录直接返回给客户。利用DNS 的缓存机制, 在缓存区中存入错误的数据使其被其他查询客户所获得, 在缓存数据的生存期(TTL ) 内, 缓存区中毒的机器又可能将错误的数据传播出去, 导致更多的服务器缓存中毒。如果减少缓存数据的生存期, 可以减少缓存中毒的影响范围, 但过于频繁的缓存数据更新将大大增加服务器的负担。

2. 5 不安全的DNS 动态更新

动态主机配置协议(DHCP ) 简化了I P 地址管理。但是使更新A 记录和PTR 记录变得很困难, 因此RFC2136提出了DNS 动态更新, 使得DNS 客户端在I P 地址或名称出现更改的任何时候都可利用DNS 服务器来注册和动态更新其资源记录。尽管DNS 动态更新协议规定只有经过授权的主机才能动态更新服务器的区文件(Zone F ile ), 但是攻击者可以利用I P 欺骗伪装成DNS 服务器信任的主机对区数据进行添加、删除和替换。

2. 6 域名欺骗

由于DNS 查询是采用UDP 53端口明文传输, 攻击者监听客户机(cli ent ) 的域名解析器(r esolv -er ) 和域名服务器(s erver ) 之间的通信, 从而窃听并篡改数据包, 欺骗resolve r 或ser ver , 最终使客户机被误引至“陷阱”网站或者使DNS 服务器得到错误信息。由此进一步实施更为复杂的攻击, 如名称链攻击、DoS 攻击放大器、缓冲区中毒等。

DNS 根记录文件篡改、根域名服务器和区权威服务器的欺骗都有可能导致大范围的域名欺骗。而客户端用户受木马、恶意代码或者诱导连接也会产生域名欺骗。

3 DNS 安全解决策略

3. 1 增强DNS 系统的安全和可靠

尽量选择安全、稳定和可靠的硬件和操作系统, 保证操作系统拥有的最小的服务和最高的安全等级, 保证系统的安全补丁更新、防病毒和防火墙的正确配置。

使用最新版本的的DNS 服务器软件, I n ter net 上使用最广泛的DNS 服务软件是BI ND , 目前最新稳. 3, //. r g

,

第4期               黄建业, 等:域名服务安全及解决策略将B I ND 的后台程序以非特权用户身份运行。建议在以非特权用户身份运行B I ND 时, 同时使用chroo t 的特性。

/usr/local /bin/nam ed -u na m ed -t /var/nam ed

上面的命令以用户na m ed 运行B I ND , 以/var/na m ed 为BI ND 服务的“根”目录, 当然要把B I ND 的所有必需文件放到/var/nam ed 下, 同时该目录的拥有者是na m ed 用户。

43

3. 3 拆分名字服务器并分离名字空间

名字服务器实际上有两个主要功能:回答来自远程名字服务器的反复查询, 并且回答来自本地解析器的递归查询。如果分离这些功能, 将名字服务器的一部分专门用于回答反复查询, 而另一部分则回答本区域内部递归查询, 这样就能更有效地保护这些名字服务器的安全。当然要实现该功能可以使用不同的DNS 服务器或者在同一台服务器上使用ACLs 。

 V ie w our -nets {

  m a tch -c lients {ou r -ne ts ; }; //建立内部视图

  r ecursi on yes ; //打开递归查询, 只允许该区域内部用户对外递归//查询

    z one “exa m ple . co m ”{//权威区域名

 type m aster ; //内部主DNS 服务器

     file “exa m ple . co m . host ”; }; //内部权威区域正向解析数据库文件

  …}; //省略建立权威区域对内部的反向解析省略

 v ie w o t her {

  m a tch -c lients {any ; }; //建立外部视图

  r ecursi on no ; //关闭递归查询, 只允许该区域外部用户对该权威//区域进行查询

  zone “exa m ple . co m ”{//对外部解析的权威区域名

   type m aster ; //对外主DNS 服务器区域信息泄漏

  file “exa m ple . co m . host -ex t ”;}; //对外部权威区域正向解析数据库文件

  …}; //省略建立权威区域对外部的反向解析省略

通过ACLs 和视图, 实现了名字服务器的拆分并分离了名字空间, 从而防止了区域信息对外部的泄漏, 还提高了DNS 服务对外的抗DoS 能力和性能。3. 4 TSI G 机制(Secret K ey Tran s action Au t h en -tication for DNS )

B I ND 使用了一种保护DNS 消息的新机制, 称为“事务签名”,简写成TSI G , 利用TSI G 实现保护查询、响应、区传送和动态更新。TSI G 使用共享密钥和单向散列函数来鉴别DNS 消息, 可以完成clien t 与s e r ver 、M aster 与Salve 双向身份验证,

实现在DNS 动态更新中服务器对客户机的认证安

全和M aster 、Sa l ve DNS 服务器在区传送的认证安全, 也包括对交换数据的完整性认证。

这种认证是host -host 性质的, 需要事先在host -ho st 两方建立共享密钥, 利用该密钥通过HMAC -MD5算法生成签名数据, 利用TS I G RR 交换数据, 实现双方身份及数据认证。其缺点是共享密钥必须在线外传递这给使用者带来很大不便; RFC2930中还提出利用TKEY RR 来交换密钥, 但这需要双方事先通过某种途径对对方身份进行确认。

 Serve r 192. 168. 249. 1{keys {key . exa m ple . co m .; };

   ser ver 语句告诉本地名字服务器使用密钥key . exa m ple . co m . 对所有发送给192. 168. 249. 1的请求进行签名。

 Zone “exa m ple . co m “{    a ll o w -tr ansfer {key key . exa m ple . co m .; };

  …}; 在192. 168. 249. 1上, 限制区传送, 使之成为用key . exa m ple . co m . 密钥签名的区传送。

3. 5 DNS 安全扩展(DNSSEC )

TS I G 非常适合于保护两台名字服务器之间或更新者与名字服务器之间的通信安全, 而名字服务器与任意I nte r ne t 名字服务器之间的通信安全使用公共密钥加密系统(pub lic key cryp t ography ) 来实现, 即RFC2535中说明的DNS 安全扩展(DNS Se -curity Extensions ) 。用公共密钥加密系统使区管理员对其区数据进行数字签名, 从而证明数据的真实性。具体实现如下:

域名空间中的每一区域(ZONE ) 都有一私有密钥, 只有区域所有者掌握, 与之配对的公开密钥, 使用设立KEY RR 资源记录, 用于存贮和发布公钥。

区域所有者用自己的私钥对各RR (资源记录) 进行签名, 形成相应的S I G 类型的RR , 但不含对该区域的子域的粘合记录(g l ue RR ) 进行签名, 对区域的KEY RR 的签名是由父域的私钥完成的, 这样如果用户信任父域且有父域的公钥, 就会解密且得到区域的公钥, 并信任该区域。所以只要res o l ver 安全地获得域根的公钥, 就可认证和信任域名空间所有被父域所签名区域, 从而形成信任链。

当res o lve r 查询ser ver 时, serve r 除作标准的响应外, 还在Additiona l 区域附加相应的S I G RR , s e r ver 用所查询区域的公钥对SI G RR 验证, 从而获得数据完整性和数据来源认证。同时设立NXT 类型记录, 以提供授权的域名拒绝。

DNSSEC 实现了区域权威到用户的完整性及来源认证, 是一种端到端的安全解决方案。利用DNSSEC 可基本构建安全的DNS 体系, 但不能防止服务器受DoS 攻击或由其衍生出的攻击形式, 甚至加重了这种攻击效果, 而利用TSI G 可解决这个问题, 但TS I G 不是一种大规模实施的方案。

(下转第54页)

,

54               昆明大学学报                    第17卷

贵州大学学报(自然科学版), 2005(8) .

[3] 李乐山, Human -Computer Interac tion De sign 人机界面设计[M ]. 科学出版社, 2004.

[4] 杨晓波, 应用软件人机界面的设计原则[J ]. 甘肃高师学报, 2005(2) .

[5] 邵家骏, 质量功能展开[M ]. 北京:机械工业出

版社,

2004.

而达到设计效果显著、节约经费、减少改进时间、质量得到保障, 为用户提供完美的界面和更令人满意的应用软件。

[参考文献]

[1] 熊伟, 质量机能展开[M ]. 北京:化学工业出版

社, 2005. [2] 温希祝, 应用软件系统人机界面设计的探讨[J ].

H u m an -Co mputer In teraction D esi gn Based on HOQ

LI U Yu -yan

(E lectron ic Info r ma tion andM echanica l Eng i neering D epart m ent of K un m i ng U niversit y , Y unnan K un m ing 650118, Ch i na )

Abst ract :Reasonable i n terac tion de signing m akes use rsm ore successful and satisfied , other w ise the failed interac -tion design i n g m akes use rs fr ustrated . U sing HOQ to w o r k out key -points o f hu m an co m puter interaction design is to point ou t the d irection o f designing satisfied hum an co mpu ter inte r action . K ey w ords :hum an -compu ter interaction ; house of qua lity ; i n t e raction design

(上接第43页)

安全问题将有望获得全面解决。目前我们能做的就是:在对安全的要求和实现代价之间寻求一种平衡。

4 结束语

域名系统安全是当前网络安全领域的一个重要课题, 是关系到国家利益的重大问题, 本本文在分析DNS 安全漏洞的基础上, 对DNS 网络攻击的起因做了深入分析。并以BI ND 9为探讨重点, 提出了一些安全防范策略和实现了DNS 的安全防范的一些基本方法。并初步探讨了DNSSEC 的安全防范思想、工作原理, 最重要的一点是:DNSSEC 使DNS 不具有欺骗性。但是DNSSEC 还存在许多不足需要改进, 如简化认证机制、减少数字签名的时间和系统的开销等, 随着DNSSEC 不断完善,

DNS

[参考文献]

[1]P au l A l b itz , C ricket L i u . DNS 与BI N D [M ](第四

版) . 雷迎春, 龚奕利, 译. 北京:中国电力出版社, 2002.

[2]RFC 1304、RFC 2535、RFC 2845、RFC 2930、RFC

2833、RFC 3552htt p ://w ww.

ie t. f o rg /rfc/

The DNS Secur ity and Sol uti on Poli ces

HUANG Jian -ye , WANG Feng

1

2

(Facult y o f Inf o r m ati on Eng inee ri ng and A u t oma tion , K un m i ng Un i ve rsit y o f Sc ience and Te chno l ogy , K un m ing 650093, China )

Abst ract :The do m ain na m e syste m (DNS ) is the m ost i m po rtan t and basic se r v ice on the Inter ne. t S tab l e and se -cure DNS is a necessar y cond ition for Inter net to function no r m a lly . I n this paper , w e ana l y ze t h e secu rity pr oble m s

of DNS syste m and its app lica tion . W e a lso investigate t h e w eakness of DNS architect u r e and propo se a series o f solv i n g po licies . K ey w ords :ACL ; TSI G ; FQDN ; DNSSEC ; recu rsion search ; dig ital signa t u re ; sing le po i n t o f fa il u re

标签: