一种确定不良域名的方法及系统转让专利

申请号 : CN202010179120.8

文献号 : CN113395246B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘冰杨学杨琪马永征

申请人 : 中国互联网络信息中心

摘要 :

本发明提供了一种确定不良域名的方法及系统,该方法为:解析DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到ASN数据与IP数据之间的第二关联数据;根据第一关联数据和第二关联数据,构建域名解析图;利用ASN数据和域名解析图,构建域名关系图;筛选域名解析图和域名关系图,确定包含多个不良域名的种子集;利用种子集,计算域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名。本方案中,通过分析域名之间的关联,构建域名关系图。利用包含多个不良域名的种子集计算域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名为不良域名,从而准确的确定不良域名。

权利要求 :

1.一种确定不良域名的方法,其特征在于,所述方法包括:解析预先采集的域名系统协议DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号ASN数据与所述IP数据之间的第二关联数据;

根据所述第一关联数据和所述第二关联数据,构建域名解析图,所述域名解析图至少包含域名节点、IP节点和由域名与IP的对应关系构建的域名解析边;

利用所述ASN数据和所述域名解析图,构建域名关系图;

筛选所述域名解析图和所述域名关系图,确定包含多个不良域名的种子集;

利用包含多个不良域名的种子集,计算所述域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名。

2.根据权利要求1所述的方法,其特征在于,所述根据所述第一关联数据和所述第二关联数据,构建域名解析图,包括:关联所述第一关联数据和第二关联数据,得到所述域名数据、所述IP数据和所述ASN数据之间的第三关联数据;

利用所述第三关联数据,构建至少包含域名节点、IP节点和域名解析边的第一域名解析图;

针对所述第一域名解析图中的每一个IP节点,计算与所述IP节点相连的域名解析边的连接数量;

将所述第一域名解析图中所述连接数量大于第一数量阈值的IP节点删除,得到第二域名解析图。

3.根据权利要求1所述的方法,其特征在于,所述利用所述ASN数据和所述域名解析图,构建域名关系图,包括:

遍历所述域名解析图中的所有域名节点,计算任意两个具有相同ASN的域名节点之间的权重;

利用计算得到的权重和与权重对应的域名节点,构建域名关系图。

4.根据权利要求1所述的方法,其特征在于,所述筛选所述域名解析图和所述域名关系图,确定包含多个不良域名的种子集,包括:针对所述域名关系图中的每一个域名节点,若所述域名节点对应的域名在预设的黑名单中,确定所述域名节点对应的域名为构建种子集的不良域名;

针对所述域名解析图中的每一个域名节点,若与所述域名节点相连的域名解析边的数量大于第二数量阈值,确定所述域名节点对应的域名为构建所述种子集的不良域名。

5.根据权利要求1所述的方法,其特征在于,所述计算所述域名关系图中每个域名节点的恶意得分的过程,包括:

遍历所述域名关系图,获取构成所述域名关系图的多个连通图;

确定所有所述连通图中与所述种子集有交集的待计算连通图;

针对所述待计算连通图中的每一个第一域名节点,构建所述第一域名节点与所述种子集的无向加权图;

根据所述域名关系图和所述无向加权图,计算所述第一域名节点到所述种子集中每个不良域名的加权最短路径对应的权重;

利用所述第一域名节点到所述种子集中每个不良域名的加权最短路径对应的权重,计算所述第一域名节点的恶意得分。

6.根据权利要求5所述的方法,其特征在于,还包括:若第二域名节点未在所述连通图中,确定所述域名关系图中与所述种子集中每个不良域名关联的边;

基于所述域名关系图中与所述种子集中每个不良域名关联的边,获取所述种子集中与所述第二域名节点关联的不良域名对应的边的权重;

利用所述种子集中与所述第二域名节点关联的不良域名对应的边的权重,计算所述第二域名节点的恶意得分;

若所述第二域名节点的恶意得分大于得分阈值,确定所述第二域名节点对应的域名为不良域名。

7.根据权利要求1所述的方法,其特征在于,所述解析预先采集的域名系统协议DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号ASN数据与所述IP数据之间的第二关联数据,包括:

解析预先采集的域名系统协议DNS数据,得到解析数据;

过滤所述解析数据中的异常数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号ASN数据与所述IP数据之间的第二关联数据。

8.一种确定不良域名的系统,其特征在于,所述系统包括:数据清洗模块,用于解析预先采集的域名系统协议DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号ASN数据与所述IP数据之间的第二关联数据;

数据处理模块,用于根据所述第一关联数据和所述第二关联数据,构建域名解析图,所述域名解析图至少包含域名节点、IP节点和由域名与IP的对应关系构建的域名解析边;

