确保你的DNS服务器免受劫持困扰需要做些什么

所属分类: 网络安全 / 黑客教程 阅读数: 31
收藏 0 赞 0 分享

虽然现在看来已经可以算是陈年旧事,但就在互联网刚刚诞生的约二十年前,我们曾面临着一个巨大的难题:邮件服务器太过友好。

简而言之,大多数邮件服务器允许任何人进行接入,并将邮件发送给任何收件者。要实现这一切,我们甚至不需要作为邮件服务器的用户,或者只需要费一点小劲来将自己伪装成用户即可。

攻击者能够利用邮件服务器的邮件SMTP接收端口(TCP端口25)来实现连接,并模仿全部SMTP服务器用于交换邮件的内部命令发送各类操作(通过telent、脚本或者其它程序)。如此一来,黑客将能够伪造电子邮件、宣称其来自邮件服务器所托管的某位合法用户并将任意邮件内容发送给任意收件人。

垃圾邮件发送者会寻找这类“开放转发”服务器,并将成千万甚至上亿封垃圾邮件发送到世界各地。全球技术人员——以及邮件服务器供应商——花了约二十年时间来强制要求所有始发邮件必须进行实际来源验证,且由认证用户所发出。

然而在多年之后,类似的开放转发问题又出现在互联网领域的另一大基础性技术当中,即DNS。攻击者经常会利用配置不当的DNS服务器向查询客户端发送无效IP地址——或者发送大量虚假流量以实施DDoS攻击。

利用DNS实施DDoS攻击

DDoS以及其它攻击者多年来一直在利用DNS实施他们的邪恶阴谋,但在过去几年当中,这种状况出现了愈演愈烈之势。

最近一段时间来,多数大规模DDoS攻击者开始频繁利用DNS“放大”技术。如果大家对其具体实现方式及背景信息感兴趣,可以查看US-CERT、互联网系统联盟以及CloudFlare上的相关资料(英文原文)。

最终,DNS服务器供应商与协议开发商不得不采取对应措施,而这一切正如当年SMTP邮件供应商所作出的保护努力一样。其中包括更理想的默认设置及新型防御机制。不过遗憾的是,DNS服务器——虽然它们看起来可能运行良好——仍然被人们所忽视,而且继续保留着攻击者不希望管理方发现的大量安全漏洞。

禁用开放转发DNS服务器

每一家企业客户都能够轻松实现的保护手段就是限定自身DNS服务器对哪些以及来自谁的请求做出响应。对于内部DNS服务器而言,我们需要确保其只会针对来自内部计算机或者其它认证DNS服务器的查询给出DNS响应。

即使是在外部环境下,面向公众的DNS服务器也不应该以无脑方式对所有请求做出响应。如果大家的DNS服务器托管于*.example.com地址,那么绝对不会有合法用户在该域名之外进行域名地址查询。如果大家的DNS服务器当前会对来自任何使用者的全部查询做出响应,特别是来自任意域名的请求,那么这就是一台开放转发DNS服务器——相信我,这绝不是什么好事。

为了确保我们的DNS服务器不被划归为开放转发一类,并对其进行严格锁定并保证其合法运作,请将其IP地址输入到以下各DNS开放转发检测服务中进行安全性测试:

· Open Resolver Project

· Open DNS Resolver Check Site

· DNS Expertise - The Measurement Factory

· DNS Inspect

DNS响应速率限制

作为防止自有DNS服务器被用于DDoS攻击活动的最佳防御手段之一,我们应当对其进行响应速率限制(简称RRL)。RRL主要面向权威DNS服务器(即那些应当对一个或者多个域名进行响应的DNS服务器),且允许DNS管理员针对DNS响应流量作出有效速率限制。尽管在默认情况下并未启用(但绝对应该被启用!),我们可以在BIND 9.9(及其后续版本)当中找到RRL,其同时也作为微软即将推出的Windows Server 2016 DNS服务的组成部分。

如果大家的DNS服务器并不支持RRL,则可以尝试利用其它备选方案实现同样的效果,包括使用防火墙速率过滤或者其它反DDoS服务来保护自己的DNS。

禁用向上转介响应

对于大多数DNS来讲,当某台非递归权威DNS服务器收到一条未经认证的域名查询时,该DNS服务器会直接将该查询客户重新定向至顶级域名DNS服务器(能够在文件托管‘root hints’当中按照名称及IP地址进行排列)。这是一种较为礼貌的作法,类似于“嘿,我不知道答案是什么,但我建议你到那边试试运气。”

