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

【发明授权】基于DNS请求周期的恶意域名检测算法_上海交通大学;公安部第三研究所_201710092340.5 

申请/专利权人:上海交通大学;公安部第三研究所

申请日:2017-02-21

公开(公告)日:2020-05-26

公开(公告)号:CN106850647B

主分类号:H04L29/06(20060101)

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

优先权:

专利状态码:失效-未缴年费专利权终止

法律状态:2024.03.08#未缴年费专利权终止;2017.07.07#实质审查的生效;2017.06.13#公开

摘要:本发明公开了一种基于DNS请求周期的恶意域名检测算法,所述的算法由流量预处理,周期性匹配算法和恶意域名检测部分组成,所述的流量预处理可以滤过有名的域名,周期性匹配算法将判定所访问域名的可疑性,本发明以1个月内流量特征访问IP,访问时间,被访问域名,被访问IP为输入,计算出被访问域名的可疑性,再通过检测,确定域名是否恶意,易于判断和监测流量异常情况。同时,本发明的周期性匹配算法适用于其他异常流量以及恶意域名的预检测中。

主权项:1.一种基于DNS请求周期的恶意域名检测算法,其特征在于,包括以下步骤:步骤1、采集DNS流量数据;步骤2、判断每个域名的请求周期性,筛选出周期性较强的域名列表;步骤3、判断上述域名列表中的域名是否为恶意域名;在步骤2中,判断每个域名的请求周期性包括以下步骤:步骤2.1、使用spark针对步骤1中的DNS流量数据,进行数据统计,获得请求IP和域名对的时间序列;步骤2.2、利用动态矩形比较法进行周期性匹配;步骤2.3、结合匹配特征值Jeffrey散度来衡量概率分布间的距离;步骤2.4、设定一个阈值,低于该阈值认为访问行为具有周期性;所述步骤1中,采集一个月内的DNS流量数据,包括不同客户端请求不同DNS的IP地址,请求时间,被请求的第一域名集,被请求的IP地址;所述步骤1中,将采集到的第一域名集通过与Alexa网站排名前10万的域名进行匹配,去除有名域名数据,留下经过预处理的第二域名集;所述步骤2中,将所有IP与第二域名集组对的访问情况通过变换为一个个桶进行分类;计算出所有请求之间的时间间隔,通过排序,将一个时间间隔作为第一个桶,只要在一定的宽度下的时间间隔我们都放入同一个桶,直到超过宽度上限,然后再次建立一个桶,重新计数;采用Jeffrey散度计算两个柱状图之间的距离。

