艾锑知识 |DNS欺骗攻击及如何防护
2020-03-09 14:22 作者:admin 浏览量:
生命中的石头汤
在很久很久以前,有三个和尚的名字叫阿健、阿财、阿智。他们正在旅行的路途中,边走边谈着猫的胡须、太阳的颜色和一个人怎么才能得到快乐。
这样,他们就来到了一个村子里。这是一个历经了很多苦难的村子,很多的苦难,洪水、战争、瘟疫……村民们疲惫不堪了,对这个世界再也没有信心,对生活再也没有热情,别说不和陌生人交往,邻居之间也彼此猜忌,没有信任。
村子里有农民,有茶商,有读书人,有女裁缝,有医生,有木匠……他们当然也都工作,但是都只是为自己的,所以不快乐。
没有人理睬走进村子的和尚们,没有人欢迎阿健、阿财、阿智,家家的窗户都关得紧紧的。他们敲谁家的门,那么谁家干脆就关了灯,假装家里根本就没有人,假装睡觉了。
“这些人不懂得什么是快乐。”三个和尚异口同声地说。大和尚阿健说:“可是今天,我要让他们见识一下怎么煮石头汤。”他们捡了小树枝生起火,把小汤锅架在火上,在锅里装满从井中打来的水。
一个小姑娘看见了,她问:“你们要干什么呀?”
“我们要煮石头汤,还得要找三个又圆又滑的大石头。”阿智说。
小姑娘帮和尚们在院子里找到了他们所要的石头,他们把石头放在锅子里煮。
“这几块石头,可以煮出好喝的汤,”阿智说,“但是,我担心锅子太小,煮的汤不够喝。”
“我妈有个大锅子。”小姑娘说。小姑娘就跑去对妈妈说了这事,她妈妈竟然就答应了,而且她妈妈还说:“我倒想要学学怎么煮石头汤!”
原来,哪怕是在一个已经没有热情的“村子”里,也是有这样的小姑娘的;虽然同样是对生活没有了信心,但能心那股扔情的小火苗依然在跳动着。
小姑娘把大锅推到了村子的中央,和尚们点燃的柴火青烟飘散开来,他们翻动着锅中的石头……躲在窗子后面没有信心和热情的人们终于打开房门走出了屋子,他们都要看一看,这石头汤是什么!
这石头汤是什么呢?
在搅动着石头汤的阿健说,如果加上了盐和胡椒粉,石头汤才好喝呢!
一个眼睛睁得大大看得津津有味的读书人立即说:“我家里有!”赶紧就跑回去取了,石头汤里加进了盐和胡椒粉。
阿智尝了尝味道,说:“照我们的经验,这么大锅的石头汤,如果加上一些胡萝卜,那么汤会更甜。”
“胡萝卜?我家里有!”人群中的一个妇人说,赶忙地跑回家里拿了来,丢进了汤里。
“要是放些洋葱,味道是不是会更好?”阿财问。
一个农人跑回家取来了洋葱。
“再加些蘑菇呢?”
蘑菇也被取了来。而且还纷纷顺便地带来了面条、豌豆和包心菜。
当每个人打开心胸付出时,其他人付出得更多。就这样,汤锅里的东西越来越多,饺子,豆腐,云耳,绿豆,芋头,冬瓜,大蒜,百合,甚至人们还大喊着应该加一点儿酱油!和尚们搅和着咕嘟咕嘟的汤锅,心里感触地想着,多么香啊,多么美味啊,村里的人多么懂得付出啊!
汤煮好了。村子里的人聚集在一块儿。他们带来了白米饭、馒头;他们提来了茶水和灯笼。在记忆里,他们从来没有像现在这样聚在一起享用过大餐。
盛宴过后,他们说故事,唱歌,一直到深夜。他们不再锁上门,而是纷纷热情地邀请和尚们到家里去住,让他们睡得非常舒服。
一个温暖春天的早晨,大家依依不舍地送别阿健阿财和阿智。“谢谢你们让我们来做客,你们是最大方的人。”和尚们说。
“应该谢谢你们,是你们让我们懂得了分享,有了永远的富足。”村民们说。
“还要想一想,”和尚们说:“快乐就像煮石头汤一样容易啊!”
正因为快乐是这样的容易,离得那么近,所以又有什么灾难和不幸能够真的让人变得灰心丧气,再也没有兴奋的精神呢?
创业就是煮一场石头汤,你有了个想法,也许这个想法很一般,也许这个想法很特别,总有人愿意为那些新奇的想法迈出一步,这也是极其重要的一步,因为这一步给到做汤的人信心和勇气,他就更坚定相信能做出一锅香浓美味的汤,当有越来越多的人加入这家企业时,有的人带来的是才华,有的人带来的是金钱,有的人带来的是资源,还有的人带来的是更多的可能性,就是这样,在更多人的信任和选择下,让这家企业变得更有味道,变得更有价值,变得可以成就更多人的梦想。
人生就是煮一锅石头汤,你出生的时候一无所有,但这不重要,因为你会慢慢长大,就能学会了讲故事,你和小朋友讲故事,就让很多小朋友成为了你的朋友,后来你又和女孩讲故事,于是女孩就成为了你的女朋友,再后来你和遇到的每一个人讲故事,于是你就有了工作,有的朋友,有了家庭,有了生活,有了事业,有了你现在的一切,无论这个故事是什么,请记住快乐最重要。
你又是如何煮自己人生的石头汤?
艾锑知识 |DNS欺骗攻击及如何防护
域名系统(Domain Name System,DNS)是一个将Domain Name和IP Address进行互相映射的Distributed Database。DNS是网络应用的基础设施,它的安全性对于互联网的安全有着举足轻重的影响。但是由于DNS Protocol在自身设计方面存在缺陷,安全保护和认证机制不健全,造成DNS自身存在较多安全隐患,导致其很容易遭受攻击。很多专家就DNS Protocol的安全缺陷提出了很多技术解决方案。例如IETF提出的域名系统安全协议(Domain Name System Security,DNSSEC),其目标就在于解决这些安全隐患。这个Protocol增加了安全认证项目,增强了Protocol自身的安全功能。但是新增加的安全机制需要占用更多的系统和网络资源,同时要升级Database和System Manggament Software,这些基于DNSSEC协议的软件还不成熟,距离普及应用还有较长时间。目前,常见的措施是定期升级DNS软件和加强相关的安全配置,禁用不安全的端口等。本文对以侦听为基础的DNS ID欺骗(DNS ID spoofing)进行了探讨,并提出了相关的防护解决方案。
一、DNS SERVER的服务工作过程
DNS是一种实现Domain Name和IP Address之间转换的系统,它的工作原理就是在两者间进行相互映射,相当于起到翻译作用,所以称为域名解析系统。DNS System分为Server和Client两部分,Server的通用Port是53。当Client向Server发出解析请求时,Local DNS Server第一步查询自身的Database是否存在需要的内容,如果有则发送应答数据包并给出相应的结果;否则它将向上一层DNS Server查询。如此不断查询,最终直至找到相应的结果或者将查询失败的信息反馈给客户机。如果Local DNS Server查到信息,则先将其保存在本机的高速缓存中,然后再向客户发出应答。日常我们上网是通过Browser方式来申请从Domain Name到IP Address的解析,即Client向DNS Server提交域名翻译申请,希望得到对应的IP Address。这里以笔者所在院校为例,说明DNS的工作原理。
例如Client的Address为10.252.2.16,学校DNS Server为218.30.19.40,从此客户机来访问西安财经学院网站。在地址栏键入学校网站的www.xaufe.edu.cn,通过DNS Server查找其对应的IP Address。这个申请从10.252.2.16的一个随机PORT发送出去,由218.30.19.40的53绑定端口接收到此申请并进行翻译,首先在218.30.19.40的高速缓存中查找www.xaufe.edu.cn的IP Address,若存在对应的映射关系,就直接将IP Address发送给客户机,若缓存中没有,则218.30.19.40会向上层DNS SERVER查询,最后将查询到的结果先发送到218.30.19.40,最后由218.30.19.40将西安财经学院的IP Address(281.195.32.1)返回给Client 10.252.2.16。这样10.252.2.16就可以和西安财经学院站点建立连接并访问了。
二、DNS欺骗攻击原理
2.1 欺骗原理
Client的DNS查询请求和DNS Server的应答数据包是依靠DNS报文的ID标识来相互对应的。在进行域名解析时,Client首先用特定的ID号向DNS Server发送域名解析数据包,这个ID是随机产生的。DNS Server找到结果后使用此ID给Client发送应答数据包。Client接收到应答包后,将接收到的ID与请求包的ID对比,如果相同则说明接收到的数据包是自己所需要的,如果不同就丢弃此应答包。根据攻击者的查询和应答原理,可使用不同方法实现攻击,如:
(1)因为DNS Message仅使用一个简单的认证码来实施真实性验证,认证码是由Client程序产生并由DNS Server返回结果的,客户机只是使用这个认证码来辨别应答与申请查询是否匹配,这就使得针对ID认证码的攻击威胁成为可能。
(2)在DNS Request Message中可以增加信息,这些信息可以与客户机所申请查询的内容没有必然联系,因此攻击者就能在Request Message中根据自己的目的增加某些虚假的信息,比如增加其它Domain Server的Domain Name及其IP Address。此时Client在受到攻击的Domain Server上的查询申请均被转向此前攻击者在Request Message中增加的虚假Domain Server,由此DNS欺骗得以产生并对网络构成威胁。
(3)当DNS Server接收到Domain Name和IP Address相互映射的数据时,就将其保存在本地的Cache中。若再有Client请求查询此Domain Name对应的IP Address,Domain Server就会从Cache中将映射信息回复给Client,而无需在Database中再次查询。如果黑客将DNS Request Message的存在周期设定较长时间,就可进行长期欺骗。
2.2 DNS欺骗攻击的方式
DNS欺骗技术常见的有内应攻击和序列号攻击两种。内应攻击即黑客在掌控一台DNS Server后,对其Domain Database内容进行更改,将虚假IP Address指定给特定的Domain Name,当Client请求查询这个特定域名的IP时,将得到伪造的IP。
序列号攻击是指伪装的DNS Server在真实的DNS Server之前向客户端发送应答数据报文,该报文中含有的序列号ID与客户端向真实的DNS Server发出请求数据包中含有的ID相同,因此客户端会接收该虚假报文,而丢弃晚到的真实报文,这样DNS ID序列号欺骗成功。客户机得到的虚假报文中提供的域名的IP是攻击者设定的IP,这个IP将把客户带到攻击者指定的站点。
2.3 DNS 序列号欺骗攻击原理
DNS 序列号(ID)欺骗以侦测ID和Port为基础。在Switch构建的网络中,攻击方首先向目标实施ARP欺骗。当Client、攻击者和DNS Server同在一个网络时,攻击流程如下:①攻击方向目标反复发送伪造的ARP Request Message,修改目标机的ARP 缓存内容,同时依靠IP续传使Data经过攻击方再流向目的地;攻击方用Sniffer软件侦测DNS请求包,获取ID序列号和Potr;②攻击方一旦获得ID和Potr,即刻向客户机发送虚假的DNS Request Message,Client接收后验证ID和Potr正确,认为接收了合法的DNS应答;而Client得到的IP可能被转向攻击方诱导的非法站点,从而使Client信息安全受到威胁;③Client再接收DNS Server的Request Message,因落后于虚假的DNS响应,故被Client丢弃。当Client访问攻击者指向的虚假IP时,一次DNS ID欺骗随即完成。
三、DNS欺骗检测和防范思路
3.1 检测思路
发生DNS欺骗时,Client最少会接收到两个以上的应答数据报文,报文中都含有相同的ID序列号,一个是合法的,另一个是伪装的。据此特点,有以下两种检测办法:
(1)被动监听检测。即监听、检测所有DNS的请求和应答报文。通常DNS Server对一个请求查询仅仅发送一个应答数据报文(即使一个域名和多个IP有映射关系,此时多个关系在一个报文中回答)。因此在限定的时间段内一个请求如果会收到两个或以上的响应数据报文,则被怀疑遭受了DNS欺骗。
(2)主动试探检测。即主动发送验证包去检查是否有DNS欺骗存在。通常发送验证数据包接收不到应答,然而黑客为了在合法应答包抵达客户机之前就将欺骗信息发送给客户,所以不会对DNS Server的IP合法性校验,继续实施欺骗。若收到应答包,则说明受到了欺骗攻击。
3.2 防范思路
在侦测到网络中可能有DNS欺骗攻击后,防范措施有:①在客户端直接使用IP Address访问重要的站点,从而避免DNS欺骗; ②对DNS Server和Client的数据流进行加密,Server端可以使用SSH加密协议,Client端使用PGP软件实施数据加密。
对于常见的ID序列号欺骗攻击,采用专业软件在网络中进行监听检查,在较短时间内,客户端如果接收到两个以上的应答数据包,则说明可能存在DNS欺骗攻击,将后到的合法包发送到DNS Server并对DNS数据进行修改,这样下次查询申请时就会得到正确结果。
四、DNS防护方案
4.1 进行IP地址和MAC地址的绑定
(1)预防ARP欺骗攻击。因为DNS攻击的欺骗行为要以ARP欺骗作为开端,所以如果能有效防范或避免ARP欺骗,也就使得DNS ID欺骗攻击无从下手。例如可以通过将Gateway Router 的Ip Address和MAC Address静态绑定在一起,就可以防范ARP攻击欺骗。
(2)DNS信息绑定。DNS欺骗攻击是利用变更或者伪装成DNS Server的IP Address,因此也可以使用MAC Address和IP Address静态绑定来防御DNS欺骗的发生。由于每个Network Card的MAC Address具有唯一性质,所以可以把DNS Server的MAC Address与其IP Address绑定,然后此绑定信息存储在客户机网卡的Eprom中。当客户机每次向DNS Server发出查询申请后,就会检测DNS Server响应的应答数据包中的MAC Address是否与Eprom存储器中的MAC Address相同,要是不同,则很有可能该网络中的DNS Server受到DNS欺骗攻击。这种方法有一定的不足,因为如果局域网内部的客户主机也保存了DNS Server的MAC Address,仍然可以利用MAC Address进行伪装欺骗攻击。
4.2 使用Digital Password进行辨别
在不同子网的文件数据传输中,为预防窃取或篡改信息事件的发生,可以使用任务数字签名(TSIG)技术即在主从Domain Name Server中使用相同的Password和数学模型算法,在数据通信过程中进行辨别和确认。因为有Password进行校验的机制,从而使主从Server的身份地位极难伪装,加强了Domain Name信息传递的安全性。
安全性和可靠性更好的Domain Name Service是使用域名系统的安全协议(Domain Name System Security, DNSSEC)),用Digital Signature的方式对搜索中的信息源进行分辨,对DATA的完整性实施校验,DNSSEC的规范可参考RFC2605。因为在设立Domain时就会产生Password,同时要求上层的Domain Name也必须进行相关的Domain Password Signature,显然这种方法很复杂,所以InterNIC域名管理截至目前尚未使用。然而就技术层次上讲,DNSSEC应该是现今最完善的Domain Name设立和解析的办法,对防范Domain Name欺骗攻击等安全事件是非常有效的。
4.3 优化DNS SERVER的相关项目设置
对于DNS Server的优化可以使得DNS的安全性达到较高的标准,常见的工作有以下几种:①对不同的子网使用物理上分开的Domain Name Server,从而获得DNS功能的冗余;②将外部和内部Domain Name Server从物理上分离开并使用Forwarders转发器。外部Domain Name Server可以进行任何客户机的申请查询,但Forwarders则不能,Forwarders被设置成只能接待内部客户机的申请查询;③采用技术措施限制DNS动态更新;④将区域传送(zone transfer)限制在授权设备上;⑤利用事务签名对区域传送和区域更新进行数字签名;⑥隐藏服务器上的Bind版本;⑦删除运行在DNS服务器上的不必要服务,如FTP、telnet和Http;⑧在网络外围和DNS服务器上使用防火墙,将访问限制在那些DNS功能需要的端口上。
4.4 直接使用IP地址访问
对个别信息安全等级要求十分严格的WEB站点尽量不要使用DNS进行解析。由于DNS欺骗攻击中不少是针对窃取客户的私密数据而来的,而多数用户访问的站点并不涉及这些隐私信息,因此当访问具有严格保密信息的站点时,可以直接使用IP地址而无需通过DNS解析,这样所有的DNS欺骗攻击可能造成的危害就可以避免了。除此,应该做好DNS Server的安全配置项目和升级DNS软件,合理限定DNS Server进行响应的IP地址区间,关闭DNS Server的递归查询项目等。
4.5 对DNS数据包进行监测
在DNS欺骗攻击中,Client会接收到至少两个DNS的数据响应包,一个是真实的数据包,另一个是攻击数据包。欺骗攻击数据包为了抢在真实应答包之前回复给Client,它的信息数据结构与真实的数据包相比十分简单,只有应答域,而不包括授权域和附加域。因此,可以通过监测DNS响应包,遵循相应的原则和模型算法对这两种响应包进行分辨,从而避免虚假数据包的攻击。
本文对DNS解析及DNS欺骗的原理进行了阐述,对DNS欺骗攻击的方式、检测和防范的思路进行了探讨,最后给出了一些预防DNS欺骗的常见方法。相信这些方案的应用,可以大大提高DNS的安全性和可靠性。但网络的发展和应用日新月异,在实践中还要不断紧跟技术变化的步伐,不断学习和总结才能有效抵御各种新类型的DNS故障。