图谱分析模块,用于利用所述ASN数据和所述域名解析图,构建域名关系图;

种子获取模块,用于筛选所述域名解析图和所述域名关系图,确定包含多个不良域名的种子集;

计算模块,用于利用包含多个不良域名的种子集,计算所述域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名。

9.根据权利要求8所述的系统,其特征在于,所述数据处理模块包括:关联单元,用于关联所述第一关联数据和第二关联数据,得到所述域名数据、所述IP数据和所述ASN数据之间的第三关联数据;

构建单元,用于利用所述第三关联数据,构建至少包含域名节点、IP节点和域名解析边的第一域名解析图;

计算单元,用于针对所述第一域名解析图中的每一个IP节点,计算与所述IP节点相连的域名解析边的连接数量;

处理单元,用于将所述第一域名解析图中所述连接数量大于第一数量阈值的IP节点删除,得到第二域名解析图。

10.根据权利要求8所述的系统,其特征在于,所述计算模块包括:获取单元,用于遍历所述域名关系图,获取构成所述域名关系图的多个连通图;

确定单元,用于确定所有所述连通图中与所述种子集有交集的待计算连通图;

构建单元,用于针对所述待计算连通图中的每一个第一域名节点,构建所述第一域名节点与所述种子集的无向加权图;

第一计算单元,用于根据所述域名关系图和所述无向加权图,计算所述第一域名节点到所述种子集中每个不良域名的加权最短路径对应的权重;

第二计算单元,用于利用所述第一域名节点到所述种子集中每个不良域名的加权最短路径对应的权重,计算所述第一域名节点的恶意得分。

说明书 :

一种确定不良域名的方法及系统

技术领域

[0001] 本发明涉及数据处理技术领域,具体涉及一种确定不良域名的方法及系统。

背景技术

[0002] 随着互联网技术的发展,域名和IP等互联网基础资源的规模不断增大,同时各类别的网络攻击方式也层出不穷。在各种网络攻击方式中,不良域名是各种网络攻击方式的
关键组成部分,因此需要从多个域名中确定不良域名。
[0003] 目前确定不良域名的方式为:解析域名系统协议(Domain Name System,DNS)数据得到特征数据,结合特征数据和训练数据集建立分类器,并利用分类器区分不良域名和良
性域名。但是,目前解析DNS数据所得到的特征数据通常为单个域或主机的局部特征,并且
局部特征(比如域名中的模式)的鲁棒性较差,攻击者容易修改和协调不良域名的局部特
征,使分类器无法识别出不良域名,分类器识别不良域名的准确性较差。

发明内容

