一种恶意域名的识别方法及系统与流程

文档序号:21319419发布日期:2020-06-30 20:50阅读:563来源:国知局
一种恶意域名的识别方法及系统与流程

本申请涉及数据安全技术领域,尤其涉及一种恶意域名的识别方法及系统。



背景技术:

恶意域名指的是某个域名下的至少一个url指向一个恶意的资源,使得用户在访问该恶意资源时,用户的财产信息或计算机系统数据遭受一定的安全风险。

当前获取恶意域名的的主要方法是采用黑名单技术。黑名单实现简单,理解容易,但是很容易产生漏判,同时在产生黑名单的过程中也会产生漏判,造成的后果就是防御系统容易被绕过。

而如何提升恶意域名的识别率,是亟待解决的一个问题。



技术实现要素:

本申请实施例提供了一种恶意域名的识别方法及系统,用于根据恶意域名的相似性,从其中抽取出具有强泛化能力的正则表达式,并通过强正则表达式对恶意域名进行匹配及识别,以提升恶意域名的识别率。

本申请实施例第一方面提供了一种恶意域名的识别方法,包括:

将获取到的恶意域名执行聚类分组,得到多个域名簇;

对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;

对所述正则表达式进行测试,以获取强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;

利用所述强正则表达式对恶意域名进行识别。

优选的,所述将获取到的恶意域名执行聚类分组,得到多个域名簇,包括:

将获取到的恶意域名执行域名向量化,以将所述恶意域名映射到向量空间;

将向量化后的恶意域名分别执行域名的粗粒度聚类分组及域名的细粒度聚类分组,以得到所述多个域名簇,其中,所述粗粒度聚类分组包括k-means聚类算法、层次聚类算法及ip聚类算法中的至少一种,所述细粒度聚类分组包括计算字符串的相似度矩阵。

优选的,所述对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式,包括:

对所述多个域名簇执行过滤,以获取具有相同等级数量的域名;

分别对各级域名进行数值统计,以抽取出各级域名中的高频字段;

根据所述高频字段,拼装出与每个域名簇对应的恶意域名的正则表达式。

优选的,所述置信度通过第一公式进行计算,其中,所述第一公式为:

其中,所述score表示置信度,所述n真表示训练库中真实的恶意域名数量,所述n测表示所述强正则表达式在训练库中识别的恶意域名的数量;

所述命中率通过第二公式进行计算,其中,所述第二公式为:

其中,所述ratio表示命中率,所述tp表示所述强正则表达式在训练数据库中命中黑库中的条目数,所述fp表示所述强正则表达式在训练数据库命中白库中的条目数。

优选的,所述方法还包括:

对识别出的恶意域名进行历史子域名的信誉处理,以获取并输出与所述信誉处理结果相一致的恶意域名。

优选的,所述对识别出的恶意域名进行历史子域名的信誉处理,以获取并输出与所述信誉处理结果相一致的恶意域名,包括:

统计所述识别出的恶意域名的历史子域名数据,并获取所述历史子域名数据中恶意域名与正常域名的比值;

根据所述比值,获取对所述识别出的恶意域名的历史统计结果;

当识别结果与所述历史统计结果相一致时,则输出所述恶意域名。

本申请实施例第二方面提供了一种恶意域名的识别系统,包括:

聚类分组模块,用于将获取到的恶意域名执行聚类分组,得到多个域名簇;

分析抽取模块,用于对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;

测试模块,用于对所述正则表达式进行测试,以获取强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;

识别模块,用于利用所述强正则表达式对恶意域名进行识别。

优选的,所述聚类分组模块具体用于:

将获取到的恶意域名执行域名向量化,以将所述恶意域名映射到向量空间;

将向量化后的恶意域名分别执行域名的粗粒度聚类分组及域名的细粒度聚类分组,以得到所述多个域名簇,其中,所述粗粒度聚类分组包括k-means聚类算法、层次聚类算法及ip聚类算法中的至少一种,所述细粒度聚类分组包括计算字符串的相似度矩阵。

优选的,所述分析抽取模块具体用于:

对所述多个域名簇执行过滤,以获取具有相同等级数量的域名;