全文数据:基于DNS请求周期的恶意域名检测算法技术领域[0001]本发明涉及基于DNS请求周期的恶意域名检测算法,尤其涉及对于DNS流量周期性特征的提取和匹配。背景技术[0002]随着网络的迅速发展,伴随着整个社会的网络化信息化的发展,愈来愈多的网络犯罪层出不穷,网络安全情况愈发的复杂,诸多攻击模式的出现如Botnet,ATPAdvancedPersistentThreats等日益趋向于攻击的隐蔽性,有效性,可持续运作性发展。人们发现许多时候,我们很难有效地发现各类慢性的网络攻击,等到症状明显,损失惨重之时发现则为时已晚。而病毒以及恶意行为随着技术的发展,越来越多的人们掌握了相关开发的技术,尽管市场上已经了许多反病毒软件以及安防系统,对于各类变种以及新技术引入的新漏洞难免会有漏网之鱼。就说现在发现的总量,截止2015年第二季度,熊猫公司的熊猫病毒实验室就发布了一份安全研究报告就显示,今天4月至六月间发现了2100万种新式的恶意软件,平均每天会发现23万中新恶意软件。其中70%多都是木马,而大多是新型的恶意软件都是由现有恶意软件的简单衍生变种而成,通过修改部分基本代码从而避开了反病毒软件的检测。由于网络安全意识以及社会原因,亚洲以及美洲是这些病毒的重灾区。木马以及PUP软件是前两种主要的感染对象。当前多余34的病毒感染来自于木马,木马被挂上则大多通过主机在不自觉的情况下访问恶意域名所致。如果在感染前期通过对流量特征进行筛选分析很大程度上屏蔽恶意域名,对企业级的大型机构的信息安全环境有很大的帮助。[0003]在前期发现小型网站的攻击情况中,该类域名通常是主机最近才开始访问的,而且这些域名本身的生存的时间也很短。攻击者倾向于使用少见的网址进行不正当活动感染主机,CC等等)。在2011年到2014年间,在某企业的总流量中检测出的14915个可疑域名都在Alexa最多使用的100万个域名之外。因此域名的存在周期和访问历史是在大流量中发现可疑域名的筛选条件之一。此外,攻击者为了逃避传统意义上的病毒检测,其攻击的流量量度较小混迹于正常流量之中;主机会在较短时间(几天甚至一天内)自动地访问相关网站,并且访问行为很大程度上有一定周期性。如果根据Jeffrey散度计算比对得出周期性的存在,那么则认为该域名可疑。[0004]因此,本领域的技术人员致力于开发基于DNS访问行为周期性的恶意域名检测算法。发明内容[0005]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何利用DNS访问行为的周期性模式检测出恶意域名,在早期降低被木马入侵的可能性,提高企业级网络系统的监测性能。[0006]本发明公开了一种基于DNS请求周期的恶意域名检测算法,包括以下步骤:[0007]步骤1、采集DNS流量数据;[0008]步骤2、判断每个域名的请求周期性,筛选出周期性较强的域名列表;[0009]步骤3、判断上述域名列表中的域名是否为恶意域名。[0010]进一步地,在步骤2中,判断每个域名的请求周期性包括以下步骤:[0011]步骤2.1、使用spark针对步骤1中的DNS流量数据,进行数据统计,获得请求IP和域名对的时间序列;[0012]步骤2.2、利用动态矩形比较法进行周期性匹配;[0013]步骤2.3、结合匹配特征值Jeffrey散度来衡量概率分布间的距离,[0014]步骤2.4、设定一个阈值,低于该阈值认为访问行为具有周期性。[0015]进一步地,所述步骤2中请求周期性的判断算法利用Python实现。[0016]进一步地,所述步骤1中,采集的DNS流量数据为实时数据,包括不同客户端请求不同DNS的IP地址,请求时间,被请求的第一域名集,被请求的IP地址。[0017]进一步地,所述步骤1中,将采集到的第一域名通过与Alexa网站排名前10万的域名进行匹配,去除有名域名数据,留下经过预处理的第二域名集。[0018]进一步地,所述访问周期性的判断由周期性匹配算法完成,第二域名集中低于阈值的第三域名集具有可疑性。[0019]进一步地,所述第三域名集里的域名通过公网搜索引擎,获取不同结果中的匹配,如果发现大量virus或者malicious字样,则可以认为这些域名与恶意行为有比较大的相关性,因而判定为恶意域名。[0020]进一步地,将所有IP与第二域名集组对的访问情况通过变换为一个个桶进行分类。[0021]进一步地,计算出所有请求之间的时间间隔,通过排序,将一个时间间隔作为第一个桶,只要在一定的宽度下的时间间隔我们都放入同一个桶,直到超过宽度上限,然后再次建立一个桶,重新计数。[0022]进一步地,采用Jeffrey散度计算两个柱状图之间的距离。[0023]本发明提供了一种轻量级的基于DNS请求周期的恶意域名检测算法。所述算法由流量预处理和周期性匹配算法组成,所述的流量预处理可以滤过有名的域名,周期性匹配算法将判定所访问域名的可疑性,本发明以1个月内流量特征访问IP,访问时间,被访问域名,被访问IP为输入,计算出被访问域名的可疑性,再通过检测,确定域名是否恶意,易于判断和监测流量异常情况。同时,本发明的周期性匹配算法适用于其他异常流量以及恶意域名的预检测中。[0024]进一步地,所述监测步骤包括:[0025]1本发明技术方案中,考虑到只要是在潜伏期的恶意软件,为了保证其处于待命状态,软件内必然需要保证与某个域名的定期连接,从而实现保活。所述检测系统由三个部分组成:其一是采集DNS流量数据,其二是判断其规律性,其三是判断恶意性,依据在于如果搜索结果中有大量内容跟virustotal,反病毒厂商,黑名单相关,则判定为恶意域名。[0026]2所述采集DNS流量数据通过C语言获取了实时的流量数据,获得了不同客户端请求不同DNS的IP地址,请求时间,被请求的域名㈧,被请求的IP地址。[0027]⑶所述的DNS数据经过处理:将采集到的域名信息㈧通过与alexa网站排名前10万的域名进行匹配,我们首先去除这些有名域名数据及相关网站(网络世界的长尾效应),留下经过与处理的域名集⑶。[0028]⑷所述判断其规律性由周期性匹配算法完成,域名集⑶中低于一定阈值的域名域名集C具有可疑性。[0029]5所述的判断恶意性,在步骤(5里被判定为可疑的域名集C,通过公网搜索引擎,获取不同结果中的匹配,如果发现大量virus或者malicious等字样,则可以认为这些域名与恶意彳丁为有比$父大的相关性,因而判定他们为尚危域名或者恶意域名。[0030]本发明特别提供了周期性匹配算法的详细部署和实现:[0031]1使用spark进行了数据的统计规整,最终获得了以请求IP和域名对的时间序列数据。[0032]2将所有IP与域名对域名集B的访问情况通过变换为一个个桶,如同柱状图一般进行分类。[0033]⑶计算出所有请求之间的时间间隔,通过排序,将一个时间间隔作为第一个桶,只要在一定的宽度binWidth下的时间间隔我们都放入同一个桶,直到超过宽度上限,然后再次建立一个桶,重新计数。[0034]4通过测算两个柱状图之间的距离,采用了效果较好的Jeffrey散度D进行距离计算。值越小则两个柱状图越相似。使用原柱状图中频次最高的桶进行比较,如果相似则可以认为这个IP与域名的访问是有规律性的,其规律的性质与他们频次最高的访问周期一致,得到可疑域名集C。[0035]本发明的基于DNS请求周期的恶意域名检测算法,将利用DNS访问数据进行异常流量的监测。经过流量预处理可以滤过有名的域名,周期性匹配算法将判定所访问域名的可疑性,之后计算出被访问域名的可疑性,再通过检测,确定域名是否恶意,易于判断和监测流量异常情况。同时,本发明的周期性匹配算法适用于其他异常流量以及恶意域名的预检测中。本发明也适用于离线计算。在此之外,只要能够获得DNS请求数据,任何场景都可以使用。[0036]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。附图说明[0037]图1是本发明的一个较佳实施例的基于DNS请求周期的恶意域名检测算法的总体架构;[0038]图2是本发明的一个较佳实施例的周期匹配算法的架构;[0039]图3是桶算法的图示,其中,K柱为标准时间间隔样本,H柱为计算得出的样本,横轴为时间间隔,竖轴为Jeffrey散度;[0040]图4是不同阈值和桶时间间隔所得出的可疑域名数量表格。具体实施方式[0041]图1示出了本发明的基于DNS请求周期的恶意域名检测算法的结构示意图,在本实例中提供了一种基于DNS请求周期的恶意域名检测算法,该算法由三大部分组成,包括数据预处理,访问行为周期性判断,域名恶意性判断。对原始的DNS数据滤去常用的域名后,再进行数据统计分类计算域名周期性,最后对得到的可疑域名做一个简单的检测。[0042]在本发明中,DNS流量输入为唯一输入,判断指标为访问行为的周期性。本系统适合于离线计算和预检测企业级网络的安全性。[0043]图2示出了本发明中的核心算法,周期性匹配算法,目的是判断访问行为的周期性。由于流量数据的数量大,首先使用spark进行了数据的统计规整,最终获得了以请求IP和域名对的时间序列数据。对于是否存在规律性,现有许多不同种的方法,通过匹配一定周期,计算自相关性和我们使用的动态柱状图合并配对法。由于流量数据有一定的扩大时间性以及活动不确定性,前两种以及其他待选的宣召规律的方法都无法较为准确的评估是否有规律性。常常由于几个大异常值而导致判定失败,对于之后的判定恶意性产生了很大的影响。而动态矩形比较的方法则有比较大的抗干扰性以及鲁棒性,特别是在大数据量的情况下会有更加稳定的表现。[0044]这个算法的主要通过将所有IP与域名对的访问情况通过变换为一个个桶,如同柱状图一般进行分类。我们首先计算出所有请求之间的时间间隔,通过排序,我们将一个时间间隔作为第一个桶,只要在一定的宽度binWidth,也称分类宽度下的时间间隔我们都放入同一个桶,直到超过宽度上限,然后再次建立一个桶,重新计数。然后通过测算两个柱状图之间的距离,这次我们采用了效果较好的Jeffrey散度进行距离计算。值越小则两个柱状图越相似。由于我们使用了原柱状图中频次最高的桶进行比较,如果相似则可以认为这个IP与域名的访问是有规律性的,其规律的性质与他们频次最高的访问周期一致。[0045]Jeffrey散度数据解释如下:对于两个柱状图H=[bulu]以及K=[bbh],我们设定他们的平均频次mi=hi,ki2,则我们可以定义Jeffrey散度为[0046][0047]图3示出了所述的桶状分布模型,K柱为标准时间间隔样本,H柱为计算得出的样本,横轴为时间间隔,竖轴为Jeffrey散度。主要通过将所有IP与域名对的访问情况通过变换为一个个桶,如同柱状图一般进行分类。我们首先计算出所有请求之间的时间间隔,通过排序,我们将一个时间间隔作为第一个桶,只要在一定的宽度binWidth,也称分类宽度)下的时间间隔我们都放入同一个桶,直到超过宽度上限,然后再次建立一个桶,重新计数。[0048]图4示出了本发明中判断域名可疑性的阈值选取方式。根据Jeffrey散度数据的含义,柱状图本身的宽度和距离决定了周期性的匹配程度,宽度越小,距离越近,检测出的可疑域名含量就偏高。选取合适的宽度和距离直接决定了监测系统的灵活性。其次,判断周期性匹配跟阈值的选取有很高的相关度。合适的阈值决定了监测的准确性。[0049]以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

