权限处理方法、装置、存储介质和电子设备转让专利

申请号 : CN202211264283.1

文献号 : CN115329316B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张黎刘维炜汤庆仕

申请人 : 闪捷信息科技有限公司

摘要 :

本申请提供了一种权限处理方法、装置、存储介质和电子设备,该方法包括:获取用于计算用户的权限的第二特征数据集;将所述第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇,每个簇对应一个权限等级;基于每个用户所属的簇确定对应用户的权限等级。本申请可以实现整个系统或应用内的用户的权限等级的自动识别。

权利要求 :

1.一种权限处理方法,其特征在于,包括:

获取用于计算用户的权限的第二特征数据集;

将所述第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇,每个簇对应一个权限等级;

基于所述每个用户所属的簇确定对应用户的权限等级,包括:根据所述第二特征数据集中的特定特征数据来确定所形成的簇的排序,根据所述排序确定每个簇表示的权限等级,根据所述每个簇表示的权限等级确定所述簇对应的用户的权限等级;

获取待检测的疑似越权行为数据,识别所述疑似越权行为数据对应的第二权限等级;

比较产生所述疑似越权行为数据的用户的第一权限等级和所述第二权限等级的高低;

当所述第一权限等级与所述第二权限等级相同时,对所述疑似越权行为数据开展水平越权漏洞检测,以识别所述疑似越权行为数据是否属于水平越权行为;

当所述第一权限等级与所述第二权限等级不相同时,对所述疑似越权行为数据开展垂直越权漏洞检测,以识别所述疑似越权行为数据是否属于垂直越权行为。

2.根据权利要求1所述的方法,其特征在于,在所述获取用于计算用户的权限的第二特征数据集之前,还包括:获取与用户的权限相关的第一特征数据集;

根据预设分类模型计算所述第一特征数据集中的每种类型的特征数据的置信度;

基于所述置信度筛选出达到重要性要求的第二特征数据集。

3.根据权利要求2所述的方法,其特征在于,所述预设分类模型包括全量特征随机森林训练模型和k‑fold交叉验证随机森林训练模型;

所述根据预设分类模型计算所述第一特征数据集中的每种类型的特征数据的置信度,包括:分别采用所述全量特征随机森林训练模型和所述k‑fold交叉验证随机森林训练模型对所述第一特征数据集中的每种类型的特征数据进行训练,得到所述每种类型的特征数据的置信度。

4.根据权 利要求3所述的 方法 ,其特征在于 ,根据置 信度计算公式 计算出所述每种类型的特征数据的置信度,kall表示全量特征训练时第i个特征的重要性值,ki表示每次交叉验证训练时第i个特征的重要性值。

5.根据权利要求1所述的方法,其特征在于,所述将所述第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇,包括:对所述第二特征数据集中的同一用户的每种类型的特征数据进行组合,生成与所述用户对应的组合特征数据;

将每个所述组合特征数据输入到所述权限等级预测聚类模型中,生成对应的用户权限等级体系,所述用户权限等级体系中划分出了对应数量的簇,每个组合特征数据对应的用户属于其中的一个簇。

6.根据权利要求5所述的方法,其特征在于,所述权限等级预测聚类模型为预设了聚类数量的模型,所述簇的数量为所述聚类数量,或所述权限等级预测聚类模型为未设置聚类数量的模型,所述簇的数量为基于所述第二特征数据集而计算出来的数量。

7.根据权利要求2所述的方法,其特征在于,所述获取与用户的权限相关的第一特征数据集,包括:从日志表中的数据中获取与用户的权限相关的字段,对每个字段进行特征计算,形成所述第一特征数据集。

8.一种权限处理装置,其特征在于,包括:

特征数据处理模块,用于获取用于计算用户的权限的第二特征数据集;

聚类模块,用于将所述第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇,每个簇对应一个权限等级;

权限等级确定模块,用于基于所述每个用户所属的簇确定对应用户的权限等级,还用于根据所述第二特征数据集中的特定特征数据来确定所形成的簇的排序,根据所述排序确定每个簇表示的权限等级,根据所述每个簇表示的权限等级确定所述簇对应的用户的权限等级;

越权处理模块,用于获取待检测的疑似越权行为数据,识别所述疑似越权行为数据对应的第二权限等级;比较产生所述疑似越权行为数据的用户的第一权限等级和所述第二权限等级的高低;当所述第一权限等级与所述第二权限等级相同时,对所述疑似越权行为数据开展水平越权漏洞检测,以识别所述疑似越权行为数据是否属于水平越权行为;当所述第一权限等级与所述第二权限等级不相同时,对所述疑似越权行为数据开展垂直越权漏洞检测,以识别所述疑似越权行为数据是否属于垂直越权行为。

9.一种计算机存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如权利要求1至7中任一项所述的方法。

10.一种电子设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至7中任一项所述的方法。

说明书 :

权限处理方法、装置、存储介质和电子设备

技术领域

[0001] 本申请涉及计算机技术领域,更具体地,涉及一种权限处理方法、装置、存储介质和电子设备。

背景技术

[0002] 在一些系统架构中,通常存在各种等级的用户会进行各种各样的行为。有些行为是越权行为,而有些行为是正常的行为,针对越权行为需要进行防止。但通常有些系统架构并未明确划分各个用户的权限等级,或者无法直接得到用户的权限等级,从而无法确认哪些用户的行为是越权行为,在不清楚用户的等级的情况下,对于用户的行为是否越权也难以进行判定。

发明内容

