一种伪造参数检测方法、装置、电子设备及存储介质与流程

文档序号:18144141发布日期:2019-07-10 11:26阅读:177来源:国知局
一种伪造参数检测方法、装置、电子设备及存储介质与流程

本发明实施例涉及计算机技术领域,尤其涉及一种伪造参数检测方法、装置、电子设备及计算机可读存储介质。



背景技术:

在安全检测中,接口的请求参数是否准确直接关系到检测规则是否有效,能否发现攻击。而相应地,黑客为了使得自己的攻击不被发现,往往会伪造接口请求参数,以躲避检测。

为了解决这一问题,现有技术中的方法是建立所有可能的正常参数集合,将不在正常参数集合中的参数认定是伪造参数。这种方法存在两个弊端:一是现实中各个请求字段的正常参数规模非常之大,维护正常参数集合成本非常高;二是随着新设备新应用的出现,这些正常参数集合需要不断更新,而这种更新很难实现自动化,尤其是当其中存在伪造参数的时候。所以,目前急需一种能够以较小的开销,自动、准确识别伪造接口请求参数的方法。



技术实现要素:

本发明提供一种伪造参数检测方法、装置、电子设备及计算机可读存储介质,以便解决识别伪造接口请求参数实现开销大,不能自动、准确识别的问题。

为了解决上述技术问题,本发明是这样实现的:

本发明实施例公开一种伪造参数检测方法,所述方法包括:

获取至少两个接口请求参数;

确定所述至少两个接口请求参数两两之间的相似度;

根据所述相似度对所述至少两个接口请求参数进行聚类;

从所述聚类的结果中提取出目标类别;其中,位于所述目标类别中的接口请求参数的数量高于设定阈值;

将位于所述目标类别中的接口请求参数作为伪造接口请求参数。

可选地,所述根据所述相似度对所述至少两个接口请求参数进行聚类,包括:

根据所述相似度构建参数相似度关系图;其中,所述关系图包括节点和连接所述节点的边,所述节点代表每个接口请求参数,所述边的权重由位于所述边两端的两个节点的相似度决定;

根据所述边的权重对所述关系图进行社区聚类。

可选地,所述从所述聚类的结果中提取出目标类别,包括:

获取进行社区聚类后形成的每个社区中节点的数目及边的数目,并将所述节点的数目超过第一设定阈值且所述边的数目超过第二设定阈值的社区作为目标社区;

所述将位于所述目标类别中的接口请求参数作为伪造接口请求参数,包括:

将位于所述目标社区中的节点对应的接口请求参数作为伪造接口请求参数。

可选地,所述获取至少两个接口请求参数,包括:

获取接口请求参数数据集,其中,所述接口请求参数数据集包括至少两个接口请求参数,且所述接口请求参数为字符串;

所述确定所述至少两个接口请求参数两两之间的相似度包括:

确定所述至少两个接口请求参数字符串两两之间的最长公共子序列;

将所述最长公共子序列中包含的字符数作为所述接口请求参数两两之间的相似度。

可选地,所述根据所述边的权重对所述关系图进行社区聚类包括:

为所述关系图中的每个节点随机指定一个初始标签;

按照设定刷新规则逐轮刷新所有节点的标签,直到所有节点的标签不再变化为止;所述设定刷新规则包括:根据所述节点与邻接节点之间的边的权重,得到所述节点的标签;

将具有相同标签的节点作为一个社区。

可选地,所述设定刷新规则包括:

对于某一个节点,遍历所有与其连接的边的权重,选择权重最大的边对应的节点的标签,作为该节点刷新后得到的标签。

可选地,在确定所述至少两个接口请求参数两两之间的相似度之后,还包括:

对所述相似度进行归一化处理,得到归一化的相似度。

可选地,在对所述相似度进行归一化处理,得到归一化的相似度之后,还包括:

构建参数相似度矩阵,其中,将所述归一化的相似度作为所述矩阵中的元素;

按照设定处理规则对所述相似度矩阵中的元素进行量化处理;其中,所述设定处理规则包括:若所述元素值大于等于第三设定阈值,将所述元素值置为m;若所述元素值小于所述第三设定阈值,则将所述元素值置为n。

可选地,所述根据所述相似度构建参数相似度关系图,包括:

根据所述相似度构建参数相似度关系图,所述关系图包括节点和连接所述节点的边;所述节点代表每个接口请求参数;所述关系图中每两个节点之间的边的权重,由所述边对应在所述相似度矩阵中的元素值决定,其中,若所述元素值为m,则对应的两个节点之间存在边;若所述元素值为n,则对应的两个节点之间不存在边;并且所述关系图中所有边的权重都是相同的。

