Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR DETECTING DOMAIN NAME SYSTEM (DNS) ANOMALY
Document Type and Number:
WIPO Patent Application WO/2011/150579
Kind Code:
A1
Abstract:
The present invention provides a method and device for detecting Domain Name System (DNS) anomaly, which belongs to the technical field of computer network. The method includes: dividing DNS query data stream into multiple data blocks; calculating the entropy values of said multiple data blocks according to predetermined query property to obtain the corresponding multiple entropy values; judging if there are a predetermined number of entropy values which exceed the predetermined threshold in the obtained multiple entropy values; if yes, determining DNS anomaly occurs. The device includes: a dividing module, a calculating module and a judging module. By calculating the entropy values of the multiple data blocks in DNS query data stream, this invention determines DNS anomaly occurs, if there are a predetermined number of entropy values which exceed the predetermined threshold in the obtained multiple entropy values. This invention can bears an early warning function for occurrence of DNS anomaly, thus reducing the loss after DNS anomaly occurs, and compared with the prior art, achieving high detection precision and low omission ratio.

Inventors:
MAO WEI (CN)
LI XIAODONG (CN)
DING SENLIN (CN)
WANG XIN (CN)
WU JUN (CN)
JIN JIAN (CN)
Application Number:
PCT/CN2010/074577
Publication Date:
December 08, 2011
Filing Date:
June 28, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
COMPUTER NETWORK INF CT CAS (CN)
MAO WEI (CN)
LI XIAODONG (CN)
DING SENLIN (CN)
WANG XIN (CN)
WU JUN (CN)
JIN JIAN (CN)
International Classes:
H04L29/12; G06F17/30
Foreign References:
CN101645884A2010-02-10
CN101378394A2009-03-04
Other References:
TANG JIE ET AL.: "A Network Anomaly Detection method Based on Net Flow.", NETINFO SECURITY, 31 December 2007 (2007-12-31), pages 57 - 58
NING ZHUO ET AL.: "Sampling method for IDS in high bandwidth network.", JOURNAL ON COMMUNICATIONS., vol. 30, no. 11, 30 November 2009 (2009-11-30), pages 27 - 36
CHEN SI-QI ET AL.: "Entropy-based anomaly detection method for education network.", APPLICATION RESEARCH OF COMPUTERS., vol. 27, no. 4, 30 April 2010 (2010-04-30), pages 1434 - 1436
Attorney, Agent or Firm:
LEADER PATENT & TRADEMARK FIRM (CN)
北京同立钧成知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求

1、 一种检测域名系统异常的方法, 其特征在于, 所述方法包括: 将域名系统查询数据流划分为多个数据块;

根据预设查询属性计算所述多个数据块的熵值, 得到对应的多个熵 值;

判断得到的所述多个熵值中是否有预设个数的熵值超过预设阈值, 如 果是, 则确定所述域名系统发生了异常。

2、 根据权利要求 1 所述的检测域名系统异常的方法, 其特征在于, 所述将所述域名系统查询数据流划分为多个数据块包括:

将所述域名系统查询数据流按照指定时间和 /或指定查询量划分为多 个数据块。

3、 根据权利要求 1或 2所述的检测域名系统异常的方法, 其特征在 于, 根据预设查询属性计算所述多个数据块的熵值, 具体为:

计算所述预设查询属性的每个元素在每个数据块中出现的概率; 根据所述概率计算每个数据块的熵值。

4、 根据权利要求 1或 2所述检测域名系统异常的方法, 其特征在于, 当所述多个数据块之间存在相互重叠的部分时, 则根据预设查询属性计算 多个数据块的熵值, 包括:

计算与当前数据块相邻的前一数据块的熵值;

根据所述与当前数据块相邻的前一数据块的熵值, 计算所述当前数据 块的熵值。

5、 根据权利要求 4所述的检测域名系统异常的方法, 其特征在于, 当所述与当前数据块相邻的前一数据块为划为的第一个数据块时, 计算所 述预设查询属性的每个元素在所述第一个数据块中出现的概率;