[0003] 有鉴于此,有必要提供一种权限处理方法、装置、存储介质和电子设备,以实现对系统内的用户的权限等级进行识别。
[0004] 本申请第一方面,提供了一种权限处理方法,包括:
[0005] 获取用于计算用户的权限的第二特征数据集;
[0006] 将所述第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇,每个簇对应一个权限等级;
[0007] 基于每个用户所属的簇确定对应用户的权限等级。
[0008] 在其中一个实施例中,在所述获取用于计算用户的权限的第二特征数据集之前,还包括:获取与用户的权限相关的第一特征数据集;
[0009] 根据预设分类模型计算所述第一特征数据集中的每种类型的特征数据的置信度;
[0010] 基于所述置信度筛选出达到重要性要求的第二特征数据集。
[0011] 在其中一个实施例中,所述预设分类模型包括全量特征随机森林训练模型和k‑fold交叉验证随机森林训练模型;
[0012] 所述根据预设分类模型计算所述第一特征数据集中的每种类型的特征数据的置信度,包括:分别采用所述全量特征随机森林训练模型和k‑fold交叉验证随机森林训练模型对所述第一特征数据集中的每种类型的特征数据进行训练,得到所述每种类型的特征数据的置信度。
[0013] 在其中一个实施例中,根据置信度计算公式 计算出每种类型的特征数据的置信度,kall表示全量特征训练时第i个特征的重要性值,ki表示每次交叉验证训练时第i个特征的重要性值。
[0014] 在其中一个实施例中,所述将所述第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇,包括:对所述第二特征数据集中的同一用户的每种类型的特征数据进行组合,生成与所述用户对应的组合特征数据;将每个组合特征数据输入到所述权限等级预测聚类模型中,生成对应的用户权限等级体系,所述用户权限等级体系中划分出了对应数量的簇,每个组合特征数据对应的用户属于其中的一个簇。
[0015] 在其中一个实施例中,所述权限等级预测聚类模型为预设了聚类数量的模型,所述簇的数量为所述聚类数量,或
[0016] 所述权限等级预测聚类模型为未设置聚类数量的模型,所述簇的数量为基于所述第二特征数据集而计算出来的数量。
[0017] 在其中一个实施例中,所述获取与用户的权限相关的第一特征数据集,包括:从日志表中的数据中获取待与用户的权限相关的字段,对每个字段进行特征计算,形成所述第一特征数据集。
[0018] 在其中一个实施例中,所述基于每个用户所属的簇确定对应用户的权限等级,包括:根据所述第二特征数据集中的特定特征数据来确定所形成的簇的排序,根据所述排序确定每个簇表示的权限等级,根据所述每个簇表示的权限等级确定所述簇对应的用户的权限等级。
[0019] 在其中一个实施例中,所述方法还包括:
[0020] 获取待检测的疑似越权行为数据,所述越权行为数据中包括越权用户和被越权用户识别所述疑似越权行为数据对应的第二权限等级;
[0021] 比较产生所述疑似越权行为数据的越权用户的第一权限等级和所述被越权用户的第二权限等级的高低;
[0022] 当所述第一权限等级与所述第二权限等级相同时,对所述疑似越权行为数据开展水平越权漏洞检测,以识别所述疑似越权行为数据是否属于水平越权行为;
[0023] 当所述第一权限等级与所述第二权限等级不相同时,对所述疑似越权行为数据开展垂直越权漏洞检测,以识别所述疑似越权行为数据是否属于垂直越权行为。
[0024] 本申请第二方面,提供了一种权限处理装置,包括:
[0025] 特征数据处理模块,用于获取用于计算用户的权限的第二特征数据集;
[0026] 聚类模块,用于将所述第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇,每个簇对应一个权限等级;
[0027] 权限等级确定模块,用于基于每个用户所属的簇确定对应用户的权限等级。
[0028] 本申请第三方面,提供了一种计算机存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如本申请任意实施例中所述的方法。
[0029] 本申请第四方面,提供了一种电子设备,包括:
[0030] 一个或多个处理器;
[0031] 存储器,用于存储一个或多个程序,
[0032] 其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如本申请任意实施例中所述的方法。
[0033] 上述的权限处理方法、装置、存储介质和电子设备,通过设置权限等级预测聚类模型,并根据可以体现出用户的权限信息的特征数据作为该聚类模型的数据,通过运行聚类模型,可以形成一定数量的聚类或簇,具有相同权限等级的用户可被划分到相同的簇内,基于此,可以根据各个用户所在的簇来确定对应用户的权限等级,实现了对于整个系统或应用内的用户的权限等级的自动识别。

附图说明

[0034] 图1为一个实施例中权限处理方法的流程图;
[0035] 图2为另一个实施例中权限处理方法的流程图;
[0036] 图3为一个实施例中针对越权行为的处理过程的流程图;
[0037] 图4为又一个实施例中权限处理方法的流程图;
[0038] 图5为一个实施例中权限处理装置的结构框图;
[0039] 图6为另一个实施例中权限处理装置的结构框图;
[0040] 图7为又一个实施例中电子设备的结构示意图。

具体实施方式