可选地,所述设定刷新规则包括:

每个节点选择与其有边连接的节点中出现次数最多的标签,作为该节点刷新后得到的标签;若所述出现次数最多的标签不止一个,则随机选择一个标签,作为该节点刷新后得到的标签。

本发明实施例还公开一种伪造参数检测装置,所述装置包括:

参数获取模块,用于获取至少两个接口请求参数;

相似度确定模块,用于确定所述至少两个接口请求参数两两之间的相似度;

聚类模块,用于根据所述相似度对所述至少两个接口请求参数进行聚类;

目标类别提取模块,用于从所述聚类的结果中提取出目标类别;其中,位于所述目标类别中的接口请求参数的数量高于设定阈值;

伪造参数确定模块,用于将位于所述目标类别中的接口请求参数作为伪造接口请求参数。

可选地,所述聚类模块包括:

关系图构建子模块,用于根据所述相似度构建参数相似度关系图;其中,所述关系图包括节点和连接所述节点的边,所述节点代表每个接口请求参数,所述边的权重由位于所述边两端的两个节点的相似度决定;

社区聚类子模块,用于根据所述边的权重对所述关系图进行社区聚类。

可选地,所述目标类别提取模块包括:

目标社区确定子模块,用于获取进行社区聚类后形成的每个社区中节点的数目及边的数目,并将所述节点的数目超过第一设定阈值且所述边的数目超过第二设定阈值的社区作为目标社区;

所述伪造参数确定模块包括:

伪造参数确定子模块,用于将位于所述目标社区中的节点对应的接口请求参数作为伪造接口请求参数。

可选地,所述参数获取模块包括:

参数获取子模块,用于获取接口请求参数数据集,其中,所述接口请求参数数据集包括至少两个接口请求参数,且所述接口请求参数为字符串;

所述相似度确定模块包括:

最长子序列确定子模块,用于确定所述至少两个接口请求参数字符串两两之间的最长公共子序列;

相似度确定子模块,用于将所述最长公共子序列中包含的字符数作为所述接口请求参数两两之间的相似度。

可选地,所述社区聚类子模块包括:

初始标签指定单元,用于为所述关系图中的每个节点随机指定一个初始标签;

设定刷新单元,用于按照设定刷新规则逐轮刷新所有节点的标签,直到所有节点的标签不再变化为止;所述设定刷新规则包括:根据所述节点与邻接节点之间的边的权重,得到所述节点的标签;

社区确定单元,用于将具有相同标签的节点作为一个社区。

可选地,所述设定刷新单元包括:

第一刷新子单元,用于对于某一个节点,遍历所有与其连接的边的权重,选择权重最大的边对应的节点的标签,作为该节点刷新后得到的标签。

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

归一化模块,用于对所述相似度进行归一化处理,得到归一化的相似度。

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

矩阵构建模块,用于构建参数相似度矩阵,其中,将所述归一化的相似度作为所述矩阵中的元素;

量化处理模块,用于按照设定处理规则对所述相似度矩阵中的元素进行量化处理;其中,所述设定处理规则包括:若所述元素值大于等于第三设定阈值,将所述元素值置为m;若所述元素值小于所述第三设定阈值,则将所述元素值置为n。

可选地,所述关系图构建子模块包括:

关系图构建单元,用于根据所述相似度构建参数相似度关系图,所述关系图包括节点和连接所述节点的边;所述节点代表每个接口请求参数;所述关系图中每两个节点之间的边的权重,由所述边对应在所述相似度矩阵中的元素值决定,其中,若所述元素值为m,则对应的两个节点之间存在边;若所述元素值为n,则对应的两个节点之间不存在边;并且所述关系图中所有边的权重都是相同的。

可选地,所述设定刷新单元包括:

第二刷新子单元,用于每个节点选择与其有边连接的节点中出现次数最多的标签,作为该节点刷新后得到的标签;若所述出现次数最多的标签不止一个,则随机选择一个标签,作为该节点刷新后得到的标签。

本发明实施例还公开一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述伪造参数检测方法的步骤。

本发明实施例还公开一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述伪造参数检测方法的步骤。

与现有技术相比,本发明实施例具有如下优点:

