一种异常组合数据的检测方法及装置与流程

文档序号:12693993阅读:269来源:国知局
一种异常组合数据的检测方法及装置与流程

本发明涉及数据处理技术领域,尤其涉及一种异常组合数据的检测方法及装置。



背景技术:

在信息安全领域,需要特别关注的问题是,如何在海量数据中发现异常的行为。其中,在多维数据的异常检测中,有一类称为“组合异常”的问题,对于这类问题,往往同一种组合出现的次数越多,则认为该组合是异常组合的可能性越大,例如,在网站登录的风险检测中,如果某一相同组合(比如设备、IP、用户)被采用,以尝试进行多次的网站登录,这很有可能是一种异常行为,在安全领域,这种发生在登录时的异常行为被称为“撞库”行为。

然而,现有的异常组合检测方法,是凭借经验,人工从多种组合方式中找出可能的异常组合方式,并针对找出的每种组合分别进行聚合统计,以从大量组合数据中统计出每种组合出现的次数,并人工划定阈值,如果某种组合的出现次数大于该阈值,则认为该组合是一种频繁组合,进而认为该组合是异常组合,但是,这种基于人工操作的异常组合检测方式,耗时耗力,使得异常组合的检测效率比较低下。



技术实现要素:

有鉴于此,本发明实施例的主要目的在于提供一种异常组合数据的检测方法及装置,能够提高异常组合数据的检测速度。

本发明实施例提供了一种异常组合数据的检测方法,包括:

获取待检测的数据组合项;

将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配;

若存在匹配结果,则确定所述待检测的数据组合项为异常组合项,若不存在匹配结果,则确定所述待检测的数据组合项不是异常组合项。

可选的,所述频繁组合数据库按照以下方式形成:

获取数据组合样本集,所述数据组合样本集中包括至少一条数据组合样本;

分析各个数据组合样本之间的关联关系,确定所述数据组合样本是否为频繁组合项;

获取所有被确定为频繁组合项的数据组合样本,形成所述频繁组合数据库。

可选的,所述分析各个数据组合样本之间的关联关系,包括:

利用FPGrowth关联分析算法,分析各个数据组合样本之间的关联关系。

可选的,所述将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配,包括:

遍历所述频繁组合数据库中的频繁组合项;

确定所述待检测的数据组合项中的数据元素个数,以及确定当前遍历到的频繁组合项中的数据元素个数;

判断两个组合项中的数据元素个数是否相同;

如果不同,则遍历下一频繁组合项,并执行上述确定数据元素个数的步骤;

如果相同,则判断两个组合项中的数据元素是否全部相同,如果是,则确定匹配成功并停止遍历,如果否,则继续遍历下一频繁组合项,并执行上述确定数据元素个数的步骤。

可选的,所述将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配,包括:

确定所述待检测的数据组合项中的数据元素个数;

从所述频繁组合数据库中筛选出与所述数据元素个数相同的频繁组合项,并将筛选出的全部频繁组合项形成筛选组合集;

遍历所述筛选组合集中的频繁组合项;

判断当前遍历到的频繁组合项与所述待检测的数据组合项中的各个数据元素是否全部相同;

如果是,则确定匹配成功并停止遍历,如果否,则继续遍历下一频繁组合项,并执行上述判断步骤。

本发明实施例还提供了一种异常组合数据的检测装置,包括:

组合获取单元,用于获取待检测的数据组合项;

组合匹配单元,用于将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配;

结果确定单元,用于若存在匹配结果,则确定所述待检测的数据组合项为异常组合项,若不存在匹配结果,则确定所述待检测的数据组合项不是异常组合项。

可选的,所述装置还包括:

样本获取单元,用于获取数据组合样本集,所述数据组合样本集中包括至少一条数据组合样本;

关联分析单元,用于分析各个数据组合样本之间的关联关系,确定所述数据组合样本是否为频繁组合项;

数据库建立单元,用于获取所有被确定为频繁组合项的数据组合样本,形成所述频繁组合数据库。

可选的,所述关联分析单元,具体用于利用FPGrowth关联分析算法,分析各个数据组合样本之间的关联关系。

可选的,所述组合匹配单元包括:

第一遍历子单元,用于遍历所述频繁组合数据库中的频繁组合项;

第一个数确定子单元,用于确定所述待检测的数据组合项中的数据元素个数,以及确定当前遍历到的频繁组合项中的数据元素个数;

