一种数据并行聚类方法及装置与流程

文档序号:14071079阅读:144来源:国知局

本发明实施例涉及通信技术领域,具体涉及一种数据并行聚类方法及装置。



背景技术:

高级持续性威胁(英文全称为advancedpersistentthreat,英文简称为apt)是一种利用先进的攻击手段对特定目标进行长期持续性网络攻击的形式,严重威胁企业数据安全。为了防范apt网络攻击,往往需要对网络日志进行收集和分析,以识别、阻止来自非法域名的攻击。

现有技术中,可以在企业互联网出口部署流探针设备,由所述流探针设备采集域名系统(英文全称为domainnamesystem,英文简称为dns)流量,并将采集的流量发送给网络安全智能系统(英文全称为comprehensiveintranetsecurity,英文简称为cis),由cis进行相应地网络安全处理。网络运维人员可以通过ip地址、事件类型检索异常事件,由cis通过数据过滤、域名聚类处理返回非法域名。其中,现有技术采用的域名聚类方法一般是层次聚类方法。层次聚类方法可以对给定的数据集进行层次的分解,直到满足设定的条件为止。假设有n个待聚类的样本,一般的层次聚类方法的处理步骤为:(1)将每个样本归为一类,计算每两个类的距离;(2)寻找各个类中距离最近的两个类,将其归为一类,于是类的总数少了一个;(3)重新计算新生成的类与各个旧类之间的距离;(4)重复步骤2和步骤3,直到所有样本点都归为一类为止。这种方法可以将离散的样本数据逐层归类,但在处理大量域名数据时存在执行时间长、算法复杂度高的缺点。



技术实现要素:

本发明实施例提供了数据并行聚类方法及装置,可以对大量数据进行并行聚类处理,有效提升了数据处理的效率,减少了数据处理延时。

为此,本发明实施例提供如下技术方案:

根据本发明实施例的第一方面,提供了一种数据并行聚类方法,所述方法包括:将数据集划分为多个数据子集,为每个数据子集配置一个并行计算节点;分别对各并行计算节点对应的数据子集进行层次聚类处理,生成与所述各并行计算节点对应的聚类树;确定模板聚类树,根据所述模板聚类树调整各聚类树以使得所述各聚类树与所述模板聚类树对齐;将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识;根据所述集群标识对各子树进行分类,生成聚类树数组。

在第一方面的第一种可能的实现方式中,所述确定模板聚类树,根据所述模板聚类树调整各聚类树以使得所述各聚类树与所述模板聚类树对齐包括:将第一聚类树作为模板聚类树,选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树;计算所述模板聚类树的子树与所述第二聚类树的子树的相似度,判断是否满足设定的相似度条件;若满足设定的相似度条件,交换所述第二聚类树的子树的位置;保存所述模板聚类树各子树与所述第二聚类树各子树的对齐关系;并行处理完所有聚类树。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述计算所述第一聚类树的子树与所述第二聚类树的子树的相似度,判断是否满足设定的相似度条件包括:计算所述第一聚类树的左子树与所述第二聚类树的左子树的相似度作为第一相似度值,计算所述第一聚类树的右子树与所述第二聚类树的右子树的相似度作为第二相似度值,计算所述第一聚类树的右子树与所述第二聚类树的左子树的相似度作为第三相似度值,计算所述第一聚类树的左子树与所述第二聚类树的右子树的相似度作为第四相似度值;判断所述第一相似度值与所述第二相似度相加得到的和值是否小于所述第三相似度值与所述第四相似度相加得到的和值;若满足,确定满足设定的相似度条件。

在第一方面的第三种可能的实现方式中,所述将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识包括:将所述模板聚类树分割为多个子树,为每一个子树配置一个集群标识;选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树,将所述第二聚类树分割为多个子树,根据保存的所述模板聚类树各子树与所述第二聚类树各子树的对齐关系,为所述第二聚类树的各子树配置与所述子树具有对齐关系的模板聚类树的子树相同的集群标识。