在本发明实施例中,通过获取至少两个接口请求参数,确定所述至少两个接口请求参数两两之间的相似度,然后根据所述相似度对所述接口请求参数进行聚类,从所述聚类的结果中提取出目标类别,最终将位于所述目标类别中的接口请求参数作为伪造接口请求参数。因为伪造的接口请求参数一般会大批量出现,且两两之间具有高相似度,基于伪造接口请求参数的上述特性,本发明实施例对接口请求参数根据相似度进行聚类,使得相似度较高的接口请求参数被划分至同一个类别中;进一步的,从上述类别中再提取出接口请求参数的数量高于设定阈值的类别作为最终的目标类别,利用了伪造接口请求参数大批量出现的特点,剔除了少量的正常参数因为偶然的高相似度被聚类的可能性。本发明可以快速、准确地将伪造的接口请求参数识别出来,且能实现自动化、大范围的识别,节省了程序开销,提高了工作效率。

附图说明

图1是本发明实施例提供的伪造参数检测方法的流程图之一;

图2是本发明实施例提供的伪造参数检测方法的流程图之二;

图3是本发明实施例提供的伪造参数检测方法的流程图之三;

图4是本发明实施例提供的伪造参数检测装置的结构框图之一;

图5是本发明实施例提供的伪造参数检测装置的结构框图之二;

图6是本发明实施例提供的伪造参数检测装置的结构框图之三。

具体实施方式

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

参照图1,示出了本发明实施例提供的伪造参数检测方法的流程图之一,如图1所示,该方法可以包括:

步骤101、获取至少两个接口请求参数。

在本发明实施例中,所述接口指计算机系统中两个独立的部件进行信息交换的共享边界,该接口可以包括程序内部的接口,例如程序内部方法与方法之间,模块与模块之间的交互接口,还包括系统对外的接口,例如系统与用户之间交互的接口,各个不同系统之间交互的接口。在本发明实施例中的接口主要是指系统对外的接口。在用户或应用程序想要调用某一系统中的资源或信息时,需要发送请求参数给所述系统提供的接口,只有请求参数符合一定要求,才允许用户或应用程序调用系统中的数据。

在某种网络攻击方式中,攻击者可以以用户的名义伪造请求参数发送给系统中的接口,从而在未授权的情况下进行权限保护内的操作。然而,系统对于这种恶意请求并没有识别能力,所以,需要技术人员及时对伪造接口请求参数进行识别,从而防止恶意攻击行为。

攻击者在制作伪造接口请求参数时,往往使用同一台设备或者距离相近的几台设备,并且处于同一个或相近的网络环境下,这样,就会使生成的接口请求参数携带的设备id或网络ip等指标相同或类似,进而使请求参数两两之间的相似度较高。同时,因为伪造的接口请求参数一般都是大批量自动化生成,所以这些伪造的接口请求参数也具有大规模大批量聚集的特点。伪造接口请求参数自身的这些特点,为本发明方案提供了基于参数之间的相似度进行伪造参数检测的思路。

在本步骤中,首先,接口接收多个请求方发送的请求数据,该请求数据可以包括:发送方的id、token(令牌)、接口名称和请求参数等。然后,收集一段时间内接收到的请求数据,解析其中的请求参数,其中,多个请求方的接口请求参数通过所述接口请求参数中的id进行区分,也就是说,每个接口请求参数携带一个自身的id信息。

在本发明实施例中,需要至少获取两个接口请求参数,以便对所述至少两个接口请求参数按照设定方法进行检测。

步骤102、确定所述至少两个接口请求参数两两之间的相似度。

接口请求参数中包含的id信息包括:用户发送该接口请求参数所在的ip地址、使用的设备型号、版本等,以及请求内容的代码。基于接口请求参数的上述id信息,可以确定各接口请求参数两两之间的相似度。因为同一批伪造的接口请求参数在制作时往往是在同一个ip地址,使用同一台设备大批量自动化编写,所以同一批伪造的接口请求参数之间相似度会很大。

对相似度的检测,可以基于每个接口请求参数中具体包含的id信息,检测这些id信息两两之间的相似度,作为接口请求参数两两之间的相似度。

步骤103,根据所述相似度对所述至少两个接口请求参数进行聚类。

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。在本发明实施例中,根据参数之间的相似度,对所有的参数进行聚类。将两两之间相似度较高的参数划分至一个类别中,同时,位于同一个类别的参数之间比不在一在同一个类别的参数之间具有更高的相似度。

聚类算法在聚类分析中要求用户输入一定的参数,对于本发明实施例来说,输入的参数即为步骤102中得到的接口请求参数两两之间的相似度。在输入相似度数据之前,首先要处理“噪声”数据,即需要把孤立点、缺失或错误的数据进行处理。

聚类的方法很多,包括系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等,对于本方案来说,只要能实现基于相似度的接口请求参数聚类,本发明实施例对于聚类的方法不做具体限定。

