一种检测dns服务器是否防网络攻击的方法

文档序号:9914326阅读:587来源:国知局
一种检测dns服务器是否防网络攻击的方法
【技术领域】
[0001] 本发明涉及数据通信网络,尤其涉及DNS安全领域。
【背景技术】
[0002] 在数据通信网络中,域名系统(Domain Name System,DNS)用于将域名与IP地址相 互映射,从而使得用户能够更加方便的访问互联网。对DNS系统的解析过程包括:在本地服 务器中进行查询,如果能够查询到则直接返回查询结果,如果没有查询结果则本地服务器 依次向根服务器、顶级域服务器和权威域服务进行迭代查询。
[0003] 然而,DNS系统在设计之初并没有考虑到对安全的需求。作为一个在全球范围内的 开放系统,DNS系统存在未授权访问和缺乏有效的访问控制的问题。根据《2014年中国互联 网网络安全报告》的数据显示,在2014年间针对我国域名系统的流量规模达lGbit/s以上的 拒绝服务攻击事件,平均每天约遭受187起拒绝服务攻击。
[0004] 常见的针对DNS系统的攻击包括,拒绝服务(Denial of Service,DoS)和分布式拒 绝服务(Distributed Denial of Service,DDoS)。其中,DoS攻击是一种使计算机或网络无 法提供正常的服务的攻击。DDoS攻击指的是借助于客户/服务器技术,将多个计算机联合起 来作为攻击平台,对一个或多个目标发动的攻击。如果DNS服务器不能抵御DoS/DDoS攻击, 那么在遭受攻击时,不仅会直接影响到用户的访问时间和访问成功率,而且还会对服务器 提供商造成损失。
[0005] 然而,通常针对DNS服务器的测试主要关注于测试服务器的性能,而不关注DNS服 务器是否能够防御DoS/DDoS攻击。因此,为了能够有效的检测DNS服务器是否能够防御DoS/ DDoS攻击,以向用户提供可靠的DNS服务器,也为DNS服务器提供商加强服务器的安全提供 依据,有必要设计一种用于检测DNS服务器是否防DoS/DDoS攻击的方法。

【发明内容】