在第一方面的第四种可能的实现方式中,所述根据所述集群标识对各子树进行分类,生成聚类树数组包括:将分割所述模板聚类树和调整后的各聚类树得到的子树中具有相同集群标识的子树归为一类,生成各分类数组。

在第一方面的第五种可能的实现方式中,所述数据集为域名数据集,所述方法还包括:根据各分类数组的类层次信息和其包含的叶子节点信息,将各分类域名与合法域名进行比较,确定异常域名。

结合第一方面的第一种可能的实现方式或者第五种可能的实现方式,在第一方面的第六种可能的实现方式中,在将数据集划分为多个数据子集之前,所述方法还包括:采集dns事件域名,将所述dns事件域名作为数据集;在生成聚类数组之后,所述方法还包括:保存合法域名所在的分类数组。

根据本发明实施例的第二方面,提供了一种数据并行聚类装置,所述装置包括:配置模块,用于将数据集划分为多个数据子集,为每个数据子集配置一个并行计算节点;层次聚类模块,用于分别对各并行计算节点对应的数据子集进行层次聚类处理,生成与所述各并行计算节点对应的聚类树;对齐模块,用于确定模板聚类树,根据所述模板聚类树调整各聚类树以使得所述各聚类树与所述模板聚类树对齐;标识模块,用于将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识;分类模块,用于根据所述集群标识对各子树进行分类,生成聚类树数组。

在第二方面的第一种可能的实现方式中,所述对齐模块包括:选取子模块,用于将第一聚类树作为模板聚类树,选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树;判断子模块,用于计算所述模板聚类树的子树与所述第二聚类树的子树的相似度,判断是否满足设定的相似度条件;交换子模块,用于若满足设定的相似度条件,交换所述第二聚类树的子树的位置;保存子模块,用于保存所述模板聚类树各子树与所述第二聚类树各子树的对齐关系;迭代子模块,用于并行处理完所有聚类树。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述判断子模块包括:计算单元,用于计算所述第一聚类树的左子树与所述第二聚类树的左子树的相似度作为第一相似度值,计算所述第一聚类树的右子树与所述第二聚类树的右子树的相似度作为第二相似度值,计算所述第一聚类树的右子树与所述第二聚类树的左子树的相似度作为第三相似度值,计算所述第一聚类树的左子树与所述第二聚类树的右子树的相似度作为第四相似度值;比较单元,用于判断所述第一相似度值与所述第二相似度相加得到的和值是否小于所述第三相似度值与所述第四相似度相加得到的和值;确定单元,用于若满足,确定满足设定的相似度条件。

在第二方面的第三种可能的实现方式中,所述标识模块包括:

第一分割子模块,用于将所述模板聚类树分割为多个子树;第一标识子模块,用于为所述模板聚类树的每一个子树配置一个集群标识;第二子模块,用于选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树,将所述第二聚类树分割为多个子树;第二标识子模块,用于根据保存的所述模板聚类树各子树与所述第二聚类树各子树的对齐关系,为所述第二聚类树的各子树配置与所述子树具有对齐关系的模板聚类树的子树相同的集群标识。

在第二方面的第四种可能的实现方式中,所述分类模块具体用于:将分割所述模板聚类树和调整后的各聚类树得到的子树中具有相同集群标识的子树归为一类,生成各分类数组。

在第二方面的第五种可能的实现方式中,所述装置还包括:异常域名确定模块,用于当所述数据集为域名数据集时,根据各分类数组的类层次信息和其包含的叶子节点信息,将各分类域名与合法域名进行比较,确定异常域名。

结合第二方面的第一种可能的实现方式或者第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置还包括:采集模块,用于在将数据集划分为多个数据子集之前,采集dns事件域名,将所述dns事件域名作为数据集;保存模块,用于在生成聚类数组之后,保存合法域名所在的分类数组。

根据本发明实施例的第三方面,公开了一种用于数据并行聚类的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:将数据集划分为多个数据子集,为每个数据子集配置一个并行计算节点;分别对各并行计算节点对应的数据子集进行层次聚类处理,生成与所述各并行计算节点对应的聚类树;确定模板聚类树,根据所述模板聚类树调整各聚类树以使得所述各聚类树与所述模板聚类树对齐;将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识;根据所述集群标识对各子树进行分类,生成聚类树数组。