个数判断子单元,用于判断两个组合项中的数据元素个数是否相同;

第一继续遍历子单元,用于如果两个组合项中的数据元素个数不相同,则遍历下一频繁组合项,并通过所述第一个数确定子单元确定数据元素个数;

第一元素判断子单元,用于如果两个组合项中的数据元素个数相同,则判断两个组合项中的元素是否全部相同;

所述第一继续遍历子单元,还用于如果两个组合项中的数据元素全部相同,则确定匹配成功并停止遍历,如果两个组合项中的元素不完全相同,则继续遍历下一频繁组合项,并通过所述第一个数确定子单元确定数据元素个数。

可选的,所述组合匹配单元包括:

第二个数确定子单元,用于确定所述待检测的数据组合项中的数据元素个数;

组合项筛选子单元,用于从所述频繁组合数据库中筛选出与所述数据元素个数相同的频繁组合项,并将筛选出的全部频繁组合项形成筛选组合集;

第二遍历子单元,用于遍历所述筛选组合集中的频繁组合项;

第二元素判断子单元,用于判断当前遍历到的频繁组合项与所述待检测的数据组合项中的各个数据元素是否全部相同;

第二元素判断子单元,用于如果两个组合项中的元素全部相同,则确定匹配成功并停止遍历,如果两个组合项中的元素不完全相同,则继续遍历下一频繁组合项,并通过所述第二元素判断子单元进行判断。

本发明实施例提供的异常组合数据的检测方法及装置,获取一条待检测的数据组合项;将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配;若存在匹配结果,则确定所述待检测的数据组合项为异常组合项,若不存在匹配结果,则确定所述待检测的数据组合项不是异常组合项。即,本发明实施例基于预先建立的频繁组合数据库,通过匹配操作,如果频繁组合数据库中存在待检测的数据组合项,则认为该组合项为频繁组合项,进而认为该组合项为异常组合,可见,这种自动匹配的方式可以提高异常组合数据的检测速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的异常组合数据的检测方法的流程示意图;

图2为本发明实施例提供的形成频繁组合数据库的流程示意图;

图3为本发明实施例提供的组合项的匹配流程示意图之一;

图4为本发明实施例提供的组合项的匹配流程示意图之二;

图5为本发明实施例提供的异常组合数据的检测装置的组成示意图。

具体实施方式

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

参见图1,为发明实施例提供的异常组合数据的检测方法的流程示意图,该方法包括以下步骤S101-S103:

S101:获取待检测的数据组合项。

在实际应用中,网络中存在很多数据组合项,即每一数据组合项中包括至少两个数据元素,例如,用户在登陆购物网站、聊天软件、网上银行等,均需要输入用户名和密码,而用于登陆的某一组具体用户名和密码则是一条数据组合项中的两个数据元素,每一组组合数据则可以作为一条待检测的数据组合项。

S102:将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配。

在本实施例中,需要预先建立一个频繁组合数据库,该数据库中存储有多个频繁组合项,且每一频繁组合项中包括至少两个数据元素。例如,这些频繁组合项可以包括(A,B)、(A,C)、(A,B,C)、(C,D)……等等。

S103:若存在匹配结果,则确定所述待检测的数据组合项为频繁组合项,若不存在匹配结果,则确定所述待检测的数据组合项不是频繁组合项。

例如,如果所述待检测的数据组合项是(A,C),则通过步骤S102将(A,C)与频繁组合数据库中的频繁组合项进行匹配,若发现频繁组合数据库中存在一频繁组合项(A,C),则说明匹配成功,否则匹配失败。进一步地,如果匹配成功,则可以将待检测的数据组合项(A,C)视为异常组合。

需要说明的是,本实施例不限制数据元素A和C在组合项中的排列方式,即(A,C)与(C,A)代表同一组合。

本发明实施例提供的异常组合数据的检测方法,获取一条待检测的数据组合项;将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配;若存在匹配结果,则确定所述待检测的数据组合项为频繁组合项,若不存在匹配结果,则确定所述待检测的数据组合项不是频繁组合项。即,本发明实施例基于预先建立的频繁组合数据库,通过匹配操作,如果频繁组合数据库中存在待检测的数据组合项,则认为该组合项为频繁组合项,进而认为该组合项为异常组合,可见,这种自动匹配的方式可以提高异常组合数据的检测速度。

