基于PassiveDNS迭代聚类的恶意域名检测方法

文档序号:10691111阅读:1883来源:国知局
基于Passive DNS迭代聚类的恶意域名检测方法
【专利摘要】本发明公开了一种基于Passive DNS迭代聚类的恶意域名检测方法,包括如下步骤:步骤一:提取DNS查询数据,得到DNS数据组;步骤二:根据已知的白名单域名网站及域名的总访问量,去除DNS数据组中包含白名单域名的数据组,得到处理后DNS数据组;步骤三:通过处理后DNS数据组中域名与IP之间的相互映射关系,反复迭代查询,得到存在关联的域名组;步骤四:抽取恶意域名的特征并训练得到模型,判断存在关联的域名组是否存在恶意域名。本发明公开的一种基于Passive DNS迭代聚类的恶意域名检测方法,通过域名和IP之间的映射关系,反复迭代查询,得到存在关联的域名组,大大提高了恶意域名的正检率。
【专利说明】
基于Pass i ve DNS迭代聚类的恶意域名检测方法
技术领域
[0001]本发明涉及计算机网络安全领域的恶意域名检测领域,尤其涉及一种基于Passive DNS迭代聚类的恶意域名检测方法。
【背景技术】
[0002]恶意域名通常指婦虫、病毒等恶意代码用于命令控制(Command and Control,C&C)通信的域名,以及嵌入了恶意代码或者包含非法信息的网站域名。近年来,恶意软件威胁的持续增长,对我国关键基础设施和重要信息系统安全造成严重威胁,尤其是木马、病毒种类高速增长,垃圾邮件、钓鱼网站更加泛滥,给社会带来了很大的损失。因此,对恶意软件检测的研究也就具有了迫切的现实意义。
[0003]恶意软件依赖于域名系统实现域名到IP的转换,以完成命令控制通信。当前的恶意软件为了防止被屏蔽和封锁,实现高度可用性,通常会频繁的更改域名的解析,并不断产生新的域名,同时大大缩短恶意域名的生存周期,增加了检测难度,使恶意软件的C&C通信更加可靠。这样的方法同时会导致大量的恶意域名解析到了一组相同的IP,这些域名之间也就产生了关联。进一步的,此类恶意域名通常由算法随机生成,与正常域名相比有着很明显的特征。
[0004]现有的恶意域名检测方法和系统,主要集中在对单个域名特征的分析上,主要有:域名响应特征(包括IP的数量,NS的数量,TTL等),域名访问时间特征,who i S信息,单个域名的字符串特征等。这些检测方法面临以下缺陷:
[0005]I)域名响应特征干扰因素越来越多,恶意域名与CDN域名有着诸多相似之处,该方法误检率越来越高;
[0006]2)域名访问的时间规律并不稳定,攻击者可以轻易通过算法改变;
[0007]3)单个域名的字符串特征有很大的局限性,只能发现已知的恶意域名种类。
[0008]因此,本发明致力于开发一个基于全局特征的恶意域名检测系统和方法,找出存在关联的域名组,进而通过域名组特征发现恶意域名。
[0009]鉴于现有的恶意域名检测方法的缺陷,本发明提出了一种基于passivedns迭代聚类的恶意域名检测系统和方法。
[0010]本发明提出的检测方法,是基于这样的观察结论:恶意软件通常会注册大量的域名来规避检测,这些域名解析到攻击者的同一组IP,因此大量的恶意域名之间会产生关联;这些有关联的域名通常由同一个算法生成,因此会有一定的字符串特征,与正常域名有明显的区别。
[0011]为了规避检测,网络攻击者通常会频繁的改变域名的解析,同时不断产生新的域名。但是为了节约成本,他们会重复的利用这些域名和IP,比如在一定的时间周期内,不同的域名解析到了同一个IP,不同的IP被同一个域名解析,这样的行为使某些不同的域名之间产生了关联,如图1所示。我们首先要利用域名与IP之间的映射关系,发现域名间的关联,然后进一步判断这些关联的域名组是否存在恶意行为。

【发明内容】