分别对各级域名进行数值统计,以抽取出各级域名中的高频字段;

根据所述高频字段,拼装出与每个域名簇对应的恶意域名的正则表达式。

优选的,所述置信度通过第一公式进行计算,其中,所述第一公式为:

其中,所述score表示置信度,所述n真表示训练库中真实的恶意域名数量,所述n测表示所述强正则表达式在训练库中识别的恶意域名的数量;

所述命中率通过第二公式进行计算,其中,所述第二公式为:

其中,所述ratio表示命中率,所述tp表示所述强正则表达式在训练数据库中命中黑库中的条目数,所述fp表示所述强正则表达式在训练数据库命中白库中的条目数。

优选的,所述系统还包括:

检测模块,用于对识别出的恶意域名进行历史子域名的信誉处理,以获取并输出与所述信誉处理结果相一致的恶意域名。

优选的,所述检测模块具体用于:

统计所述识别出的恶意域名的历史子域名数据,并获取所述历史子域名数据中恶意域名与正常域名的比值;

根据所述比值,获取对所述识别出的恶意域名的历史统计结果;

当识别结果与所述历史统计结果相一致时,则输出所述恶意域名。

本申请实施例还提供了一种计算机装置,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本申请实施例第一方面所述的恶意域名的识别方法。

本申请实施例还提供了一种可读计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本申请实施例第一方面所述的恶意域名的识别方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本实施中,将获取到的恶意域名执行聚类分组,得到多个域名簇;对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;对所述正则表达式进行测试,以获取强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;利用所述强正则表达式对恶意域名进行识别。因为本实施例中的正则表达式是根据大量恶意域名的相似性抽取而成,且为经过测试后,置信度和命中率都分别大于对应预设阈值的具有强泛化能力的正则表达式,故在利用该强正则表达式对恶意域名进行识别时,可以提升恶意域名的识别率。

附图说明

图1为本申请实施例中一种恶意域名的识别方法的一个实施例示意图;

图2为本申请实施例中图1实施例中步骤101的细化步骤;

图3为本申请实施例中图1实施例中步骤102的细化步骤;

图4为本申请实施例中图1实施例中步骤103的细化步骤;

图5为本申请实施例中一种恶意域名的识别方法的另一个实施例示意图;

图6为本申请实施例中的一种域名树结构的示意图;

图7为本申请实施例中一种恶意域名的识别系统的一个实施例示意图;

图8为本申请实施例中用户访问服务器上域名的应用场景示意图。

具体实施方式

本申请实施例提供了一种恶意域名的识别方法及系统,用于根据恶意域名的相似性,从其中抽取出具有强泛化能力的强正则表达式,并通过强正则表达式对恶意域名进行匹配及识别,以提升恶意域名的识别率。

为方便理解,下面对本申请中的恶意域名的识别方法进行描述,请参阅图1,本申请实施例中一种恶意域名识别方法的一个实施例,包括:

101、将获取到的恶意域名执行聚类分组,得到多个域名簇;

区别于现有技术中简单通过黑名单的方法,对大量的域名数据进行匹配,以获取恶意域名的方法,本申请实施例中将获取的恶意域名执行聚类分组,以得到多个域名簇,并根据获取到的多个域名簇执行步骤102。

具体的,假设在图8所示的应用场景中,用户通过客户端上的浏览器访问服务器上的map.baidu.com的域名,其中,域名(domainname)是由一串用点分隔的名字组成的internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名使一个ip地址有"面具"。其中,本实施例中的恶意域名指的是某个域名下的至少一个url指向一个恶意的资源,使得用户在访问该恶意资源时,用户的财产信息或计算机系统数据遭受一定的安全风险,而对于获取恶意域名的方式,可以是自身设置时间窗口,定期从网络链接中进行识别及获取,还可以是从第三方数据中直接获取,此处不做具体限制。

具体的,对于本步骤中对恶意域名执行聚类分组的方式,将在下面的实施例中进行描述,此处不再赘述。

102、对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;

得到多个域名簇后,对多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式。