步骤104,从所述聚类的结果中提取出目标类别;其中,位于所述目标类别中的接口请求参数的数量高于设定阈值。

在聚类形成的一个个类别中,考察每个类别中接口请求参数的数量。因为伪造接口请求参数往往自动化、大批量生成,所以在聚类过程中,大量的、相似度较高的伪造请求参数会被聚类同一个类别中,也就是说,请求参数数量较多的类别有更高的可能性是伪造接口请求参数。另外,可能有少量的正常参数因为偶然的高相似度被聚类,所以也需要获得每个类别中包含的请求参数的数量,根据请求参数数量去剔除这种正常参数形成的类别。

在本发明实施例中,需要根据经验确定出聚类的类别中包含接口请求参数数量的设定阈值,将数量高于设定阈值的类别作为目标类别。

步骤105,将位于所述目标类别中的接口请求参数作为伪造接口请求参数。

在本发明实施例中,通过步骤104提取出目标类别,位于目标类别中的接口请求参数之间具有高相似度,且接口请求参数的数量超过了设定阈值,使得位于目标类别中的参数具有了高相似度和大批量的特点,恰好符合伪造接口请求参数的特点,所以,可以将位于所述目标类别中的接口请求参数作为伪造接口请求参数。

综上所述,在本发明实施例中,通过获取至少两个接口请求参数,确定所述至少两个接口请求参数两两之间的相似度,然后根据所述相似度对所述接口请求参数进行聚类,从所述聚类的结果中提取出目标类别,最终将位于所述目标类别中的接口请求参数作为伪造接口请求参数。因为伪造的接口请求参数一般会大批量出现,且两两之间具有高相似度,基于伪造接口请求参数的上述特性,本发明实施例对接口请求参数根据相似度进行聚类,使得相似度较高的接口请求参数被划分至同一个类别中;进一步的,从上述类别中再提取出接口请求参数的数量高于设定阈值的类别作为最终的目标类别,利用了伪造接口请求参数大批量出现的特点,剔除了少量的正常参数因为偶然的高相似度被聚类的可能性。本发明可以快速、准确地将伪造的接口请求参数识别出来,且能实现自动化、大范围的识别,节省了程序开销,提高了工作效率。

参照图2,示出了本发明实施例提供的伪造参数检测方法的流程图之二,其是图1中的伪造参数检测方法的优选实施例,如图2所示,所述方法包括:

步骤201,获取接口请求参数数据集,其中,所述接口请求参数数据集包括至少两个接口请求参数,且所述接口请求参数为字符串。

在本发明实施例中,收集某一应用程序接口接收到的接口请求参数,将一段时间内的所有接口请求参数作为一个集合存储,即获得接口请求参数数据集。其中,位于所述接口请求参数数据集中的接口请求参数至少有两个,且所述接口请求参数是字符串的形式。

步骤202,确定所述至少两个接口请求参数字符串两两之间的最长公共子序列。

在本发明实施例中,一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列(longestcommonsubsequence,lcs)。例如,对于字符串“student”来说,su,sud,sudt等都是它的子序列。子序列可以是连续的也可以不连续出现,而公共子序列是指有两个字符串,如果包含共同的子序列,那么这个子序列就被称为公共子序列。如“student”和“shade”的公共子序列就有“s”或者“sd”或者“sde”等。而其中最长的子序列就是所谓的最长公共子序列。当然,最长公共子序列也许不止一个,比如:“abcbdab”和“bdcaba”,它们的lcs为“bcba”,“bcab”,“bdab”。

在本发明的任意两个接口请求参数的字符串序列中,确定一个序列,该序列在所述的两个字符串序列中都存在,且是两个字符串中所有子序列中最长的,则该序列就是所述的两个字符串的最长公共子序列。

步骤203,将所述最长公共子序列中包含的字符数作为所述接口请求参数两两之间的相似度。

在本发明实施例中,将所述最长公共子序列中的字符个数,作为所述接口请求参数两两之间的相似度。例如,若有三对接口请求参数字符串分别为“abcbd”、“bcbac”、“abcac”,则“abcbd”和“bcbac”之间的lcs为“bcb”,“abcbd”和“abcac”之间的lcs为“abc”,“bcbac”和“abcac”之间的lcs为“bcac”,进一步地,则“abcbd”和“bcbac”之间的相似度为3,“abcbd”和“abcac”之间的相似度为3,“bcbac”和“abcac”之间的相似度为4。。