权利要求:1.一种基于DNS请求周期的恶意域名检测算法,其特征在于,包括以下步骤:步骤1、采集DNS流量数据;步骤2、判断每个域名的请求周期性,筛选出周期性较强的域名列表;步骤3、判断上述域名列表中的域名是否为恶意域名。2.如权利要求1所述的基于DNS请求周期的恶意域名检测算法,其特征在于,在步骤2中,判断每个域名的请求周期性包括以下步骤:步骤2.1、使用spark针对步骤1中的DNS流量数据,进行数据统计,获得请求IP和域名对的时间序列;步骤2.2、利用动态矩形比较法进行周期性匹配;步骤2.3、结合匹配特征值Jeffrey散度来衡量概率分布间的距离,步骤2.4、设定一个阈值,低于该阈值认为访问行为具有周期性。3.如权利要求1所述的基于DNS请求周期的恶意域名检测算法,其特征在于,所述步骤2中请求周期性的判断算法利用Python实现。4.如权利要求1所述的基于DNS请求周期的恶意域名检测算法,其特征在于,所述步骤1中,采集的DNS流量数据为实时数据,包括不同客户端请求不同DNS的IP地址,请求时间,被请求的第一域名集,被请求的IP地址。5.如权利要求4所述的基于DNS请求周期的恶意域名检测算法,其特征在于,所述步骤1中,将采集到的第一域名通过与Alexa网站排名前10万的域名进行匹配,去除有名域名数据,留下经过预处理的第二域名集。6.如权利要求5所述的基于DNS请求周期的恶意域名检测算法,其特征在于,所述访问周期性的判断由周期性匹配算法完成,第二域名集中低于阈值的第三域名集具有可疑性。7.如权利要求6所述的基于DNS请求周期的恶意域名检测算法,其特征在于,所述第三域名集里的域名通过公网搜索引擎,获取不同结果中的匹配,如果发现大量virus或者malicious字样,贝Ij可以认为这些域名与恶意行为有比较大的相关性,因而判定为恶意域名。8.如权利要求7所述的基于DNS请求周期的恶意域名检测算法,其特征在于,将所有IP与第二域名集组对的访问情况通过变换为一个个桶进行分类。9.如权利要求8所述的基于DNS请求周期的恶意域名检测算法,其特征在于,计算出所有请求之间的时间间隔,通过排序,将一个时间间隔作为第一个桶,只要在一定的宽度下的时间间隔我们都放入同一个桶,直到超过宽度上限,然后再次建立一个桶,重新计数。10.如权利要求9所述的基于DNS请求周期的恶意域名检测算法,其特征在于,采用Jeffrey散度计算两个柱状图之间的距离。

百度查询: 上海交通大学;公安部第三研究所 基于DNS请求周期的恶意域名检测算法

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