容易理解的是,域名级别是网址分类的一个标准,包括顶级域名、二级域名等。一个完整的域名由二个或二个以上部分组成,各部分之间用英文的句号"."来分隔,倒数第一个"."的右边部分称为顶级域名(tld,也称为一级域名,包含一个合法字符串,和一个域名后缀),顶级域名的左边部分字符串到下个"."为止称为二级域名(sld),二级域名的左边部分称为三级域名,以此类推,每一级的域名控制它下一级域名的分配。

而对每个域名簇中的各级域名执行处理的过程,也在下面的实施例中进行描述,此处不再赘述。

103、对所述正则表达式进行测试,以获取强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;

抽取出每个域名簇中的正则表达式后,为了进一步限制弱泛化能力及高误报的表达式,即为了避免误报,需要对所述正则表达式进行测试,以获取具有强泛化能力的强正则表达式,其中,强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式。

具体的,对于正则表达式的测试过程、置信度及命中率的描述也在下面的实施例中进行说明,此处不再赘述。

104、利用所述强正则表达式对恶意域名进行识别。

获取到强正则表达式后,即可利用该强正则表达式对大量域名数据中的恶意域名进行匹配及识别。

因为本实施例中的正则表达式是根据大量恶意域名的相似性抽取而成,且为经过测试后,置信度和命中率都分别大于对应预设阈值的具有强泛化能力的正则表达式,故在利用该强正则表达式对恶意域名进行识别时,可以提升恶意域名的识别率。

本申请实施中,将获取到的恶意域名执行聚类分组,得到多个域名簇;对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;对所述正则表达式进行测试,以获取具有强泛化能力的强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;利用所述强正则表达式对恶意域名进行识别。因为本实施例中的正则表达式是根据大量恶意域名的相似性抽取而成,且为经过测试后,置信度和命中率都分别大于对应预设阈值的具有强泛化能力的正则表达式,故在利用该强正则表达式对恶意域名进行识别时,可以提升恶意域名的识别率。

基于图1所述的实施例,下面对图1实施例中的步骤101进行详细描述,请参阅图2,图2为本申请实施例中对步骤101的细化步骤:

201、将获取到的恶意域名执行域名向量化,以将所述恶意域名映射到向量空间;

具体的,将获取到的恶意域名执行聚类分组,以得到多个域名簇的过程如下所述:

将获取到的恶意域名执行域名向量化,以将恶意域名映射到向量空间,为便于说明,本实施例以www.baidu.com的域名为例,对域名映射为向量的过程进行描述。

1、使用uni-gram进行域名切分,则www.baidu.com被切分为['w','w','w','.','b','a','i','d','u','.','c','o','m'];

2、将切分后的每个字符转化为ascii码[119,119,119,46,98,97,105,100,117,46,99,111,109];

3、将转化后的ascii码进行统计,统计结果如下所示:(46,2),(97,1),(98,1),(99,1),(100,1),(105,1),(109,1),(111,1),(117,1),(119,3);

4、向量化,使用128维向量化。ascii对应位置赋值为统计值

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,3,0,0,0,0,0,0,0,0]。

需要说明的是,上述只是对域名向量化过程的一种描述,还可以通过其他方法进行,此处不做具体限制。

202、将向量化后的恶意域名分别执行域名的粗粒度聚类分组及域名的细粒度聚类分组,以得到所述多个域名簇,其中,所述粗粒度聚类分组包括k-means聚类算法、层次聚类算法及ip聚类算法中的至少一种,所述细粒度聚类分组包括计算字符串的相似度矩阵。

得到向量化后的恶意域名后,则对该恶意域名分别执行粗粒度聚类分组及细粒度的聚类分组,以得到所述多个域名簇。其中,粗粒度的聚类分组包括k-means聚类算法、层次聚类算法及ip聚类算法中的至少一种,所述细粒度聚类分组包括计算字符串的相似度矩阵。

具体的,聚类算法是指将一堆没有标签的数据自动划分成几类的方法,属于无监督学习方法,这个方法要保证同一类的数据有相似的特征,且比较适合百万级的数据。

下面对粗粒度的聚类算法进行详细描述:

一、k-means聚类分析算法中的k值是指要得到的簇的个数;质心为每个簇的均值向量,即向量各维取平均即可;距离量度则常用欧几里得距离和余弦相似度(先标准化)进行表示。

具体的算法流程如下所述:

1、首先确定一个k值,即我们希望将数据集经过聚类得到k个集合;

2、从数据集中随机选择k个数据点作为质心;

3、对数据集中每一个点,计算其与每一个质心的距离(如欧式距离),离哪个质心近,就划分到那个质心所属的集合;

4、把所有数据归好集合后,一共有k个集合。然后重新计算每个集合的质心;

5、如果新计算出来的质心和原来的质心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),我们可以认为聚类已经达到期望的结果,算法终止;

6、如果新质心和原质心距离变化很大,需要迭代3~5步骤。

而根据具体的向量数据执行k-means聚类分析算法的过程,在现有技术中也都有详细描述,此处不再赘述。

而对于规模较小的数据,在采用k-means聚类分析算法时,因为始终有k值选择和初始聚类中心点选择的问题,而这些问题也会影响聚类的效果。为了避免这些问题,则可以采用层次聚类或ip聚类。

二、层次聚类层次聚类就是一层一层的进行聚类,可以由上向下把大的簇分割,叫作分裂法;也可以由下向上对小的类别进行聚合,叫作凝聚法;本实施例中主要使用凝聚法,该算法的主要流程如下:

1、输入:样本集合data[n]与聚类数目k;

2、将样本集中的所有的样本点都当做一个独立的类簇;

3、计算两两类簇之间的距离(如欧氏距离),找到距离最小的两个类簇c1和c2;

4、合并类簇c1和c2为一个类簇;

5、重复(3)(4)达到聚类的数目。

而根据具体的向量数据执行层级聚类分析算法的过程,在现有技术中也都有详细描述,此处也不再赘述。

三、ip聚类:研究发现,大量的具有相同模式的恶意域名往往出现在同一个ip上,因此也可以通过dns域名解析,将具有相同解析ip的域名,聚类为同一个域名簇。

在通过粗粒度的聚类算法,将恶意域名粗略划分为多个域名簇后,下面接着对本实施例中的细粒度的聚类算法进行描述:

四、字符串相似度矩阵的计算

为了提取出相似恶意域名中共同的模式,需要进一步对恶意域名进行详细的聚类分析。其中,字符串相似度矩阵作为一种细粒度的聚类算法,是通过编辑距离(editdistance)来度量,该距离又称为levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。

通过字符串相似度矩阵的计算,可以进一步将粗粒度聚类后的恶意域名簇划分为更加相似的多个域名簇。

本实施例中,对获取到的恶意域名执行聚类分组,以得到多个域名簇的过程做了详细描述,提升了获取到的多个域名簇的准确性及相似性。

基于图1及图2所述的实施例,下面接着对图1实施例中的步骤102做详细描述,请参阅图3,图3为图1实施例中步骤102的细化步骤:

301、对所述多个域名簇执行过滤,以获取具有相同等级数量的域名;

在得到多个域名簇后,为了便于对域名簇进行处理,首先对多个域名簇执行过滤,以获取具有相同等级数量的域名。

具体的,如得到3个域名簇后,分别对3个域名簇执行过滤,以分别获取3个域名簇中具有相同等级数量的域名,其中,相同等级数量指的是域名的等级,如过滤后的3个域名簇中,每个域名簇都为仅包括顶级域名,或二级域名,或三级域名的域名簇。

302、分别对各级域名进行数值统计,以抽取出各级域名中的高频字段;

得到具体相同等级数量的域名簇后,分别对其中的各级域名(如顶级域名、二级域名或三级域名等)进行数值统计,以抽取出各级域名中的高频字段。

其中,高频字段指的是出现频率超出预设阈值(如100次或1000次)的字段,需要说明的是,此处高频字段的频率支持用户自定义,上述只是举例说明而并非具体限制。

303、根据所述高频字段,拼装出与每个域名簇对应的恶意域名的正则表达式。

抽取出各级域名中的高频字段后,将高频字段拼装出与每个域名簇对应的恶意域名的正则表达式。