在第三方面的第一种可能的实现方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:将第一聚类树作为模板聚类树,选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树;计算所述模板聚类树的子树与所述第二聚类树的子树的相似度,判断是否满足设定的相似度条件;若满足设定的相似度条件,交换所述第二聚类树的子树的位置;保存所述模板聚类树各子树与所述第二聚类树各子树的对齐关系;并行处理完所有聚类树。

结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:计算所述第一聚类树的左子树与所述第二聚类树的左子树的相似度作为第一相似度值,计算所述第一聚类树的右子树与所述第二聚类树的右子树的相似度作为第二相似度值,计算所述第一聚类树的右子树与所述第二聚类树的左子树的相似度作为第三相似度值,计算所述第一聚类树的左子树与所述第二聚类树的右子树的相似度作为第四相似度值;判断所述第一相似度值与所述第二相似度相加得到的和值是否小于所述第三相似度值与所述第四相似度相加得到的和值;若满足,确定满足设定的相似度条件。

在第三方面的第三种可能的实现方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:将所述模板聚类树分割为多个子树,为每一个子树配置一个集群标识;选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树,将所述第二聚类树分割为多个子树,根据保存的所述模板聚类树各子树与所述第二聚类树各子树的对齐关系,为所述第二聚类树的各子树配置与所述子树具有对齐关系的模板聚类树的子树相同的集群标识。

在第三方面的第四种可能的实现方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:将分割所述模板聚类树和调整后的各聚类树得到的子树中具有相同集群标识的子树归为一类,生成各分类数组。

在第三方面的第五种可能的实现方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:根据各分类数组的类层次信息和其包含的叶子节点信息,将各分类域名与合法域名进行比较,确定异常域名。

结合第三方面的第一种可能的实现方式或者第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:采集dns事件域名,将所述dns事件域名作为数据集;保存合法域名所在的分类数组。

本发明实施例提供的数据并行聚类方法及装置,可以在处理大量数据时,将用于聚类处理的数据集划分为多个数据子集,为每个数据子集分配一个并行计算节点,分别对每个计算节点的数据进行层次聚类处理,获得多个聚类树;然后再针对各聚类树进行对齐、标记等处理,以对各聚类树进行分类生成聚类数组。由于将大量数据分配到多个计算节点并行处理,大大提高了数据处理的效率和速度,降低了数据处理延时。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种数据并行聚类方法的流程示意图;

图2为本发明实施例提供的聚类树生成示意图;

图3为本发明实施例提供的模板聚类树示意图;

图4为本发明实施例提供的聚类树对齐示意图;

图5为本发明实施例提供的聚类树标记示意图;

图6为本发明另一实施例提供的一种应用场景示意图;

图7为本发明又一实施例提供的应用场景示意图;

图8为本发明一实施例提供的数据并行聚类装置示意图;

图9为本发明另一实施例提供的数据并行聚类装置示意图。

具体实施方式

本发明实施例提供了数据并行聚类方法及装置,可以对大量数据进行并行聚类处理,有效提升了数据处理的效率,减少了数据处理延时。

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

其中,技术术语“聚类“一般是指将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。

其中,技术术语“层次聚类”是一种聚类方法,一般是指将数据集按照某种方法进行层次分解直到满足设定条件的方法。

其中,技术术语“域名系统”(英文全称为domainnamesystem,英文简称为dns)是因特网上作为域名和ip地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的ip数串。通过主机名,最终得到该主机名对应的ip地址的过程叫做域名解析。

参见图1,图1为本发明实施例提供的一种数据并行聚类方法的流程示意图。

s101,将数据集划分为多个数据子集,为每个数据子集配置一个并行计算节点。