[0006] 因此,本发明的目的在于克服上述现有技术的缺陷,提供一种检测DNS服务器是否 防DoS/DDoS攻击的方法。
[0007] 本发明的目的是通过以下技术方案实现的,包括:
[0008] 确定DNS服务器在未受到网络攻击时的平均响应时间和/或查询成功率;
[0009] 确定所述DNS服务器在遭受检测的网络攻击时的平均响应时间和/或查询成功率; [0010]比较所述DNS服务器在未受到网络攻击与遭受所述检测的网络攻击时的平均响应 时间和/或查询成功率,确定所述DNS服务器是否防网络攻击;
[0011] 其中,所述响应时间是从客户端发出查询包到收到响应包的耗时,所述平均响应 时间是所有DNS查询包的响应时间的平均值;所述查询成功率是收到DNS响应包占 DNS查询 包的百分比。
[0012] 与现有技术相比,本发明的优点在于:
[0013] 可用于检测DNS服务器是否能防御攻击,而不是检测DNS服务器是否遭遇了攻击; 并且通过简单的实施方式,即仅需要测试查询服务器的平均响应时间和查询成功率,便可 以检测DNS服务器是否防攻击;该方法耗时较短(一般小于5分钟),而不用对DNS服务器进行 全面检测。
【附图说明】
[0014]以下参照附图对本发明实施例作进一步说明,其中:
[0015]图1是根据本发明的一个实施例的用于检测DNS服务器是否防DoS/DDoS攻击的方 法的流程图;
[0016] 图2是根据本发明的一个实施例的用于存储全部DNS查询包的标识、查询名和查询 类型和发送时间的链表。
【具体实施方式】
[0017] 下面结合附图和【具体实施方式】对本发明作详细说明。
[0018] 在仔细研究现有技术的基础上,发明人认为为了进行DNS服务器是否能够防御 DoS/DDoS攻击的检测,可以利用不同的DNS查询包。
[0019] 发明人发现,当DNS服务器能够抵御诸如DoS/DDoS的网络攻击时其平均响应时间 和查询成功率与未发生攻击的结果相近,而当DNS服务器无法抵御网络攻击时其平均响应 时间会大大增加、其查询成功率会大大降低。这是由于,诸如DoS和DDoS的网络攻击是通过 消耗服务器的带宽和主机资源(CPU、内存等)从而使得普通用户访问服务器的速度降低或 者根本无法访问服务器,来达到攻击的目的。如果服务器具备防御Dos/DDoS攻击的手段(例 如检测响应包是否合法、限制对同一域名的查询速度或者限制同一 IP的查询速度等),那么 即使遭遇了 DoS/DDoS攻击,DNS服务器也能够立即响应普通用户所发出的DNS查询包,从而 使得该DNS查询包的平均响应时间同没遭受攻击的DNS查询包的平均响应时间处于一个数 量级。相反地,如果DNS服务器不能防御Dos/DDoS攻击,那么在遭受攻击的情况下,DNS服务 器会因为带宽或者主机资源的消耗而使得普通用户发送的DNS查询包遭受网络拥塞或者排 队等待,因而使得DNS查询包的平均响应时间显著增大,甚至无法得到响应。
[0020] 由此,发明人认为可以分别在正常环境和DoS/DDoS攻击环境下测试DNS服务器的 平均响应时间和查询成功率,并根据测试结果判断DNS服务器是否防DoS/DDoS攻击。例如, 如果DNS服务器在DoS/DDoS攻击下的查询的平均响应时间和查询成功率,与在正常网络环 境下相比的结果差异不大(例如处于同一个数量级),那么可以认为该服务器就能抵御攻 击;如否则可以认为DNS服务器不能抵御DoS/DDoS攻击。
[0021] 发明人还了解到,如表1所示,根据DNS的协议报文RFC1035可知,DNS查询报文仅包 括标识、标志、问题数、资源记录数、授权资源记录数、额外资源记录数和问题的字段。表2示 出了 DNS查询报文中问题字段所包含的内容,问题字段包括查询名、查询类型和查询类。 [0022]表1 DNS查询报文的一般格式
[0024] 表2 DNS查询报文中问题格式
[0026] 参考表1和表2,发明人认为DNS查询包中的标识、查询名和查询类型可以用于确定 一个唯一的DNS查询包,因此还可以把标识、查询名和查询类型作为三元组用于判断DNS响 应包与查询包是否匹配,以便测试DNS服务器的平均响应时间和查询成功率。由此,在接收 到DNS响应包时,可以找到相应的DNS查询包,从而计算出响应时间,以及获知没有查询成功 的DNS查询包。
[0027] 由此,发明人期望能够通过比较测试服务器在不同网络环境下的平均响应时间和 查询成功率,分析并判断出DNS服务器能否防御DoS/DDoS攻击。
[0028]参考图1,根据本发明的一个实施例,提供一种检测DNS服务器是否防DoS/DDoS攻 击的方法,包括:
[0029] Sl-a:确定在未受到网络攻击的网络环境下的DNS服务器的平均响应时间和查询 成功率。
[0030] 其中,响应时间是信息传输的往返时间,即从客户端发出查询包到收到响应包的 耗时,平均响应时间是所有查询包响应时间的平均值;查询成功率是收到响应包占查询包 的百分比。
[0031] si-b:确定在步骤si-a的网络遭受诸如DoS/DDoS的检测的网络攻击的环境下的 DNS服务器的平均响应时间和查询成功率,并保存测试结果。
[0032] 在不改变服务器部署的情况下,将不改变DNS服务器是否防网络攻击的结果。如果 测试结果说明DNS服务器可以防攻击,那么在不改变该DNS服务器部署的情况下,其还会继 续防攻击。在改变该DNS服务器部署之后,可以根据服务器提供商自己的意愿,看是否需要 再次进行测试。
[0033]本领域的技术人员应理解,还可以模拟其他类型的检测的网络攻击环境,并且记 录所测试出的DNS服务器的平均响应时间和查询成功率。由此,可以确定是否能够防御特定 类型的攻击。
[0034]为了实施上述的方法,可以首先构建大量的分别采用相同域名和不同域名的不同 的DNS查询包。然后,使用相同的IP地址分别发送所述相同域名和不同域名的DNS查询包,对 DNS服务器形成DoS攻击,测试并记录其平均响应时间和查询成功率。还可以,使用不同的IP 地址发送所述不同域名的DNS查询包以及利用反射攻击的原理,对DNS服务器形成DDoS攻 击,测试其平均响应时间和查询成功率。所有测试结果的保存形式可以例如表3。
[0035]表3.保存评价结果表
[0037] S2:比较所述未受到网络攻击与所述遭受诸如DoS/DDoS的检测的网络攻击的DNS 服务器的平均响应时间和/或查询成功率,确定测试的疑似遭受诸如网络攻击的DNS服务器 是否防网络攻击。
[0038]比较DNS服务器在未受到网络攻击时和遭受DoS/DDoS攻击时的平均响应时间和/ 或查询成功率,如果为同一数量级,则认为DNS服务器能够抵御DoS和DDoS攻击,如否则认为 其不能抵御DoS/DDoS攻击。
[0039] 由此,通过上述方法可达到检测DNS服务器是否防网络攻击的效果。
[0040] 根据本发明的一个实施例,提供了一种用于确定在前述实施例的步骤si-a和si-b 中所述的DNS服务器的平均响应时间和查询成功率的方法,包括:
[0041] Sl-xl:在被发出时为每一个DNS查询包打上时间戳,记录该DNS查询包的标识、查 询名和查询类型,并累计
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1