具体地,下面对步骤S102的相关内容进行具体介绍。

在本实施例中,参见图2所示的形成频繁组合数据库的流程示意图,S102中的频繁组合数据库可以按照以下方式预先形成,具体形成步骤包括S201-S203:

S201:获取数据组合样本集,所述数据组合样本集中包括至少一条数据组合样本。

预先获取一些数据组合样本,每一数据组合样本中包括至少两个数据元素,本实施例中的组合数据可以是运行在spark大数据处理环境中的数据。

需要说明的是,上述“待检测的数据组合项”是当前需要确定是否为频繁组合项的数据组合;而“数据组合样本”是在“待检测的数据组合项”之前就获取的样本,用于在异常检测之前预先形成频繁组合数据库的。

S202:分析各个数据组合样本之间的关联关系,确定所述数据组合样本是否为频繁组合项。

在本实施中,S202具体可以包括:利用FPGrowth关联分析算法,分析各个数据组合样本之间的关联关系,确定所述数据组合样本是否为频繁组合项。

当然,本实施例也可以采用其他关联分析算法,比如Apriori算法,对此本实施例不做限制。

S203:获取所有被确定为频繁组合项的数据组合样本,形成频繁组合数据库。

FPGrowth是一种快速关联分析算法,通过该算法,可以快速挖掘出大数据中隐藏的频繁项模式。本实施例采用FPGrowth关联分析算法,识别出服务器日志大数据中那些频繁出现的组合模式,但与传统关联分析不同的是,这里,越是频繁的组合项越疑似为有问题,比如,这种频繁组合是一种“撞库”行为,其中,撞库是指黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户,很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网址,这就可以理解为撞库攻击。

本实施例通过关联分析获得样本集中的频繁组合项,并利用这些频繁组合项构建一个频繁组合数据库,这样带来的有益效果是能够快速获得频繁出现的特征组合,而不需要针对所有不同组合情况分别进行统计和判断,这大大节省了计算资源的开销,并且大大提升了异常检测中的自动化能力。

可见,采用FPGrowth进行关联分析的过程,即是对具有关联关系的组合进行数据解耦的过程,以从大量组合样本中找出每一频繁组合项,这样,对于一个待检测组合项,无需关心它与其他待检测组合项之间的耦合关系,只需要共享频繁组合数据库并从中匹配出相同的组合项,即认为该待检测组合项为频繁组合项。

在本实施例中,关于步骤S102,即“将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配”,可以采用以下两种实施方式之一实现,具体如下:

在第一种实施方式中,参见图3所示的组合项的匹配流程示意图,可以包括S301-S306:

S301:遍历所述频繁组合数据库中的频繁组合项。

可以将频繁组合数据库中的各个频繁组合项,按照字母或是数据元素个数进行排序,然后根据排序结果依次遍历。

S302:确定所述待检测的数据组合项中的数据元素个数,以及,确定当前遍历到的频繁组合项中的数据元素个数。

S303:判断两个组合项中的数据元素个数是否相同,如果否,则执行步骤S304,如果是,则执行步骤S305。

例如,假设这两个组合中的数据元素个数一个是2、一个是3,说明这两个组合是不同的,则执行步骤S304;假设这两个组合中的数据元素个数均是2,则这两个组合有可能相同,则执行步骤S305继续判断。

S304:遍历下一频繁组合项,并执行步骤S302。

S305:判断两个组合项中的数据元素是否全部相同,如果是,则执行步骤S306,如果否,则执行步骤S304。

例如,假设待检测的组合项和当前遍历的组合项均是(A,C),则匹配成功,否则,继续遍历并匹配。

S306:确定匹配成功并停止遍历。

在第二种实施方式中,参见图4所示的组合项的匹配流程示意图,可以包括S401-S405:

S401:确定所述待检测的数据组合项中的数据元素个数。

S402:从所述频繁组合数据库中筛选出与所述数据元素个数相同的频繁组合项,并将筛选出的全部频繁组合项形成筛选组合集。

在本实施例中,可以预先将频繁组合数据库进行分组,即将具有相同数据元素个数的组合项分为一组,这样,如果待检测的组合项为(A,C),则其数据元素个数为2,此时,只需要从频繁组合数据库中找出所有数据元素个数为2的一组频繁组合项即可,这些组合项即形成了所述筛选组合集。

S403:遍历所述筛选组合集中的频繁组合项。

