DNS(域名系统)是互联网的基础设施,它将域名(如 www.example.com)转换为 IP 地址(如 192.0.2.15)。此转换称为域名解析。域名解析需要使用 DNS 服务器。DNS 服务器是存储域名和 IP 地址对应关系的数据库。当向 DNS 服务器查询域名时,它将返回关联的 IP 地址。存在多种类型的 DNS 服务器,每种类型都有特定的角色:
递归 DNS 服务器
递归 DNS 服务器负责为客户端解析 DNS 查询。客户端计算机将 DNS 查询发送到递归 DNS 服务器,然后递归 DNS 服务器查询其他 DNS 服务器以获取答案。递归 DNS 服务器将继续查询直到找到答案或达到查询限制。递归 DNS 服务器通常是 ISP(互联网服务提供商)向其客户提供的。
授权 DNS 服务器
授权 DNS 服务器负责为特定域存储域名和 IP 地址的对应关系。当递归 DNS 服务器需要解析一个域名时,它将查询负责该域的授权 DNS 服务器。授权 DNS 服务器由域所有者或其指定的管理员配置和维护。
根 DNS 服务器
根 DNS 服务器是 DNS 层次结构的顶部。它们存储所有顶级域(如 .com、.net 和 .org)的授权 DNS 服务器的地址。根 DNS 服务器由互联网名称与数字地址分配机构 (ICANN) 管理。
DNS 服务器未响应问题
如果您遇到 DNS 服务器未响应问题,可能是由于以下原因:递归 DNS 服务器不可用:您的递归 DNS 服务器可能已关闭或停止响应。授权 DNS 服务器不可用:负责您正在查询的域的授权 DNS 服务器可能已关闭或停止响应。根 DNS 服务器不可用:在极少数情况下,根 DNS 服务器可能不可用。网络问题:您计算机和 DNS 服务器之间的网络连接可能存在问题。防火墙或安全软件:您的防火墙或安全软件可能阻止了您访问 DNS服务器。
解决 DNS 服务器未响应问题
要解决 DNS 服务器未响应问题,请尝试以下步骤:检查您的互联网连接:确保您的计算机连接到互联网。尝试使用不同的 DNS 服务器:您可以尝试使用公共 DNS 服务器,例如 Google DNS(8.8.8.8 和 8.8.4.4)或 Cloudflare DNS(1.1.1.1 和 1.0.0.1)。禁用防火墙和安全软件:暂时禁用防火墙和安全软件,看看问题是否得到解决。重启计算机和路由器:重启计算机和路由器可能会清除导致问题的临时问题。联系您的 ISP:如果您尝试了上述步骤但问题仍然存在,请联系您的 ISP 寻求帮助。
结论
DNS 服务器是互联网的基础设施,它们通过将域名转换为 IP 地址来使互联网工作。有三种类型的 DNS 服务器:递归、授权和根 DNS 服务器。如果您遇到 DNS 服务器未响应问题,您可以尝试遵循本文中概述的步骤来解决问题。
DNS检测失败是什麽意思?
DNS 服务器不响应客户端。
原因: DNS 服务器受到网络故障的影响。
解决方案: 验证服务器计算机是否有能正常工作的网络连接。
首先,使用基本网络和硬件疑难解答步骤,检查相关的客户端硬件(电缆和网络适配器)在客户端是否运转正常。
如果服务器硬件已准备好且工作正常,请使用 Ping 命令检查与受影响的 DNS 服务器位于同一网络上的其他在用和可用计算机或路由器(如它的默认网关)之间的网络连接性。
请参阅: 使用 Ping 命令测试 TCP/IP 配置。
原因: 可以通过基本网络测试访问到 DNS 服务器,但不能响应来自客户端的 DNS 查询。
解决方案: 如果 DNS 客户端可以使用 Ping 检测 DNS 服务器计算机的连接性,请确认 DNS 服务器是否已启动,而且是否能够侦听对客户端请求的响应。
请尝试使用 nslookup 命令测试服务器是否可以响应 DNS 客户端。
请参阅: 使用 nslookup 命令验证 DNS 服务器响应;启动或停止 DNS 服务器。
原因: DNS 服务器已被配置为仅限对其已配置的 IP 地址的特定列表提供服务。
最初用于测试其响应性的 IP 地址不包括在列表中。
解决方案: 如果已将服务器配置成对它将响应的查询的 IP 地址进行限制,则客户端用于联系它的 IP 地址可能不在允许向客户端提供服务的受限制 IP 地址列表中。
请尝试再次测试服务器的响应,但应指定一个已知在服务器的受限制接口列表中的其他 IP 地址。
如果 DNS 服务器响应该地址,则向列表添加该缺少的 IP 地址。
请参阅: 使用 nslookup 命令验证 DNS 服务器响应;限制 DNS 服务器只侦听选定的地址。
原因: DNS 服务器已被配置成禁止使用其自动创建的默认反向查找区域。
解决方案: 验证已为服务器创建了自动创建的反向查找区域,或者还没有对服务器进行高级配置更改。
默认情况下,DNS 服务器会根据征求意见文档 (RFC) 的建议自动创建下列三个标准反向查找区域: 这些区域是用它们所涵盖的、在反向查找中无用的公用 IP 地址(0.0.0.0、127.0.0.1 和 255.255.255.255)创建的。
作为对应于这些地址的区域的权威机构,DNS 服务可以避免不必要的向根服务器的递归,以便对这些类型的 IP 地址执行反向查找。
尽管可能性很小,但仍有可能不创建这些自动区域。
这是因为禁止创建这些区域涉及到用户要对服务器注册表进行高级手动配置。
要验证是否已经创建了这些区域,请执行下列操作: 1. 打开 DNS 控制台。
2. 从“查看”菜单,单击“高级”。
3. 在控制台树中,单击“反向查找区域”。
位置 �6�1 DNS/适用的 DNS 服务器/反向查找区域 4. 在详细信息窗格中,确认是否存在以下反向查找区域: �6�1 �6�1 �6�1 请参阅: 打开 DNS 控制台;DNS RFC。
原因: 将 DNS 服务器配置为使用非默认的服务端口,如在高级安全性或防火墙的配置中。
解决方案: 验证 DNS 服务器是否未在使用非标准配置。
这种情况很少但仍有可能发生。
默认情况下,nslookup 命令使用用户数据报协议 (UDP) 端口 53 向目标 DNS 服务器发送查询。
如果 DNS 服务器位于另一个网络上,且只能通过一个中间主机(如数据包筛选路由器或代理服务器)才能访问,则 DNS 服务器可能使用非标准端口以侦听并接收客户端请求。
如果是这种情况,请确定是否有意地使用了任何中间防火墙或代理服务器配置来阻止用于 DNS 的已知服务端口上的通信。
如果不是,则可以向这些配置添加这样的数据包筛选器,以允许至标准 DNS 端口的通信。
此外,还要检查 DNS 服务器事件日志以查看是否发生了事件 ID 414 或其他与服务相关的重要事件,这些事件可能指明 DNS 服务器没有响应的原因。
请参阅: DNS 服务器日志参考;查看 DNS 服务器系统事件日志;Microsoft Windows 部署和资源工具包。
DNS 服务器无法正确解析名称。
原因: DNS 服务器为成功应答的查询提供了不正确的数据。
解决方案: 确定出现 DNS 服务器错误数据的原因。
最可能的原因包括: �6�1 区域中的资源记录 (RR) 没有动态更新。
�6�1 手动添加或修改区域中的静态资源记录时发生了错误。
�6�1 从缓存的搜索或区域记录中留下的 DNS 服务器数据库中的旧资源记录没有根据当前信息更新,或者在不需要时未被删除。
为了防止出现最为常见的问题,请首先复查有关部署和管理 DNS 服务器的提示和建议的最佳操作。
此外,请根据配置需要,遵循并使用适用于安装和配置 DNS 服务器和客户端的清单。
如果要为 Active Directory 部署 DNS,请注意新的目录集成功能。
当 DNS 数据库是与目录集成的数据库(与那些用于传统的基于文件的存储不同)时,这些功能可能产生与 DNS 服务器的默认配置不同的设置。
许多 DNS 服务器问题是由客户端上失败的查询引起的,因此先从这里着手并解决 DNS 客户端的问题往往比较好。
请参阅: DNS 最佳操作;DNS 清单;DNS 客户端疑难解答;修改区域中的现有资源记录;清除服务器名称缓存;修改服务器默认值。
原因: DNS 服务器不能解析来自您使用的直接网络以外的计算机名或服务名,如那些位于外部网络或 Internet 上的计算机名或服务名。
解决方案: 该服务器不能正确执行递归。
在大多数 DNS 配置中都使用递归,以解析不在已配置的由 DNS 服务器和客户端使用的 DNS 域名中的名称。
如果 DNS 服务器无法解析不属于其管辖范围的名称,原因通常都是递归查询失败。
DNS 服务器经常使用递归查询解析委派给其他 DNS 区域和服务器的远程名称。
为使递归成功,在递归查询路径中使用的所有 DNS 服务器都必须能够响应并转发正确的数据。
如果不能,递归查询可能会由于以下原因而失败: �6�1 递归查询还没有完成就超时了。
�6�1 远程 DNS 服务器不能响应。
�6�1 远程 DNS 服务器提供了不正确的数据。
如果服务器对远程名称的递归查询失败了,请查阅以下可能的原因以解决问题。
如果不了解递归查询或 DNS 查询过程,请查阅帮助中的概念性主题,以便更好地了解所涉及的问题。
请参阅: DNS 查询的工作原理。
原因: DNS 服务器没有配置为使用其他的 DNS 服务器来帮助解决查询问题。
解决方案: 检查 DNS 服务器是否可以使用转发器和递归。
默认情况下,尽管禁用递归的选项是可以使用 DNS 控制台进行配置的,以修改高级服务器选项,但是,还是允许所有 DNS 服务器使用递归。
递归可能被禁用的其他原因是,服务器被配置为使用转发器,但专门针对该配置禁用了递归。
注意 �6�1 如果在 DNS 服务器上禁用递归,那么您将无法在同一服务器上使用转发器。
请参阅: 禁用 DNS 服务器上的递归;配置 DNS 服务器以使用转发器。
原因: DNS 服务器的当前根提示无效。
解决方案: 检查服务器根提示是否有效。
如果正确地进行了配置和使用,则根提示应该始终指向对包含域根和顶级域的区域具有管辖权限的 DNS 服务器。
默认情况下,使用 DNS 控制台配置服务器时,根据以下可用选项,DNS 服务器被配置为可使用适用于您的部署的根提示: 1. 如果 DNS 服务器是作为网络上的第一个 DNS 服务器安装的,则它被配置为根服务器。
对于此配置,由于该服务器对于根区域具有管辖权限,因此会在该服务器上禁用根提示。
2. 如果安装的服务器是网络上的另一 DNS 服务器,则可以指导“配置 DNS 服务器向导”从网络上现有的 DNS 服务器更新它的根提示。
3. 如果网络上没有其他 DNS 服务器,但仍然需要解析 Internet DNS 名称,则可以使用默认根提示文件(包含对 Internet DNS 名称空间拥有管辖权限的 Internet 根服务器列表)。
请参阅: 更新 DNS 服务器上的根提示;更新根提示。
原因: DNS 服务器与根服务器之间没有网络连接。
解决方案: 测试与根服务器的连接性。
如果根提示看上去配置是正确的,请检查失败的查询所用的 DNS 服务器能否用 IP 地址 Ping 到它的根服务器。
如果针对某个根服务器的 ping 尝试失败,可能表示这个根服务器的 IP 地址已更改。
请重新配置根服务器,但这种情况不多见。
更可能的原因是网络连接完全丢失,也可能在某些情况下,DNS 服务器与它所配置的根服务器之间的中间网络链路上的网络性能不好。
请遵循基本的 TCP/IP 网络疑难解答的步骤,诊断连接并确定这是否就是问题所在。
默认情况下,在递归查询失败之前 DNS 服务使用 15 秒的递归超时时间。
在正常网络情况下,这个超时时间不需要更改。
然而如果性能允许,可以增加这个值。
要检查有关 DNS 查询的其他性能的相关信息,可以启用 DNS 服务器调试日志文件 ,它可以提供有关几种类型的服务相关事件的大量信息。
请参阅: 使用 Ping 命令测试 TCP/IP 配置;使用服务器调试日志记录选项;查看 DNS 服务器调试日志文件;调整高级服务器参数。
原因: 更新 DNS 服务器数据时出现其他问题,如与区域或动态更新有关的问题。
解决方案: 确定问题是否与区域有关。
根据需要,解决该领域中的任何问题,如可能失败的区域传输。
请参阅: 动态更新疑难解答;区域问题疑难解答。
DNS 服务器似乎受非上述原因的问题影响。
原因: 上述内容没有包括我的问题。
解决方案: 搜索 Microsoft 网站上的 TechNet 以获取与该问题相关的最新技术信息。
如有必要,可获得与当前问题相关的信息和说明。
如果连接到 Internet,则可从 Microsoft 网站下载最新的操作系统更新。
要获得 Windows NT Server 的最新 Service Pack 更新组件,请参阅 Microsoft 网站。
请参阅: DNS 更新技术信息;DNS;使用 Windows 部署和资源工具包。
参考资料
dns网络服务器未响应是什么原因
dns网络服务器未响应的原因有:DNS服务器地址错误,域名状态异常,修改域名解析尚未生效。
1、DNS服务器地址错误:这是因为输入的DNS服务器地址不正确。
用户可以检查并更换DNS服务器地址。
2、域名状态异常:如果域名因为未实名认证、未备案、到期未续费等异常状态而出现解析问题,会导致DNS服务器未响应。
3、修改域名解析尚未生效:根据域名的解析流程,用户端域名解析是否生效取决于运营商提供的递归DNS服务器和解析服务商提供的权威DNS服务器。
如果修改了域名解析设置,但这些更改尚未在DNS服务器上生效,也会导致DNS服务器未响应。
我的笔记本联网的时候显示dns服务器异常,这是网络服务商的问题还是我的本设置有问题?
、背景 域名系统(Domain Name System,DNS)是互联网的重要基础设施之一,负责提供域名和IP地址之间的映射和解析,是网页浏览、电子邮件等几乎所有互联网应用中的关键环节。
因此,域名系统的稳定运行是实现互联网正常服务的前提。
近年来,针对域名系统的网络攻击行为日益猖獗,DNS滥用现象层出不穷,再加上DNS协议本身固有的局限性,域名系统的安全问题正面临着严峻的考验。
如何快速有效的检测域名系统的行为异常,避免灾难性事件的发生,是当今域名系统乃至整个互联网所面临的一个重要议题。
DNS服务器通过对其所接收的DNS查询请求进行应答来实现对外域名解析服务,因此DNS查询数据流直接反映了DNS服务器对外服务的整个过程,通过对DNS流量异常情况的检测可以对DNS服务器服务状况进行有效的评估。
由于导致DNS流量异常的原因是多方面的,有些是由针对DNS服务器的网络攻击导致的,有些是由于DNS服务系统的软件缺陷或配置错误造成的。
不同的原因所引起的DNS流量异常所具备的特征也各不相同,这给DNS流量异常检测带来了诸多困难。
目前,在DNS异常流量检测方面,比较传统的方法是对发往DNS服务器端的DNS查询请求数据流中的一个或多个测量指标进行实时检测,一旦某时刻某一指标超过规定的阈值,即做出流量异常报警。
这种方法虽然实现简单,但是仅仅通过对这些指标的独立测量来判定流量是否异常过于片面,误报率通常也很高,不能有效的实现异常流量的检测。
近年来,随着模式识别、数据挖掘技术的发展,开始有越来越多的数据模型被引入到DNS异常流量检测领域,如在[Tracking]中,研究人员通过一种基于关联特征分析的检测方法,来实现对异常DNS服务器的识别和定位;[Context]则引入了一种上下文相关聚类的方法,用于DNS数据流的不同类别的划分;此外,像贝叶斯分类[Bayesian]、时间序列分析[Similarity]等方法也被先后引入到DNS异常流量检测中来。
不难发现,目前在DNS异常流量检测方面,已有诸多可供参考利用的方法。
但是,每种方法所对应的应用场合往往各不相同,通常都是面向某种特定的网络攻击活动的检测。
此外,每种方法所采用的数据模型往往也比较复杂,存在计算代价大,部署成本高的弊端。
基于目前DNS异常流量检测领域的技术现状,本文给出了两种新型的DNS流量异常检测方法。
该两种方法能够有效的克服目前DNS异常流量检测技术所存在的弊端,经验证,它们都能够对DNS流量异常实施有效的检测。
2、具体技术方案 1)利用Heap’sLaw检测DNS流量异常 第一种方法是通过利用Heap’s定律来实现DNS流量异常检测。
该方法创新性的将DNS数据流的多个测量指标进行联合分析,发现它们在正常网络状况下所表现出来的堆积定律的特性,然后根据这种特性对未来的流量特征进行预测,通过预测值和实际观测值的比较,实现网络异常流量实时检测的目的。
该方法避免了因为采用某些独立测量指标进行检测所导致的片面性和误报率高的缺点,同时,该方法具有计算量小,部署成本低的特点,特别适合部署在大型DNS服务器上。
堆积定律(Heap’sLaw)[Heap’s]最早起源于计算语言学中,用于描述文档集合中所含单词总量与不同单词个数之间的关系:即通过对大量的英文文档进行统计发现,对于给定的语料,其独立的单词数(vocabulary的size)V大致是语料大小N的一个指数函数。
随着文本数量的增加,其中涉及的独立单词(vocabulary)的个数占语料大小的比例先是突然增大然后增速放缓但是一直在提高,即随着观察到的文本越来越多,新单词一直在出现,但发现整个字典的可能性在降低。
DNS服务器通过对其所接收的DNS查询请求进行应答来实现对外域名解析服务。
一个典型的DNS查询请求包由时间戳,来源IP地址,端口号,查询域名,资源类型等字段构成。
我们发现,在正常网络状况下,某时间段内DNS服务器端所接收的DNS查询请求数和查询域名集合的大小两者间遵循堆积定律的特性,同样的,DNS查询请求数和来源IP地址集合的大小两者间也存在这种特性。
因此,如果在某个时刻这种增长关系发生突变,那么网络流量发生异常的概率也会比较高。
由于在正常网络状况下DNS服务器端所接收的查询域名集合的大小可以根据这种增长关系由DNS查询请求数推算得到。
通过将推算得到的查询域名集合大小与实际观测到的查询域名集合的大小进行对比,如果两者的差值超过一定的阈值,则可以认为有流量异常情况的发生,从而做出预警。
类似的,通过将推算得到的来源IP地址集合大小与实际观测到的来源IP地址集合的大小进行对比,同样可以达到异常流量检测的目的。
由于DNS流量异常发生时,DNS服务器端接收的DNS查询请求通常会异常增多,但是单纯凭此就做出流量异常的警报很可能会导致误报的发生。
此时就可以根据观测查询域名空间大小的相应变化情况来做出判断。
如果观测到的域名空间大小与推算得到的预测值的差值在允许的阈值范围之内,则可以认定DNS查询请求量的增多是由于DNS业务量的正常增长所致。
相反,如果观测到的域名空间大小未发生相应比例的增长,或者增长的幅度异常加大,则做出流量异常报警。
例如,当拒绝服务攻击(DenialofService)发生时,攻击方为了降低本地DNS缓存命中率,提高攻击效果,发往攻击对象的查询域名往往是随机生成的任意域名,这些域名通常情况下不存在。
因此当该类攻击发生时,会导致所攻击的DNS服务器端当前实际查询域名空间大小异常增大,与根据堆积定律所推算出预测值会存在较大的差距,即原先的增长关系会发生突变。
如果两者间的差距超过一定的阈值,就可以据此做出流量异常报警。
通过在真实数据上的测试和网络攻击实验的模拟验证得知,该方法能够对常见的流量异常情况进行实时高效的检测。
2)利用熵分析检测DDoS攻击 通过分析各种网络攻击数据包的特征,我们可以看出:不论DDoS攻击的手段如何改进,一般来说,各种DDoS工具软件所制造出的攻击都要符合如下两个基本规律: 1、攻击者制造的攻击数据包会或多或少地修改包中的信息; 2、攻击手段产生的攻击流量的统计特征不可能与正常流量一模一样。
因此,我们可以做出一个大胆的假设:利用一些相对比较简单的统计方法,可以检测出专门针对DNS服务器的DDoS攻击,并且这中检测方法也可以具有比较理想的精确度。
“熵”(Entropy)是德国物理学家克劳修斯(RudolfClausius,1822~1888)在1850年提出的一个术语,用来表示任何一种能量在空间中分布的均匀程度,也可以用来表示系统的混乱、无序程度。
信息理论创始人香农(ClaudeElwoodShannon,1916~2001)在1948年将熵的概念引入到信息论中,并在其经典著作《通信的数学原理》中提出了建立在概率统计模型上的信息度量,也就是“信息熵”。
熵在信息论中的定义如下: 如果在一个系统S中存在一个事件集合E={E1,E2,…,En},且每个事件的概率分布P={P1,P2,…,Pn},则每个事件本身所具有的信息量可由公式(1)表示如下:熵表示整个系统S的平均信息量,其计算方法如公式(2)所示:在信息论中,熵表示的是信息的不确定性,具有高信息度的系统信息熵是很低的,反过来低信息度系统则具有较高的熵值。
具体说来,凡是导致随机事件集合的肯定性,组织性,法则性或有序性等增加或减少的活动过程,都可以用信息熵的改变量这个统一的标尺来度量。
熵值表示了系统的稳定情况,熵值越小,表示系统越稳定,反之,当系统中出现的不确定因素增多时,熵值也会升高。
如果某个随机变量的取值与系统的异常情况具有很强的相关性,那么系统异常时刻该随机变量的平均信息量就会与系统稳定时刻不同。
如果某一时刻该异常情况大量出现,则系统的熵值会出现较大幅度的变化。
这就使我们有可能通过系统熵值的变化情况检测系统中是否存在异常现象,而且这种强相关性也使得检测方法能够具有相对较高的准确度。
将熵的理论运用到DNS系统的DDoS攻击检测中来,就是通过测量DNS数据包的某些特定属性的统计特性(熵),从而判断系统是否正在遭受攻击。
这里的熵值提供了一种对DNS的查询数据属性的描述。
这些属性包括目标域名长度、查询类型、各种错误查询的分布以及源IP地址的分布,等等。
熵值越大,表示这些属性的分布越随机;相反,熵值越小,属性分布范围越小,某些属性值出现的概率高。
在正常稳定运行的DNS系统中,如果把查询数据作为信息流,以每条DNS查询请求中的某种查询类型的出现作为随机事件,那么在一段时间之内,查询类型这个随机变量的熵应该是一个比较稳定的值,当攻击者利用DNS查询发起DDoS攻击时,网络中会出现大量的攻击数据包,势必引起与查询类型、查询源地址等相关属性的统计特性发生变化。
即便是黑客在发动攻击时,对于发送的查询请求的类型和数量进行过精心设计,可以使从攻击者到目标服务器之间某一路径上的熵值维持在稳定的水平,但绝不可能在所有的路径上都做到这一点。
因此通过检测熵值的变化情况来检测DNS系统中异常状况的发生,不仅是一种简便可行的方案,而且还可以具有很好的检测效果。
DNS系统是通过资源记录(ResourceRecord,RR)来记录域名和IP地址信息的,每个资源记录都有一个记录类型(QType),用来标识资源记录所包含的信息种类,如A记录表示该资源记录是域名到IP地址的映射,PTR记录IP地址到域名的映射,NS记录表示域名的授权信息等,用户在查询DNS相关信息时,需要指定相应的查询类型。
按照前述思想,我们可以采用DNS查询数据中查询类型的出现情况作为随机事件来计算熵的变化情况,从而检测DDoS攻击是否存在。
检测方法的主要内容如图1所示。
可以看出,通过比较H1和H2之间的差别是否大于某一个设定的阈值,可以判定系统是否正在遭受DDoS攻击。
随着查询量窗口的不断滑动,这种比较会随着数据的不断更新而不断继续下去。
检测算法的具体步骤如下所示: 1、设定一个查询量窗口,大小为W,表示窗口覆盖了W条记录。
2、统计窗口中出现的所有查询类型及其在所属窗口中出现的概率,根据公式(2)计算出该窗口的熵H1。
图1熵分析检测方法 3、获取当前窗口中第一条查询记录所属的查询类型出现的概率,求出该类型所对应的增量 4、将窗口向后滑动一条记录,此时新窗口中的第一条记录为窗口滑动前的第二条记录。
5、获得窗口移动过程中加入的最后一条记录所代表的查询类型在原窗口中出现的概率以及对应的增量 6、计算新窗口中第一条记录所对应的查询类型出现在新窗口中出现的概率,以及对应的增量 7、计算新窗口中最后一条记录所属的查询类型在当前窗口出现的概率以及对应的增量 8、根据前面的结果计算窗口移动后的熵: 重复步骤2至步骤8的过程,得到一系列的熵值,观察熵值的变化曲线,当熵值曲线出现剧烈波动时,可以断定此时的DNS查询中出现了异常。
窗口的设定是影响检测算法的一个重要因素,窗口越大,熵值的变化越平缓,能够有效降低误检测的情况发生,但同时也降低了对异常的敏感度,漏检率上升;反之,能够增加检测的灵敏度,但准确性相应的会降低。
因此,窗口大小的选择,需要根据实际中查询速率的大小进行调整。
2009年5月19日,多省市的递归服务器由于收到超负荷的DNS查询而失效,中国互联网出现了大范围的网络瘫痪事故,这起事故可以看作是一起典型的利用DNS查询发起的分布式拒绝服务攻击,这种突发的大量异常查询混入到正常的DNS查询中,必然会使DNS查询中查询类型的组成发生变化。
我们利用从某顶级结点的DNS权威服务器上采集到的2009年5月19日9:00-24:00之间的查询日志,来检验算法是否能够对DNS中的异常行为做出反应。
图2和图3分别是窗口大小为1,000和10,000时所得到的熵变化曲线,图4是该节点的查询率曲线。
图2窗口大小为1,000时熵的变化情况图3窗口大小为10,000时熵的变化情况图4查询率曲线 从图2和图3中可以发现,大约从16:00时开始,熵值剧烈上升,这是由于此时系统中查询类型为A和NS的查询请求大量涌入,打破了系统原有的稳定态势,在经历较大的波动之后,又回复到一个稳定值。
随着系统中缓存失效的递归服务器不断增多,该根服务器收到的异常数据量逐渐增大,在16:45左右熵值达到一个较低点,此时系统中已经混入了大量的异常查询数据。
由于各省递归服务器的缓存设置的不一致,不断的有递归服务器崩溃,同时不断缓存失效的递归服务器加入,一直到21:00左右,这种异常查询量到达峰值,表现为熵值到达一个极低的位置,随着大批递归服务器在巨大的压力下瘫痪,查询数据的组成再次发生剧烈波动,接下来随着大面积断网的发生,异常查询无法到达该根服务器,熵值在经历波动之后又重新回到较稳定的状态,图4中的流量变化也证实了这一点。
图2和图3分别将查询窗口设为1,000和10,000,对比两图可以看出,图2中的熵值变化较为频繁,反映出对DNS异常更加敏感,但同时误检测的几率也较高,图3中熵值的变化相对平缓,对异常情况敏感程度较低,同时误检率也相对较低。
上述例子表明该方法能够及时发现DNS查询中针对DNS服务器的DDoS攻击。
将该算法应用到DNS查询流量的实时监测中,可以做到准实时的发现DNS异常从而能够及早采取应对措施。
此外,结合使用错误查询类型或者源IP地址等其他属性的分布来计算熵,或是采用时间窗口划分流量等,可以进一步提高异常检测的准确率。
3)利用人工神经网络分类器检测DDoS攻击 针对DDoS攻击检测这样一个典型的入侵检测问题,可以转换为模式识别中的二元分类问题。
利用人工神经网络分类器和DNS查询数据可以有效检测针对DNS名字服务器的DDoS攻击。
通过分析DNS权威或者递归服务器的查询数据,针对DDoS攻击在日志中所表现出来的特性,提取出若干特征向量,这些特征向量用作分类器的输入向量。
分类器选择使用多层感知器,属于神经网络中的多层前馈神经网络。
人工神经网络在用于DDoS攻击检测时具有以下显著优点: 1、灵活性。
能够处理不完整的、畸变的、甚至非线性数据。
由于DDoS攻击是由许多攻击者联手实施的,因此以非线性的方式处理来自多个数据源的数据显得尤其重要; 2、处理速度。
神经网络方法的这一固有优势使得入侵响应可以在被保护系统遭到毁灭性破坏之前发出,甚至对入侵行为进行预测; 3、学习性。
该分类器的最大优点是能够通过学习总结各种攻击行为的特征,并能识别出与当前正常行为模式不匹配的各种行为。
由于多层感知器具有上述不可替代的优点,因此选择它作为分类器。
分类器的输出分为“服务正常”和“遭受攻击”两个结果,这个结果直接反应出DNS服务器是否将要或者正在遭受DDoS攻击。
如果检测结果是“遭受攻击”,则相关人员可以及时采取措施,避免攻击行为的进一步发展。
图5DDoS攻击检测 如图5所示,本检测方法主要分为特征提取、模型训练和线上分类三个阶段。
在特征提取阶段,需要利用DNS查询数据中已有的信息,结合各种DNSDDoS攻击的特点,提取出对分类有用的特征。
模型训练阶段是通过大量的特征数据,模拟出上百甚至上千的DDoS攻击序列,对多层感知器进行训练,多层感知器在训练过程中学习攻击行为的特征,增强识别率。
线上分类属于应用阶段,利用软件实现将本方法部署在DNS权威或递归服务器上。
通过实时读取DNS查询数据,并将经过提取的特征输入到多层感知器中,就可以快速地识别出本服务器是否将要或正在遭受DDoS攻击,以便采取进一步防范措施。
多层感知器分类的精确率,在很大程度上取决于作为输入的特征向量是否能够真正概括、体现出DDoS攻击的特征。
本方法通过仔细分析各种DNSDDoS攻击,以分钟为时间粒度提取出八种能够单独或者联合反映出攻击的特征: 1、每秒钟DNS查询量。
这个特征通过对每分钟查询量进行平均获得; 2、每分钟时间窗口内查询率的标准差。
公式如下:其中,n表示每分钟内查询数据中记录的秒数,Xi表示某一秒钟的查询量,m表示一分钟内每秒钟查询量的均值; 3、IP空间大小。
表示一分钟内有多少个主机发出了DNS查询请求; 4、域名空间大小。
表示一分钟内有多少域名被访问; 5、源端口设置为53的查询数量。
由于某些针对DNS的DDoS攻击将源端口设置为53,因此对这一设置进行跟踪十分必要; 6、查询记录类型的熵的变化情况。
公式如下:其中n表示时间窗口内记录类型的种类数,Pi表示某种记录类型出现的概率,Xi表示某种记录类型。
7、设置递归查询的比例。
由于某些DDoS攻击会通过将查询设置为递归查询来增大攻击效果,因此对这一设置进行跟踪十分必要; 8、域名的平均长度。
由于某些DDoS攻击所查询的域名是由程序随机产生的,这必然在查询数据上引起域名平均长度的变化,因此对域名的平均长度进行跟踪也很有意义。
图6人工神经网络分类器的结构 神经网络分类器的大致结构如图6所示。
如图中所示,本分类器分为三个层次,一个输入层,一个隐藏层,一个输出层。
输入层包含八个单元,隐藏层包含20个单元,按照神经网络理论[3],隐藏层的单元数和输入层的单元数应满足以下关系: H表示隐藏层单元数,N表示输入层单元数。
输出层只含有一个单元,输出值包含两个:“1”表示“遭受攻击”,“0”表示“服务正常”。
本检测方法的关键技术点包括以下两个方面: 1、特征的抽取。
这些特征必须能够充分、足够地反映DDos攻击发生时带来的查询状况的改变; 2、学习、分类方法。
选取多层感知器作为分类器,设计调整了该分类器的具体结构和相关参数,并利用后向传播算法对分类器进行训练。
通过将DDoS攻击检测问题转化为包含“服务正常”和“遭受攻击”两种类别的二元分类问题,能够有效地对DNSDDoS攻击进行实时检测。