其中,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

需要说明的是,为了进一步降低对恶意域名的误报率,还可以仅对多个域名簇中的顶级域名和二级域名进行数量统计,若顶级域名和二级域名中不出现高频字段,则放弃对该簇正则表达式的抽取。

本实施例中,对根据恶意域名的相似性,抽取出正则表达式的过程做了详细描述,提升了本申请实施例的可实施性。

基于图1至图3所述的实施例,下面对图1实施例中的步骤103做详细描述,具体请参阅图4,图4为图1实施例中步骤103的细化步骤:

401、对所述正则表达式在训练库中进行测试,以获取强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式,其中,置信度通过第一公式进行表示,命中率通过第二公式进行表示;

第一公式:

其中,所述score表示置信度,所述n真表示训练库中真实的恶意域名数量,所述n测表示所述强正则表达式在训练库中识别的恶意域名的数量;

第二公式:

其中,所述ratio表示命中率,所述tp表示所述强正则表达式在训练数据库中命中黑库中的条目数,所述fp表示所述强正则表达式在训练数据库命中白库中的条目数。

具体的,为了避免误报,必须对抽取出的正则表达式进行评估,以进一步限制弱泛化能力且高误报的表达式。首先计算正则表达式的置信度,其值定义在训练数据库中,真正恶意域名的数量与正则表达式验证的恶意域名数量的比值。

其次是计算该正则表达式在训练数据库的白库及黑库中,分别命中条目数的比值,其中,命中黑库条目数即tp,命中白库中的条目数及fp,其中,命中白库中的条目数也可以理解为该正则表达式的误报条目数。

具体的,可以根据实际需求,对第一公式和第二公式的比值设定不同的阈值,并根据各自的阈值,对正则表达式进行过滤,以获取具有强泛化能力的强正则表达式。

本申请实施例中,为了降低对恶意域名的误报率,对强正则表达式的生成过程做了详细描述,提升了强正则表达式识别的准确性。

基于图1至图4所述的实施例,为了进一步降低对恶意域名的误报率,提升对恶意域名的识别率,还可以执行以下步骤,请参阅图5,图5为本申请实施例中一种恶意域名检测方法的另一个实施例:

501、对识别出的恶意域名进行历史子域名的信誉处理,以获取并输出与所述信誉处理结果相一致的恶意域名。

研究发现,图1至图4实施例中抽取出的正则表达式所命中的恶意域名均在其子域名上不断变化。根据这种趋势,可以通过统计其子域名在历史上的好坏数量,以对识别到的恶意域名进行信誉处理。

具体的,可以通过以下步骤来实现:

1、统计所述识别出的恶意域名的历史子域名数据,并获取所述历史子域名数据中恶意域名与正常域名的比值;

当根据强正则表达式识别到某个域名为恶意域名时,为了进一步降低误报率,可以统计命中的该恶意域名的历史子域名数据,并获取所述历史子域名数据中恶意域名与正常域名的比值。

假设识别出的恶意域名为baidu.com,则根据图6中的域名树的结构图所示,假设baidu.com存在三个子域名,分别为map.baidu.com,music.baidu.com,及tieba.baidu.com,而根据历史数据统计,其中2个为正常域名,1个为恶意域名,则恶意域名与正常域名的比值为0.5,即根据历史子域名数据的统计,baidu.com为正常域名的概率大于恶意域名的概率。

2、根据所述比值,获取对所述识别出的恶意域名的历史统计结果;

得到历史子域名中恶意域名与正常域名的比值后,则可以根据该比值,确定该识别出的恶意域名的历史统计结果,如当历史子域名中恶意域名大于或等于正常域名时,则说明识别出的恶意域名与历史统计结果相一致;当历史子域名中恶意域名小于正常域名时,则说明识别出的恶意域名与历史统计结果不一致,可能出现误报。

3、当识别的结果与所述历史统计结果相一致时,则输出所述恶意域名。

为了降低误报率,则只有当识别出的恶意域名的结果与历史统计结果相一致时,才输出该恶意域名。

本申请实施例,根据对识别出的恶意域名的历史子域名的统计结果,对该恶意域名执行最终的判断,从而进一步提升了对恶意域名判断的准确性。