在本实施例中,可以将所述筛选组合集中的频繁组合项,按照字母等方式进行排序,然后根据排序结果依次遍历。

基于上个例子,只需要依次遍历数据元素个数为2的各个频繁组合项,以进行组合项的匹配,这样,节省了匹配时间、增加了匹配效率。

S404:判断当前遍历到的频繁组合项与所述待检测的数据组合项中的各个数据元素是否全部相同;如果是,则执行步骤S406,如果否,则执行步骤S405。

基于上个例子,假设待检测的组合项和当前遍历的组合项均是(A,C),则匹配成功,否则,继续遍历并匹配。

S405:继续遍历下一频繁组合项,并执行步骤S404。

S406:确定匹配成功并停止遍历。

参见图5,为本发明实施例提供的异常组合数据的检测装置的组成示意图,该装置包括:

组合获取单元501,用于获取待检测的数据组合项;

组合匹配单元502,用于将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配;

结果确定单元503,用于若存在匹配结果,则确定所述待检测的数据组合项为异常组合项,若不存在匹配结果,则确定所述待检测的数据组合项不是异常组合项。

在一些实施方式中,所述装置还包括:

样本获取单元,用于获取数据组合样本集,所述数据组合样本集中包括至少一条数据组合样本;

关联分析单元,用于分析各个数据组合样本之间的关联关系,确定所述数据组合样本是否为频繁组合项;

数据库建立单元,用于获取所有被确定为频繁组合项的数据组合样本,形成所述频繁组合数据库。

在一些实施方式中,所述关联分析单元,具体用于利用FPGrowth关联分析算法,分析各个数据组合样本之间的关联关系。

在一些实施方式中,所述组合匹配单元502可以包括:

第一遍历子单元,用于遍历所述频繁组合数据库中的频繁组合项;

第一个数确定子单元,用于确定所述待检测的数据组合项中的数据元素个数,以及确定当前遍历到的频繁组合项中的数据元素个数;

个数判断子单元,用于判断两个组合项中的数据元素个数是否相同;

第一继续遍历子单元,用于如果两个组合项中的数据元素个数不相同,则遍历下一频繁组合项,并通过所述第一个数确定子单元确定数据元素个数;

第一元素判断子单元,用于如果两个组合项中的数据元素个数相同,则判断两个组合项中的元素是否全部相同;

所述第一继续遍历子单元,还用于如果两个组合项中的数据元素全部相同,则确定匹配成功并停止遍历,如果两个组合项中的元素不完全相同,则继续遍历下一频繁组合项,并通过所述第一个数确定子单元确定数据元素个数。

在一些实施方式中,所述组合匹配单元502可以包括:

第二个数确定子单元,用于确定所述待检测的数据组合项中的数据元素个数;

组合项筛选子单元,用于从所述频繁组合数据库中筛选出与所述数据元素个数相同的频繁组合项,并将筛选出的全部频繁组合项形成筛选组合集;

第二遍历子单元,用于遍历所述筛选组合集中的频繁组合项;

第二元素判断子单元,用于判断当前遍历到的频繁组合项与所述待检测的数据组合项中的各个数据元素是否全部相同;

第二元素判断子单元,用于如果两个组合项中的元素全部相同,则确定匹配成功并停止遍历,如果两个组合项中的元素不完全相同,则继续遍历下一频繁组合项,并通过所述第二元素判断子单元进行判断。

所述异常组合数据的检测装置包括处理器和存储器,上述组合获取单元501、组合匹配单元502、结果确定单元503等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高异常组合数据的检测速度。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本发明实施例提供的异常组合数据的检测装置,获取一条待检测的数据组合项;将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配;若存在匹配结果,则确定所述待检测的数据组合项为频繁组合项,若不存在匹配结果,则确定所述待检测的数据组合项不是频繁组合项。即,本发明实施例基于预先建立的频繁组合数据库,通过匹配操作,如果频繁组合数据库中存在待检测的数据组合项,则认为该组合项为频繁组合项,进而认为该组合项为异常组合,可见,这种自动匹配的方式可以提高异常组合数据的检测速度。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:

获取待检测的数据组合项;

将所述待检测的数据组合项与频繁组合数据库中的各个频繁组合项进行匹配;

若存在匹配结果,则确定所述待检测的数据组合项为异常组合项,若不存在匹配结果,则确定所述待检测的数据组合项不是异常组合项。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。

需要说明的是,对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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