根据所述概率计算所述第一个数据块的熵值。

6、 根据权利要求 1 所述的检测域名系统异常的方法, 其特征在于, 所述预设查询属性包括: 查询类型、 错误类型、 查询源 IP地址和 /或查询 域名。

7、 根据权利要求 6所述的检测域名系统异常的方法, 其特征在于, 所述预设查询属性包括至少两种查询属性时, 所述熵值为分别根据所述至 少两种查询属性得到的至少两个熵值加权求和的结果。

8、 一种检测域名系统异常的装置, 其特征在于, 所述装置包括: 划分模块, 用于将域名系统查询数据流划分为多个数据块;

计算模块, 用于根据预设查询属性计算所述多个数据块的熵值, 得到 对应的多个熵值;

判断模块, 用于判断得到的多个熵值中是否有预设个数的熵值超过预 设阈值, 如果是, 则输出表示所述域名系统发生异常的信息。

9、 根据权利要求 8 所述的检测域名系统异常的装置, 其特征在于, 所述划分模块,具体用于将所述域名系统查询数据流按照指定时间和 /或指 定查询量划分为多个数据块。

10、 根据权利要求 8或 9所述的检测域名系统异常的装置, 其特征在 于, 所述计算模块包括:

第一计算单元, 用于计算所述预设查询属性的每个元素在每个数据块 中出现的概率;

第二计算单元, 用于根据所述概率计算每个数据块的熵值, 得到对应 的多个熵值。

11、 根据权利要求 8或 9所述的检测域名系统异常的装置, 其特征在 于, 所述多个数据块之间存在相互重叠的部分, 则所述计算模块包括: 第三计算单元, 用于计算与当前数据块相邻的前一数据块的熵值; 第四计算单元, 用于根据所述第三计算单元计算的与当前数据块相邻 前一数据块的熵值, 计算所述当前数据块的熵值。

12、 根据权利要求 11所述的检测域名系统异常的装置, 其特征在于, 所述第三计算单元包括:

第一计算子单元, 用于当所述与当前数据块相邻的前一数据块为划为 的第一个数据块时, 计算所述预设查询属性的每个元素在所述第一个数据 块中出现的概率;

第二计算子单元, 用于根据所述概率计算所述第一个数据块的熵值。

Description:
检测域名系统异常的方法和装置 技术领域

本发明涉及计算机网络安全技术, 尤其涉及一种检测域名系统异常的方 法和装置, 属于计算机网络技术领域。 背景技术

域名系统 ( Domain Name System, 以下简称 DNS )是一个分布式数 据库系统,该系统用于将域名转换成为网络可 以识别的 IP地址。由于 DNS 是互联网络的基础, 如果 DNS异常将会对整个网络造成严重的影响, 因 此对 DNS异常进行检测十分重要。

现有技术对 DNS异常进行检测的方法主要有基于查询流量的 变化或 查询属性取值的变化来确定 DNS是否发生异常。 基于查询流量的变化来 确定 DNS是否发生异常是指: 当查询流量特别大或者特别小的时候认为 DNS发生异常。

发明人在实现本发明的过程中, 发现现有技术至少存在以下问题: 基于查询流量的变化来确定 DNS是否发生异常的方案具有滞后性, 在检测到异常的时候, 查询流量往往已经累积到一定程度, 已经造成了比 较严重的后果, 因此不能起到预警作用。 有时, 异常的发生不一定能影响 DNS查询流量, 因此基于查询流量的变化来确定 DNS是否发生异常具有 很高的漏检率。 发明内容

本发明提供一种检测 DNS 异常的方法和装置, 以解决现有技术中检测 DNS异常滞后, 且漏检率高的问题。

本发明提供的检测 DNS异常的方法包括: 将域名系统查询数据流划分为多个数据块;