步骤204、根据所述相似度构建参数值相似度关系图;其中,所述关系图包括节点和连接所述节点的边,所述节点代表每个接口请求参数,所述边的权重由位于所述边两端的两个节点的相似度决定。

在本发明实施例中,所述相似度关系图中包括节点和连接所述节点的边,节点由步骤201中获取到的接口请求参数组成,每个接口请求参数都携带有自身的id信息。

所述节点之间有边进行连接,其中边的权重可以用如下公式确定:

其中,dij表示任意两个节点的相似度,i,j表示关系图中相似度节点所在的行号和列号,σ为一种设定参数,e为自然常数,其值约为2.71828,由此可知,边的权重wij受控于dij。也就是说,所述边的权重由位于所述边两端的两个节点的相似度决定。其中,所述边两端的两个节点的相似度由步骤203得到。这样,就可以通过两个节点的相似度和设定的参数σ得到所述两个节点之间的边的权重wij。

步骤205、根据所述边的权重对所述关系图进行社区聚类。

在社交网络中,用户相当于每个节点,各个用户通过相互的关注关系构成了整个网络的结构,在这样的网络中,有些用户之间的连接较为紧密,有些用户之间的连接关系较为稀疏。其中,连接较为紧密的部分可以被看成一个社区,其内部的用户之间有较为紧密的连接,而在两个社区间的用户则相对连接较为稀疏,这便称为社区结构。

在本发明实施例中,所述相似度关系图即相当于社交网络,关系图中节点之间的边的权重即用户的关注关系,所述边的权重较高的节点,则连接较为紧密,所述边的权重较低的节点,则连接较为稀疏。根据节点之间的边的权重可以对所述关系图进行社区聚类,即将相互之间的边的权重较高的对应节点聚类到一个社区中去。

在社区聚类问题中,存在很多算法,如非重叠社区算法、基于谱分析的社区发现算法、基于标签传播的社区发现算法等,都可以对本发明实施例中的相似度关系图进行社区聚类,至于用哪个算法,本发明实施例不做具体限定。

可选地,所述根据所述边的权重对所述关系图进行社区聚类包括:

为所述关系图中的每个节点随机指定一个初始标签;

按照设定刷新规则逐轮刷新所有节点的标签,直到所有节点的标签不再变化为止;所述设定刷新规则包括:根据所述节点与邻接节点之间的边的权重,得到所述节点的标签;

将具有相同标签的节点作为一个社区。

在本发明实施例中,上述根据所述边的权重对所述关系图进行社区聚类的方法是一种社区聚类算法,通过节点之间的边传播标签,边的权重越大,表示两个节点越相似,那么标签越容易传播过去。其具体传播过程是:首先,为所述关系图中的每个节点随机指定一个初始标签。初始标签是完全随机的,与节点的表示意义或边没有任何关系;然后,按照设定刷新规则逐轮刷新所有节点的标签,直到所有节点的标签不再变化为止。所述设定刷新规则包括:由边的权重决定节点刷新后得到的标签。经过一轮轮刷新,一些节点的标签趋向相同,相同的标签数越来越多,呈现一种聚集效果,直到最终所有标签的值在刷新中不再变化,则标签传播过程结束;最终,将具有相同标签的节点作为一个社区。

可选地,所述设定刷新规则包括:

对于某一个节点,遍历所有与其连接的边的权重,选择权重最大的边对应的节点的标签,作为该节点刷新后得到的标签。

在本发明实施例中,按照上述设定刷新规则的原理(根据所述节点与邻接节点之间的边的权重,得到所述节点的标签),制定本条设定刷新规则的具体实施方法。该实施方法包括:节点首先选择与其连接的边中权重最大的边,然后将该条边对应的节点的标签,作为该节点刷新后得到的标签。该方法表明在标签传播中,节点始终选择与自身相似度最大的节点在标签上保持一致,这样,就保证了相似度较高的节点最终能取得相同的标签,从而被划分到同一个社区中。采用该种刷新规则可以使标签更为严格的按照边的权重去传播,最终得到的社区中的节点相似度更高。

步骤206,获取进行社区聚类后形成的每个社区中节点的数目及边的数目,并将所述节点的数目超过第一设定阈值且所述边的数目超过第二设定阈值的社区作为目标社区。

在本发明实施例中,被划入社区只是表明参数比较相似,但是正常的参数也可能会出现比较相似的情况,所以需要通过本步骤来排除参数数量较少的正常类别,防止误识别。

在聚类得到的若干个社区中,进一步分析各个社区中节点的数目及边的数目,当将所述节点的数目超过第一设定阈值且所述边的数目超过第二设定阈值时,该社区被认为是接口请求参数数量较高的社区,即目标社区。例如,当某个社区中节点数目超过第一设定阈值y并且边数超过第二设定阈值z时,该社区即被确定为目标社区。