上面对本申请中的恶意域名的识别方法进行了描述,下面接着对本申请中的恶意域名的识别系统进行描述,具体请参阅图7,本申请实施例中恶意域名的识别系统的一个实施例,包括:

聚类分组模块701,用于将获取到的恶意域名执行聚类分组,得到多个域名簇;

分析抽取模块702,用于对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;

测试模块703,用于对所述正则表达式进行测试,以获取强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;

识别模块704,用于利用所述强正则表达式对恶意域名进行识别。

优选的,所述聚类分组模块701具体用于:

将获取到的恶意域名执行域名向量化,以将所述恶意域名映射到向量空间;

将向量化后的恶意域名分别执行域名的粗粒度聚类分组及域名的细粒度聚类分组,以得到所述多个域名簇,其中,所述粗粒度聚类分组包括k-means聚类算法、层次聚类算法及ip聚类算法中的至少一种,所述细粒度聚类分组包括计算字符串的相似度矩阵。

优选的,所述分析抽取模块702具体用于:

对所述多个域名簇执行过滤,以获取具有相同等级数量的域名;

分别对各级域名进行数值统计,以抽取出各级域名中的高频字段;

根据所述高频字段,拼装出与每个域名簇对应的恶意域名的正则表达式。

优选的,所述置信度通过第一公式进行计算,其中,所述第一公式为:

其中,所述score表示置信度,所述n真表示训练库中真实的恶意域名数量,所述n测表示所述强正则表达式在训练库中识别的恶意域名的数量;

所述命中率通过第二公式进行计算,其中,所述第二公式为:

其中,所述ratio表示命中率,所述tp表示所述强正则表达式在训练数据库中命中黑库中的条目数,所述fp表示所述正则表达式在训练数据库命中白库中的条目数。

优选的,所述系统还包括:

检测模块705,用于对识别出的恶意域名进行历史子域名的信誉处理,以获取并输出与所述信誉处理结果相一致的恶意域名。

优选的,所述检测模块705具体用于:

统计所述识别出的恶意域名的历史子域名数据,并获取所述历史子域名数据中恶意域名与正常域名的比值;

根据所述比值,获取对所述识别出的恶意域名的历史统计结果;

当识别结果与所述历史统计结果相一致时,则输出所述恶意域名。

本申请实施中,通过聚类分组模块701将获取到的恶意域名执行聚类分组,得到多个域名簇;通过分析抽取模块702对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;通过测试模块703对所述正则表达式进行测试,以获取具有强泛化能力的强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;通过识别模块704利用所述强正则表达式对恶意域名进行识别。因为本实施例中的正则表达式是根据大量恶意域名的相似性抽取而成,且为经过测试后,置信度和命中率都分别大于对应预设阈值的具有强泛化能力的正则表达式,故在利用该强正则表达式对恶意域名进行识别时,可以提升恶意域名的识别率。

上面从模块化功能实体的角度对本申请实施例中的恶意域名的识别系统进行了描述,下面从硬件处理的角度对本申请实施例中的计算机装置进行描述:

该计算机装置用于实现恶意域名的识别系统的功能,本申请实施例中计算机装置一个实施例包括:

处理器以及存储器;

存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:

将获取到的恶意域名执行聚类分组,得到多个域名簇;

对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;

对所述正则表达式进行测试,以获取强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;

利用所述强正则表达式对恶意域名进行识别。

在本申请的一些实施例中,处理器,还可以用于实现如下步骤:

将获取到的恶意域名执行域名向量化,以将所述恶意域名映射到向量空间;

将向量化后的恶意域名分别执行域名的粗粒度聚类分组及域名的细粒度聚类分组,以得到所述多个域名簇,其中,所述粗粒度聚类分组包括k-means聚类算法、层次聚类算法及ip聚类算法中的至少一种,所述细粒度聚类分组包括计算字符串的相似度矩阵。

在本申请的一些实施例中,处理器,还可以用于实现如下步骤:

对所述多个域名簇执行过滤,以获取具有相同等级数量的域名;