根据预设查询属性计算所述多个数据块的熵值 , 得到对应的多个熵 值;

判断得到的所述多个熵值中是否有预设个数的 熵值超过预设阈值, 如 果是, 则确定所述域名系统发生了异常。

本发明提供的检测 DNS异常的装置包括:

划分模块, 用于将域名系统查询数据流划分为多个数据块 ; 计算模块, 用于根据预设查询属性计算所述多个数据块的 熵值, 得到 对应的多个熵值;

判断模块, 用于判断得到的多个熵值中是否有预设个数的 熵值超过预 设阈值, 如果是, 则输出表示所述域名系统发生异常的信息。

本发明通过计算 DNS 查询数据流中多个数据块的熵值, 当得到的对应 的多个熵值中有预设个数的熵值超过预设阈值 时, 确定 DNS 系统发生了异 常, 本发明能够对 DNS系统发生异常起到预警作用, 从而减少当 DNS系统 发生异常后的损失, 且漏检率低。 附图说明

为了更清楚地说明本发明或现有技术中的技术 方案, 下面将对实施例或 现有技术描述中所需要使用的附图作一简单地 介绍。

图 1为本发明检测 DNS异常的方法实施例流程示意图;

图 2为根据指定时间划分数据块的示意图;

图 3为采用窗口大小为 10000时得到的熵值曲线;

图 4为 DNS查询率曲线;

图 5为本发明检测 DNS异常的装置实施例结构示意图。 具体实施方式 为使本发明的目的、 技术方案和优点更加清楚, 下面将结合本发明的附 图, 对本发明的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是 本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领 域普通技术人员在没有作出创造性劳动前提下 所获得的所有其他实施例, 都 属于本发明保护的范围。

本发明初次将熵的理论应用到 DNS的异常检测中, 因此首先对熵作一下 介绍。 熵在信息论中的定义为: 如果一个系统 S中存在一个事件集合 E={E1, E2,..., En}, El, E2, En为事件集合 Ε中的每一个事件。 每个事件的概 率分布 P={P1, P2,...,Pn}, PI, P2, Pn为每一个事件出现的概率。 每个 事件 r本身的信息量 可由公式(1)计算: r =- l0 g 2 r (1) 公式( 1 ) 中, r=l, 2, ..., n。

例如: 英语有 26个字母, 假如每个字母在文章中出现次数平均的话, 每 个字母的信息量为: / = _log 2 (l/26) = 4.7

而汉字常用的有 2500个, 假如每个汉字在文章中出现次数平均的话, 每 个汉字的信息量为: / = - log 2 (l/2500) = 11.3

熵是整个系统 S的平均信息量, 设熵为 , 则熵的计算方法如公式(2) 所示:

n n

在信息传播领域中熵表示信息的不确定性。 高信息度的熵值较低, 说明 高信息度的系统比较稳定; 而低信息度的熵值较高, 说明低信息度的系统不 稳定, 容易发生异常, 因此可以通过熵值来检测 DNS是否发生异常。

实施例 1

图 1为本发明检测 DNS异常的方法实施例流程示意图, 如图 1所示, 该 方法包括:

步骤 101 : 将 DNS查询数据流划分为多个数据块;

需要说明的是: 划分的数据块越大, 也就是说每个数据块包括的查询 数据量越多, 该数据块的熵值的变化就越平緩, 能够有效降低误检测的情 况发生, 但同时也降低了对异常流量的敏感度, 漏检率上升; 反之, 数据 块越小, 也就是说每个数据块包括的查询数据量越少, 检测 DNS 异常的 灵敏度就越高, 但准确性又会相应的降低。

