不知大家是否还有印象,去年3月国际反垃圾邮件组织网站Spamhaus遭受了有史以来最大一次DDoS攻击,攻击流量峰值达到300Gbps,而此次攻击的入口便是DNS!通过利用开放式DNS服务器,进行放大式的DDoS攻击,这也充分说明:DNS存在安全漏洞。
DNS定义及攻击原理
那么究竟什么是DNS?DNS攻击的原理又是什么呢?其实,DNS是域名系统Domain Name System的缩写,作为因特网的一项核心服务,它将便于记忆的域名和IP地址相互映射,使人们更方便的访问互联网,而省去了记忆那些被机器直接读取的IP数串。
DNS的重要性体现在两方面:一是,互联网绝大多数应用的实际寻址方式,域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议;二是,域名是互联网上的身份标识,是不可重复的唯一标识资源,互联网的全球化使得域名成为标识一国主权的国家战略资源。
DNS之所以成为黑客攻击的首选目标,原因主要有三:首先,服务角色决定了DNS具有稳定性和公开性,加之缓存影响导致地址不能经常变化,故在遭到攻击时,DNS服务器不能更换和隐藏IP地址;其次是匿名性,DNS服务使用UDP协议,黑客可以很好地隐藏自己不被追溯;最后就是集中性,通常情况下DNS服务器都会为多个网站或者用户提供服务,攻破一个服务器影响范围非常大,也使得攻击效率大大提高。
DNS攻击主要方式
DNS是网络实现互联的基础,通过DNS域名系统用户可以在互联网上轻松的找到自己想要的相关信息。同时,也因为DNS自身具有稳定与公开等特性,使得攻击者在实施攻击时更易于隐藏自己而不被追溯,关于DNS的攻击方式有很多,这里为大家介绍几种DNS最常见的六种攻击方式。
方式一:DNS缓存感染
攻击者使用DNS请求,将数据放入一个具有漏洞的的DNS服务器的缓存当中。这些缓存信息会在客户进行DNS访问时返回给用户,从而把用户客户对正常域名的访问引导到入侵者所设置挂马、钓鱼等页面上,亦可通过伪造的邮件或其他的server服务获取用户口令信息,导致客户遭到进一步的攻击。
方式二:ARP欺骗
通过伪造IP地址和MAC地址可实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
方式三:基于DNS服务器的DDoS攻击
DDoS攻击借助客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。这也是目前最常见同时影响力最大的DNS攻击。
方式四:DNS重定向
DNS重定向就是使所设置的域名不通过DNS服务器解析域名,直接访问域名对应的IP地址,攻击者如果将DNS名称查询重定向到恶意DNS服务器,那么被劫持域名的解析就完全至于攻击者的控制之下。
方式五:DNS信息劫持
攻击者在DNS服务器之前将虚假的响应交给用户,从而欺骗客户端去访问恶意的网站。假设当提交给某个域名服务器的域名解析请求的数据包被截获,然后按截获者的意图将一个虚假的IP地址作为应答信息返回给请求者。此时,原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行连接,显然它被欺骗到了别处而根本连接不上自己想要连接的那个域名。
方式六:本机劫持
本机的计算机系统被木马或流氓软件感染后,也可能会出现部分域名的访问异常,如访问挂马或者钓鱼站点、无法访问等情况,本机DNS劫持方式包括hosts文件篡改、本机DNS劫持、SPI链注入、BHO插件等方式,虽然并非都通过DNS环节完成,但都会造成无法按照用户意愿获得正确的地址或者内容的后果。
如何防范DNS攻击
面对多种不同方式的DNS攻击,如何做到提前防御呢?其实,时时监控你的DNS数据就是判定网络是否被攻击的最好方法,例如一个可疑的DNS流量,这很可能预示着你的网络设备成为僵尸网络目标。在众多DNS监控方法中,目前比较行之有效的大概有三种:域名年龄、可疑域名和DNS故障。
域名年龄是编写Whois查询和监控所有第一次穿过网关的域名,还特别关注所创建的字段的日期。例如,有一个域名是两天前创建的,那么它会阻止流向该域名的任何流量,直到进一步检查后再执行。
其实很难界定“可疑”域名的界限,例如我们上网时常使用google.com这个域名,但是goole.co1.123.abc却很罕见,倘若你注意到流向某域名的流量不正常,那么这时你就需要格外小心谨慎了。
DNS故障,如果有很多DNS查找故障信息进入你的网络,那么你很可能已经成为攻击者利用域名生成算法(DGA)的受害者了,因为很少有人会利用DGA创建数千个域名来进行通信,与真实域名通信就是机器通过相应的C2节点来控制机器的过程。
此外,提高服务器抗攻击能力,加强DNS防护能力,以及提升程序解析速度也是非常有必要的,加之实时监测DNS数据,以及行而有效的解决方案,帮助我们更好的防御来自攻击者恶意的DNS攻击。
下一篇:Hacker是这样写JS的