[0004] 有鉴于此,本发明实施例提供一种确定不良域名的方法及系统,以确定不良域名。
[0005] 为实现上述目的,本发明实施例提供如下技术方案:
[0006] 本发明实施例第一方面公开一种确定不良域名的方法,所述方法包括:
[0007] 解析预先采集的域名系统协议DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号ASN数据与所述IP数据之间的第二关联数据;
[0008] 根据所述第一关联数据和所述第二关联数据,构建域名解析图,所述域名解析图至少包含域名节点、IP节点和由域名与IP的对应关系构建的域名解析边;
[0009] 利用所述ASN数据和所述域名解析图,构建域名关系图;
[0010] 筛选所述域名解析图和所述域名关系图,确定包含多个不良域名的种子集;
[0011] 利用包含多个不良域名的种子集,计算所述域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名。
[0012] 优选的,所述根据所述第一关联数据和所述第二关联数据,构建域名解析图,包括:
[0013] 关联所述第一关联数据和第二关联数据,得到所述域名数据、所述IP数据和所述ASN数据之间的第三关联数据;
[0014] 利用所述第三关联数据,构建至少包含域名节点、IP节点和域名解析边的第一域名解析图;
[0015] 针对所述第一域名解析图中的每一个IP节点,计算与所述IP节点相连的域名解析边的连接数量;
[0016] 将所述第一域名解析图中所述连接数量大于第一数量阈值的IP节点删除,得到第二域名解析图。
[0017] 优选的,所述利用所述ASN数据和所述域名解析图,构建域名关系图,包括:
[0018] 遍历所述域名解析图中的所有域名节点,计算任意两个具有相同ASN的域名节点之间的权重;
[0019] 利用计算得到的权重和与权重对应的域名节点,构建域名关系图。
[0020] 优选的,所述筛选所述域名解析图和所述域名关系图,确定包含多个不良域名的种子集,包括:
[0021] 针对所述域名关系图中的每一个域名节点,若所述域名节点对应的域名在预设的黑名单中,确定所述域名节点对应的域名为构建种子集的不良域名;
[0022] 针对所述域名解析图中的每一个域名节点,若与所述域名节点相连的域名解析边的数量大于第二数量阈值,确定所述域名节点对应的域名为构建所述种子集的不良域名。
[0023] 优选的,所述计算所述域名关系图中每个域名节点的恶意得分的过程,包括:
[0024] 遍历所述域名关系图,获取构成所述域名关系图的多个连通图;
[0025] 确定所有所述连通图中与所述种子集有交集的待计算连通图;
[0026] 针对所述待计算连通图中的每一个第一域名节点,构建所述第一域名节点与所述种子集的无向加权图;
[0027] 根据所述域名关系图和所述无向加权图,计算所述第一域名节点到所述种子集中每个不良域名的加权最短路径对应的权重;
[0028] 利用所述第一域名节点到所述种子集中每个不良域名的加权最短路径对应的权重,计算所述第一域名节点的恶意得分。
[0029] 优选的,还包括:
[0030] 若第二域名节点未在所述连通图中,确定所述域名关系图中与所述种子集中每个不良域名关联的边;
[0031] 基于所述域名关系图中与所述种子集中每个不良域名关联的边,获取所述种子集中与所述第二域名节点关联的不良域名对应的边的权重;
[0032] 利用所述种子集中与所述第二域名节点关联的不良域名对应的边的权重,计算所述第二域名节点的恶意得分;
[0033] 若所述第二域名节点的恶意得分大于得分阈值,确定所述第二域名节点对应的域名为不良域名。
[0034] 优选的,所述解析预先采集的域名系统协议DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号ASN数据与所述IP数据之间的第二关联数据,包括:
[0035] 解析预先采集的域名系统协议DNS数据,得到解析数据;
[0036] 过滤所述解析数据中的异常数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号ASN数据与所述IP数据之间的第二关联数据。
[0037] 本发明实施例第二方面公开一种确定不良域名的系统,所述系统包括:
[0038] 数据清洗模块,用于解析预先采集的域名系统协议DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号ASN数据与所述IP数据之间的第二关联数据;
[0039] 数据处理模块,用于根据所述第一关联数据和所述第二关联数据,构建域名解析图,所述域名解析图至少包含域名节点、IP节点和由域名与IP的对应关系构建的域名解析
边;
[0040] 图谱分析模块,用于利用所述ASN数据和所述域名解析图,构建域名关系图;
[0041] 种子获取模块,用于筛选所述域名解析图和所述域名关系图,确定包含多个不良域名的种子集;
[0042] 计算模块,用于利用包含多个不良域名的种子集,计算所述域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名。
[0043] 优选的,所述数据处理模块包括:
[0044] 关联单元,用于关联所述第一关联数据和第二关联数据,得到所述域名数据、所述IP数据和所述ASN数据之间的第三关联数据;
[0045] 构建单元,用于利用所述第三关联数据,构建至少包含域名节点、IP节点和域名解析边的第一域名解析图;
[0046] 计算单元,用于针对所述第一域名解析图中的每一个IP节点,计算与所述IP节点相连的域名解析边的连接数量;
[0047] 处理单元,用于将所述第一域名解析图中所述连接数量大于第一数量阈值的IP节点删除,得到第二域名解析图。
[0048] 优选的,所述计算模块包括:
[0049] 获取单元,用于遍历所述域名关系图,获取构成所述域名关系图的多个连通图;
[0050] 确定单元,用于确定所有所述连通图中与所述种子集有交集的待计算连通图;
[0051] 构建单元,用于针对所述待计算连通图中的每一个第一域名节点,构建所述第一域名节点与所述种子集的无向加权图;
[0052] 第一计算单元,用于根据所述域名关系图和所述无向加权图,计算所述第一域名节点到所述种子集中每个不良域名的加权最短路径对应的权重;
[0053] 第二计算单元,用于利用所述第一域名节点到所述种子集中每个不良域名的加权最短路径对应的权重,计算所述第一域名节点的恶意得分。
[0054] 基于上述本发明实施例提供的一种确定不良域名的方法及系统,该方法为:解析预先采集的DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到ASN数据与IP
数据之间的第二关联数据;根据第一关联数据和第二关联数据,构建域名解析图;利用ASN
数据和域名解析图,构建域名关系图;筛选域名解析图和域名关系图,确定包含多个不良域
名的种子集;利用包含多个不良域名的种子集,计算域名关系图中每个域名节点的恶意得
分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名。本方案中,利用域名数
据与IP数据之间的关联数据,以及利用ASN数据与IP数据之间的关联数据,分析域名之间的
关联,构建域名关系图。利用包含多个不良域名的种子集计算域名关系图中每个域名节点
的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名,从而准确的
确定不良域名。