实际应用中, 可以将 DNS查询数据流按照指定时间和 /或按照指定查 询量划分为多个数据块。 例如, 可以将 DNS查询数据流中每一分钟的查询 数据量划分为一个数据块, 或者将 DNS查询数据流中每 1000条查询记录的 查询量划分为一个数据块;还可以同时按照指 定时间和指定查询量进行划分, 例如, 当达到指定时间, 但未达到指定查询量时划分为一个数据块, 或者达 到指定查询量,但没有达到指定时间时划分为 一个数据块。 还可以根据时间 段函数来划分, 比如, 在上午 8:30到 12:00之间, 可以将数据块按照较小 的时间段来划分, 例如: 每隔 20-30秒划分一个数据块; 在中午 12:00到 下午 1 :00可以将数据块按照较长的时间段划分, 例如: 每隔 2-3分钟划分 一个数据块。 这种划分可以由技术人员根据实际情况进行调 整, 或者依据 经验和查询数据量的大小来划分数据块。

步骤 102: 根据预设查询属性计算多个数据块的熵值, 得到对应的多个 熵值;

其中, 预设查询属性包括查询类型、 查询中出现的错误类型、 查询中出 现的查询源 IP或者查询中的查询域名出现情况, 但不限于这些查询属性, 只 要是按照某种类别划分的查询属性均可。

上述的查询类型至少包括:域名对应的 IP地址记录(Address, 简称 A )、 IPv6主机的地址记录 AAAA、 反向记录(Pointer, 简称 PTR ) 、 邮件交换记 录( Mail exchanger, 简称 MX )、名字服务器记录( Name Server, 简称 NS )、 起始授权机构记录( Start Of Authority, 简称 SOA ) 。

查询中出现的错误类型是指: 发送的 DNS查询请求中包含非法的字段, 主要错误类型包括: 查询源地址是私有地址、 查询类型不存在、 查询的顶级 域不存在、 查询的名字中包含非法的字符、 查询的名字格式错误、 重复查询 或正常查询类等。 其中, 正常查询是指没有错误的查询, 可以当预设查询属 性为错误类型时, 将没有错误的查询归入到正常查询类中, 使得每条查询记 录都可以归入具体某个类型中。

根据预设查询属性计算多个数据块的熵值, 具体为:

计算预设查询属性的每个元素在每个数据块中 出现的概率;

根据预设查询属性的每个元素在每个数据块中 出现的概率, 计算每个 数据块的熵值。

当划分的多个数据块之间存在相互重叠的部分 时, 例如, 图 2为根据 指定时间划分数据块的示意图, 如图 2所示, 8: 00至 8: 10之间的查询 量为一个数据块, 8: 03至 8: 13之间的查询量为一个数据块, ... ..., 即

10分钟划分一个数据块, 每个数据块之间有 3分钟的重叠时间, 这样将查 询数据流划分为多个有重叠的数据块。 本实施例以划分的每个数据块包括 指定查询量为例进行详细说明。

设每个数据块包括的指定查询量为 10条查询记录, 当前数据块为第 i 个数据块, 与当前数据块相邻的前一数据块为第 i-1 个数据块, 与当前数 据块相邻的后一数据块为第 i+1个数据块, 若第 i-1个数据块包括第 1条 至第 10条的查询记录,则第 i个数据块包括第 2条至第 11条的查询记录, 第 i+1个数据块包括第 3条至第 12条查询记录。 第 i-1个数据块与第 i个 数据块重叠部分的查询量为第 2条至第 10条查询记录,第 i个数据块与第 i+1个数据块重叠部分的查询量为第 3条至第 11条查询记录。

当划分的多个数据块之间存在相互重叠的部分 时, 根据预设查询属性 计算多个数据块的熵值, 可以包括: 计算与当前数据块相邻的前一数据块的熵值 H,;

根据与当前数据块相邻的前一数据块的熵值 计算当前数据块的熵 值 H 2

根据与当前数据块相邻的前一数据块的熵值 ,计算当前数据块的熵 值 H 2 , 具体为:

计算第一指定查询量和第二指定查询量分别在 第 个数据块中的加 权信息量 7>和 7;;第一指定查询量是指第 i个数据块与第 i-1个数据块重叠 部分前不重叠部分的查询量; 第二指定查询量是指第 i个数据块与第 i+1 个数据块重叠部分后不重叠部分的查询量;

