随着互联网日新月起的快速发展,对于互联网的“中枢神经系统”DNS现已成为最为重要的基础服务。DNS(domain name system,域名系统)是互联网上最为关键的基础设施,其主要作用是将易于记忆的主机名称映射为枯燥难记的 IP 地址,从而保障其他网络应用顺利执行。DNS 服务已经深入到互联网的各个角落,成为互联网上不可或缺的关键一环。
DNS 主要包括 3 个组成部分,分别是:域名空间(domain name space)和资源记录(resource record);名字服务器(name server);解析器(resolver),如图示:
作为互联网的一项核心服务,DNS安全问题也随之而来,一旦遭受攻击,会给整个互联网带来无法估量的损失。DNS安全是网络安全第一道大门,如果DNS的安全没有得到标准的防护及应急措施,即使网站主机安全防护措施级别再高,攻击者也可以轻而易举的通过攻击DNS服务器使网站陷入瘫痪。调查显示,DNS攻击是互联网中第二大攻击媒介。常见针对DNS攻击手段有:DDOS(分布式拒绝服务)攻击、缓存投毒、域名劫持。造成后果分别为:目标网站因无法解析而失去响应(网站无法访问);使访问者及网站主机中毒从而达到攻击者目的;访问者打开错误的网站或伪造的网站,如反动分裂国家、邪教、赌博或色情网站。
然而近年来对互联网安全性的研究主要集中在信息安全方面,通常使用认证(authentication)和加密(encryption) 等手段来保证信息的机密性(confidentiality)和完整性(integrity),但这是以互联网基础设施安全可靠为前提的,针对关键设施的安全事件频繁发生(如DNS 欺骗和路由重定向)使得这一假设受到前所未有的挑战,暴露出各种各样的漏洞。现今IT支撑系统变得越来越复杂,网站系统、APP应用、邮件系统、财务系统、ERP系统等层出不穷,由于DNS系统传统上是薄弱环节网络攻击事件频发,DNS作为互联网络的第一道大门也遭受到了一系列的攻击,导致互联网通信收到严重影响,尽管已经有30多年的历史,DNS仍然是整个互联网中最脆弱的一环。
DNS安全事件回顾
2009年5月19日南方六省断网事件。游戏私服私斗打挂dnspod,殃及暴风影音域名解析,进一步殃及电信运营商本地DNS服务器,从而爆发六省大规模断网的事故。
2010年1月12日百度域名劫持事件。baidu.com的NS记录被伊朗网军(IranianCyber Army)劫持,然后导致www.baidu.com无法访问。事件持续时间8小时。
2011年9月5日,包括微软、宏碁、沃达丰和UPS在内的众多知名网站都遭遇了DNS劫持。
2012年2月16日,黑客组织匿名者(Anonymous)对外宣称,将在3月31日攻击DNS的13个根服务器,以达到让全球互联网瘫痪的目的。
2013年8月25日CN域被攻击事件。cn域dns受到DDoS攻击而导致所有cn域名无法解析。
2014年1月21日全国DNS故障。迄今为止,大陆境内发生的最为严重的DNS故障,所有通用顶级域(.com/.net/.org)遭到DNS污染。
2015年11月30日DNS根服务器攻击事件。13个根服务器大都受到了攻击,攻击者对根服务器发起了针对两个特定域名的数十亿次无效查询请求。
2015年12月14日土耳其国家域遭攻击。黑客组织匿名者(Anonymous)宣布自己是40Gbps DDoS的网络攻击发起人,并表示该攻击跟反ISIS行动相关。
由此可见,应将DNS域名系统的安全稳定从网络安全角度的重要性提升至最高级别。
一、DNS安全威胁
作为当前全球最大最复杂的分布式层次数据库系统,由于其开放、庞大、复杂的特性以及设计之初对于安全性的考虑不足,再加上人为攻击和破坏,DNS系统面临非常严重的安全威胁,因此如何解决DNS安全问题并寻求相关解决方案是当今DNS亟待解决的问题。
1. 协议脆弱性
协议脆弱性主要是系统在设计之初对前提假设条件考虑不够充分或之后条件发生变化导致的。由于使用的长期性和广泛性,使得这类脆弱性通常很难从根源上得到修正,DNS 在这一方面极具代表性。由 DNS 协议缺乏必要的认证机制,客户无法确认接收到的信息的真实性和权威性,基于名字的认证过程并不能起到真正的识别作用,而且接收到的应答报文中往往含有额外的附加信息,其正确性也无法判断。此外,DNS 的绝大部分通信使用 UDP,数据报文容易丢失,也易于受到劫持和欺骗。DNS 协议脆弱性面临的威胁主要是域名欺骗和网络通信攻击。
2.针对DNS的DDoS攻击
DDoS (Distributed Denial ofservice)攻击通过僵尸网络利用各种服务请求耗尽被攻击网络的系统资源,造成被攻击网络无法处理合法用户的请求。而针对DNS的DDoS攻击又可按攻击发起者和攻击特征进行分类。主要表现特征如下:
2.1按攻击发起者分类
僵尸网络:控制僵尸网络利用真实DNS协议栈发起大量域名查询请求。
模拟工具:利用工具软件伪造源IP发送海量DNS查询。
2.2按攻击特征分类
Flood攻击:发送海量DNS查询报文导致网络带宽耗尽而无法传送正常DNS查询请求。
资源消耗攻击:发送大量非法域名查询报文引起DNS服务器持续进行迭代查询,从而达到较少的攻击流量消耗大量服务器资源的目的。
3.DNS欺骗
3.1 DNS欺骗是最常见的DNS安全问题之一。当一个DNS服务器由于自身的设计缺陷,接收了一个错误信息,那么就将做出错误的域名解析,从而引起众多安全问题,例如将用户引导到错误的互联网站点,甚至是一个钓鱼网站;又或者发送一个电子邮件到一个未经授权的邮件服务器。攻击者通常通过三种方法进行DNS欺骗:
3.2 缓存污染 :攻击者采用特殊的DNS请求,将虚假信息放入DNS的缓存中。
3.3 DNS信息劫持 :攻击者监听DNS会话,猜测DNS服务器响应ID,抢先将虚假的响应提交给客户端。
3.4 DNS重定向 :将DNS名称查询重定向到恶意DNS服务器。
4. 系统漏洞众多
BIND(Berkeley Internet Name Domain)是最常用的DNS服务软件,具有广泛的使用基础,Internet上的绝大多数DNS服务器都是基于这个软件的。BIND提供高效服务的同时也存在着众多的安全性漏洞。,CNCERT/CC在2009年安全报告中指出:2009年7月底被披露的”Bind9″高危漏洞,影响波及全球数万台域名解析服务器,我国有数千台政府和重要信息系统部门、基础电信运营企业以及域名注册管理和服务机构的域名解析服务器受到影响。
除此之外,DNS服务器的自身安全性也是非常重要。目前主流的操作系统如Windows、UNIX、Linux均存在不同程度的系统漏洞和安全风险,而补丁的管理也是安全管理工作中非常重要和困难的一个组成部分,因此针对操作系统的漏洞防护也是DNS安全防护工作中的重点。
二、加强DNS安全壁垒
从DNS安全角度出发,如何防止以上攻击,让DNS更安全可靠,建议从以下几方面着手应对:
1. 建议使用非通用系统平台及非开源软件
当下DNS一般采用传统的微软或开源的Bind软件+通用的服务器来搭建自己的DNS系统。在开放的互联网中DNS服务面临很多网络攻击和安全威胁。在域名安全方面,存在着域名劫持、缓存中毒、针对域名服务器的攻击、DNS重定向等各种对服务的威胁。对于windows或者bind这些软件来说自身无法提供必要的防护手段,需要借助其它设备和技术来抵御黑客攻击的风险,这增加了投资成本,同时也给运维带来了一定的困难。如采用通用系统平台及开源软件在发生安全漏洞预警的同时应及时更新补丁,对DNS底层承载系统进行加固,在非必要的情况下关闭除53端口的一切非DNS系统服务端口。
2. 提供至少2个以上的DNS服务地址;
DNS服务器的任务即是确定域名的解析,提供多个的DNS解析服务器这点很重要。根据用户网站情况的不同、程度不等,建议提供两台双链路以上DNS解析服务器。这样的作用是用户的DNS解析服务可以进行轮循处理,只要保证一个DNS服务器运转正常,即可确认网站的访问将不受故障影响,尽量减少宕机的比率。
3. 智能DNS解析支持多路线多区域;
通过链路负载均衡功能将流量分配到不同的服务器上,可减少各种灾害带来的影响,当一个地方的DNS服务器受到危害时,可通过轮循机制保持DNS的正常解析。同时,DNS智能解析服务建议覆盖国内全部运营商链路,可自动判断用户的来源路线,让用户网站的解析请求重新导向最近的服务节点,通过就近访问解决网络拥挤问题,提高网站响应速度。
4. DNS解析对外具有高防功能;
在抵御外来网络攻击方面DNS解析服务器需要做充分的准备,对于SYN Flood、ACK Flood、ICMPFlood、UDP Flood、DNS Flood等形式的DDOS攻击,能有效处理连接耗尽、HTTP Get Flood、DNS Query Flood、CC攻击等。此外,宕机检测也是DNS解析里一大重要功能。系统将对域名进行24小时不间断检测,当其中有服务器出现故障问题时,宕机检测将对用户的解析自动切换到预先设置的备用服务器IP,应急响应到场时间不超过设定时间,保证业务访问的可持续性。
5. 建议采用TSIG和DNSSEC技术;
交易签章 (TSIGRFC2845),是为了保护DNS 安全而发展的。从BIND8.2 版本开始引入TSIG机制,其验证DNS讯息方式是使用共享金钥 (Secret Ke y) 及单向杂凑函式 (One – wayhas h function)来提供讯息的验证和数据的完整性。主要针对区带传输 (ZONETrans fe r)进行保护的作用,利用密码学编码方式为通讯传输信息加密以保证DNS讯息的安全,特别是响应与更新的讯息数据。也就是说在 DNS 服务器之间进行辖区传送时所提供保护的机制,以确保传输数据不被窃取及监听。
DNSSEC主要依靠公钥技术对于包含在DNS中的信息创建密码签名。密码签名通过计算出一个密码 hash 数来提供DNS中数据的完整性,并将该hash数封装进行保护。私/公钥对中的私钥用来封装hash数,然后可以用公钥把hash数译出来。如果这个译出的hash值匹配接收者刚刚计算出来的hash树,那么表明数据是完整的。不管译出来的hash数和计算出来的hash数是否匹配,对于密码签名这种认证方式都是绝对正确的,因为公钥仅仅用于解密合法的hash数,所以只有拥有私钥的拥有者可以加密这些信息。
三、未来趋势
DNS域名系统作为大规模分布式网络,可以抽象为一个有向图。NS名字服务器和解析器构成图的节点,而NS名字服务器和解析器之间的路由则构成了有向图的边。因此,加强DNS的安全性就是要加强这些节点和边的安全性。节点的安全主要通过安全评估来保证,包括安全漏洞扫描和权威名字服务器可用性测量;边的安全性则体现在关键路由发现和保护上。此外,DNSSEC有效配置与平滑过渡、DNS配置错误检测以及对DNS攻击的检测和防御等问题也是未来研究的热点问题。
1. 基于DNS 系统安全评估
DNS域名系统安全评估主要是依据“木桶原理”对 DNS域名系统安全方面进行测评,发现DNS域名系统中存在的薄弱环节。另外要对特定DNS域名系统请求进行监测,统计其中无效DNS请求,分析其对DNS系统的影响。具体评估方法包括安全漏洞扫描和权威名字服务器分布探测。
2.基于DNS域名系统关键路由点防护
DNS域名系统防护关键路由的第一要点为如何定位。DNS关键路由发现需要对目标NS服务器进行分布式路由探测,然后将探测结果进行分析和综合,最终找到大部分路由的汇接点。探测结果的准确性依赖于测试机的分布情况,测试机分布越广泛,探测结果就越准确。通过对 DNS 系统的关键路由进行防护,能够有效分析造成网络时延的成因并定位故障点,极大改善整个互联网的性能和QoS服务质量,并对互联网关键基础设施的规划建设和安全防护起到很好的指导作用。
3.DNS 异常检测和安全防护
现实网络中存在两种异常行为,一种是由恶意攻击引起的,一种是系统在软件设计、编码和系统配置过程中的脆弱性所导致的。可以通过基于流量 (volume)和报文载荷(payload)特征的方法进行检测。DNS安全防护是保证网络信息系统保密性、完整性、可用性、可控性和不可否认性的综合技术。
4.DNS 攻击反向追踪
网络犯罪之所以如此猖獗,在很大程度上是由于网络的开放性使得对攻击者的追踪和惩罚难以实施,无法形成强大的网络威慑力,致使攻击者肆无忌惮地进行破坏。反向追踪技术可以从源头上消除攻击并最终形成网络威慑力。
5.DNS基于大数据的深度对比分析
DNS大数据分析可对出网内用户流量的流向、DNS请求数据、出网数据,网内数据,流向其他运营商数据,网内相关信息。可详细统计本地数据、外域数据、缓存数据、CDN数据等。分析统计网内移动终端业务、固网业务等,并以可视化方式综合分析结果。
6.DNS安全在AI领域内的应用
基于AI智能学习和数据挖掘的DNS关键技术,包含基于监督式学习网络的DNS服务器入侵检测方法、基于用户查询序列模式学习的DNS性能提升策略、DNS使用挖掘框架以及基于潜在语义学习的DNS扩展应用。针对DNS服务器的入侵检测过程转换为机器学习中的监督学习过程或者分类问题,可以按照AI智能学习基本原理将入侵检测过程分为三个子过程:特征提取过程、模型学习过程及线上检测过程。
四、总结
DNS系统是互联网正常运转及未来互联网发展的基石,其安全性与整个信息社会息息相关。DNS系统安全问题需要全盘考虑,多种方案相辅相成、由内而外地加以解决。未来应考虑如何减少DNS 协议设计上的脆弱性,提高系统的可用性和可控性,全面提升系统的可生存性成为保障DNS系统安全性的关键所在。在系统评估的基础上对薄弱环节进行安全加固,保护关键节点,建立起全球范围的合作协调机制,从而保证互联网安全协调发展。
谢谢读完。