步骤207、将位于所述目标社区中的节点对应的接口请求参数作为伪造接口请求参数。

在本发明实施例中,位于目标社区中的接口请求参数,因为边的数目和节点的数目超过了第一设定阈值组合,表明这些接口请求参数呈现了大范围、大批量的特征。因为伪造接口请求参数一般都是大批量自动化生成,而位于目标社区中的接口请求参数恰恰符合了这些特点,所以将位于所述目标社区中的节点对应的接口请求参数作为伪造接口请求参数。

综上所述,在本发明实施例中,通过获取接口请求参数数据集;确定所述至少两个接口请求参数字符串两两之间的最长公共子序列;将所述最长公共子序列中包含的字符数作为所述接口请求参数两两之间的相似度;根据所述相似度构建参数值相似度关系图;根据所述边的权重对所述关系图进行社区聚类;将所述节点的数目超过第一设定阈值且所述边的数目超过第二设定阈值的社区作为目标社区;将位于所述目标社区中的节点对应的接口请求参数作为伪造接口请求参数。上述方法基于各接口请求参数之间的相似度,对所述接口请求参数进行社区聚类,并将节点和边的数目较高的社区作为目标社区;因为伪造的接口请求参数一般都具有很高的相似度,所以进一步的可将位于目标社区里的接口请求参数,作为伪造的接口请求参数。本发明实施例能够巧妙利用伪造接口请求参数的特点,快速、准确地将伪造的接口请求参数识别出来,且能实现自动化、大范围的识别,节省了程序开销,提高了工作效率。

参照图3,示出了本发明实施例提供的伪造参数检测方法的流程图之三,该伪造参数检测方法是图1、图2中的伪造参数检测方法的优选实施例。如图3所示,该方法可以包括:

步骤301,获取接口请求参数数据集,其中,所述接口请求参数数据集包括至少两个接口请求参数,且所述接口请求参数为字符串。

步骤302,确定所述至少两个接口请求参数字符串两两之间的最长公共子序列;

步骤303,将所述最长公共子序列中包含的字符数作为所述接口请求参数两两之间的相似度。

在本发明实施例中,步骤301、步骤302、步骤303可以分别参照图2中的步骤201、步骤202、步骤203,此处不再赘述。

步骤304、对所述相似度进行归一化处理,得到归一化的相似度。

在本发明实施例中,可以通过对相似度进行归一化处理来简化计算。

例如,可以通过如下公式对所述相似度进行归一化处理:

例如,对于字符串一“abcbdab”和字符串二“bdcaba”,它们的lcs为“bcba”,“bcab”,“bdab”,从而得出公式中的lcs相似度值为4,另外,字符串一长度为7,字符串二长度为6,则经过计算,字符串一和字符串2的归一化相似度为0.6172。

通过归一化处理,可以将所有的相似度统一在0和1之间,能够简化计算,缩小量值。

步骤305、构建参数值相似度矩阵,其中,将所述归一化的相似度作为所述矩阵中的元素。

在本发明实施例中,将接口请求参数划分为两部分,分别作为矩阵的行向量和列向量,每一个行向量和每一个列向量交叉点处的元素,即为所述行向量和所述列向量代表的两个接口请求参数的相似度,这样,就以所有的接口请求参数两两之间的相似度组成了一个参数值相似度矩阵。

步骤306、按照设定处理规则对所述相似度矩阵中的元素进行量化处理;其中,所述设定处理规则包括:若所述元素值大于等于第三设定阈值,将所述元素值置为m;若所述元素值小于所述第三设定阈值,则将所述元素值置为n。

在本发明实施例中,对所述参数值相似度矩阵中的元素进行量化处理,所述处理规则即是根据元素与第三设定阈值的比较结果,对元素重新赋值,元素的大小代表了两个参数值的相似度,较大的元素被置为m,较小的被置为n。

例如,上述m可以取1,n可以取0,则在相似度矩阵中的元素最终统一被量化为了1或者0。

这种量化处理也是一种简化计算的方法,可以将不同的元素值最终变为两种取值。

步骤307、根据所述相似度构建参数值相似度关系图,所述关系图包括节点和连接所述节点的边;所述节点代表每个接口请求参数;所述关系图中每两个节点之间的边的权重由所述相似度矩阵中的元素值决定,其中,若所述元素值为m,则对应的两个节点之间存在边;若所述元素值为n,则对应的两个节点之间不存在边;并且所述关系图中所有的边的权重都是相同的。

