买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种DNS域名异常访问检测方法及装置_中国互联网络信息中心_201711473667.3 

申请/专利权人:中国互联网络信息中心

申请日:2017-12-29

公开(公告)日:2020-11-20

公开(公告)号:CN108270778B

主分类号:H04L29/06(20060101)

分类号:H04L29/06(20060101);H04L29/12(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.11.20#授权;2018.08.03#实质审查的生效;2018.07.10#公开

摘要:本发明提供一种DNS域名异常访问检测方法,步骤包括:获取DNS服务器与DNS客户端的镜像DNS报文;对所述DNS报文的DNS数据进行KL散度计算;如果KL散度大于一散度阈值,则对当前周期内的各域名进行KL散度贡献度计算;将KL散度贡献度超出一贡献度阈值的域名判定为异常域名,发送DNS域名异常访问告警信息并写入数据库;如果所述KL散度不大于所述散度阈值,则判断当前周期与正常周期相比是否有TopN新增域名,如果有TopN新增域名,则发送DNS域名异常访问告警信息并写入数据库;如果没有TopN新增域名,则判断TopN域名访问次数变化率是否超出一变化阈值,如果超出,则发送DNS域名异常访问告警信息并写入数据库。本发明还提供一种DNS域名异常访问检测装置。

主权项:1.一种DNS域名异常访问检测方法,步骤包括:获取DNS服务器与DNS客户端的镜像DNS报文;根据当前周期内的域名访问次数概率分布和正常周期内的域名访问次数概率分布,对所述DNS报文的DNS数据进行KL散度计算;如果KL散度大于一散度阈值,则对当前周期内的各域名进行KL散度贡献度计算,KL散度贡献度计算公式为Ck=Pk[logPk-logQk],其中Pk为当前周期内按查询次数排名为K的域名在当前统计周期内的查询概率,Qk为正常周期内按查询次数排名为K的域名在正常周期内的查询概率;将KL散度贡献度超出一贡献度阈值的域名判定为异常域名,发送DNS域名异常访问告警信息并写入数据库;如果所述KL散度不大于所述散度阈值,则判断当前周期与正常周期相比是否有TopN新增域名,TopN为按照访问次数统计的排名,N根据需要设定;如果有TopN新增域名,则发送DNS域名异常访问告警信息并写入数据库;如果没有TopN新增域名,则判断TopN域名访问次数变化率是否超出一变化阈值,如果超出,则发送DNS域名异常访问告警信息并写入数据库。

全文数据:一种DNS域名异常访问检测方法及装置技术领域[0001]本发明属于计算机网络通信领域,具体涉及一种DNS域名异常访问检测方法及装置。背景技术[0002]在计算机网络通信中,主机之间需要知道通信对端的IP地址才能够通过IP网络与对方进行通信。然而32位的IPv4地址(IPv6地址为128位对于通信参与者来说是不容易记忆的。因此,更为直观的域名(如www.google.com.hk被广泛采用以解决IP地址难以记忆的问题。然而网络通信是基于IP协议来运转的,通过域名并不能直接找到要访问的主机。因此主机需要将用户输入的域名转换为IP地址,这个过程被称为域名解析。[0003]为了完成域名解析,需要域名系统DomainNameSystem,DNS来配合,其是一种用于TCPIP应用程序的分布式数据库,提供域名与IP地址之间的转换。通过域名系统,用户进行某些应用时,可以直接使用便于记忆的且有意义的域名,而由网络中的DNS服务器将域名解析为正确的IP地址然后返回给用户的主机。域名服务器,是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。域名解析过程是指当某一个应用进程需要将主机名解析为IP地址时,该应用进程就成为域名系DNS的一个客户,并把待解析的域名放在DNS请求报文中发给域名服务器,域名服务器在查找域名后将对应的IP地址放在回答报文中返回给客户机应用进程。DNS递归服务器是DNS解析系统中的重要设备,DNS递归服务器根据缓存中的域名地址信息,对终端用户发起的DNS查询进行响应。[0004]目前,对DNS系统的攻击方式主要有以下几种方式:[0005]第一种攻击方式是流量型拒绝服务攻击。例如基于用户数据包协议UDP,UserDatagramProtocol流(flood、基于传输控制协议(TCP,TransmissionControlProtocolflood、DNS请求flood,或拼PINGflood等。该种方式下的攻击的典型特征是消耗掉DNS服务器的资源,使其不能及时响应正常的DNS解析请求。其中,资源的消耗包括对服务器CPU、网络资源等的消耗。[0006]第二种攻击方式是异常请求访问攻击。例如超长域名请求、异常域名请求等。该种方式下的攻击的特点是通过发掘DNS服务器的漏洞,通过伪造特定的请求报文,导致DNS月艮务器软件工作异常而退出或崩溃而无法启动,达到影响DNS服务器正常工作的目的。[0007]第三种攻击方式是DNS劫持攻击。例如DNS缓存“投毒”、篡改授权域内容、ARP欺骗劫持授权域等。该种方式下的攻击的特点是通过直接篡改解析记录或在解析记录传递过程中篡改其内容或抢先应答,从而达到影响解析结果的目的。[0008]第四种攻击方式是攻击者利用DNS进行攻击。例如攻击者控制僵尸机群采用被攻击主机的IP地址伪装成被攻击主机发送域名解析请求,大量的域名解析请求被DNS服务器递归查询解析后,DNS服务器发送响应给被攻击者,大量的响应数据包从不同的DNS服务器传回构成了分布式拒绝服务DDoS,DistributedDenialofService攻击。[0009]从上述四种攻击的描述中可以看到,当DNS服务器遭受到DNS攻击时,在DNS服务器端多数表现为DNS域名异常访问。通过对DNS域名异常访问的探测,能够及时发现DNS攻击行为的发生,从而可以采取有效措施,使损失降到最小。发明内容[0010]本发明的目的是提供一种DNS域名异常访问检测方法及装置,基于KL散度又称相对熵),及时探测DNS域名异常访问的发生并告警,在DNS域名异常访问发生后,能通过对DNS访问域名的详细分析,提取出DNS异常域名,使DNS服务器运维人员能及时调整DNS服务器的解析规则,消除DNS域名异常访问的影响。[0011]为实现上述目的,本发明的技术方案是:[0012]一种DNS域名异常访问检测方法,步骤包括:[0013]获取DNS服务器与DNS客户端的镜像DNS报文;[0014]对所述DNS报文的DNS数据进行KL散度计算;[0015]如果KL散度大于一散度阈值,则对当前周期内的各域名进行KL散度贡献度计算;[0016]将KL散度贡献度超出一贡献度阈值的域名判定为异常域名,发送DNS域名异常访问告警信息并写入数据库;[0017]如果所述KL散度不大于所述散度阈值,则判断当前周期与正常周期相比是否有TopN新增域名,如果有TopN新增域名本发明中,TopN为按照访问次数统计的排名,N根据需要设定),则发送DNS域名异常访问告警信息并写入数据库;[0018]如果没有TopN新增域名,则判断TopN域名访问次数变化率即当前周期的TopN排名为K的域名访问次数与正常周期的TopN排名为K的域名访问次数的差值占正常周期的TopN排名为K的域名访问次数的比率是否超出一变化阈值,如果超出,则发送DNS域名异常访问告警信息并写入数据库。[0019]进一步地,所述DNS数据包括当前周期和正常周期内的域名访问次数。[0020]进一步地,所述KL散度计算公式为Dp||q=E[l0gp-logq],其中p为当前周期内的域名访问次数概率分布,q为正常周期内的域名访问次数概率分布。[0021]进一步地,所述KL散度贡献度计算公式为Ck=Pk[l0gPk-l0gQk],其中P00为当前周期内按查询次数排名为K的域名在当前统计周期内的查询概率,q⑹为正常周期内按查询次数排名为K的域名在正常周期内的查询概率。[0022]进一步地,所述DNS域名异常访问告警信息包括告警时间、异常域名、域名异常访问次数。[0023]进一步地,所述变化阈值可为正常周期内TopN域名访问次数的50%,该50%为经验值,可根据DNS应用环境的不同调整。[0024]进一步地,如果所述KL散度贡献度超过贡献度阈值,则在发送DNS域名异常访问告警信息并写入数据库后结束当前周期异常访问检测,否则直接结束当前周期异常访问检测。[0025]进一步地,如果有TopN新增域名,则在发送DNS域名异常访问告警信息并写入数据库后结束当前周期异常访问检测。[0026]进一步地,如果TopN域名访问次数变化率超过变化阈值,则在发送DNS域名异常访问告警信息并写入数据库后结束当前周期异常访问检测。L〇〇27」一种DNS域名异帛访问检测装置,包括聰域名分析器,所述祕域名分析器连接路由器,包括存储器和处理器,所述存储器存储计算机程序,所述程序被配置为由所述处理器执行,所述程序包括上述方法的各步骤指令。[0028]需指出的是,本发明的散度阈值、贡献度阈值、变化阈值因DNS应用环境的不同而有不同数值,需要根据异常访问时的域名分布情况进行设置,设置的原则是既能发现域名异常访问,又能减少误报警情况。[0029]本发明取得的技术效果是:1当基于域名的DNS攻击发生时,通过计算KL散度能够减少异常域名定位的计算时间,快速定位异常域名。通过比较TopN新增域名变化及域名访问次数变化率,能够补充探测KL散度不能发现的域名异常。2DNS运维人员可跟据提取的DNS±或名特征信息对DNS查询包进行限流,从而消除DNS±或名攻击给DNS客户端及DNS服务器带来的影响。附图说明[0030]图1为DNS域名分析器的部署示意图。[0031]图2为本发明的一种DNS域名异常访问检测方法流程图。具体实施方式[0032]为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。[0033]本实施例提供一种DNS域名异常访问检测装置,其主要组成部分为DNS域名分析器,部署于路由器旁并连接路由器,如图1所示。[0034]结合上述DNS域名分析器,本实施例还提供一种DNS域名异常访问检测方法,流程如图2所示,其步骤如下:[0035]1所述DNS域名分析器接收镜像的DNS报文。[0036]2所述DNS报文的DNS数据包括当前周期内的域名访问次数和正常周期内的域名访问次数,先计算当前周期内的域名访问次数概率分布p和正常周期内的域名访问次数概率分布q,再利用公式Dp||q=E[logp-logq]进行KL散度计算。[0037]3所述KL散度超过一散度阈值时,则标记所述统计周期为DNS异常访问周期,利用公式Ck=P⑹[logPk-logQ⑹]计算所述统计周期的各域名的KL散度贡献度;其中,p⑹为当前周期内按查询次数排名为K的域名在当前统计周期内的查询概率,Qk为正常周期内按查询次数排名为K的域名在正常周期内的查询概率。[GG38]4如果KL散度贡献度超出一贡献度阈值,则提取其异常域名,发送DNS域名异常访问告警信息并写入数据库,结束当前周期访问检测,如果未超出,则直接结束当前周期访问检测。[0039]5如果所述KL散度比对正常,分析TopN域名的变化及域名访问次数变化情况。[0040]6如果有TopN新增域名,则发送DNS域名异常访问告警信息并写入数据库,结束当前周期访问检测。[0041]7如果域名访问次数变化率超出一变化阈值(即正常周期内TopN域名访问次数的均值的50%,该50%为经验值,可根据DNS应用环境的不同而改变),则发送DNS域名异常访问告警信息并写入数据库,结束当前周期访问检测。[0042]基于上述方法列举两种情况的实例,具体如下:[0043]实例一:KL散度发现异常的情况[0044]获取DNS服务器与DNS客户端的镜像DNS报文,该DNS报文的DNS数据包括:正常周期三级域名Top20访问次数为[6929,4125,2882,2558,2247,1909,1606,1524,1521,1493,1492,1438,1396,1393,1366,1327,1310,1111,1096,1090],当前周期三级域名Top20访问次数为[5162,5125,4291,3877,3699,2909,2396,2255,2099,2077,1799,1698,1586,1031,913,871,832,637,583,579]〇[0045]1.KL散度计算:[0046]利用公式Dp||q=E[logp-logq],计算结果为0.0592836940216,大于散度阈值0.05,则触发KL散度贡献度计算。[0047]2.KL散度贡献度计算:[0048]利用公式Ck=Pk[logPk-logQk],计算结果为[-0.0469338,0.01241366,0-02787585,0.02674004,0.03239344,0.0204169,0.01567415,0.01433331,0.01004723,0.01031805,0.00314446,0.00216838,0.00064735,-0.00952581,-0.01053159,-0.01040258,-0.01055334,-0•0095469,-0•00972182,-0•0096733];[0049]根据需要将贡献度阈值设为0•01,上述计算结果大于〇•01的则判定为异常域名访问,则可探测出当前周期内排名为2〜10的域名异常访问。[0050]实例二:KL散度未发现异常的情况[0051]获取DNS服务器与DNS客户端的镜像DNS报文,该DNS报文的DNS数据包括:正常周期三级域名Top20访问次数为[6929,4125,2882,2558,2247,1909,1606,1524,1521,1493,1492,1438,1396,1393,1366,1327,1310,1111,1096,1090],当前周期三级域名T〇P20访问次数:[6758,5125,5082,5058,5047,4909,3606,1634,1591,1583,1512,1498,1486,1453,1396,1382,1350,1259,1188,1002]。[0052]1.KL散度计算:[0053]利用公式Dp||q=E[logp-logq],计算结果为〇_〇253884375402,小于散度阈值0.05,不触发KL散度贝献度计算,而转由查看当目u周期与正常周期相比是否有T〇p2〇新增域名,本实例中未发现新增域名,则需进一步计算域名访问次数变化率。[0054]2.访问次数变化率计算:[0055]利用公式N-MM,其中,N为当前周期T〇p2〇排名为咖域名访问次数』为正常周期Top2〇排名为K的域名访问次数,计算结果为[0•72420263,0•02278788,-0.04059681,-0.01016419,0.06408545,-0.00838135,0.05915318,0.06167979,0.00723208,0.01205626,0.00268097,0.01599444,0.00787966,0.00430725,0.0124451,-0•00602864,-0•00839695,0•07470747,0•0100365,0•00825688]。’[0056]根据需要将变化阈值设为5〇%,上述计算结果大于50%的则判定为异常域名访问,则发现排名为1的域名异常访问。[0057]以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。’

权利要求:1.一种DNS域名异常访问检测方法,步骤包括:获取DNS服务器与DNS客户端的镜像DNS报文;对所述DNS报文的DNS数据进行KL散度计算;如果KL散度大于一散度阈值,则对当前周期内的各域名进行KL散度贡献度计算;将KL散度贡献度超出一贡献度阈值的域名判定为异常域名,发送DNS域名异常i方丨句胃警信息并写入数据库;如果所述KL散度不大于所述散度阈值,则判断当前周期与正常周期相比是否有TopN新增域名,如果有TopN新增域名,则发送DNS域名异常访问告警信息并写入数据库;如果没有TopN新增域名,则判断TopN域名访问次数变化率是否超出一变化阈值,如果超出,则发送DNS域名异常访问告警信息并写入数据库。2.根据权利要求1所述的方法,其特征在于,所述DNS数据包括当前周期和正常周期内的域名访问次数。3.根据权利要求1所述的方法,其特征在于,所述KL散度计算公式为Dp||q=E[l〇gP-logq],其中P为当前周期内的域名访问次数概率分布,q为正常周期内的域名访问次数概率分布。4.根据权利要求1所述的方法,其特征在于,所述KL散度贡献度计算公式为Ck=Pk[logPk-logQk],其中P⑹为当前周期内按查询次数排名为K的域名在当前统计周期内的查询概率,Qk为正常周期内按查询次数排名为K的域名在正常周期内的查询概率。5.根据权利要求1所述的方法,其特征在于,所述DNS域名异常访问告警信息包括告警时间、异常域名、域名异常访问次数。6.根据权利要求1所述的方法,其特征在于,如果所述KL散度贡献度超过贡献度阈值,则在发送DNS域名异常访问告警信息并写入数据库后结束当前周期异常访问检测,否则直接结束当前周期异常访问检测。7.根据权利要求1所述的方法,其特征在于,如果有TopN新增域名,则在发送DNS域名异常访问告警信息并写入数据库后结束当前周期异常访问检测。8.根据权利要求1所述的方法,其特征在于,如果TopN域名访问次数变化率超过变化阈值,则在发送DNS域名异常访问告警信息并写入数据库后结束当前周期异常访问检测。9.一种DNS域名异常访问检测装置,包括DNS域名分析器,所述DNS域名分析器连接路由器,包括存储器和处理器,所述存储器存储计算机程序,所述程序被配置为由所述处理器执行,所述程序包括上述权利要求1-8任一所述方法的各步骤指令。

百度查询: 中国互联网络信息中心 一种DNS域名异常访问检测方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。