恶意DNS流量攻击研究
第24卷第9期
2007年9月
计算机应用与软件
ComputerApplicationsandSoftware
V01.24No.9
Sep.2007
恶意DNS流量攻击研究
李军利卜晓燕张根耀张震
(延安大学数学与计算机科学学院陕西延安716000)
(延安大学计算中心陕西延安716000)
摘要DNS是重要的基础设施,用于域名服务,在负载均衡,移动IP等方面也有着重要的应用.分析了针对DNS的几种攻击
行为类别,讨论了DNS流量激增对互联网的正常运作的影响,并提出了恶意DNS流量攻击,蜂窝效应概念,给出了几种导致DNS流
量激增的措施,给出了能导致互联网DNS流量激增Vc#的实例代码,最后讨论了针对DNS流量攻击的应对措施.
关键词DNSDDOSC/SDNS流量DNS流量攻击蜂窝效应网络拥塞
ARESEARCHoFTHEVICIoUSATTACKSoNTHEDNSFLUX
LiJunliBuXiaoyan.ZhangGenyaoZhangZhen
(SchoolofComputersce
Ⅲ,Yan’anUniversity,Yan’an716000,Shaanxi,China)
.(CenterofCompu~r,Yan”an,Yan’an716000,Shaanxi,China)
AbstractDNSisthefundamentaldeviceusedindomainnameservices.Ithaswideandimportantapplicationinloadingbalanceandmo-bileIP.Thisarticleanalyzesthetypesofattackscontra—posingDNS,discussesthee ffectso fthesharpincreaseo fthefluxonthenormalopera-t.ionofinternet,thusproposingtheconceptofDNSFluxAttackandbeehiveeffectandputtingforwardmeasuresinducingthe sharpincreaseof
DNS flux.ThisarticlealsogivesthesamplecodesoftheVC#whichmayinducethesharpincreaseofDNS fluxandshedslightsontheeoun-termeasure s fortheDN S fluxattacks.
KeywordsDNSDDO SC/SDNSfluxDNS fluxattackBeehiveeffectInternetcongestion
0引言
DNS(Domainnamesystem,域名系统)是多层次的分布式数
据库系统,基本功能是负责提供域名和IP地址之间的映射,
DNS采用客户端/服务器(C/S)的方式工作,在DNS服务器中
存放有域名信息,允许客户端访问所需的数据,如查询指定域名
的IP地址.DNS的结构为倒置的树形结构,每一个树节点为一
个域,每个域由不同的组织管理,可包括由子节点构成的子域.
DNS是lnternet的基本支撑服务,其安全性,有效性具有举足轻
重的地位.对于DNS的安全与性能问题,人们普遍认识到了DNS面临的拒绝服务,缓冲区中毒,区域信息泄漏等众多威胁,但对DNS流量激增可能导致互联网变慢,甚至中断的问题关注不够.本文讨论了DNS流量激增对互联网的影响,并讨论了几种可能导致DNS流量激增的攻击方式,并试图寻求解决办法.1常见的针对DNS的攻击行为
近年来发生的网络攻击和破坏事件越来越多,针对DNS的攻击可以影响WWW等服务的正常提供,曾经造成很多互联网服务的故障或者瘫痪….
DNS安全问题涉及的因素很多,基于DNS的攻击形式也是多样的,后果变现也不尽相同,例如”用户在浏览器输入A的网址,却连接到了其他页面”,”明明输了银行的网址,而且其页面似乎也没什么问题,却偏偏被盗走了银行帐号和密码”等事件屡有发生.这些事件的发生也使人们逐步认识到DNS的安全的重要性.普遍认为,针对DNS的攻击主要有以下几种:
(1)域名劫持通常是指通过采用黑客手段,获得域名可
以控制的DNS服务器的帐号,密码等信息后,通过在该DNS服务器上添加相应域名纪录,实施域名”劫持”,从而使访问该域名时,进入了黑客所指向的内容.
(2)域名欺骗(缓存投毒)域名欺骗攻击现象就是利用
DNS缓存,实施域名重指向功能,从而使所有使用该缓存服务器的用户得到错误的DNS解析结果,此类攻击也叫DNS高速缓
存攻击.会让攻击者破坏受害人网站中整个DNS系统;重新路由选择基于网络的应用程序(如HTrP,FrP,SMTP,DNS,POP3,IMAP,SSH等),这些程序都是以DNS名为基础,而不是IP地址;攻击者还可能会窃取各种与商务有关的用户名或密码;重新路由选择商业邮件,破坏正常的商业活动,对用户造成严重损失.,
(3)DNS服务器DDOS(分布式拒绝服务)攻击主要是针
对提供DNS的服务器攻击,攻击者针对DNS服务器本身,通常利用服务器软件(如B IND程序)中的漏洞,或者服务器操作系统的漏洞,后门程序等手段入侵DNS服务器,导致DNS服务器崩溃或拒绝服务.
收稿日期:2006—12—18.李军利,讲师,主研领域:计算机网络,数据库.
第9期李军利等:恶意DNS流量攻击研究2Ol
(4)利用DNS作为”攻击放大器”,去攻击其它主机其
原理为黑客用被攻击主机的IP地址作为源IP地址向多个DNS服务器发送大量DNS查询请求,DNS服务器将会把大量的查询结果发送给被攻击主机,从而导致被攻击主机所在的网络拥塞而影响其对外提供服务.
2为什么要讨论DNS流量问题
(1)最基本的理由是经济性,在流量计费制度下(例如教
育网),流量是要付费的.恶意的,无用的,大量的DNS流量将导致一笔不小的开支.
(2)剧烈的DNS流量可能会加大DNS服务体系的负担,从而导致服务质量下降.
(3)在现有带宽不变的前提下,恶意的DNS攻击会占用有效带宽,从而影响其他服务的带宽.
(4)正常使用互联网时,很多基于网络的应用程序(如HT—TP,FFP,SMTP,DNS,POP3,IMAP,SSH,MMS等)在描述网络地址(如URL)都是以DNS名为基础,而不是IP地址,需要使用DNS体系实现DNS名称到IP地址的转换,所以正常应用本身就会产生大量的DNS流量.
(5)恶意的DNS流量攻击,可以产生DNS流量放大效应,我们暂且把这种放大效应形象地称为”蜂窝效应”.”蜂窝效应”是这样产生的,当一个主机向它所在的域,向其DNS服务器请求一个符合DNS规范但事实上并不存在的域名的IP地址解析服务时,可能会在互联网范围内引发一次对于这个虚构的DNS域名的查询过程.在互联网上产生了大量的DNS流量,但这些流量的结果是告诉你这个域名并不存在.这就好比你要在世界上找到一只可能有,但事实上却并不存在的蜜蜂一样,你要逐个地去查看所有的蜂窝中的所有的蜜蜂,尽管你一个一个地找遍世界上所有的蜂窝,比对了所有的蜜蜂,最后却并没有找到那只虚构的蜜蜂一样.因为它本来就是虚构的,但这只虚构的
蜜蜂(IP地址),确实使你”捅了蜂窝”.
(6)目前世界上的许多DNS服务器已经基本上是满负荷运转,假如DNS流量翻一番的话,就可能会造成严重的后果,数据传输速度会急剧降低.
(7)试想,如果有数以万计的计算机在某个时间段内,把自己的DNS请求频率(可以理解为单位时间内发送DNS请求的数量)提高为正常频率的10倍,100倍,而我们却不能预先发现这种可能的话,将会怎么样?互联网会中断吗?
鉴于以上讨论,我们有必要关注DNS流量问题以及其他类似的可能会产生恶意流量的问题,下面仅探讨DNS流量发生的基本原理和恶意DNS流量问题.
3 DNS流量攻击及其原理
如我们所知,正常的DNS体系有以下特点:
(1)DNS体系为域名和IP的互相转换提供服务;
(2)DNS对域名和IP之间的解析”有求必应”,被恶意利用时,那么优点也会成为缺点;
(3)DNS却无法判断一个请求是善意的还是恶意的,对恶意的更容易放大其在整个互联网范围的流量;
(4)DNS对任何请求的处理都需要消耗时间和资源,而恶意的请求会消耗更多的资源,不仅会?肖耗宿主主机资源,而且会严重消耗互联网的带宽;
(5)单位时间内查询次数越多,引发DNS总流量越大.
如果恶意利用以上特点,在一段时间Jj,大量发送DNS请
求,就会导致”蜂窝效应”,导致互联网上的DNS流量的激增,可能产生大量的无用的DNS流量,增加DNS服务器的负担,严重时可能导致互联网传输变慢,甚至中断.我们暂且称之为”DNS流量攻击”.
DNS流量攻击可以有几种形式,例如:
(1)单点(单机)模式由固定的单个主机或者几个主机
发送大量的伪装包,用DNS作为”攻击放大器”,既能导致被攻击的主机停止服务,也可产生极大的DNS流量,导致”蜂窝效应”,危害较小;
(2)机群模式通过病毒等方式,事先把恶意的软件分布
到世界各地的机器上,在特定的时间点上,陆续启动,发送大量的恶意DNS请求,造成集团攻击的巨型”蜂窝效应”,将可能严重考验互联网的正常运转,危害巨大.
下面是一种DNS流量攻击的实现,仅给出模型供参考.
4使用PING命令实现DN S流量攻击
4.1 PING命令简介
P IN G命令,通过发送I C M P报文来实现目标主机是否可达
的测试工作,其用法如下:
Usage:ping[一t][一a][一ncount][一lsize][一f][一iTTL]
[一vTO S][一rcount][一S count][[-j ho st—list]I[一kho st—list]][一Wfimeout]target—name
PING命令实现DN S流量攻击的原理
(1)PING一个非IP地址的域名时将引发DNS解析过程;
(2)P IN G命令并不知晓一个目的域名是否真的不存在;
(3)PING一个域名要消耗时间,要产生DNS流量和ICMP流量等;
(4)P IN G一个并不存在的域名消耗的时间比P IN G一个存在的域名消耗的时间更长,要产生更多的DNS流量,原因是DNS服务器要搜索完它所有的记录才可以发现这个地址它并不知道,然后它还会去它的父域或者子域查询,并逐一返回查询结果,从而导致”蜂窝效应”;
(5)如果不断变换并不存在的目的地址,就会连续产生
DNS请求,从而使得服务器疲于应付这些恶意的DNS请求,增大了服务器的负担,使得DNS无暇顾及正常的DNS请求,达到破坏互联网络的目的.
4.2实例代码
下面是在VC#下实现的单机模拟”DNS流量攻击”的代码,允许指定连续发送PING命令的次数和后缀域名(如果指示了后缀域名,则可对特定的域事实DNS流量攻击).这段代码使用WindowsXP的CMD进程,通过执行PING命令,目标主机地址也可以随机生成,将会导致短时间内发送大量的DNS请求数据包,从而导致DNS系统的动作,增大DNS流量在整个网络流量中的比例.
pfiv~evoidbut~nl—Click(obj ectsender,EventArgse){this.textBox 1.Text+=测试结果:\r\n;
System.Diagnostics.ProcessP;
P=newSystem.Diagnostics.PIoeess();
P.Startlnfo.FileName=cmd.exe:
P.StartInfo.UseShellExecute:false;
P.StartInfo.Redire ct Standardlnput=true:
202计算机应用与软件2007皋p.Startlnfo.Redirect StandardOutput=true:
P.Startlnfo.Re dire ct StandardError=true;
P.Startlnfo.Cre ateNoWindow=true:
P.Start();Rando mtmp=newRandom();stringstrRstpara,houzhui;doubledbl;houzhui=textB ox2.Text;//指定特定主域decimalcount=this.numericUpDown 1.Value;//获取次数this.textBox 1.Text+:System.DateTime.Now.ToStfing():for(Int32 i=0;i<c ount;i++)
{dbl=tmp.NextDouble()tmp.Next();para:db 1.To String()+houzhui;
P.Standardlnput.WriteLine(“pin+para+”一n 1”);}
P.Standardlnput.WriteLine(exit);
iON Cloud怎么样?iON Cloud升级了新加坡CN2 VPS的带宽和流量最低配的原先带宽5M现在升级为10M,流量也从原先的150G升级为250G。注意,流量也仅计算出站方向。iON Cloud是Krypt旗下的云服务器品牌,成立于2019年,是美国老牌机房(1998~)krypt旗下的VPS云服务器品牌,主打国外VPS云服务器业务,均采用KVM架构,整体性能配置较高,云服务器产品质量靠...
CloudCone针对中国农历新年推出了几款特别套餐, 其中2019年前注册的用户可以以13.5美元/年的价格购买一款1G内存特价套餐,以及另外提供了两款不限制注册时间的用户可购买年付套餐。CloudCone是Quadcone旗下成立于2017年的子品牌,提供VPS及独立服务器租用,也是较早提供按小时计费VPS的商家之一,支持使用PayPal或者支付宝等付款方式。下面列出几款特别套餐配置信息。CP...
iON Cloud怎么样?iON Cloud是Krypt旗下的云服务器品牌,成立于2019年,是美国老牌机房(1998~)krypt旗下的VPS云服务器品牌,主打国外VPS云服务器业务,均采用KVM架构,整体性能配置较高,云服务器产品质量靠谱,在线率高,国内直连线路,适合建站等用途,支付宝、微信付款购买。支持Windows server 2012、2016、2019中英文版本以及主流Linux发行...