具体实现时,可以将待处理的数据集划分为多个数据子集,每个数据子集对应一个计算节点。以下以所述数据集为域名数据集为例进行说明。举例说明,假设域名数据集包含m个域名信息,并行计算节点的数量为n个,可以将所述域名数据集划分为(m/n)个子集,不能整除的部分可以划分为最后一个子集。举例说明,域名数据集合包含1001个域名,存在10个并行计算节点,则可以将域名数据集划分为10个数据子集,前9个数据子集各包含100个域名,第10个数据子集包含101个域名。每个数据子集都可以对应一个并行计算节点。具体实现时,可以将各域名信息组装成key-value对,其中,key为做并行计算的节点标识(id),value为域名信息。当然,也可以采取其他划分方式,在此不进行限定。

s102,分别对各并行计算节点对应的数据子集进行层次聚类处理,生成与所述各并行计算节点对应的聚类树。

具体实现时,针对每一个数据子集进行本地层次聚类处理,生成聚类树。若存在多个计算节点,各计算节点可以并行计算。其中,各计算节点进行层次聚类的方法可以采用现有技术的方法。举例说明,假设有n个待聚类的样本,其处理步骤可以包括:(1)将每个样本归为一类,计算每两个类的距离,也就是说计算样本与样本之间的相似度;(2)寻找各个类中距离最近的两个类,将其归为一类,于是类的总数少了一个;(3)重新计算新生成的类与各个旧类之间的距离;(4)重复步骤2和步骤3,直到所有样本点都归为一类为止。

在一些实施方式中,在计算每两个类的距离时,可以通过计算相似度的方式。其中,相似度计算的方法可以采用以下几种方式:(1)singlelinkage,又叫做nearest-neighbor,就是取两个类中距离最近的两个样本的距离作为这两个集合的距离,也就是说,最近两个样本之间的距离越小,这两个类之间的相似度就越大。(2)completelinkage:这种方式则完全是singlelinkage的反面极端,取两个集合中距离最远的两个点的距离作为两个集合的距离。其效果也是刚好相反的。(3)average-linkage:这种方法就是把两个集合中的点两两的距离全部放在一起求一个平均值,相对也能得到合适一点的结果。(4)average-linkage的一个变种就是取两两距离的中值,与取均值相比更加能够解除个别偏离样本对结果的干扰。具体实现时,可以采用上述任意一种相似度计算方法,当然,也可以采用其他方法,本发明对此不进行限定。

在对各计算节点对应的数据子集进行层次聚类处理后,即生成了多个聚类树。如图2所示,为本发明实施例提供的聚类树生成示意图。以图2为例进行说明,假设在计算节点a存在的域名数据子集包括4个域名:

(1)http://e.huawei.com/cn/solutions/industries/education

(2)“http://e.huawei.com/cn/solutions/industries/public-safety

(3)http://www.kt2syggf436dtag411.com

(4)http://www.kt2syggf436dtag313.com