继续上述的例子, 第一指定查询量是指第 1条查询记录, 第二指定查 询量是指第 12条查询记录。

第 1条查询记录所属的查询类型在第 i-1个数据块中出现的概率为尸 ,, 则 } =-i lo 7 ; 第 12条查询记录所属的查询类型在第 i-1个数据块中出现的概率为尸/ , 则 7;二一 lo 。

计算第二指定查询量和第三指定查询量分别在 第 i个数据块中的加权 信息量 Γ/和 ; 第三指定查询量是指第 i个数据块与第 i+1个数据块重叠 部分前不重叠部分的查询量;

继续上述的例子, 第 12条查询记录所属的查询类型在第 i个数据块中 出现的概率为 P; , 则 T; = log 2 P;;

第三指定查询量是指第 2条查询记录, 则第 2条查询记录所属的查询 类型在第 i个数据块中出现的概率为 P f ' , 则 T f ' =-P f \ g 2 P f - 根据第 i-1数据块的熵值 H,、 T Τρ 7 和 Γ/, 计算第 i个数据块的熵 值 H 2 , 即/ 2 = —7}—7; +7 +7;。 其中, 当 i为 2, 即与当前数据块相邻的前一数据块为划分的第 一个 数据块时, 计算预设查询属性的每个元素在第一个数据块 中出现的概率; 根据上述概率计算第一个数据块的熵值 H,。

例如, 若预设查询属性为查询类型, 则查询类型中的元素为具体的查 询类型, 如上述的 、 AAAA、 PTR、 MX、 NS、 SOA等, 每一条查询记录 只能属于一个查询类型。 可以计算该数据块中每一条查询记录所属的查 询 类型在该数据块中出现的概率, 然后根据每一条查询记录所属的查询类型 在该数据块中出现的概率来计算该数据块的熵 值, 计算公式为

公式(3 ) 中, H k 为每个数据块的熵值, j表示每个数据块中第 j条查 询记录, n表示每个数据块中有 n条查询记录, 为每个数据块中第 j条 查询记录所属的查询类型在该数据块中出现的 概率;

当预设查询属性为查询源 IP时,查询源 IP中的元素为每一条查询记录 对应的 IP地址。 由于每个数据块中的每一条查询记录只能是来 自一个 IP 地址, 则可以计算一个数据块中每一条查询记录的 IP 地址在该数据块中 出现的概率, 然后根据每一条查询记录的 IP地址在该数据块中出现的概 率来计算该数据块的熵值。

需要说明的是:预设查询属性还可以同时包括 两种或两种以上,例如, 当预设查询属性包括查询类型和查询源 IP时, 可以根据该两种查询属性分 别计算每个数据块的熵值,然后将根据查询类 型和查询源 IP分别计算得到的 两个熵值加权相加, 将得到的加权相加的结果作为该数据块的最终 熵值。

步骤 103: 判断上述得到的多个熵值中是否有预设个数的 熵值超过预 设阈值, 如果是, 则确定 DNS发生了异常。 若设置预设个数为 5 , 则如果步骤 102得到的多个熵值中有 5个熵值 均超过了预设阈值 ,则确定该 DNS发生了异常。预设个数也可以设置为 1、 2等等其它个数。预设个数的多少会影响检测 果的精度,预设个数越大, 得到的检测精度越高, 但同时漏检率也上升。 预设个数越小, 检测精度越 低, 漏检率也同时降低, 预设个数的选择需要根据实际的网络状况和经 验 来确定。

本实施例中 DNS查询数据可以是历史 DNS查询数据, 也可以是实时 DNS查询数据。 如果 DNS查询数据是历史 DNS查询数据, 则本实施例提 供的方法可以用来对 DNS使用情况进行分析 ,分析结果可以用来进行 DNS 优化; 本实施例更多的应用在实时检测的场景中, 即 DNS 查询数据为实 时 DNS查询数据, 用来及时发现 DNS中的异常, 避免 DNS遭受严重损 失。