分别对各级域名进行数值统计,以抽取出各级域名中的高频字段;

根据所述高频字段,拼装出与每个域名簇对应的恶意域名的正则表达式。

优选的,所述置信度通过第一公式进行计算,其中,所述第一公式为:

其中,所述score表示置信度,所述n真表示训练库中真实的恶意域名数量,所述n测表示所述强正则表达式在训练库中识别的恶意域名的数量;

所述命中率通过第二公式进行计算,其中,所述第二公式为:

其中,所述ratio表示命中率,所述tp表示所述强正则表达式在训练数据库中命中黑库中的条目数,所述fp表示所述正则表达式在训练数据库命中白库中的条目数。

在本申请的一些实施例中,处理器,还可以用于实现如下步骤:

对识别出中的恶意域名进行历史子域名的信誉处理,以获取并输出与所述信誉处理结果相一致的恶意域名。

在本申请的一些实施例中,处理器,还可以用于实现如下步骤:

统计所述识别出的恶意域名的历史子域名数据,并获取所述历史子域名数据中恶意域名与正常域名的比值;

根据所述比值,获取对所述识别出的恶意域名的历史统计结果;

当识别结果与所述历史统计结果相一致时,则输出所述恶意域名。

可以理解的是,上述说明的计算机装置中的处理器执行所述计算机程序时,也可以实现上述对应的各装置实施例中各单元的功能,此处不再赘述。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述应用启动系统中的执行过程。例如,所述计算机程序可以被分割成上述应用启动系统中的各单元,各单元可以实现如上述相应应用启动系统说明的具体功能。

所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可包括但不仅限于处理器、存储器。本领域技术人员可以理解,处理器、存储器仅仅是计算机装置的示例,并不构成对计算机装置的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置还可以包括输入输出设备、网络接入设备、总线等。

所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质用于实现恶意域名的识别系统的功能,其上存储有计算机程序,计算机程序被处理器执行时,处理器,可以用于执行如下步骤:

将获取到的恶意域名执行聚类分组,得到多个域名簇;

对所述多个域名簇的各级域名进行处理,以抽取出与每个域名簇对应的恶意域名的正则表达式;

对所述正则表达式进行测试,以获取强正则表达式,所述强正则表达式为置信度及命中率分别大于对应预设阈值的正则表达式;

利用所述强正则表达式对恶意域名进行识别。

在本申请的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:

将获取到的恶意域名执行域名向量化,以将所述恶意域名映射到向量空间;

将向量化后的恶意域名分别执行域名的粗粒度聚类分组及域名的细粒度聚类分组,以得到所述多个域名簇,其中,所述粗粒度聚类分组包括k-means聚类算法、层次聚类算法及ip聚类算法中的至少一种,所述细粒度聚类分组包括计算字符串的相似度矩阵。

在本申请的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:

对所述多个域名簇执行过滤,以获取具有相同等级数量的域名;

分别对各级域名进行数值统计,以抽取出各级域名中的高频字段;

根据所述高频字段,拼装出与每个域名簇对应的恶意域名的正则表达式。

优选的,所述置信度通过第一公式进行计算,其中,所述第一公式为:

其中,所述score表示置信度,所述n真表示训练库中真实的恶意域名数量,所述n测表示所述强正则表达式在训练库中识别的恶意域名的数量;

所述命中率通过第二公式进行计算,其中,所述第二公式为:

其中,所述ratio表示命中率,所述tp表示所述强正则表达式在训练数据库中命中黑库中的条目数,所述fp表示所述正则表达式在训练数据库中命中白库中的条目数。

在本申请的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:

对识别出的恶意域名进行历史子域名的信誉处理,以获取并输出与所述信誉处理结果相一致的恶意域名。

在本申请的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:

统计所述识别出的恶意域名的历史子域名数据,并获取所述历史子域名数据中恶意域名与正常域名的比值;

根据所述比值,获取对所述识别出的恶意域名的历史统计结果;

当识别结果与所述历史统计结果相一致时,则输出所述恶意域名。

可以理解的是,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在相应的一个计算机可读取存储介质中。基于这样的理解,本申请实现上述相应的实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1