在进行层次聚类时,域名1和域名2通过相似度计算归为一类(http://e.huawei.com/cn/solutions/industries),域名3和域名4归为一类(http://www.kt2syggf436dtag1.com),这两类最终归为一类(http://.com)。

当然,以上仅为示例性说明,本发明不限于此。

需要说明的是,在本发明中,对各计算节点并行处理后,可以获得各数据子集进行层次聚类获得的聚类结果,所述聚类结果可以使用聚类树表示。由于将大量数据分配到多个计算节点并行处理,大大提高了数据处理的效率和速度,降低了数据处理延时。当然,还需要对并行计算获得的各聚类结果进行归聚处理,以获得最终的聚类结果。其中,s103和s104即是通过对各聚类树进行对齐和标记处理,使得各聚类树更加相似,以形成最终的数据聚类。下面对具体的处理流程进行详细介绍。

s103,确定模板聚类树,根据所述模板聚类树调整各聚类树以使得所述各聚类树与所述模板聚类树对齐。

具体实现时,可以从生成的各聚类中选取一个聚类树作为模板聚类树,利用所述模板聚类树对各聚类树进行递归对齐处理。在一些实施方式中,可以将第一聚类树作为模板聚类树,选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树;计算所述模板聚类树的子树与所述第二聚类树的子树的相似度,判断是否满足设定的相似度条件;若满足设定的相似度条件,交换所述第二聚类树的子树的位置;保存所述模板聚类树各子树与所述第二聚类树各子树的对齐关系;并行处理完所有聚类树。需要特别说明的是,在确定模板聚类树,根据所述模板聚类树调整各聚类树时,是多个计算节点并行处理的,由此提高了数据处理的速度和效率。其中,在计算所述第一聚类树的子树与所述第二聚类树的子树的相似度,判断是否满足设定的相似度条件时,可以采用以下方式:计算所述第一聚类树的左子树与所述第二聚类树的左子树的相似度作为第一相似度值,计算所述第一聚类树的右子树与所述第二聚类树的右子树的相似度作为第二相似度值,计算所述第一聚类树的右子树与所述第二聚类树的左子树的相似度作为第三相似度值,计算所述第一聚类树的左子树与所述第二聚类树的右子树的相似度作为第四相似度值;判断所述第一相似度值与所述第二相似度相加得到的和值是否小于所述第三相似度值与所述第四相似度相加得到的和值;若满足,确定满足设定的相似度条件。

举例说明,若存在10个聚类树,从中选取一个聚类树树1作为模板聚类树。其中,模板聚类树可以是节点最多的聚类树。当然,也可以设置其他选取条件,在此不进行限定。

假设树1(d1)为模板聚类树,树2(d2)为其中一个计算节点对应的聚类树。执行下述步骤:

(1)计算树1和树2的相似度时,判断是否满足以下相似度条件:

similar(d1.lchild,d2.lchild)+similar(d1.rchild,d2.rchild)<similar(d1.rchild,d2.lchild)+similar(d1.lchild,d2.rchild)

其中,similar(d1.lchild,d2.lchild)为树1的左子树(d1.lchild)与树2的左子树(d2.lchild)的相似度;similar(d1.rchild,d2.rchild)为树1的右子树(d1.rchild)与树2的右子树(d2.rchild)的相似度;similar(d1.rchild,d2.lchild)为树1的右子树(d1.rchild)与所述树2的左子树(d2.lchild)的相似度;similar(d1.lchild,d2.rchild)为树1的左子树与树2的右子树的相似度。

(2)若满足上述条件,则交换树2的两棵子树,然后执行下述处理:

(3)align(d1.lchild,d2.lchild),即对齐树1的左子树与树2的左子树。

(4)align(d1,rchild,d2.rchild),即对齐树1的右子树与树2的右子树。

在一些实施方式中,还可以保存所述模板聚类树各子树与所述第二聚类树各子树的对齐关系。举例说明,保存模板聚类树树1的左子树与调整后的树2的左子树的对齐关系,以及模板聚类树树1的右子树与调整后的树2的右子树的对齐关系。

如此递归处理完所有聚类树。经过对聚类树对齐处理后,每个聚类树都处理成与模板聚类树更相似的结构或形状。

在一些实施方式中,在计算子树的相似度时,即计算域名节点的相似度时,可以采用如下方法:

similarity(a,b)=(anb)/(aub)

也就是说,域名节点a、b的相似度为a,b两个域名的交集比a,b两个域名的并集。

当然,还可以采用其他计算方式,本发明对此不进行限定。

下面以图3和图4为例说明如何对聚类树进行对齐。参见图3,为模板聚类树树1示意图。参见图4为本发明实施例提供的聚类树对齐示意图。其中,树1和树2中,叶子节点为具体域名。若树1或树2只有一个子树节点的,默认另一个子树为空,例如,若树1只有一个子树节点,例如只有左子树,则其右子树为空。图4中,上半部分为调整前的树2,acitvityinitial为初始节点,下半部分为调整后的树2,a、b、c……n为树2的各节点,英文trace的含义为追溯。

s104,将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识。

在一些实施方式中,所述将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识包括:将所述模板聚类树分割为多个子树,为每一个子树配置一个集群标识;选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树,将所述第二聚类树分割为多个子树,根据保存的所述模板聚类树各子树与所述第二聚类树各子树的对齐关系,为所述第二聚类树的各子树配置与所述子树具有对齐关系的模板聚类树的子树相同的集群标识。

举例说明,首先可以把模板聚类树切割成多个子树,每个子树被标识一个集群标识。然后,找出已经对齐的其他的聚类树中所有的子树节点进行标记,递归标记所有子树。对于边界节点,需要找出与聚类树模板最贴近的集群标识

以图5为例进行说明,参见图5为本发明实施例提供的聚类树标记示意图。其中,图5上半部分为树1,树1分别具有节点1、2、3、4……节点14。图5下半部分为树2,树2分别具有节点a、b、c、d……节点n。根据对齐原则对齐后,需要将以模板聚类树为中心的其他聚类树进行统一标记。举例说明,图5中与树1的子树树1-4具有对齐关系的为树2的子树树2-d,树1的子树树1-2与树2的子树树2-b具有对齐关系……将具有对齐关系的子树赋予与模板聚类树相同的集群标识。参见图5,图5中虚线表示和模板聚类树一起对齐后的分类标记,记为:1,2,3,4,5,6,7共分为7类。第一类(树1-4,树2-d),第二类(树1-2,树2-b),第三类(树1-5,树2-e),第四类(树1-1,树2-a),第五类(树1-6,树2-f),第六类(树1-3,树2-c),第七类(树1-7,树2-g)。

s105,根据所述集群标识对各子树进行分类,生成聚类树数组。

具体实现时,可以将分割所述模板聚类树和调整后的各聚类树得到的子树中具有相同集群标识的子树归为一类,生成各分类数组。如图5所示,具有相同集群标识的子树可以归为一类,例如:第一类(树1-4,树2-d),第二类(树1-2,树2-b),第三类(树1-5,树2-e),第四类(树1-1,树2-a),第五类(树1-6,树2-f),第六类(树1-3,树2-c),第七类(树1-7,树2-g)。

在一些实施方式中,可以将以模板聚类树为中心的聚类树按从左至右原则生成扁平化数组,当子树为空时,对应数组位置为空。进一步地,可以对数组进行切割利用索引号和索引号的具体信息查询相似分类,可以利用分类判定域名的合法性。其中,索引号与各节点的编号具有对应关系。索引号的具体信息包含节点所包含的左右子树的位置信息。在一些实施方式中,当所述数据集为域名数据集时,可以根据各分类数组的类层次信息和其包含的叶子节点信息,将各分类域名与合法域名进行比较,确定异常域名。

在一些实施方式中,在将数据集划分为多个数据子集之前,所述方法还包括:采集dns事件域名,将所述dns事件域名作为数据集;在生成聚类数组之后,所述方法还包括:保存合法域名所在的分类数组。例如,可以保存合法域名所在的分类数组以生成用于维护合法域名的本地信誉库。

下面结合两个具体的应用场景对本发明提供的数据并行聚类方法进行介绍。

参见图6,为本发明另一实施例提供的一种应用场景示意图。

s601,响应于包含ip地址和事件类型的查询请求,获取查询结果。

s602,若查询结果不为空,对所述查询结果进行域名提取处理。

s603,对域名数据进行分区转换处理。

具体实现方式可以参见图1s101的处理。

s604,将数据分配给各个并行计算节点。

s605,分布式执行各计算节点的本地层次聚类处理,生成聚类树。

s606,选择模板聚类树。

s607,其他节点聚类树与模板聚类树递归对齐。

具体实现方式可以参见图1s103的处理。

s608,以模板聚类树为标准,标记其他聚类树。

具体实现方式可以参见图1s104的处理。

s609,生成聚类树组。

s610,应用数组集合识别并剔除正常域名,确定异常域名。

具体实现时,可以根据各分类数组的类层次信息和其包含的叶子节点信息,将各分类域名与合法域名进行比较,确定异常域名。

以图5为例进行说明,以第三层聚类信息为准,存在聚类:第一类(树1-4,树2-d),第三类(树1-5,树2-e),第五类(树1-6,树2-f),第七类(树1-7,树2-g)。在对正常域名进行过滤时,若本地信誉库中有第一类和第三类,那么过滤后的异常域名为:第五类(树1-6,树2-f),第七类(树1-7,树2-g)。其中,第五类和第七类包含具体域名(叶子节点)为:树1-10,树1-13,树1-14,树2-j,树2-m,树2-n;若本地域名信誉库包含树1-10,树2-m,那么最终过滤后结果为:树1-13,树1-14,树2-j,树2-n。其中,本地信誉库为合法域名组成的数据库。具体实现时,还可以根据过滤后的域名继续处理ip关联及安全模型封装流程。

参见图7,为本发明又一实施例提供的应用场景示意图。在图7中,本发明提供的数据并行聚类方法除了可以应用于域名过滤、异常域名确定场景中,还可以应用在dns域名采集场景,生成本地信誉库,即本地合法域名集。在这一场景中,可以采集dns事件域名,将所述dns事件域名作为数据集。将所述数据集划分为多个数据子集,分配在多个并行计算节点上。分别对各并行计算节点对应的数据子集进行层次聚类处理,生成与所述各并行计算节点对应的聚类树;确定模板聚类树,根据所述模板聚类树调整各聚类树以使得所述各聚类树与所述模板聚类树对齐;将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识;根据所述集群标识对各子树进行分类,生成聚类树数组。保存合法域名所在的分类数组以生成本地信誉库。生成的信誉库又可以用于合法域名判定或者非法域名判定。

参见图8,为本发明一实施例提供的数据并行聚类装置示意图。

一种数据并行聚类装置800,所述装置包括:

配置模块801,用于将数据集划分为多个数据子集,为每个数据子集配置一个并行计算节点。

层次聚类模块802,用于分别对各并行计算节点对应的数据子集进行层次聚类处理,生成与所述各并行计算节点对应的聚类树。

对齐模块803,用于确定模板聚类树,根据所述模板聚类树调整各聚类树以使得所述各聚类树与所述模板聚类树对齐。

标识模块804,用于将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识。

分类模块805,用于根据所述集群标识对各子树进行分类,生成聚类树数组。

在一些实施方式中,所述对齐模块包括:选取子模块,用于将第一聚类树作为模板聚类树,选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树;判断子模块,用于计算所述模板聚类树的子树与所述第二聚类树的子树的相似度,判断是否满足设定的相似度条件;交换子模块,用于若满足设定的相似度条件,交换所述第二聚类树的子树的位置;保存子模块,用于保存所述模板聚类树各子树与所述第二聚类树各子树的对齐关系;迭代子模块,用于并行处理完所有聚类树。

在一些实施方式中,所述判断子模块包括:计算单元,用于计算所述第一聚类树的左子树与所述第二聚类树的左子树的相似度作为第一相似度值,计算所述第一聚类树的右子树与所述第二聚类树的右子树的相似度作为第二相似度值,计算所述第一聚类树的右子树与所述第二聚类树的左子树的相似度作为第三相似度值,计算所述第一聚类树的左子树与所述第二聚类树的右子树的相似度作为第四相似度值;比较单元,用于判断所述第一相似度值与所述第二相似度相加得到的和值是否小于所述第三相似度值与所述第四相似度相加得到的和值;确定单元,用于若满足,确定满足设定的相似度条件。

在一些实施方式中,所述标识模块包括:

第一分割子模块,用于将所述模板聚类树分割为多个子树;第一标识子模块,用于为所述模板聚类树的每一个子树配置一个集群标识;第二子模块,用于选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树,将所述第二聚类树分割为多个子树;第二标识子模块,用于根据保存的所述模板聚类树各子树与所述第二聚类树各子树的对齐关系,为所述第二聚类树的各子树配置与所述子树具有对齐关系的模板聚类树的子树相同的集群标识。

在一些实施方式中,所述分类模块具体用于:将分割所述模板聚类树和调整后的各聚类树得到的子树中具有相同集群标识的子树归为一类,生成各分类数组。

在一些实施方式中,所述装置还包括:异常域名确定模块,用于当所述数据集为域名数据集时,根据各分类数组的类层次信息和其包含的叶子节点信息,将各分类域名与合法域名进行比较,确定异常域名。

在一些实施方式中,所述装置还包括:采集模块,用于在将数据集划分为多个数据子集之前,采集dns事件域名,将所述dns事件域名作为数据集;保存模块,用于在生成聚类数组之后,保存合法域名所在的分类数组。

参见图9,为本发明另一实施例提供的数据并行聚类装置示意图。所述数据并行聚类装置可包括至少一个处理器901,至少一个网络接口902或者其它通信接口,存储器903,和至少一个通信总线904,用于实现这些装置之间的连接通信。处理器901用于执行存储器903中存储的可执行模块,例如计算机程序。该处理器901可以为cpu,存储器903可能包含高速随机存取存储器(randomaccessmemory,ram),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口实现该系统网关与至少一个其它网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

其中一个或者一个以上程序存储于存储器903中,且经配置以由一个或者一个以上处理器901执行所述一个或者一个以上程序包含用于进行以下操作的指令:将数据集划分为多个数据子集,为每个数据子集配置一个并行计算节点;

分别对各并行计算节点对应的数据子集进行层次聚类处理,生成与所述各并行计算节点对应的聚类树;

确定模板聚类树,根据所述模板聚类树调整各聚类树以使得所述各聚类树与所述模板聚类树对齐;

将所述模板聚类树和调整后的各聚类树分割为多个子树,为具有对齐关系的子树配置相同的集群标识;

根据所述集群标识对各子树进行分类,生成聚类树数组。

在一些实施方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:将第一聚类树作为模板聚类树,选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树;计算所述模板聚类树的子树与所述第二聚类树的子树的相似度,判断是否满足设定的相似度条件;若满足设定的相似度条件,交换所述第二聚类树的子树的位置;保存所述模板聚类树各子树与所述第二聚类树各子树的对齐关系;并行处理完所有聚类树。

在一些实施方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:计算所述第一聚类树的左子树与所述第二聚类树的左子树的相似度作为第一相似度值,计算所述第一聚类树的右子树与所述第二聚类树的右子树的相似度作为第二相似度值,计算所述第一聚类树的右子树与所述第二聚类树的左子树的相似度作为第三相似度值,计算所述第一聚类树的左子树与所述第二聚类树的右子树的相似度作为第四相似度值;判断所述第一相似度值与所述第二相似度相加得到的和值是否小于所述第三相似度值与所述第四相似度相加得到的和值;若满足,确定满足设定的相似度条件。

在一些实施方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:将所述模板聚类树分割为多个子树,为每一个子树配置一个集群标识;选取除所述模板聚类树之外的任意一个聚类树作为第二聚类树,将所述第二聚类树分割为多个子树,根据保存的所述模板聚类树各子树与所述第二聚类树各子树的对齐关系,为所述第二聚类树的各子树配置与所述子树具有对齐关系的模板聚类树的子树相同的集群标识。

在一些实施方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:将分割所述模板聚类树和调整后的各聚类树得到的子树中具有相同集群标识的子树归为一类,生成各分类数组。

在第三方面的第五种可能的实现方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:根据各分类数组的类层次信息和其包含的叶子节点信息,将各分类域名与合法域名进行比较,确定异常域名。

在一些实施方式中,所述一个或者一个以上处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:采集dns事件域名,将所述dns事件域名作为数据集;保存合法域名所在的分类数组。

以上对装置实施例的介绍较为简略,可参照方法实施例实现本发明各装置实施例。

本发明实施例提供的数据并行聚类方法和装置,可以在处理大量数据时,将用于聚类处理的数据集划分为多个数据子集,为每个数据子集分配一个并行计算节点,分别对每个计算节点的数据进行层次聚类处理,获得多个聚类树;然后再针对各聚类树进行对齐、标记等处理,以对各聚类树进行分类生成聚类数组。由于将大量数据分配到多个计算节点并行处理,大大提高了数据处理的效率和速度,降低了数据处理延时。

本发明方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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