为了更好的体现本发明的效果, 可以 2009年 5月 19日中国互联网发 生大面积断网事故为例进行说明。 发生大面积断网事故的原因就是 DNS 系统遭受到了攻击, 根据从中国 (China, 简称 CN )某个顶级结点的 DNS 权威服务器上采集到的 2009年 5月 19日 9:00-24:00之间的查询记录进行 具体分析, 将 2009年 5月 19日 9:00-24:00之间的查询记录划分为多个数 据块, 每个数据块的大小为 10000, 即每个数据块包括 10000条查询记录, 计算每个数据块的熵值, 将得到的多个熵值绘制为熵值曲线。 图 3为数据 块大小为 10000时得到的熵值曲线, 图 4为 DNS查询率曲线, 查询率为 每分钟的查询次数。 从图 3 中可以看出, 16:00左右熵值曲线已经出现了 剧烈波动, 即有多个熵值均超过了预设阈值, 表明这时候已经开始有大量 的 DNS异常流量进入网络, 即 DNS已经发生了异常; 而在图 4所示的查 询率曲线中, 18:30 左右查询流量才呈现出显著异常, 但此时大面积断网 已经开始发生, 因此可以明显看出, 现有技术基于查询流量的检测方案具 有滞后性和很高的漏检率;本发明提供的检测 DNS异常的方法可以预先及 时的检测到 DNS中的异常, 起到了预警的作用。

本发明通过将 DNS查询数据流划分为多个数据块,根据预设查 询属性 计算多个数据块的熵值, 得到对应的多个熵值, 当该多个熵值中有预设个数 的熵值超过预设阈值时, 确定 DNS发生了异常。 由于熵值是对 DNS查询数 据的查询属性随机分布的度量, 当 DNS发生异常时, 例如, 当 DNS遭受 到攻击时, DNS查询数据的查询属性的随机分布就会发生变 化, 从而也会 导致熵值发生变化。 根据熵值的变化情况就可以得知 DNS发生了异常, 而现有技术的基于流量的检测方法在 DNS发生异常时, 当 DNS异常的表 现不是很明显时, DNS的查询流量也不会发生很明显的变化, 因而也就不 能检测出 DNS发生异常, 只有当 DNS异常表现得很严重时, 例如发生大 面积的网络瘫痪, 导致大量用户无法使用网络时, 现有技术的基于流量的 检测方法才能检测出 DNS流量异常, 进而检测出 DNS发生异常, 具有明 显的滞后性; 而本发明可以在发生如大面积网络故障等严重 的异常情况之 前就可以检测到 DNS发生了异常, 能够对 DNS发生异常起到预警作用, 使用户能够在 DNS异常严重之前做好准备, 避免了严重的 DNS异常给用 户带来的损失, 降低了漏检率, 提高了用户体验; 并且由于 DNS是一个 极其复杂的系统, 现有技术基于查询属性取值的变化来确定 DNS是否发 生异常时, 没有考虑 DNS系统内部复杂的状态变化, 因而检测精度不高, 而本发明进一步的实施例中, 当划分的多个数据块之间存在重叠部分时, 得到的多个熵值之间也反映了 DNS 系统内部状态的变化, 使得检测精度 大大提高。 实施例 2

图 5为本发明检测 DNS异常的装置实施例示意图, 如图 5所示, 该 装置包括: 划分模块 201、 计算模块 202和判断模块 203;

其中, 划分模块 201 , 用于将 DNS查询数据流划分为多个数据块; 具体的, 划分模块 201用于将 DNS查询数据流按照指定时间和 /或按 照指定查询量划分为多个数据块。

计算模块 202, 用于根据预设查询属性计算划分模块 201划分的多个 数据块的熵值, 得到对应的多个熵值;