在本发明实施例中,所述相似度关系图由节点和边组成,若两个节点对应在矩阵中的元素值为m,则这两个节点之间有连接的边;若两个节点对应在相似度矩阵中的元素值为n,则这两个节点之间没有边连接,即不存在连接关系。

经过这番处理,相似度关系图中仅保留了权重较高的边,削除了权重较低的边,使边的数目有了减少。并且,因为在步骤306中把所有的相似度都置为了相同的值m,所以,此处相似度关系图中的边的权重都是相同的。这样,就可以减少后续进行社区聚类时计算机的运算量,减小了系统开销。

步骤308、为所述关系图中的每个节点随机指定一个初始标签。

在本发明实施例中,步骤307可以参照图2中步骤205中的相关内容,此处不再赘述。

步骤309、按照设定刷新规则逐轮刷新所有节点的标签,直到所有节点的标签不再变化为止;所述设定刷新规则包括:每个节点选择与其有边连接的节点中出现次数最多的标签,作为该节点刷新后得到的标签;若所述出现次数最多的标签不止一个,则随机选择一个标签,作为该节点刷新后得到的标签。

在本发明实施例中,因为此处相似度关系图中的所有边的权重都是相同的,所以,此处可以对图2步骤205中的刷新规则进行改进。即:每个节点选择与其有边连接的节点中出现次数最多的标签,作为该节点刷新后得到的标签;若所述出现次数最多的标签不止一个,则随机选择一个标签,作为该节点刷新后得到的标签。

因为每个节点都选择了与其有边连接的节点中出现次数最多的标签,作为自己刷新后的标签,加快了标签向相同取值靠近的速度,进而提高了标签值收敛的速度;并且,每个节点只需要在与其有边连接的节点中选择自己刷新后的标签,而且因为边的权重都相同,不需要寻找权重最大的标签,这样,大大减少了程序的计算量和开销,是一种优化的方法。

步骤310、将具有相同标签的节点作为一个社区。

在本发明实施例中,步骤310可以参照图2中步骤205中的相关内容,此处不再赘述。

步骤311、获取进行社区聚类后形成的每个社区中节点的数目及边的数目,并将所述节点的数目超过第一设定阈值且所述边的数目超过第二设定阈值的社区作为目标社区。

步骤312、将位于所述目标社区中的节点对应的接口请求参数作为伪造接口请求参数。

在本发明实施例中,步骤311、步骤312可以分别参照图2中的步骤206、步骤207,此处不再赘述。

综上所述,在本发明实施例中,通过获取接口请求参数数据集;确定所述至少两个接口请求参数字符串两两之间的最长公共子序列;将所述最长公共子序列中包含的字符数作为所述接口请求参数两两之间的相似度;根据所述相似度构建参数值相似度关系图;根据所述边的权重对所述关系图进行社区聚类;将所述节点的数目超过第一设定阈值且所述边的数目超过第二设定阈值的社区作为目标社区;将位于所述目标社区中的节点对应的接口请求参数作为伪造接口请求参数。上述方法基于各接口请求参数之间的相似度,对所述接口请求参数进行社区聚类,并将节点和边的数目较高的社区作为目标社区;因为伪造的接口请求参数一般都具有很高的相似度,所以进一步的可将位于目标社区里的接口请求参数,作为伪造的接口请求参数。本发明实施例能够巧妙利用伪造接口请求参数的特点,快速、准确地将伪造的接口请求参数识别出来,且能实现自动化、大范围的识别,节省了程序开销,提高了工作效率。

此外,本发明实施例还对接口请求参数的相似度进行了归一化处理,并通过相似度矩阵对归一化的相似度进一步进行了量化处理,使相似度最终变成了统一的m和n两个数,从而减少了后续步骤的运算量;在相似度关系图中,将节点之间边的数量根据边的权重进行了削减,减掉了权重较小的边,这样,减轻了标签刷新过程中的运算量,提高了标签收敛的速度。

图4示出了本发明实施例提供的伪造参数检测装置的结构框图之一,如图4所示,所述伪造参数检测装置400包括:

参数获取模块401,用于获取至少两个接口请求参数;

相似度确定模块402,用于确定所述至少两个接口请求参数两两之间的相似度;

聚类模块403,用于根据所述相似度对所述至少两个接口请求参数进行聚类;

目标类别提取模块404,用于从所述聚类的结果中提取出目标类别;其中,位于所述目标类别中的接口请求参数的数量高于设定阈值;