附图说明

[0055] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
[0056] 图1为本发明实施例提供的一种确定不良域名的方法流程图;
[0057] 图2为本发明实施例提供的构建域名解析图的流程图;
[0058] 图3为本发明实施例提供的计算恶意得分的流程图;
[0059] 图4为本发明实施例提供的确定不良域名的方法的架构示意图;
[0060] 图5为本发明实施例提供的第一域名解析图的局部图谱;
[0061] 图6为本发明实施例提供的IP节点的度值分布图;
[0062] 图7为本发明实施例提供的一种确定不良域名的系统的结构框图。

具体实施方式

[0063] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0064] 在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有
明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没
有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过
程、方法、物品或者设备中还存在另外的相同要素。
[0065] 由背景技术可知,由于目前解析DNS数据所得到的特征数据通常为单个域或主机的局部特征,并且局部特征的鲁棒性较差,攻击者容易修改和协调不良域名的局部特征,使
分类器无法识别出不良域名,分类器识别不良域名的准确性较差。
[0066] 因此本发明实施例提供一种确定不良域名的方法及系统,通过分析域名之间的关联,构建域名关系图。利用包含多个不良域名的种子集计算域名关系图中每个域名节点的
恶意得分,确定恶意得分大于得分阈值的域名为不良域名,以准确的确定不良域名。
[0067] 参见图1,示出了本发明实施例提供的一种确定不良域名的方法的流程图,该方法包括以下步骤:
[0068] 步骤S101:解析预先采集的域名系统协议(Domain Name System,DNS)数据,得到域名数据与IP数据之间的第一关联数据,以及得到自治系统号(autonomous system 
number,ASN)数据与IP数据之间的第二关联数据。
[0069] 需要说明的是,域名数据中包含多个域名,IP数据中包含多个IP,ASN数据中包含多个ASN。第一关联数据是指域名与IP之间的关联关系,第二关联数据是指ASN与IP之间的
关联关系。
[0070] 在具体实现步骤S101的过程中,预先采集DNS数据并解析该DNS数据,得到解析数据。过滤解析数据中的异常数据,得到域名数据与IP数据之间的第一关联数据,以及得到
ASN数据与所述IP数据之间的第二关联数据。
[0071] 可以理解的是,异常数据是指干扰数据,比如出现错误的数据。
[0072] 步骤S102:根据第一关联数据和第二关联数据,构建域名解析图(Domain Name Resolution Graph,简称RG图)。
[0073] 需要说明的是,一个域名可对应一个以上(包括一个)的IP,一个IP可对应一个以上的域名。
[0074] 在具体实现步骤S102的过程中,利用域名与IP之间的关联关系和ASN与IP之间的关联关系,构建域名解析图,该域名解析图中至少包含域名节点、IP节点和由域名与IP的对
应关系构建的域名解析边。
[0075] 可以理解的是,域名解析边为连接域名节点和与该域名节点对应的IP节点之间的边,例如:域名节点A对应IP节点B,连接域名节点A与IP节点B之间的边即为域名解析边。
[0076] 需要说明的是,在构建域名解析图的过程中,为排除公共共享IP的干扰,计算与每个IP节点相连的域名解析边的连接数量,将连接数量大于第一数量阈值的IP节点删除。
[0077] 需说明的是,与IP节点相连的域名解析边的连接数量称为该IP节点的度值。
[0078] 步骤S103:利用ASN数据和域名解析图,构建域名关系图(Domain Name Graph,简称DG图)。
[0079] 在具体实现步骤S103的过程中,遍历域名解析图中的所有域名节点,计算任意两个具有相同ASN的域名节点之间的权重,或者,计算任意两个具有相同IP的域名节点之间的
权重,利用计算得到的权重和与权重对应的域名节点,构建域名关系图。
[0080] 也就是说,将任意两个具有相同ASN的域名节点之间的权重作为域名关系图中的边的权值,域名关系图中的边即为:连接两个具有相同ASN的域名节点的边。利用计算得到
的每一条边的权值,以及利用每一条边所对应的两个具有相同ASN的域名节点,构建域名关
系图。
[0081] 需要说明的是,通过公式(1)计算任意两个具有相同IP的域名节点之间的权重,d1和d2为具有相同IP的域名节点。
[0082] w(d1,d2)=1‑1/[1+|asn(ip(d1)∩ip(d2))|]   (1)
[0083] 进一步需要说明的是,在计算任意两个具有相同IP的域名节点之间的权重时,可设置两个域名节点之间的IP交集个数阈值,将IP交集个数小于IP交集个数阈值的域名节点
过滤掉。也就是说,计算IP交集个数大于等于IP交集个数阈值的两个域名节点之间的权重。
[0084] 步骤S104:筛选域名解析图和域名关系图,确定包含多个不良域名的种子集。
[0085] 在具体实现步骤S104的过程中,针对域名关系图中的每一个域名节点,若域名节点对应的域名在预设的黑名单中,确定域名节点对应的域名为构建种子集的不良域名。
[0086] 例如:通过virusTotalAPI,从域名关系图中筛选出命中任意黑名单的域名节点,将命中任意黑名单的域名节点对应的域名为构建种子集的不良域名。
[0087] 需要说明的是,利用域名解析图对种子集中的不良域名进行补充,对种子集中的不良域名进行补充的方式为:
[0088] 针对域名解析图中的每一个域名节点,若与域名节点相连的域名解析边的数量大于第二数量阈值,确定域名节点对应的域名为构建种子集的不良域名。
[0089] 可以理解的是,在域名解析图中,与域名节点相连的域名解析边的数量称为该域名节点的度值。
[0090] 在对种子集中的不良域名进行补充时,也可将域名解析图中度值最高的x个域名节点对应的域名为构建种子集的不良域名,x为正整数。
[0091] 步骤S105:利用包含多个不良域名的种子集,计算域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名。
[0092] 在具体实现步骤S105的过程中,利用包含多个不良域名的种子集和路径机制,计算域名关系图中每个域名节点与种子集中的不良域名的关联强度,得到域名关系图中每个
域名节点的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名,从
而得到不良域名集合。
[0093] 通过步骤S105中的内容,利用种子集中少量的不良域名,快速探测并确定域名关系图中大量的不良域名,即降低了获取种子集的成本,又提高了不良域名发现的可扩展性。
同时通过路径机制计算域名关系图中每个域名节点的恶意得分,加快了计算的速率。
[0094] 在本发明实施例中,利用域名数据与IP数据之间的关联数据,以及利用ASN数据与IP数据之间的关联数据,分析域名之间的关联,构建域名关系图。利用包含多个不良域名的
种子集计算域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节
点对应的域名为不良域名,避免攻击者通过修改域名的局部特征来干扰确定不良域名的过
程,从而准确的确定不良域名。
[0095] 上述本发明实施例图1步骤S102中涉及的构建域名解析图的过程,参见图2,示出了本发明实施例提供的构建域名解析图的流程图,包括以下步骤:
[0096] 步骤S201:关联第一关联数据和第二关联数据,得到域名数据、IP数据和ASN数据之间的第三关联数据。
[0097] 为更好解释说明得到第三关联数据的过程,通过以下示例内容进行说明:
[0098] 假设第一数据表存储域名与IP的对应关系,第二数据表存储IP于ASN的对应关系。
[0099] 将第一数据表中的数据和第二数据表中的数据关联到第三数据表中,即得到域名数据、IP数据和ASN数据之间的第三关联数据。
[0100] 步骤S202:利用第三关联数据,构建至少包含域名节点、IP节点和域名解析边的第一域名解析图。
[0101] 步骤S203:针对第一域名解析图中的每一个IP节点,计算与IP节点相连的域名解析边的连接数量。
[0102] 在具体实现步骤S203的过程中,计算第一域名解析图中每一个IP节点的度值。
[0103] 步骤S204:将第一域名解析图中连接数量大于第一数量阈值的IP节点删除,得到第二域名解析图。
[0104] 在具体实现步骤S204的过程中,将第一域名解析图中度值大于第一数量阈值的IP节点删除,得到第二域名解析图。
[0105] 在本发明实施例中,利用域名数据、IP数据和ASN数据之间的第三关联数据,构建第一域名解析图。将第一域名解析图中度值大于第一数量阈值的IP节点删除,排除公共共
享IP的干扰,得到第二域名解析图。利用第二域名解析图构建域名关系图并执行后续操作,
从而确定不良域名。
[0106] 上述本发明实施例图1步骤S105中涉及的计算恶意得分的过程,参见图3,示出了本发明实施例提供的计算恶意得分的流程图,包括以下步骤:
[0107] 步骤S301:遍历域名关系图,获取构成域名关系图的多个连通图。
[0108] 需要说明的是,域名关系图由多个连通图组成,在具体实现步骤S301的过程中,遍历域名关系图,获取构成域名关系图的连通图集合,该连通图集合包含构成域名关系图的
多个连通图。
[0109] 步骤S302:确定所有连通图中与种子集有交集的待计算连通图。
[0110] 在具体实现步骤S302的过程中,从所有通图中确定与种子集有交集的待计算连通图,与种子集有交集指的是:对于一连通图,若该连通图中的任意域名节点对应的域名在种
子集中,则该连通图即为待计算连通图。
[0111] 对于每一个待计算连通图,通过以下步骤S303至步骤S305,计算该待计算连通图的每一个域名节点(第一域名节点)的恶意得分。
[0112] 步骤S303:针对待计算连通图中的每一个第一域名节点,构建第一域名节点与种子集的无向加权图。
[0113] 在具体实现步骤S303的过程中,对于待计算连通图中的每一个第一域名节点,计算该第一域名节点与种子集的无向加权图。
[0114] 步骤S304:根据域名关系图和无向加权图,计算第一域名节点到种子集中每个不良域名的加权最短路径对应的权重。
[0115] 可以理解的是,在域名关系图(DG图)中,边的权重越小,该边所连接的两个域名节点之间的关联越大。
[0116] 在具体实现步骤S304的过程中,通过公式(2),计算第一域名节点d到种子集S中每个不良域名的路径P对应的权值,在公式(2)中,n为种子集中不良域名的个数。
[0117] w(P)=Π1≤i≤n‑1w(di,di+1)   (2)
[0118] 也就是说,通过公式(2)计算第一域名节点到每个不良域名的路径上所有边的权重的乘积。
[0119] 第一域名节点与种子集S中的任一不良域名Si的关联关系表示为公式(3),在公式(3)中,k为第一域名节点d和不良域名Si之间的路径条数。
[0120] assoc(d,Si)=max1≤i≤kw(Pi)   (3)
[0121] 通过公式(3)计算第一域名节点d和不良域名Si之间的加权最短路径对应的权重,assoc(d,Si)为d和Si之间的最短路径中权值最大的w(P)。
[0122] 可以理解的是,对于公式(3)所计算的得到的结果进行离差标准化处理,将该结果归一化至[0,1],也就是说assoc(d,Si)越大,第一域名节点与不良域名Si之间的关联度越
大。
[0123] 步骤S305:利用第一域名节点到种子集中每个不良域名的加权最短路径对应的权重,计算第一域名节点的恶意得分。
[0124] 在具体实现步骤S305的过程中,通过上述步骤S304,计算得到第一域名节点到种子集中每个不良域名的加权最短路径assoc。对该第一域名节点对应的多个assoc进行倒序
排序,得到该第一域名节点对应的assoc列表。
[0125] 利用第一域名节点对应的assoc列表,通过公式(4)计算得到该第一域名节点对应的恶意得分mal(d,S),在公式(4)中,S1表示种子集中与第一域名节点的关联度最大的不良
域名。
[0126]
[0127] 通过上述步骤S303至步骤S305中的内容,即可计算得到每一个待计算连通图的每一个域名节点(第一域名节点)的恶意得分。
[0128] 优选的,上述各个步骤计算的是在连通图中的第一域名节点的恶意得分,对于不在连通图中的域名节点(第二域名节点),计算第二域名节点的恶意得分的过程如下:
[0129] 若第二域名节点未在连通图中,确定域名关系图中与种子集中每个不良域名关联的边。并按照域名分组。
[0130] 基于域名关系图中与种子集中每个不良域名关联的边,获取种子集中与第二域名节点关联的不良域名对应的边的权重,将所获取的权重进行倒序排序。
[0131] 利用种子集中与第二域名节点关联的不良域名对应的边的权重,结合公式(4)计算第二域名节点的恶意得分。
[0132] 若第二域名节点的恶意得分大于得分阈值,确定第二域名节点对应的域名为不良域名。
[0133] 在本发明实施例中,利用种子集中的不良域名和路径机制,计算在连通图中的第一域名节点的恶意得分,以及计算不在连通图中的第二域名节点的恶意得分。确定恶意得
分大于得分阈值的域名节点对应的域名为不良域名,避免攻击者通过修改域名的局部特征
来干扰确定不良域名的过程,从而准确的确定不良域名。
[0134] 为更好解释说明上述图1至图3的内容,通过图4示出的确定不良域名的方法的架构示意图进行举例说明,需要说明的是,图4仅用于举例说明。
[0135] 对DSN数据和ASN数据进行采集和数据清理,得到域名数据、IP数据和ASN数据之间的关联数据。
[0136] 利用域名数据、IP数据和ASN数据之间的关联数据,构建RG图,在构建RG图的过程中,计算每个IP节点的度值,将度值大于t的IP节点删除,得到RG图。
[0137] 对RG图进行批处理计算和图计算,得到DG图。
[0138] 从DG图获取命中黑名单的域名节点对应的域名,将该域名作为构建种子集的不良域名。
[0139] 对RG图的域名节点的度值进行排序,将RG图中度值最高的x个域名节点对应的域名作为构建种子集的不良域名。
[0140] 利用种子集和路径机制,计算DG图中每个域名节点的恶意得分,从而得到疑似不良域名集合。
[0141] 为更进一步解释上述图1至图3的内容,通过过程A1至A5进行举例说明。
[0142] A1、采集源CN域名探测数据,源CN域名探测数据包括域名、IP和探测时间。采集源ASN数据,源ASN数据包括IP网段和ASN。对源CN域名探测数据和源ASN数据进行合并和去重
后,整理得到域名表、IP表和域名解析表。
[0143] 域名表包括域名和时间,IP表包括IP、ASN和时间,域名解析表包括域名、IP和时间。
[0144] 对剔除上述域名表、IP表和域名解析表中的异常数据后,剔除异常数据的域名表共1591万个域名节点,剔除异常数据的IP表共219万个IP节点,剔除异常数据的域名解析表
共1683万条解析数据记录。
[0145] 利用剔除异常数据的域名表、IP表和域名解析表,构建第一域名解析图,第一域名解析图的局部图谱如图5所示。
[0146] 需要说明的是,由于完整的第一域名解析图具有1951万个域名节点和219万个IP节点,因此只能展示部分图谱,即部分图谱如图5。
[0147] A2、利用Spark GraphX计算第一域名解析图中每个IP节点的度,构建如图6所示的IP节点的度值分布图。设置共享IP的阈值为t=100,即将第一域名解析图中度值大于100的
IP节点对应的IP认为是共享IP池中的IP,将第一域名解析图中度值大于100的IP节点删除,
剩余1591万个域名节点、218万个IP节点和883万条域名解析边,构成第二域名解析图(RG)
图。
[0148] A3、初始化域名关系图(DG图)为空,利用公式(1)计算RG图中任意两个具有相同IP的域名节点之间的权重,构建DG图。
[0149] A4、通过virusTotal公共API查询DG图中的所有域名节点对应的域名,将命中任意一个黑名单的域名加入种子集中,作为种子集中的不良域名。同时,计算RG图中的域名节点
的度值,将RG图中度值大于15的域名节点对应的域名合并到种子集中,作为该种子集中不
良域名的补充。
[0150] A5、遍历DG图得到组成DG图的所有连通图,总共得到32398个连通图。对于任意一个连通图,若该连通图中的任意域名节点对应的域名和种子集有交集,则遍历该连通图中
的每一个域名节点,计算该连通图中每一个域名节点的恶意得分。将恶意得分超过得分阈
值m的域名节点对应的域名添加到不良域名集合中,具体如何计算域名节点的恶意得分的
内容,参见上述本发明实施例图3中的内容,在此不再赘述。
[0151] 需要说明的是,在判断连通图对应的域名是否和种子集有交集时,可以去种子集的一定比例进行判断,例如取种子集的20%。
[0152] 进一步需要说明的是,上述过程A1至过程A5仅用于举例说明。
[0153] 在本发明实施例中,对采集得到的数据进行处理并利用处理结果构建RG图。计算RG图中任意两个具有相同IP的域名节点之间的权重,构建DG图。利用DG图和RG图,确定包含
多个不良域名的种子集。通过种子集和路径机制,计算DG图中每个域名节点的恶意得分,确
定恶意得分大于得分阈值的域名节点对应的域名为不良域名,避免攻击者通过修改域名的
局部特征来干扰确定不良域名的过程,从而准确的确定不良域名。
[0154] 与上述本发明实施例提供的一种确定不良域名的方法相对应,参见图7,本发明实施例还提供了一种确定不良域名的系统的结构框图,该系统包括:数据清洗模块701、数据
处理模块702、图谱分析模块703、种子获取模块704和计算模块705;
[0155] 数据清洗模块701,用于解析预先采集的DNS数据,得到域名数据与IP数据之间的第一关联数据,以及得到ASN数据与IP数据之间的第二关联数据。
[0156] 在具体实现中,数据清洗模块701具体用于:解析预先采集的DNS数据,得到解析数据,过滤解析数据中的异常数据,得到域名数据与IP数据之间的第一关联数据,以及得到
ASN数据与IP数据之间的第二关联数据。
[0157] 数据处理模块702,用于根据第一关联数据和所述第二关联数据,构建域名解析图,域名解析图至少包含域名节点、IP节点和由域名与IP的对应关系构建的域名解析边。
[0158] 图谱分析模块703,用于利用ASN数据和域名解析图,构建域名关系图。
[0159] 在具体实现中,图谱分析模块703具体用于:遍历域名解析图中的所有域名节点,计算任意两个具有相同ASN的域名节点之间的权重。利用计算得到的权重和与权重对应的
域名节点,构建域名关系图。
[0160] 种子获取模块704,用于筛选域名解析图和域名关系图,确定包含多个不良域名的种子集。
[0161] 在具体实现中,种子获取模块704具体用于:针对域名关系图中的每一个域名节点,若域名节点对应的域名在预设的黑名单中,确定域名节点对应的域名为构建种子集的
不良域名。针对域名解析图中的每一个域名节点,若与域名节点相连的域名解析边的数量
大于第二数量阈值,确定域名节点对应的域名为构建种子集的不良域名。
[0162] 计算模块705,用于利用包含多个不良域名的种子集,计算域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名。
[0163] 在本发明实施例中,利用域名数据与IP数据之间的关联数据,以及利用ASN数据与IP数据之间的关联数据,分析域名之间的关联,构建域名关系图。利用包含多个不良域名的
种子集计算域名关系图中每个域名节点的恶意得分,确定恶意得分大于得分阈值的域名节
点对应的域名为不良域名,避免攻击者通过修改域名的局部特征来干扰确定不良域名的过
程,从而准确的确定不良域名。
[0164] 优选的,结合图7示出的内容,数据处理模块702包括:关联单元、构建单元、计算单元和处理单元,各个单元的执行原理如下:
[0165] 关联单元,用于关联第一关联数据和第二关联数据,得到域名数据、IP数据和ASN数据之间的第三关联数据。
[0166] 构建单元,用于利用第三关联数据,构建至少包含域名节点、IP节点和域名解析边的第一域名解析图。
[0167] 计算单元,用于针对第一域名解析图中的每一个IP节点,计算与IP节点相连的域名解析边的连接数量。
[0168] 处理单元,用于将第一域名解析图中连接数量大于第一数量阈值的IP节点删除,得到第二域名解析图。
[0169] 在本发明实施例中,利用域名数据、IP数据和ASN数据之间的第三关联数据,构建第一域名解析图。将第一域名解析图中度值大于第一数量阈值的IP节点删除,排除公共共
享IP的干扰,得到第二域名解析图。利用第二域名解析图构建域名关系图并执行后续操作,
从而确定不良域名。
[0170] 优选的,结合图7示出的内容,计算模块705包括:获取单元、确定单元、构建单元、第一计算单元和第二计算单元,各个单元的执行原理如下:
[0171] 获取单元,用于遍历域名关系图,获取构成域名关系图的多个连通图。
[0172] 确定单元,用于确定所有连通图中与种子集有交集的待计算连通图。
[0173] 构建单元,用于针对待计算连通图中的每一个第一域名节点,构建第一域名节点与种子集的无向加权图。
[0174] 第一计算单元,用于根据域名关系图和所述无向加权图,计算第一域名节点到种子集中每个不良域名的加权最短路径对应的权重。
[0175] 第二计算单元,用于利用第一域名节点到种子集中每个不良域名的加权最短路径对应的权重,计算第一域名节点的恶意得分。
[0176] 优选的,若第二域名节点未在连通图中,结合图7示出的内容,该系统还包括:
[0177] 处理模块,用于确定域名关系图中与种子集中每个不良域名关联的边,基于域名关系图中与种子集中每个不良域名关联的边,获取种子集中与第二域名节点关联的不良域
名对应的边的权重,利用种子集中与第二域名节点关联的不良域名对应的边的权重,计算
第二域名节点的恶意得分,若第二域名节点的恶意得分大于得分阈值,确定第二域名节点
对应的域名为不良域名。
[0178] 在本发明实施例中,利用种子集中的不良域名和路径机制,计算在连通图中的第一域名节点的恶意得分,以及计算不在连通图中的第二域名节点的恶意得分。确定恶意得
分大于得分阈值的域名节点对应的域名为不良域名,避免攻击者通过修改域名的局部特征
来干扰确定不良域名的过程,从而准确的确定不良域名。
[0179] 综上所述,本发明实施例提供一种确定不良域名的方法及系统,利用域名数据与IP数据之间的关联数据,以及利用ASN数据与IP数据之间的关联数据,分析域名之间的关
联,构建域名关系图。利用包含多个不良域名的种子集计算域名关系图中每个域名节点的
恶意得分,确定恶意得分大于得分阈值的域名节点对应的域名为不良域名,从而准确的确
定不良域名。
[0180] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或
系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法
实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为
分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或
者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根
据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术
人员在不付出创造性劳动的情况下,即可以理解并实施。
[0181] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和
软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些
功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业
技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应
认为超出本发明的范围。
[0182] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。