其中, 计算模块 202包括第一计算单元和第二计算单元;

第一计算单元, 用于计算预设查询属性的每个元素在每个数据 块中出 现的概率;

第二计算单元, 用于根据第一计算单元得到的预设查询属性的 每个元 素在每个数据块中出现的概率, 计算划分模块 201划分的多个数据块的熵 值, 得到对应的多个熵值。

当划分模块 201划分的多个数据块之间存在相互重叠的部分 时, 计算 模块 202包括:

第三计算单元, 用于计算与当前数据块相邻的前一数据块的熵 值 H,; 第四计算单元, 用于根据第三计算单元计算的与当前数据块相 邻的前 一数据块的 H 计算当前数据块的熵值 H 2

其中, 第三计算单元包括:

第一计算子单元, 用于当上述与当前数据块相邻的前一数据块为 划为 的第一个数据块时, 计算预设查询属性的每个元素在第一个数据块 中出现 的概率;

第二计算子单元, 用于根据预设查询属性的每个元素在第一个数 据块 中出现的概率, 计算第一个数据块的熵值 H,。

判断模块 203 , 用于判断计算模块 202得到的多个熵值中是否有预设 个数的熵值超过预设阈值, 如果是, 则输出表示 DNS发生异常的信息。

需要说明的是: 对于检测 DNS异常的装置第一实施例而言, 由于其基 本相应于方法第一实施例, 所以相关之处参见方法第一实施例的部分说明 即 可。 本发明通过将 DNS查询数据流划分为多个数据块,根据预设查 询属性 计算多个数据块的熵值, 得到多个对应的熵值, 当该多个熵值中有预设个数 的熵值超过预设阈值时, 确定 DNS发生了异常。 由于熵值是对 DNS查询数 据的查询属性随机分布的度量, 当 DNS发生异常时, 例如, 当 DNS遭受 到攻击时, DNS查询数据的查询属性的随机分布就会发生变 化, 从而也会 导致熵值发生变化。 根据熵值的变化情况就可以得知 DNS发生了异常, 而现有技术的基于流量的检测方法在 DNS发生异常时, 当 DNS异常的表 现不是很明显时, DNS的查询流量也不会发生很明显的变化, 因而也就不 能检测出 DNS发生异常, 只有当 DNS异常表现得很严重时, 例如发生大 面积的网络瘫痪, 导致大量用户无法使用网络时, 现有技术的基于流量的 检测方法才能检测出 DNS流量异常, 进而检测出 DNS发生异常, 具有明 显的滞后性; 而本发明可以在发生如大面积网络故障等严重 的异常情况之 前就可以检测到 DNS发生了异常, 能够对 DNS发生异常起到预警作用, 使用户能够在 DNS异常严重之前做好准备, 避免了严重的 DNS异常给用 户带来的损失, 降低了漏检率, 提高了用户体验; 并且由于 DNS是一个 极其复杂的系统, 现有技术基于查询属性取值的变化来确定 DNS是否发 生异常时, 没有考虑 DNS系统内部复杂的状态变化, 因而检测精度不高, 而本发明进一步的实施例中, 当划分的多个数据块之间存在重叠部分时, 得到的多个熵值之间也反映了 DNS 系统内部状态的变化, 使得检测精度 大大提高。

本领域普通技术人员可以理解: 实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读 取存储介质中, 该程序在执行时, 执行包括上述方法实施例的步骤; 而前述 的存储介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存储程序代码的介 质。

最后应说明的是: 以上实施例仅用以说明本发明的技术方案, 而非对其 限制; 尽管参照前述实施例对本发明进行了详细的说 明, 本领域的普通技术 人员应当理解: 其依然可以对前述各实施例所记载的技术方案 进行修改, 或 者对其中部分技术特征进行等同替换; 而这些修改或者替换, 并不使相应技 术方案的本质脱离本发明各实施例技术方案的 精神和范围。