[0012]本发明所要解决的技术问题是开发一个基于全局特征的恶意域名检测系统和方法,找出存在关联的域名组,进而通过域名组特征发现恶意域名,为了解决上述问题,本发明提供一种基于Passive DNS迭代聚类的恶意域名检测方法,其特征在于,包括如下步骤:
[0013]步骤一:提取DNS查询数据,得到DNS数据组;
[0014]步骤二:根据已知的白名单域名网站及域名的总访问量,去除DNS数据组中包含白名单域名的数据组,得到处理后DNS数据组;
[0015]步骤三:通过处理后DNS数据组中域名与IP之间的相互映射关系,反复迭代查询,得到存在关联的域名组;
[0016]步骤四:抽取恶意域名的特征并训练得到模型,判断存在关联的域名组是否存在恶意域名。
[00?7] 进一步地,在步骤一中,DNS数据组包括四元组(d,i,Tf,Ti,c),d为请求域名,i为响应IP,Tf为开始时间,Ti为结束时间,c为该域名在Tf到Ti时间段内的请求次数,时间窗口 W =Tf-Ti0
[0018]优选地,时间窗口 W的取值为5分钟。
[0019]进一步地,步骤二中,白名单域名网站包括Alexa前10000域名,将Alexa前10000域名和DNS数据组中的域名包含的比public suffix低一级的子域名进行归并分组,去除DNS数据组中包含与Alexa前10000域名有相同的低一级域名的数据组。
[0020]进一步地,步骤二中,当域名的总访问量大于预设的阈值,则去除DNS数据组中包含相应域名的数据组。
[0021]优选地,阈值取值10000。
[0022]进一步地,步骤三中反复迭代查询的具体步骤包括:在处理后DNS数据组中选定一个域名Do,查找域名Do在时间周期T内映射到的全部第一 IP;解析第一 IP的全部域名形成第一集合Cn,查询在时间周期T内第一集合Cn中的域名解析过的全部第二 IP,解析到第二 IP的全部域名形成第二集合Cn’,即完成一次迭代循环;当迭代循环中得到的第一集合Cn和第二集合Cn ’不相等,则继续迭代循环;当迭代循环中得到的第一集合Cn和第二集合Cn ’相等,则结束迭代循环。
[0023]优选地,时间周期T为一天。
[0024]进一步地,恶意域名的特征包括域名数量、域名各级标签长度的分布范围和离散程度、域名标签数量的离散程度、随机标签的分布状况、同一组域名中相同字符的长度以及域名中包含的数字数量。
[0025]进一步地,模型为支持向量机模型。
[0026]本发明具有如下有益效果:
[0027]1、本发明公开的一种基于Passive DNS迭代聚类的恶意域名检测方法,通过域名和IP之间的映射关系,反复迭代查询,得到存在关联的域名组,大大提高了恶意域名的正检率。
[0028]2、数据经过预处理,减少了数据处理量,大大提高了检测效率。
[0029]3、机器学习使得本发明公开的一种基于Passive DNS迭代聚类的恶意域名检测方法能够不断学习,从而提尚恶意域名的判断能力。
【附图说明】
[0030]图1是某恶意域名和相应IP的映射结构图
[0031]图2是本发明的一种基于PassiveDNS迭代聚类的恶意域名检测方法的系统结构图。
[0032]图3是本发明的一种基于PassiveDNS迭代聚类的恶意域名检测方法的一个迭代聚类步骤示例图。
[0033]图4是本发明的一种基于PassiveDNS迭代聚类的恶意域名检测方法的一个迭代聚类步骤示例图。
[0034]图5是本发明的一种基于PassiveDNS迭代聚类的恶意域名检测方法的一个迭代聚类步骤示例图。
[0035]图6是本发明的一种基于PassiveDNS迭代聚类的恶意域名检测方法的一个迭代聚类步骤示例图。
[0036]图7是本发明的一种基于PassiveDNS迭代聚类的恶意域名检测方法的一个迭代聚类步骤示例图。
[0037]图8是迭代聚类形成的分组中,一组恶意域样本图。
【具体实施方式】
[0038]下面结合附图并参照数据进一步详细描述本发明。应理解,实施方式只是为了举例说明本发明,而非以任何方式限制发明的范围。
[0039]如图2所示,本发明公开了一种基于PassiveDNS迭代聚类的恶意域名检测方法,包括如下步骤:
[0040]步骤一,即数据收集:提取DNS查询数据,得到DNS数据组;
[0041 ]以DNS服务器的网络出口为数据源,从DNS查询数据中提取出四元组(d,i,Tf,Ti,c),d为请求域名,i为响应IP,Tf为开始时间,Ti为结束时间,c为该域名在Tf到Ti时间段内的请求次数,时间窗口 W=Tf-Ti,在一个实施例中时间窗口 W = Tf-Ti为5分钟,并将提取出的数据存入本地数据库。
[0042]步骤二,即数据预处理:根据已知的白名单域名网站及域名的总访问量,去除DNS数据组中包含白名单域名的数据组,得到处理后DNS数据组;
[0043]获取public suffix列表和Alexa top 10000列表。将全部的域名数据根据每个域名包含的比public suffix低一级的子域名进行归并。与Alexa前10000域名归并在同一组的域名加入白名单。进一步的,计算每组域名的总访问量,超过阈值m的,则认为该组域名为大型网站或CDN服务商的域名,加入白名单。将白名单域名从数据中删除。优选的,阈值m取值 10000 0
[0044]获取public suffix列表和Alexa排名前10000的域名。将Alexa前10000域名和收集的DNS数据组分别根据public suffix层级的数量进行归并,如果public suffix包含了η级域名,则有相同的η+1级域名的全部域名归为一组;DNS数据组中,与Alexa前10000域名有相同η+1级域名的分组作为可信任的域名组从流量数据中删除,加入白名单数据库;计算每组域名访问总量C,如果C大于预设的阈值m,则认为该组域名为大型网站或CDN服务商的域名,将其从DNS数据组中删除,加入白名单数据库,在一个实施例中,阈值m取值10000。
[0045]步骤三,即迭代聚类:通过处理后DNS数据组中域名与IP之间的相互映射关系,反复迭代查询,得到存在关联的域名组;
[0046]通过域名到IP,IP到域名的相互映射关系,反复迭代查询,即可将有关联的域名聚合到一起,步骤如下:
[0047](I):在输入的处理后DNS数据组中,取时间周期T内的数据。优选的,周期T取值为I天。选定一个域名Do,查找这个域名在时间周期T内映射到的全部IP,解析到这一组IP的全部域名形成一个集合Cn;
[0048](2):查询周期T内集合Cn中的域名解析过的全部IP,解析到这一组IP的全部域名形成集合Cn’,完成一次迭代循环;
[0049](3):如果集合Cn’不等于集合Cn,那么继续查询(:?’中的域名解析到的IP,找到周期T内曾解析到这一组IP的全部域名,形成集合Cn,如果集合Cn’不等于集合Cn则回到步骤(2),直到集合Cn ’等于集合Cn。
[0050]如此迭代进行下去,直到集合大小不再变化,即集合匕等于集合Cn’,集合Cn即为与域名Do有关联的全部域名。
[0051]图3-图7示出了一个实施例中迭代聚类的详细过程。其中,图3表示从域名Dl开始迭代。图4为第一次迭代结果,集合&1为(01,03,04);图5为第二次迭代结果,集合0/为(01,D2,D3,D4,D5),此时集合匕,不等于集合Cn,所以继续迭代。图6为第三次迭代结果,集合匕为(01,02,03,04,05,06),此时集合&1’不等于集合&1,继续进行第四次。如图7,此时集合0/为(01,02,03,04,05,06),集合&1’等于集合&1,结束迭代,域名01,02,03,04,05,06形成一个分组。
[0052]步骤四,即机器学习:抽取恶意域名的特征并训练得到模型,判断存在关联的域名组是否存在恶意域名。恶意域名的特征包括域名数量、域名各级标签长度的分布范围和离散程度、域名标签数量的离散程度、随机标签的分布状况、同一组域名中相同字符的长度以及域名中包含的数字数量。在一个实施例中通过支持向量机建立模型。
[0053]如图8所示,迭代聚类形成的分组中,恶意域名组表现出了明显的字符特征,我们进而总结了恶意域名组的特征:
[0054]I)域名组的域名数量:攻击者会注册大量域名来规避检测,所以域名组中的域名越多,该域名组越可疑。
[0055]2)域名各级标签长度的分布范围和离散程度:域名生成算法通常会产生一些在相同长度范围内的字符串,再添加公共的域名后缀(public suffix)。有的域名生成算法产生的域名长度甚至完全一致。由此可见,同一个恶意软件使用的域名总长应大致相同或者分布集中。因此我们将域名长度的分布范围和离散程度作为恶意域名组的一个特征。
[0056]3)域名标签数量的离散程度:常见的恶意域名域名的构成通常为“随机标签.后缀”或者“固定前缀.随机标签.后缀”,由于域名后缀长度较为一致,因此,同一组恶意域名的层次数量,或者说标签数量,应较为接近或完全相同。
[0057]4)随机标签的分布状况:由于同一组恶意域名后缀的层次数相对一致,因此,它们的随机标签所在的层次也大多保持一致,通常为二级或三级。与之相对的,其他应用的最长标签则可能并不位于注册域名标签,例如DNS隧道和域名,其注册域名之前的前缀部分,SP存储数据的标签长度远大于注册标签即注册后缀。所以我们将域名组中随机标签的分布状况作为恶意域名组的一个特征。
[0058]5)同一组域名中相同字符的长度以及域名中数字的数量:我们发现,还有一类恶意域名会在相同的层次中出现重叠的部分,比如“固定的字符+不同的数字或字符”或“不同的数字或字符+固定的字符”,这些域名多用于非法的服务,包括色情网站、钓鱼网站等,此类域名通常还会包含大量的数字或重复的字符。将上述特征向量化,输入已知的恶意域名数据进行训练得到模型,即可对迭代聚类形成的分组数据进行预测。经实验测试,SVM算法可以达到最高的正检率。
[0059]以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
【主权项】
1.一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,包括如下步骤: 步骤一:提取DNS查询数据,得到DNS数据组; 步骤二:根据已知的白名单域名网站及域名的总访问量,去除DNS数据组中包含白名单域名的数据组,得到处理后DNS数据组; 步骤三:通过处理后DNS数据组中域名与IP之间的相互映射关系,反复迭代查询,得到存在关联的域名组; 步骤四:抽取恶意域名的特征并训练得到模型,判断存在关联的域名组是否存在恶意域名。2.如权利要求1所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,在所述步骤一中,所述DNS数据组包括四元组(d,i,Tf,Ti,c),d为请求域名,i为响应IP,Tf为开始时间,Ti为结束时间,c为该域名在Tf到Ti时间段内的请求次数,时间窗口 W=Tf-Ti。3.如权利要求2所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,所述时间窗口 W的取值为5分钟。4.如权利要求1所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,所述步骤二中,所述白名单域名网站包括Alexa前10000域名,将所述Alexa前10000域名和所述DNS数据组中的域名包含的比pub lie suffix低一级的子域名进行归并分组,去除DNS数据组中包含与Alexa前10000域名有相同的低一级域名的数据组。5.如权利要求1所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,所述步骤二中,当所述域名的总访问量大于预设的阈值,则去除DNS数据组中包含相应域名的数据组。6.如权利要求5所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,所述阈值取值10000。7.如权利要求2所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,所述步骤三中反复迭代查询的具体步骤包括:在所述处理后DNS数据组中选定一个域名Do,查找所述域名Do在时间周期T内映射到的全部第一 IP;解析所述第一 IP的全部域名形成第一集合匕,查询在所述时间周期T内第一集合Cn中的域名解析过的全部第二 IP,解析到所述第二IP的全部域名形成第二集合Cn’,即完成一次迭代循环;当所述迭代循环中得到的第一集合Cn和第二集合Cn’不相等,则继续所述迭代循环;当所述迭代循环中得到的第一集合Cn和第二集合Cn ’相等,则结束所述迭代循环。8.如权利要求7所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,所述时间周期T为一天。9.如权利要求1所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,所述恶意域名的特征包括域名数量、域名各级标签长度的分布范围和离散程度、域名标签数量的离散程度、随机标签的分布状况、同一组域名中相同字符的长度以及域名中包含的数字数量。10.如权利要求1所述的一种基于PassiveDNS迭代聚类的恶意域名检测方法,其特征在于,所述模型为支持向量机模型。
【文档编号】H04L29/12GK106060067SQ201610497879
【公开日】2016年10月26日
【申请日】2016年6月29日
【发明人】邹福泰, 孙文杰, 谭凌霄, 刘渝娇
【申请人】上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1