伪造参数确定模块405,用于将位于所述目标类别中的接口请求参数作为伪造接口请求参数。

可选地,在图4的基础上,图5示出了本发明实施例提供的伪造参数检测装置的结构框图之二,如图5所示,所述伪造参数检测装置400包括:

所述参数获取模块401包括:

参数获取子模块4011,用于用于获取接口请求参数数据集,其中,所述接口请求参数数据集包括至少两个接口请求参数,且所述接口请求参数为字符串;

所述相似度确定模块402包括:

最长子序列确定子模块4021,用于确定所述至少两个接口请求参数字符串两两之间的最长公共子序列;

相似度确定子模块4022,用于将所述最长公共子序列中包含的字符数作为所述接口请求参数两两之间的相似度。

所述聚类模块403包括:

关系图构建子模块4031,用于根据所述相似度构建参数相似度关系图;其中,所述关系图包括节点和连接所述节点的边,所述节点代表每个接口请求参数,所述边的权重由位于所述边两端的两个节点的相似度决定;

社区聚类子模块4032,用于根据所述边的权重对所述关系图进行社区聚类。

所述目标类别提取模块404包括:

目标社区确定子模块4041,用于获取进行社区聚类后形成的每个社区中节点的数目及边的数目,并将所述节点的数目超过第一设定阈值且所述边的数目超过第二设定阈值的社区作为目标社区;

所述伪造参数确定模块405包括:

伪造参数确定子模块4051,用于将位于所述目标社区中的节点对应的接口请求参数作为伪造接口请求参数。

可选地,在图5的基础上,图6示出了本发明实施例提供的伪造参数检测装置的结构框图之三,如图6所示,所述伪造参数检测装置400包括:

归一化模块406,用于对所述相似度进行归一化处理,得到归一化的相似度。

矩阵构建模块407,用于构建参数相似度矩阵,其中,将所述归一化的相似度作为所述矩阵中的元素;

量化处理模块408,用于按照设定处理规则对所述相似度矩阵中的元素进行量化处理;其中,所述设定处理规则包括:若所述元素值大于等于第三设定阈值,将所述元素值置为m;若所述元素值小于所述第三设定阈值,则将所述元素值置为n。

所述关系图构建子模块4031包括:

关系图构建单元40311,用于根据所述相似度构建参数相似度关系图,所述关系图包括节点和连接所述节点的边;所述节点代表每个接口请求参数;所述关系图中每两个节点之间的边的权重,由所述边对应在所述相似度矩阵中的元素值决定,其中,若所述元素值为m,则对应的两个节点之间存在边;若所述元素值为n,则对应的两个节点之间不存在边;并且所述关系图中所有边的权重都是相同的。

所述社区聚类子模块4032包括:

初始标签指定单元40321,用于为所述关系图中的每个节点随机指定一个初始标签;

设定刷新单元40322,用于按照设定刷新规则逐轮刷新所有节点的标签,直到所有节点的标签不再变化为止;所述设定刷新规则包括:根据所述节点与邻接节点之间的边的权重,得到所述节点的标签;

社区确定单元40323,用于将具有相同标签的节点作为一个社区。

其中,所述设定刷新单元40322包括:

第二刷新子单元403221,用于每个节点选择与其有边连接的节点中出现次数最多的标签,作为该节点刷新后得到的标签;若所述出现次数最多的标签不止一个,则随机选择一个标签,作为该节点刷新后得到的标签。

上述图4、图5和图6中的伪造参数检测装置400分别能够实现如图1、图2和图3所示的方法实施例的各个过程,此处不再赘述。

综上所述,在本发明实施例中,通过获取至少两个接口请求参数,确定所述至少两个接口请求参数两两之间的相似度,然后根据所述相似度对所述接口请求参数进行聚类,从所述聚类的结果中提取出目标类别,最终将位于所述目标类别中的接口请求参数作为伪造接口请求参数。因为伪造的接口请求参数一般会大批量出现,且两两之间具有高相似度,基于伪造接口请求参数的上述特性,本发明实施例对接口请求参数根据相似度进行聚类,使得相似度较高的接口请求参数被划分至同一个类别中;进一步的,从上述类别中再提取出接口请求参数的数量高于设定阈值的类别作为最终的目标类别,利用了伪造接口请求参数大批量出现的特点,剔除了少量的正常参数因为偶然的高相似度被聚类的可能性。本发明可以快速、准确地将伪造的接口请求参数识别出来,且能实现自动化、大范围的识别,节省了程序开销,提高了工作效率。

本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述伪造参数检测方法实施例的各个过程。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述伪造参数检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

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