[0041] 以下,将参照附图来描述本申请的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本申请的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本申请的概念。
[0042] 在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本申请。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0043] 另外,本文中尽管多次采用术语“第一”、“第二”等来描述各种元件(或各种阈值或各种应用或各种指令或各种操作)等,不过这些元件(或阈值或应用或指令或操作)不应受这些术语的限制。这些术语只是用于区分一个元件(或阈值或应用或指令或操作)和另一个元件(或阈值或应用或指令或操作)。例如,第一特征数据集可以被称为第二特征数据集,第二特征数据集也可以被称为第一特征数据集,而不脱离本申请的范围,第一特征数据集和第二特征数据集二者并不是相同的特征数据集而已。
[0044] 在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0045] 在一个实施例中,提出了一种权限处理方法,结合图1所示,该方法包括:
[0046] 步骤102,获取用于计算用户的权限的第二特征数据集。
[0047] 本实施例中,第二特征数据集为用于计算用户权限等级的特征数据的集合。第二特征数据集中的特征数据可为预先确定下来的需要用于计算用户的权限的特征数据,还可以是基于一定的条件,从众多的特征数据中进行筛选过滤,经过筛选过滤之后所保留下来的特征数据。
[0048] 特征数据具有多种类型,每种类型的特征数据可以从一个或多个维度体现出用户的权限等级。特征数据的类型可包括接口类型、用户行为类型、url链接类型等等。此外,特征数据的格式可包括数值型、向量型和数组型的格式。不同类型的特征数据的数据格式可以相同或者不同。比如接口类型、用户行为类型的特征数据的格式为向量型,url链接类型的特征数据的格式为数值型等等。
[0049] 电子设备可以获取所确定的用于计算用户权限等级的特征数据,形成第二特征数据集。特征数据之间还可以进行组合,通过将多个特征数据之间进行数学运算或逻辑运算,可以将多个特征数据组合成一个或多个新的特征数据,记其为组合特征数据。比如可以将一个或多个数值型的特征数据与一个或多个向量型的特征数据进行相乘运算来进行组合,或者可以将多个数值型的特征数据之间进行加减乘除等运算来进行组合。
[0050] 步骤104,将第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇。
[0051] 本实施例中,每个簇对应一个权限等级。权限等级预测聚类模型可为任意合适的聚类模型,其可以为预先设定了聚类数量的模型,也可以为未设置聚类数量的模型。比如可为基于密度聚类的算法、模糊聚类算法、层次聚类算法、划分聚类算法等,比如k‑means聚类模型、DBSCAN算法、EM算法等等。
[0052] 通过聚类算法,可以将第二特征集中的每个特征形成一个或多个聚类,每个聚类可以称为一簇,每个簇可以对应一个权限等级。其中,所形成的簇的数量可以预先设定,也可以根据第二特征数据集的情况自动确定。比如所形成的簇的数量为10,则说明该系统中的用户被划分为了10个权限等级,每个簇为对应其中一个权限等级。
[0053] 在一个实施例中,电子设备可以将每个用户的各种类型的特征数据进行组合,形成一个组合特征数据,并将组合特征数据作为聚类模型的数据并进行运算,得到每个组合特征数据所属的簇,将该组合特征数据所属的簇作为对应的用户所属的簇。
[0054] 步骤106,基于每个用户所属的簇确定对应用户的权限等级。
[0055] 本实施例中,处于同一个簇中的用户说明其具有相同等级的权限。电子设备可以根据预先确定或识别标注出来的部分用户的权限等级来确定每个簇对应的权限等级。比如每个簇中均存在一个或多个已知权限高低的用户,通过将这些用户的权限高低进行比较,则可以确定出每个簇对应的权限的高低。
[0056] 电子设备可以基于各个簇中的用户的特征,自动确定每个簇对应的权限等级。和/或由用户设置其中一个或几个簇中的用户的权限等级,基于所设置的高低来确定每个簇对应的权限等级。
[0057] 举例来说,当划分出来了各个用户所属的簇之后,存在用户A处于簇a内,用户B处于簇b内,电子设备可以自动识别出用户A的权限等级高于用户B的权限等级,则可以基于此确定出簇a对应的权限等级高于簇b对应的权限等级,即属于簇a中的用户的权限等级要高于属于簇b中的用户的权限等级。
[0058] 在一个实施例中,步骤106包括:确定所形成的簇的排序,根据排序确定每个簇表示的权限等级,根据每个簇表示的权限等级确定簇对应的用户的权限等级。
[0059] 具体的,根据第二特征数据集中的特定特征数据来确定所形成的簇的排序,从而使得根据聚类模型所划分出来的簇形成排序,基于该排序可以知道每个簇的排名。该排序对应权限等级的排名,排序可为正序或倒序。比如排名在第一的簇可对应最高等级的权限,排名在最后的簇对应等级最低的权限。反之,也可以是排名在第一的簇对应等级最低的权限,排名在最后的簇对应等级最高的权限。
[0060] 其中,该特定特征数据可为从多种类型的特征数据中筛选出来的一种或几种可以体现出权限等级高低的特征数据。举例来说,对于用户行为类型种类的特征数据,一般而言,权限等级越高,其可以操作的行为的类型越多,因此,行为类型的大小可以一定程度上反映出权限等级的高低,故可以将行为类型作为上述的特定特征数据。则电子设备可以针对处于不同的簇内的用户的特定特征数据进行比较,基于比较结果来确定各个簇的排序。
[0061] 比如针对每个簇,可以将同一个簇内的用户的特定特征数据进行数学运算,得到相应的运算结果。再将各个簇对应的运算结果进行比较,根据比较结果来确定簇的排序。比如该数学运算可为求平均运算,得到对应的平均值,再将各个簇对应的平均值进行大小比较,根据大小比较结果来确定簇的排序,比如将排序最大的平均值的簇作为第一个簇,第i大的平均值的簇作为第i的簇,这样,可以实现了对簇的排序。
[0062] 如上述的举例说明,当确定了簇之间的排序后,基于簇a和簇b在簇中的排序结果,可以确定各个簇的权限等级高低。比如根据所确定的排序,簇a排序位于簇b之后,则说明该排序顺序是按照权限等级从低到高进行的排序,即逆序排序;若簇a排序位于簇b之前,则说明该排序顺序是按照权限等级从高到低进行的排序,即正序排序。
[0063] 若无法自动识别用户的权限等级高低,则可以接收使用者的操作,基于该操作确定用户A和用户B之间的权限等级的高低。比如使用者可以确定用户A的权限等级高于用户B的权限等级,则电子设备基于所接收到的使用者的操作来确定出用户A与用户B之间的权限等级的高低,进而可以根据该两个用户的权限等级的高低以及各个簇的排序来确定所有簇对应的权限等级。
[0064] 再举例来说,比如划分了10个簇,并确定了10个簇的排序顺序依次为簇1、簇2、簇3……簇10,当电子设备能够主动识别每个簇对应的权限等级高低时,可以基于该自动识别的结果确定每个簇对应的权限等级,比如可以将簇1对应最高等级的权限,将簇2对应为第二高等级的权限……将簇10作为第10高等级的权限。如果无法自动识别各个簇的对应的权限等级,则可以根据用户来设定。比如用户获知用户C的权限等级高于用户D的权限等级,而聚类结果显示用户C处于簇3中,用户D处于簇8中,则可以知道上述的簇的顺序对应权限等级从高到低的排序,故可以同样确认簇1对应最高等级的权限,将簇2对应为第二高等级的权限……将簇10作为第10高等级的权限。
[0065] 本实施例中的权限处理方法,通过设置权限等级预测聚类模型,并根据可以体现出用户的权限信息的特征数据作为该聚类模型的数据,通过运行聚类模型,可以形成一定数量的聚类或簇,具有相同权限等级的用户可被划分到相同的簇内,基于此,可以根据各个用户所在的簇来确定对应用户的权限等级,实现了对于整个系统或应用内的用户的权限等级的自动识别。
[0066] 在一个实施例中,提供了另一种权限处理方法,结合图2所示,该方法包括:
[0067] 步骤202,获取与用户的权限相关的第一特征数据集。
[0068] 本实施例中,特征数据是能够体现出用户的行为和/或权限的数据,该数据可为根据采集到的用户的行为数据进行处理之后而形成的数据。这些行为数据可以体现出对应的而用户在什么时间对什么对象进行了什么访问,该对象可为应用或用户等,访问可包括查找、删除等。
[0069] 其中,每个用户对应的一次或多次行为操作而记录的行为数据可为一份或多份特征数据。也就是说,一个用户的特征数据可具有一份或多份,比如包括100份、1000份等。同样地,而数据库中记录的产生行为数据的用户的数量也具有多个,比如有100个、200个、1000个等任意可能的用户数量。电子设备可从其中选取部分用户作为待分析用户,也可以将所有的用户都作为待分析用户。第一特征数据集可为每个待分析用户对应的特征数据的集合。
[0070] 电子设备可根据用户的操作或者预先设置的规则,从数据库中选取预设时间段内的符合要求的用户的行为数据来生成对应的特征数据,并将所形成的对应的多个特征数据作为第一特征数据集。
[0071] 在一个实施例中,用户的行为数据可以体现出用户的一种行为或多种行为,比如上述的访问行为或查找、删除行为等,对应生成的特征数据也可以是基于一种行为的一份或多份行为数据而生成的,同样可以体现出其中的一种或多种行为。不同类型的特征数据的数据格式可以不一定相同。电子设备可以尽可能多的收集多种行为数据,从而可以比较全面地进行用户权限识别。
[0072] 电子设备可以根据用户的行为数据进行特征计算,生成对应的特征数据。不同的行为数据所生成的特征数据并不相同。特征数据的格式可为数值型、向量型或数组型等其中的一种格式。
[0073] 在一个实施例中,步骤102包括:从日志表中的数据中获取与用户的权限相关的字段;对每个字段进行特征计算,形成第一特征数据集。
[0074] 其中,日志表中存储了多个用户的特征数据,用户的每次行为都在日志表中有一次对应的特征数据。该特征数据包含多个字段,比如时间字段、该用户所访问的用户的字段、访问的url链接字段、用户行为字段、接口字段等。对于其中可以体现出用户的一种或多种行为特征的字段,电子设备可以尽可能多的选取多种字段来体现出用户的行为,从而可以比较全面地进行用户权限识别。
[0075] 同一应用中不同权限的用户请求访问的url可能存在不同的分布;接口字段可以体现出接口类型,比如接口类型是下载接口、登录接口等;用户行为字段可以体现出用户所做的行为,比如查找、删除、修改等行为。
[0076] 电子设备可以根据特征数据中的一种或多种字段进行特征计算,形成对应的一种或多种特征数据。所选取的与用户权限相关的字段的数量同样也可以具有多个,比如所选取的字段和/或形成的特征数据的类型的数量可为10种,20种,33种、50种、100种等任意合适的数量。
[0077] 比如针对url链接字段,生成对应一种特征数据;针对接口字段,对应生成一种特征数据;针对用户行为字段,对应生成一种特征数据或多种特征数据,当为多种特征数据时,可以按照每种行为来对应生成一种字段,比如针对行为字段中识别出来的查找行为生成一种字段,针对删除行为又对应生成一种字段。电子设备还可以根据行为字段中所统计出来具体的行为种类来生成一种字段,该字段可为数值型字段,比如可为体现出对应用户在预设时间段内产生的行为种类的多少,还可以为向量型字段,该向量型字段中的每个元素可为体现出对应用户的一种行为的频率或占比等特征。一般而言,用户产生的行为类型越多,其权限等级会越高。
[0078] 举例来说,比如可以针对url字段进行特征计算,形成数值型的特征数据或向量型的特征数据。其中,该数值型的特征数据可为一个用户请求的url在他所有请求的url中的访问次数、访问频率或占比等,如果占比很高,说明此用户的请求内容范围比较窄,权限可能会比较低。该向量型的特征数据,可以使用word2vec等方法进行特征计算,将字符串转成一个向量,再进行后续的处理。
[0079] 步骤204,根据预设分类模型计算第一特征数据集中的每种类型的特征数据的置信度。
[0080] 本实施例中,置信度用于体现出对应类型的特征数据与用户权限相关的关联度,置信度越高,说明该类特征数据与权限等级的关联度越高,即越能体现出用户的权限等级。分类模型可为随机森林(random forest  ,简称RF)模型或一些树模型等分类模型。上述的第一特征数据集可作为该分类模型的总训练样本集,通过该模型对各个类型的特征数据进行计算,得到对应的置信度。
[0081] 该分类模型可为全量特征进行训练、k‑fold交叉验证模型等任意合适的一种或几种模型。比如采用全量特征训练,可以得到每种类型的特征数据的重要性值;类似地,采用k‑fold交叉验证模型训练,同样也可以得到每种类型的特征数据的重要性值。通过各种模型计算出来的重要性值可作为置信度,或者可以基于该重要性值对应计算出置信度。
[0082] 比如,针对上述的与url字段对应的类型的特征数据的置信度为95%,与接口字段对应的特征数据的置信度为85%,与时间字段对应的类型的特征数据的置信度为30%,与访问用户字段对应的特征数据的置信度为44%等。
[0083] 步骤206,基于置信度筛选出达到重要性要求的第二特征数据集。
[0084] 本实施例中,基于所计算出来的每种特征数据的置信度,从第一特征数据集中筛选达到重要性要求的特征数据出来,根据筛选出来的所有的特征数据形成第二特征数据集。
[0085] 其中,可以设置置信度阈值,对于置信度超过置信度阈值的特征数据,可以将其纳入第二特征数据集中。该置信度阈值可为设置的任意合适的数值,比如为70%或80%等。还可以设置特征数据的种类阈值,设该种类阈值为N,则可以将置信度排名在前N位种类的特征数据纳入到第二特征数据集中。其中,该N可为任意合适的数值,比如为3、5、10等。
[0086] 通过置信度进行特征数据筛选,可以排除掉一些与用户的权限相关度不高的特征数据,进而提高了用户权限计算的效率。
[0087] 步骤208,获取用于计算用户的权限的第二特征数据集。
[0088] 本实施例中,可以针对所有需要进行用户权限等级确认的数据,按照上述的步骤筛选出用户的特征数据,将其作为第二特征数据集。
[0089] 步骤210,将第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇。
[0090] 本实施例中,聚类模型所形成的聚类的簇中包含一个或多个用户,处于相同的簇中的用户可以认为具有相同的权限等级,每个簇对应一个权限等级。通过将第二特征数据集输入到聚类模型中进行运算,会形成多个聚类的簇,每个用户对应其中一个簇。
[0091] 在一个实施例中,聚类模型可为预先训练好的模型,其对应的簇还可为预先根据需要识别权限的大量的用户的特征数据而确定的簇,此种情况下,可以将需要识别权限等级的用户的特征数据输入到聚类模型中进行运算,可以自动将每个用户划分到其中已有的一个簇中,或者产生一个或多个新的簇,用于作为对应用户所属的簇。
[0092] 此时,可以只需要针对新的还没有进行过用户权限等级确认的用户进行聚类即可,无需对系统内所有的用户或者已经进行过权限等级确认的用户重新再进行一次聚类,降低了聚类运算的数据量。
[0093] 步骤212,基于每个用户所属的簇确定对应用户的权限等级。
[0094] 本实施例中,每个簇对应一个权限等级,可按照上述方式先确定形成的簇的排序顺序,在基于该排序确定处于该簇的内用的权限等级。
[0095] 对于新增的用户,其所属的簇已经预先确定了其对应的权限等级,则可以直接将该用户所属的簇对应的权限等级作为该用户的权限等级。
[0096] 上述的方法,通过对第一特征数据集中的数据进行置信度计算,基于该置信度来筛选出第二特征数据集,可以筛选去除掉达不到对于用户的权限相关度达不到重要性要求的特征数据,从而减少系统需要处理的特征数据的量,提高了用户权限等级计算的效率。
[0097] 在一个实施例中,预设分类模型包括全量特征随机森林训练模型和k‑fold交叉验证随机森林训练模型,步骤204包括:分别采用全量特征随机森林训练模型和k‑fold交叉验证随机森林训练模型对第一特征数据集中的每种类型的特征数据进行训练,得到每种类型的特征数据的置信度。
[0098] 具体的,分类模型可为两种训练模型的结合,通过结合两种训练模型分别独自对第一特征数据集中的各种类型的特征数据的训练结果,来得到每种类型的特征数据的置信度。
[0099] 其中,每种训练模型的训练结果可即为对应类型的特征数据的重要程度(即重要性值),可将每种模型所得到的同一种类型特征数据的重要程度的计算结果进行组合,形成对应类型的特征数据的置信度。该组合的方式可为加、减、乘、除等任意合适的数学运算。比如说针对某一种类的特征数据i,其采用k‑fold交叉验证随机森林训练模型得到的重要性值为ki,采用全量特征随机森林训练模型得到的重要性值为kall,则该特征数据i的置信度可为ki与kall的任意合适的数学运算的组合,比如可为该两个数值的平均值。进一步地,该组合除了包含特征数据i自身的两个重要性值之外,还可以考虑到其他类型的特征数据对应的重要性值。
[0100] 在一个实施例中,根据置信度计算公式 计算出每种类型的特征数据的置信度。
[0101] 其中,kall表示全量特征训练时第i个特征的重要性值,ki表示每次交叉验证训练时第i个特征的重要性值。本实施例中,总共存在k个种类的特征数据,电子设备可以计算出每个种类的两种重要性值,再按照上述对应的置信度公式来得到每个种类的置信度。基于该置信度来确定达到重要性要求的特征数据,形成第二特征数据集。
[0102] 本实施例中,通过上述的计算方式得到的置信度,可以更好地筛选出合适的特征数据作为第二特征数据。
[0103] 在一个实施例中,步骤104包括:对第二特征数据集中的同一用户的每种类型的特征数据进行组合,生成与用户对应的组合特征数据;将每个组合特征数据输入到权限等级预测聚类模型中,生成对应的用户权限等级体系,用户权限等级体系中划分出了对应数量的簇,每个组合特征数据对应的用户属于其中的一个簇。
[0104] 其中,各种类型的特征数据之间可以组合,形成一个或多个组合后的特征数据,即为组合特征数据。其中,组合方式可为任意合适的数学运算,相同格式或者不同格式的特征数据都可以进行相互组合。
[0105] 比如可以将数值型的特征数据之间进行相加或相乘等运算,将数值型、向量型或者数组型等不同类型的特征数据之间进行相乘,得到对应的组合特征数据。在一个实施例中,电子设备通过将多个特征数据之间进行数学运算组合,最终形成的组合特征数据可为一个,从而形成用户与组合特征一对一的关系,即每个用户具有对应的一个组合特征数据。
[0106] 电子设备可以将该组合特征数据作为对应模型的输入并进行运算,得到每个组合特征数据对应的聚类结果。
[0107] 在一个实施例中,聚类模型中的簇的数量可为预先设定的簇的数量,也可以为基于运算结果自动确认出来的簇的数量。即权限等级预测聚类模型为预设了聚类数量的模型,簇的数量为聚类数量,或权限等级预测聚类模型为未设置聚类数量的模型,簇的数量为基于第二特征数据集而计算出来的数量。
[0108] 本实施例中,若事先知道了系统中的权限等级的数量,则可以设置对应的簇的数量,使得根据聚类模型生成对应数量的簇,从而每个簇对应一个权限等级。若事先不知道对应的权限等级的数量,则可以采用DBSCAN算法模型等聚类模型,使得根据样本集合来自动确定簇的数量,从而将每个簇对应一个权限等级。上述方法中,根据不同的情况来选择不同类型的聚类模型,从而可以提高了权限等级划分的准确性。
[0109] 在一个实施例中,上述方法还包括针对越权行为的处理过程,该过程可在上述的步骤106或步骤212之后执行,如图3所示,包括
[0110] 步骤302,获取待检测的疑似越权行为数据。
[0111] 本实施例中,疑似越权行为数据为需要检测该行为是否属于越权行为的数据。疑似越权行为数据中包括产生疑似越权行为数据的用户的用户标识。用户标识可为上述的用户ID,用于唯一识别或标识对应的用户。
[0112] 当确定了用户的权限等级之后,可以检测出该行为数据需要的权限等级,在知道用户的权限等级和产生对应行为所需要的权限等级之后,则可以检测出对应用户的行为是否与其权限等级相符合,从而识别出不符合其权限的行为。其中,产生行为数据的行为所需要的权限等级记为第二权限等级,产生疑似越权行为数据的用户的权限等级记为第一权限等级。
[0113] 步骤304,比较产生疑似越权行为数据的用户的第一权限等级和第二权限等级的高低。
[0114] 越权行为分为同级别的越权行为和低级别用户向高级别用户的越权行为,较少地存在高级别的权限用户对低级别权限的用户进行越权的行为。同级别之间的越权行为为水平越权行为,不同级别之间的越权行为为垂直越权行为。电子设备可以比较第一权限等级和第二权限等级之间的高低,从而可以针对性地进行越权行为检测。
[0115] 步骤306,当第一权限等级与第二权限等级相同时,对越权行为数据开展水平越权漏洞检测,以识别疑似越权行为数据是否属于水平越权行为。
[0116] 步骤308,当第一权限等级与第二权限等级不相同时,对越权行为数据开展垂直越权漏洞检测,以识别疑似越权行为数据是否属于垂直越权行为。
[0117] 本实施例中,第一权限等级与第二权限等级不相同的结果包括第一权限等级高于第二权限等级,或者第一权限等级低于第二权限等级。电子设备针对不同的疑似越权行为开展了对应不同的检测方式,从而可以提高了权限漏洞检测的准确性,并便于后续针对权限漏洞进行处理。
[0118] 在一个实施例中,如图4所示,提供了又一种权限处理方法,该方法包括:
[0119] 步骤402,从日志表中的数据中获取与用户的权限相关的字段,对每个字段进行特征计算,形成第一特征数据集。
[0120] 本实施例中,日志表可为clickhouse日志表,记录了什么人在什么时间对某应用或用户等进行了一次什么访问,用户的一次行为在日志表中都有一次对应的数据记录。这些记录信息可通过存储的相应的字段来体现。
[0121] 该字段信息包括用户自身ID字段、产生该行为的时间的时间字段、该用户的访问用户的访问用户ID字段、访问的url链接字段、用户的具体行为的行为字段、接口字段等。电子设备可以尽可能多的选取多种字段来体现出用户的行为,从而可以比较全面地进行用户权限识别。
[0122] 针对每个用户选取出来的字段,电子设备可以进行特征计算,可以针对每个字段对应计算出一个特征数据,还可以针对一个字段或多个字段可以计算出一个或多个类型的特征数据。相同字段所计算出来的特征数据作为一个类型的特征数据,从而可以形成多个类型的特征数据。比如可以针对接口字段进行特征计算,形成一个接口类型的特征数据;针对url链接字段进行特征计算,形成对应的一种url链接类型的特征数据,或者形成两个甚至3种url链接类型的特征数据;或者还可以将接口字段和行为字段进行组合特征计算,形成一种新的类型的特征数据。电子设备对每个用户所形成的各种类型的特征数据,作为对应用户的一份特征数据,将多个用户所形成的每份特征数据进行集合,形成了对应的第一特征数据集。
[0123] 步骤404,分别采用全量特征随机森林训练模型和k‑fold交叉验证随机森林训练模型对第一特征数据集中的每种类型的特征数据进行训练,得到每种类型的特征数据的置信度。
[0124] 本实施例中,电子设备预设了两种随机森林训练模型来对第一特征数据进行训练,得到每种特征数据的置信度,该置信度可以体现出对应特征数据对于体现用户行为的重要性。
[0125] 具体地,可按照上述的置信度计算公式 计算出每种类型的特征数据的置信度,其中,kall表示全量特征训练时第i个特征的重要性值,ki表示每次交叉验证训练时第i个特征的重要性值。
[0126] 步骤406,基于置信度筛选出达到重要性要求的第二特征数据集。
[0127] 如上所述,针对计算出来的置信度,电子设备可以设置置信度阈值来筛选第二特征数据,也可以根据置信度排名,选取TOPn的特征数据作为第二特征数据。
[0128] 不同系统的日志表包含的字段可能不同,通过首先找到并使用和用户行权限等级可能相关的尽可能多的字段,从而确保字段筛选的全面性,后续再通过置信度进行字段筛选,以将相关性低字段的筛掉,从而仅保留最能体现出用户权限的相关的数据,以提高后续对用户权限等级计算的效率。
[0129] 步骤408,获取用于计算用户的权限的第二特征数据集。
[0130] 步骤410,对第二特征数据集中的同一用户的每种类型的特征数据进行组合,生成与用户对应的组合特征数据。
[0131] 本实施例中,针对每个用户所计算出来的多个类型的特征数据,可以进行组合,使得每个用户对应一个组合特征数据。其中,不同类型的特征数据可具有相同或不同的格式。电子设备可以采用任意合适的组合计算方式来进行特征数据组合,从而生成与该用户对应的组合特征数据。
[0132] 具体的,组合后得到的组合特征数据的格式可为一个向量。举例来说,如果所有的特征都是数值型,则可以将每个数值型的第二特征数据进行拼接,形成一个向量,则该组合特征数据中的每个维度对应一个特征。
[0133] 若多个类型的第二特征数据中既有数值又有向量,则可以进行拼接,也可以通过数学运算将数值与向量组合在一起。
[0134] 比如数值型的第二特征数据(记为常量c)与向量型的第二特征数据(记为向量a=[a1,a2,a3,...an] )进行相乘的结果为[a1*c, a2*c,a3*c,...],依然为向量,进行组合后的结果可为[a1,a2,a3,...an,c]或[c,a1,a2,a3,...an]等。
[0135] 通过将每个第二特征数据进行组合,使得所形成的一个组合特征数据可以体现出用户的多种行为特征,同时该组合特征作为后续预测聚类模型的输入,还可以降低预测聚类模型的计算量。
[0136] 步骤412,将每个组合特征数据输入到权限等级预测聚类模型中,生成对应的用户权限等级体系,用户权限等级体系中划分出了对应数量的簇,每个组合特征数据对应的用户属于其中的一个簇。
[0137] 具体地,可以以用户为最小粒度,应用DBSCAN算法模型,将组合特征数据作为模型输入,模型输出一套用户权限体系结构划分,分到同一簇中的组合特征数据对应的用户作为同一等级的用户。
[0138] 若采用随机森林训练进行特征选择时,训练的目标可以人为的设定一下,比如一个应用系统中的用户权限体系具体分多少级是不确定,至少来说是未知的,但往往有些用户账号的权限是非常明显的,比如admin、root等是高权限用户,可以人为选定一些权限等级分明的数据进行随机森林训练来选择特征。
[0139] 步骤414,根据第二特征数据集中的特定特征数据来确定所形成的簇的排序,根据排序确定每个簇表示的权限等级,根据每个簇表示的权限等级确定簇对应的用户的权限等级。
[0140] 在一个实施例中,特定特征数据可根据上述的置信度大小来确定,比如选取置信度最高的一个特征数据作为特定特征数据,还可以选取两个或多个特征度最高的特征数据来作为特定特征数据。置信度越高,则说明其越能体现出用户的权限,基于置信度的大小来选取特定特征数据,可以提高针对簇的排序的大小。
[0141] 针对选取出来的特定特征数据,可以计算处于同一个簇内的所有用户的特定特征数据的平均值,再比较各个簇的平均值的大小,基于该大小来确定簇的排序。比如上述的将第i大的平均值的簇作为排序第i的簇。
[0142] 根据形成的簇的排序可以确定用户权限等级的排序。但当没法确定权限等级的排序是正序还是逆序,比如是按照从高到低的正序排序,还是从低到高的逆序排序,则可以根据人为操作来确定是正序还是逆序。
[0143] 由于正序还是逆序对后续判断是否为垂直越权的检测至关重要,因为只有低权限用户越权到高权限用户才算是垂直越权行为,而高权限用户对低权限用户的行为往往都是正常行为。虽然使用了重要性最高的特征作为权限等级排序的依据,但是当聚类的结果与特征之间没有标准的相关性时,此处的相关性分析就是解决这一问题。
[0144] 由于在特征选择中使用随机森林模型训练时已经人为设定了等级分明的用户,故可以依此为依据,结合重要性最高的特征,来标定排序结果是正序还是逆序。
[0145] 上述的权限处理方法,首先通过从日志表中的字段来计算出用户的特征数据,进而在利用两种随机森林模型来进行特征数据筛选,从而筛选出最能体现出用户的行为的第二特征数据集,然后再对用户的每个第二特征数据进行组合,形成组合特征数据,并将其作为预测聚类模型的输入,使得最终可以输出每个用户对应的簇,从该簇中体现出用户对应的权限等级,从而可以准确而高效地确定每个用户的权限等级。
[0146] 在一个实施例中,提供了一种权限处理装置,如图5所示,该装置包括:
[0147] 特征数据处理模块502,用于获取用于计算用户的权限的第二特征数据集。
[0148] 聚类模块504,用于将第二特征数据集输入到权限等级预测聚类模型中进行运算,得到每个用户所属的簇,每个簇对应一个权限等级。
[0149] 权限等级确定模块506,用于基于每个用户所属的簇确定对应用户的权限等级。
[0150] 在一个实施例中,特征数据处理模块502还用于获取与用户的权限相关的第一特征数据集;根据预设分类模型计算第一特征数据集中的每种类型的特征数据的置信度;基于置信度筛选出达到重要性要求的第二特征数据集。
[0151] 在一个实施例中,预设分类模型包括全量特征随机森林训练模型和k‑fold交叉验证随机森林训练模型;
[0152] 特征数据处理模块502还用于分别采用全量特征随机森林训练模型和k‑fold交叉验证随机森林训练模型对第一特征数据集中的每种类型的特征数据进行训练,得到每种类型的特征数据的置信度。
[0153] 在一个实施例中,根据置信度计算公式 计算出每种类型的特征数据的置信度。
[0154] 在一个实施例中,聚类模块504还用于对第二特征数据集中的同一用户的每种类型的特征数据进行组合,生成与用户对应的组合特征数据;将每个组合特征数据输入到权限等级预测聚类模型中,生成对应的用户权限等级体系,用户权限等级体系中划分出了对应数量的簇,每个组合特征数据对应的用户属于其中的一个簇。
[0155] 在一个实施例中,权限等级预测聚类模型为预设了聚类数量的模型,簇的数量为聚类数量,或
[0156] 权限等级预测聚类模型为未设置聚类数量的模型,簇的数量为基于第二特征数据集而计算出来的数量。
[0157] 在一个实施例中,特征数据处理模块502还用于从日志表中的数据中获取与用户的权限相关的字段,对每个字段进行特征计算,形成第一特征数据集。
[0158] 在一个实施例中,权限等级确定模块506还用于根据第二特征数据集中的特定特征数据来确定所形成的簇的排序,根据排序确定每个簇表示的权限等级,根据每个簇表示的权限等级确定簇对应的用户的权限等级;
[0159] 在一个实施例中,提供了另一种权限处理装置,如图6所示,该装置还包括:
[0160] 越权处理模块508,用于获取待检测的疑似越权行为数据,识别疑似越权行为数据对应的第二权限等级;比较产生疑似越权行为数据的用户的第一权限等级和第二权限等级的高低;当第一权限等级与第二权限等级相同时,对疑似越权行为数据开展水平越权漏洞检测,以识别疑似越权行为数据是否属于水平越权行为;当第一权限等级与第二权限等级不相同时,对疑似越权行为数据开展垂直越权漏洞检测,以识别疑似越权行为数据是否属于垂直越权行为。
[0161] 在一个实施例中,提出了一种计算机存储介质,其上存储有计算机可执行指令,该指令被处理器执行时,使得处理器执行上述任意实施例中的方法的步骤,包括执行上述任意实施例中的权限处理方法的步骤。
[0162] 在一个实施例中,提供了一种在一个实施例中,提出了一种电子设备,该电子设备可为服务器。其包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述任意实施例中的权限处理方法的步骤。
[0163] 在一个实施例中,如图7所示,服务器800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有服务器800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
[0164] 以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
[0165] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read‑Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:
RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0166] 尽管已经描述了示例实施例,但是对于本领域技术人员来说显而易见的是,在不脱离本申请构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述示例实施例不是限制性的,而是说明性的。