但事实上,这种方式相当于因为个人原因而毁掉大家的生活,而DNS放大攻击的出现也使得这种使用root hints的方式饱受诟病。BIND长久以来一直建议大家禁用这一向上转介行为。微软公司计划在其Windows Server 2016当中默认禁用向上转介机制,而大家也可以通过删除该root hints文件(具体位置为c:\windows\system32\DNS\cache.dns)的方式在其它Windows Server早期版本中禁用该功能。

检查所有DNS服务

针对计算机及设备用于接收连接的TCP或者UDP端口53进行扫描,从而检查所有运行有DNS服务的计算机及设备并对其进行安全配置。一般来讲,大家会发现其中存在着一些运行有计划外DNS服务器的装置及网络设备(例如无线路由器等)。

开门揖盗最为愚蠢

DNS协议自从1983年诞生以来就一直拥有良好的实际表现。它虽然也经历过被滥用以及后续更新作为补救的状况,但总体而言,它仍然扮演着保障互联网正常运转的核心角色。不过我们绝不能够对现有安全水平盲目自满,特别是在DNS方面。

在文章的最后,我要提醒大家千万别让自己的DNS服务器重复当初公共邮件服务器的覆辙——作为现代IT世界中的一员,我们不可能再拿出十年时间来解决那些早就该进行修复的问题。

更多精彩内容其他人还在看

不一样的挂马方式 TXT挂马

我们平常挂马无外乎就那么几种方式,如框架挂马、js挂马、css挂马.   txt不是文本文件吗?它如何挂马?且听我慢慢道来,很简单的说.   如果有人给你发个一个类似http://www.xxx.com/test.txt的链接,你敢不敢打开?如果你觉得这只是一个txt文件,打开就
收藏 0 赞 0 分享

pstools使用方法

  软件名称:Pstools   运行平台:Windows   软件授权:免费软件   软件大小:550KB   下面我用一个实例来讲解这个命令的使用。假设我要对192.168.0.8计算机进行远程管理,那么我可以先打开一个命令行窗口。在命令行中输入以下命令后敲回车:   D:t
收藏 0 赞 0 分享

命令行下一种新的加帐号的方法

  今天研究了一下用户控制面板文件nusrmgr.cpl,发现调用的是Shell.Users来加用户,它还同时调用了wscript.shell、Shell.Application、Shell.LocalMachine这三个组件。不过加用户的话,这一个Shell.Users就足够了
收藏 0 赞 0 分享

如何使用sqlcmd.exe 连接到数据库引擎

     SQL Server 支持使用 TCP/IP 网络协议(默认值)、命名管道协议和 VIA 协议的客户端通信。如果客户端要连接到同一计算机上的数据库引擎实例,则也可以使用共享内存协议。通常有三种选择协议的方法。sqlcmd 实用工具
收藏 0 赞 0 分享

按5次shift 键后门 利用方法

原理:连敲5次shift就自动激活连滞键设置~~也就是自动执行sethc.exe ,你把explorer.exe换成sethc.exe 就是自动执行explorer.exe
收藏 0 赞 0 分享

突破一流拦截 上传限制的方法

在我们入侵网站的过程中,有时候提交我们的大马或者其他ASP文件的时候,会被一流信息监控系统所拦截
收藏 0 赞 0 分享

命令行下一种新的添加帐号的方法

天研究了一下用户控制面板文件nusrmgr.cpl,发现调用的是Shell.Users来加用户
收藏 0 赞 0 分享

PHP 万能密码

说实话如果一个网站的前台都是注入漏洞,那么凭经验,万能密码进后台的几率基本上是百分之百
收藏 0 赞 0 分享

hzhost6.5 华众虚拟主机管理系统最新SQL漏洞(附漏洞补丁)

其实呢,漏洞一点都不新,在t00ls都躺了N天了,就是不见有人转出来..没记错的话这已经是华众第四次出漏洞了..而且每次犯的还都是一个毛病,我很看好他们的程序员.
收藏 0 赞 0 分享

防止apache的php扩展名解析漏洞

今天看到ecshop后台拿webshell的文章,想起来很长时间很多版本存在的apache的php扩展名解析漏洞
收藏 0 赞 0 分享
查看更多