异常操作行为检测方法、装置、设备及存储介质与流程

文档序号:30522892发布日期:2022-06-25 05:37阅读:133来源:国知局
异常操作行为检测方法、装置、设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种异常操作行为检测方法、装置、设备及存储介质。


背景技术:

2.在数据库中存储着大量敏感数据,为了防范敏感数据泄露,需要检测出数据库用户的异常操作行为。
3.目前数据库用户的异常操作行为检测方法主要为:根据已经发生过的操作异常或攻击设置操作指标及操作指标阈值,对操作指标对应操作的次数进行统计,计算同比及环比并与操作指标阈值进行比较,若同比、或环比异常,或操作的次数超过操作指标阈值,则确定该数据库用户存在异常操作行为。
4.但是由于在现有技术中人工设置操作指标及操作指标阈值,只能检测已经发生过的异常或攻击,对于潜在的危害大但是历史发生次数少的异常操作无法有效识别。


技术实现要素:

5.本技术提供一种异常操作行为检测方法、装置、设备及存储介质,用以解决只能检测已经发生过的异常或攻击,对于潜在的危害大但是历史发生次数少的异常操作无法有效识别的问题。
6.第一方面,本技术提供一种异常操作行为检测方法,包括:
7.采集第一时间范围内目标用户对数据库进行操作的第一原始日志;
8.根据所述第一原始日志中的结构化查询语句确定第一时间范围内各单位时间段的各类用户操作行为次数;
9.根据各单位时间段的各类用户操作行为次数确定各单位时间段的时间段异常分数;
10.采用有序加权平均算子对所述时间段异常分数进行有序加权算术平均,确定所述目标用户在第一时间范围内的数据异常分数;
11.根据所述数据异常分数确定所述目标用户是否存在异常操作行为。
12.可选的,所述根据所述第一原始日志中的结构化查询语句确定第一时间范围内各单位时间段的各类用户操作行为次数,包括:
13.获取预先构建的各预设关键字段与各类用户操作行为的对应关系;
14.将各单位时间段的包含预设关键字段的结构化查询语句的数量确定为对应的各单位时间段的各类用户操作行为次数。
15.可选地,所述根据各单位时间段的各类用户操作行为次数确定各单位时间段的时间段异常分数,包括:
16.将所述各单位时间段的各类用户操作行为次数分别代入对应的概率密度函数中,获得所述各单位时间段的各类用户操作行为的概率;
17.根据所述各单位时间段的各类用户操作行为的概率,采用加权平均法确定各单位时间段的时间段异常分数。
18.可选地,所述将所述各单位时间段的各类用户操作行为次数分别代入对应的概率密度函数中,获得所述各单位时间段的各类用户操作行为的概率之前,还包括:
19.采集第二时间范围内目标用户对数据库进行操作的第二原始日志;所述第二时间范围对应的时长大于所述第一时间范围对应的时长;
20.根据所述第二原始日志中的结构化查询语句构造各类用户操作行为的面板数据;所述面板数据包括时间粒度聚合统计后的用户操作行为次数;
21.将各类用户操作行为的面板数据代入核密度估计算法中,确定各单位时间段的各类用户操作行为对应的概率密度函数。
22.可选地,所述根据所述各单位时间段的各类用户操作行为的概率,采用加权平均法确定各单位时间段的时间段异常分数,包括:
23.根据换算算法将所述各单位时间段的各类用户操作行为的概率转换为各单位时间段的各类用户操作行为的异常分数;
24.对所述各单位时间段的各类用户操作行为的异常分数进行加权,确定各单位时间段的时间段异常分数;
25.所述换算算法为:
26.s
op,t
=(1-p
op,t
)*100
27.其中,s
op,t
为各单位时间段的各类用户操作行为的异常分数,p
op,t
为各单位时间段的各类用户操作行为的概率,op表示用户操作行为的类型,t表示单位时间段。
28.可选地,所述采用有序加权平均算子对所述时间段异常分数进行有序加权算术平均,确定所述目标用户在第一时间范围内的数据异常分数,包括:
29.按从大到小的顺序对所述时间段异常分数进行排序;
30.按等差数列生成时间段加权向量;所述时间段加权向量按从大到小的顺序排序;
31.根据排序后的时间段异常分数与所述时间段加权向量进行有序加权算术平均,将有序加权算术平均结果确定为所述目标用户在第一时间范围内的数据异常分数。
32.可选地,所述根据所述数据异常分数确定所述目标用户是否存在异常操作行为,包括:
33.判断所述数据异常分数是否大于预设分数阈值;
34.若确定所述数据异常分数大于预设分数阈值,则确定所述目标用户存在异常操作行为;
35.若确定所述数据异常分数小于或等于预设分数阈值,则确定所述目标用户不存在异常操作行为。
36.第二方面,本技术提供一种异常操作行为检测装置,包括:
37.日志采集模块,用于采集第一时间范围内目标用户对数据库进行操作的第一原始日志;
38.操作次数确定模块,用于根据所述第一原始日志中的结构化查询语句确定第一时间范围内各单位时间段的各类用户操作行为次数;
39.第一分数确定模块,用于根据各单位时间段的各类用户操作行为次数确定各单位
时间段的时间段异常分数;
40.第二分数确定模块,用于采用有序加权平均算子对所述时间段异常分数进行有序加权算术平均,确定所述目标用户在第一时间范围内的数据异常分数;
41.行为确定模块,用于根据所述数据异常分数确定所述目标用户是否存在异常操作行为。
42.第三方面,本技术提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器和收发器;
43.所述处理器,所述存储器及所述收发器之间电路互连;
44.所述存储器存储计算机执行指令;所述收发器用于收发数据;
45.所述处理器执行所述存储器存储的计算机执行指令,以实现上述所述的异常操作行为检测方法。
46.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述所述的异常操作行为检测方法。
47.本技术提供的异常操作行为检测方法、装置、设备及存储介质,采集第一时间范围内目标用户对数据库进行操作的第一原始日志;根据所述第一原始日志中的结构化查询语句确定第一时间范围内各单位时间段的各类用户操作行为次数;根据各单位时间段的各类用户操作行为次数确定各单位时间段的时间段异常分数;采用有序加权平均算子对所述时间段异常分数进行有序加权算术平均,确定所述目标用户在第一时间范围内的数据异常分数;根据所述数据异常分数确定所述目标用户是否存在异常操作行为。通过将反应目标用户操作行为的异常程度的各单位时间段的各类用户操作行为次数转换为数据异常分数,判断目标用户的数据异常分数是否异常,可以将不符合目标用户的操作习惯的操作行为确定为异常操作行为,就可以无需对海量的历史数据进行人工标注,并且能够在正负样本不平衡的情况下进行异常行为检测。进一步地,采用有序加权平均算子对所述时间段异常分数进行有序加权算术平均,可以放大异常的时间段异常分数对数据异常分数的作用,当某个时间段异常分数异常时,将直接导致目标用户整体的数据异常分数异常,从而能更加准确的检测异常操作行为。
附图说明
48.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
49.图1为本技术的一种网络架构示意图;
50.图2为本技术实施例一提供的异常操作行为检测方法流程图;
51.图3为本技术实施例二提供的异常操作行为检测方法流程图;
52.图4为本技术实施例三提供的异常操作行为检测方法流程图;
53.图5为本技术实施例三提供的查操作对应的面板数据示意图;
54.图6为本技术实施例四提供的异常操作行为检测装置的结构示意图;
55.图7为本技术实施例五提供的电子设备的结构示意图。
56.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图
和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
57.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
58.术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
59.由于在现有技术中操作指标及操作指标阈值是人工根据已经发生过的异常或攻击设置的,所以对于潜在的危害大但是历史发生次数少的异常操作无法有效识别,发明人在研究中发现,各单位时间段的各类用户操作行为次数可以反应目标用户的操作行为,将不符合目标用户的操作习惯的操作行为确定为异常操作行为,就可以无需对海量的历史数据进行人工标注,并且能够在正负样本不平衡的情况下进行异常行为检测。进一步地,将目标用户操作行为的异常程度转换为数据异常分数,通过判断目标用户的数据异常分数是否异常,就可以判断目标用户的操作行为是否符合目标用户的操作习惯。
60.图1为本技术的一种网络架构示意图,如图1所示,本技术提供的异常操作行为检测方法对应的网络架构中包括:数据库服务器1、电子设备2,异常操作行为检测装置位于电子设备中,数据库服务器1中存储有目标用户对数据库进行操作的第一原始日志,电子设备2可以从数据库服务器1中采集第一原始日志,根据第一原始日志确定各类用户操作行为次数,并根据各类用户操作行为次数通过加权的方式获得目标用户的数据异常分数,从而确定目标用户是否存在异常操作行为。
61.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
62.实施例一
63.图2为本技术实施例一提供的异常操作行为检测方法流程图,本技术实施例针对只能检测已经发生过的异常或攻击,对于潜在的危害大但是历史发生次数少的异常操作无法有效识别的问题,提供了异常操作行为检测方法。本实施例中的方法应用于异常操作行为检测装置,异常操作行为检测装置可以位于电子设备中。其中,电子设备可以为表示各种形式的数字计算机。诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。
64.如图2所示,该方法具体步骤如下:
65.s101、采集第一时间范围内目标用户对数据库进行操作的第一原始日志。
66.具体地,每间隔第一时间使用数据采集软件(如logstash工具)采集第一时间范围内的数据库原始日志,从数据库原始日志中获取包括目标用户的用户标识的第一原始日志,并保存到本地存储空间中。其中,数据库原始日志包括用户标识(user)、结构化查询语
句(sql_text)以及执行时间(execution_time)等字段。目标用户为具有数据库操作权限的用户。
67.s102、根据第一原始日志中的结构化查询语句确定第一时间范围内各单位时间段的各类用户操作行为次数。
68.具体地,对第一原始日志中的结构化查询语句进行分类,将各单位时间段的各类结构化查询语句的数量确定为对应的各单位时间段的各类用户操作行为次数。
69.本技术实施例对结构化查询语句的分类方式不做具体限定,例如可以将结构化查询语句按操作类型进行分类,或按数据表进行分类,或按操作数据表的敏感程度进行分类。可以通过结构化查询语句的上下文判断结构化查询语句的语义实现对结构化查询语句的分类,也可以通过识别结构化查询语句中的关键字段实现对结构化查询语句的分类。
70.s103、根据各单位时间段的各类用户操作行为次数确定各单位时间段的时间段异常分数。
71.其中,时间段异常分数表示各单位时间段用户操作行为异常程度,例如,时间段异常分数越高,则该单位时间段内用户操作行为越异常。
72.具体地,获取各单位时间段的各类用户操作行为次数与各单位时间段的各类用户操作行为的时段操作异常分数的对应关系,根据该对应关系确定各单位时间段的时段操作异常分数,对各单位时间段的时段操作异常分数进行加权求和,确定各单位时间段的时间段异常分数。示例性地,单位时间段t1的用户操作行为p1的时段操作异常分数为s
t1,p1
,单位时间段t1的用户操作行为p2的时段操作异常分数为s
t1,p2
,单位时间段t2的用户操作行为p1的时段操作异常分数为s
t2,p1
,单位时间段t2的用户操作行为p2的时段操作异常分数为s
t2,p2
,对s
t1,p1
、s
t1,p2
进行加权求和,确定单位时间段t1的时间段异常分数s
t1
,对s
t2,p1
、s
t2,p2
进行加权求和,确定单位时间段t2的时间段异常分数s
t2

73.其中,各单位时间段的各类用户操作行为次数与各单位时间段的各类用户操作行为异常分数的对应关系可以为预设算法,也可以为预设关系表等。时段操作异常分数表示各单位时间段各类用户操作行为的异常程度。
74.s104、采用有序加权平均算子对时间段异常分数进行有序加权算术平均,确定目标用户在第一时间范围内的数据异常分数。
75.其中,有序加权平均算子(英文全称为:ordered weighted averaging,简称owa)为对数据按大小重新排列并通过加权集结,加权集结的权重与数据没有关联,仅与数据排序后的位置有关。本技术实施例中,采用有序加权平均算子对时间段异常分数进行有序加权算术平均,可以放大异常的时间段异常分数对数据异常分数的作用。
76.具体的,获取时间段加权向量,并对时间段异常分数按大小进行排序,将排序后的时间段异常分数及时间段加权向量代入有序加权算术平均的公式中,将计算结果确定为目标用户在第一时间范围内的数据异常分数。其中,时间段加权向量可以根据经验预先设置,也可以按预先设置的规则及时间段异常分数的数量生成,有序加权算术平均算子的公式为:
77.78.本技术实施中,wj=(w1,w2,...,wn)是时间段加权向量,wj∈[0,1],j∈{1,2,...,n},∑wj=1,bj=(b1,b2,...,bn)为排序后的时间段异常分数,s
t
=(a1,a2,...,an)为获取的时间段异常分数,s为目标用户在第一时间范围内的数据异常分数。
[0079]
本技术实施例中,可以对时间段异常分数按从小到大的顺序排序,则获取的时间段加权向量也为从小到大的顺序排序;也可以对时间段异常分数按从大到小的顺序排序,则获取的时间段加权向量也为从大到小的顺序排序。
[0080]
可选地,本技术实施例中,也可以确定操作异常分数,采用有序加权平均算子对各类操作异常分数进行有序加权算术平均,确定目标用户在第一时间范围内的数据异常分数。其中,操作异常分数表示各类用户操作行为的异常程度。各类操作异常分数通过对各类用户操作行为的时段操作异常分数进行加权求和确定。示例性地,单位时间段t1的用户操作行为p1的时段操作异常分数为s
t1,p1
,单位时间段t1的用户操作行为p2的时段操作异常分数为s
t1,p2
,单位时间段t2的用户操作行为p1的时段操作异常分数为s
t2,p1
,单位时间段t2的用户操作行为p2的时段操作异常分数为s
t2,p2
,对s
t1,p1
、s
t2,p1
进行加权求和,确定用户操作行为p1的操作异常分数s
p1
,对s
t1,p2
、s
t2,p2
进行加权求和,确定用户操作行为p2的操作异常分数s
p2
;采用有序加权平均算子对s
p1
、s
p2
进行有序加权算术平均,确定目标用户在第一时间范围内的数据异常分数。
[0081]
s105、根据数据异常分数确定目标用户是否存在异常操作行为。
[0082]
本技术实施例中,数据异常分数可以表示目标用户在第一时间范围内对数据库进行操作的操作行为异常程度。示例性地,数据异常分数越高,目标用户在第一时间范围内对数据库进行操作的操作行为越异常,可以将数据异常分数与预设分数阈值做对比,将数据异常分数超过预设分数阈值的目标用户确定为存在异常操作行为的目标用户。
[0083]
本技术实施例中,采集第一时间范围内目标用户对数据库进行操作的第一原始日志;根据第一原始日志中的结构化查询语句确定第一时间范围内各单位时间段的各类用户操作行为次数;根据各单位时间段的各类用户操作行为次数确定各单位时间段的时间段异常分数;采用有序加权平均算子对时间段异常分数进行有序加权算术平均,确定目标用户在第一时间范围内的数据异常分数;根据数据异常分数确定目标用户是否存在异常操作行为。通过将反应目标用户操作行为的异常程度的各单位时间段的各类用户操作行为次数转换为数据异常分数,判断目标用户的数据异常分数是否异常,可以将不符合目标用户的操作习惯的操作行为确定为异常操作行为,就可以无需对海量的历史数据进行人工标注,并且能够在正负样本不平衡的情况下进行异常行为检测。进一步地,采用有序加权平均算子对时间段异常分数进行有序加权算术平均,可以放大异常的时间段异常分数对数据异常分数的作用,当某个时间段异常分数异常时,将直接导致目标用户整体的数据异常分数异常,从而能更加准确的检测异常操作行为。
[0084]
实施例二
[0085]
图3为本技术实施例二提供的异常操作行为检测方法流程图,本技术实施例结合一个具体的示例对本技术提供的异常操作行为检测方法进行详细的说明,如图3所示,该方法具体步骤如下:
[0086]
步骤s201、采集第一时间范围内目标用户对数据库进行操作的第一原始日志。
[0087]
本技术实施例中,采集第一原始日志的方式与步骤s101中类似,在此不再一一赘
述。
[0088]
示例性地,第一时间可以为1天,可以采集1天内的数据库原始日志,将数据库原始日志转换为表格型数据结构,例如,可以使用python的pandas库对原始日志数据按用户标识(user)、结构化查询语句(sql_text)以及执行时间(execution_time)进行解析,并将解析后的数据读取为dataframe格式。
[0089]
可选地,可以在将数据库原始日志转换为表格型数据结构之后,对数据库原始日志进行清洗,可以剔除无效数据。例如,删除带有空值的数据行,和/或删除执行时间等异常格式数据。
[0090]
可选地,在对数据库原始日志进行清洗之后,可以根据用户标识(user)字段获取包括目标用户的用户标识的第一原始日志。
[0091]
步骤s202、获取预先构建的各预设关键字段与各类用户操作行为的对应关系。
[0092]
本技术实施例中,从存储空间中获取预先构建的各预设关键字段与各类用户操作行为的对应关系。
[0093]
示例性地,用户操作行为可以包括:增操作、删操作、改操作、查操作及其他操作。可以预先设置增操作对应的预设关键字段为insert,删操作对应的预设关键字段为delete,改操作对应的预设关键字段为update,查操作对应的预设关键字段为select,其他操作对应的预设关键字段为空,并将各预设关键字段与各类用户操作行为在存储空间中进行关联存储。
[0094]
步骤s203、将各单位时间段的包含预设关键字段的结构化查询语句的数量确定为对应的各单位时间段的各类用户操作行为次数。
[0095]
具体地,可以判断结构化查询语句中是否包含预设关键字段,若包含预设关键字段则确定目标用户进行过一次对应的用户操作行为。可以统计包含预设关键字段的结构化查询语句的数量,根据各预设关键字段与各类用户操作行为的对应关系,确定对应的各类用户操作行为次数。
[0096]
示例性地,判断结构化查询语句中是否包含insert、delete、update、select,若不包含,则确定目标用户进行一次其他操作;若包含insert,则确定用户进行一次对应的增操作;若包含delete,则确定用户进行一次对应的删操作;若包含update,则确定用户进行一次对应的改操作;若包含select,则确定用户进行一次对应的查操作。
[0097]
步骤s204、将各单位时间段的各类用户操作行为次数分别代入对应的概率密度函数中,获得各单位时间段的各类用户操作行为的概率。
[0098]
其中,概率密度函数是描述各单位时间段的各类用户操作行为,在某个确定的取值点附近的可能性的函数。
[0099]
本技术实施例中,可以根据目标用户的历史操作数据使用核密度估计算法,确定各单位时间段的各类用户操作行为次数对应的概率密度函数;也可以采用正态分布密度函数,确定各单位时间段的各类用户操作行为次数对应的概率密度函数,本技术实施例对此不做具体限定。
[0100]
示例性地,第一时间范围可以为1天,单位时间可以为两小时,各单位时间段可以包括0点到2点、2点到4点、4点到6点、6点到8点、8点到10点、10点到12点、12点到14点、14点到16点、16点到18点、18点到20点、20点到22点、22点到24点,用户操作行为可以包括增操
作、删操作、改操作、查操作及其他操作,将一天内0点到2点目标用户进行增操作、删操作、改操作、查操作及其他操作的次数分别代入对应的概率密度函数中,可以分别获得一天内0点到2点的目标用户进行增操作、删操作、改操作、查操作及其他操作的概率,获得其他单位时间段的各类用户操作行为的概率的方式与上述方式类似,可以获得所12个单位时间段的5类用户操作行为的5*12个概率。
[0101]
步骤s205、根据各单位时间段的各类用户操作行为的概率,采用加权平均法确定各单位时间段的时间段异常分数。
[0102]
具体地,可以将各单位时间段的各类用户操作行为的概率转换为对应异常分数,对各单位时间段的各类用户操作行为的分数采用加权平均法确定各单位时间段的时间段异常分数。
[0103]
示例性地,各单位时间段的各类用户操作行为的概率越低,则转换的对应的异常分数越高,异常分数越高目标用户的操作行为越异常。
[0104]
本技术实施例中,确定各单位时间段的时间段异常分数的一种具体实现方式如下:
[0105]
步骤s2051、根据换算算法将各单位时间段的各类用户操作行为的概率转换为各单位时间段的各类用户操作行为的异常分数。
[0106]
换算算法为:
[0107]sop,t
=(1-p
op,t
)*100
[0108]
其中,s
op,t
为各单位时间段的各类用户操作行为的异常分数,p
op,t
为各单位时间段的各类用户操作行为的概率,op表示用户操作行为的类型,t表示单位时间段。
[0109]
示例性地,目标用户在10点到12点进行x次删操作,根据对应的概率密度函数获得在10点到12点进行x次删操作的概率p
d,10-12
为0.8,其中,d表示删操作,将p
d,10-12
=0.8代入上式可获得目标用户在0点到2点进行x次删操作的异常分数s
d,10-12
为20分。
[0110]
步骤s2052、对各单位时间段的各类用户操作行为的异常分数进行加权,确定各单位时间段的时间段异常分数。
[0111]
具体地,可以采用熵权法或其他方法确定各单位时间段的各类用户操作行为的操作权重;根据各单位时间段的各类用户操作行为的操作权重对各单位时间段的各类用户操作行为的异常分数进行加权求和,将加权求和结果确定为各单位时间段的时间段异常分数。
[0112]
本技术实施例中,对各单位时间段的各类用户操作行为的异常分数进行加权求和的计算公示如下:
[0113]st
=∑wi*s
op,t
[0114]
其中,s
t
为各单位时间段的时间段异常分数,wi为各单位时间段的各类用户操作行为的操作权重,wi的和为1。
[0115]
示例性地,用户操作行为包括增操作、删操作、改操作、查操作及其他操作,wi=(wi,wd,wu,ws,wo),其中,wi为增操作的权重、wd为删操作的权重、wu为删操作的权重、ws为查操作的权重、wo为其他操作的权重,可以获取预先设置的各类用户操作行为的操作权重,操作类型的潜在危害越大,对应的预先设置的操作权重越高。以第一时间范围为1天,单位时间为两小时为例,分别对12个单位时间段的各类用户操作行为的异常分数进行加权求和,
可以确定12个单位时间段的时间段异常分数:s
0-2
、s
2-4
、s
4-6
、s
6-8
、s
8-10
、s
10-12
、s
12-14
、s
14-16
、s
16-18
、s
18-20
、s
20-22
、s
22-24

[0116]
可选地,可以将各单位时间段的时间段异常分数与预先设置的时间段分数阈值进行比较,若一单位时间段的时间段异常分数超过预先设置的时间段分数阈值,则可以确认目标用户在第一时间范围内的该单位时间段存在异常操作行为。
[0117]
步骤s206、按从大到小的顺序对时间段异常分数进行排序。
[0118]
本技术实施例中,按时间段异常分数s
t
的数值从大到小对时间段异常分数s
t
排序,获得排序后的时间段异常分数bj=(b1,b2,...,bn),其中,bj为第j大的时间段异常分数s
t
,n为时间段异常分数的个数。本技术实施例对排序的实现方式不做具体限定。
[0119]
步骤s207、按等差数列生成时间段加权向量。
[0120]
其中,时间段加权向量按从大到小的顺序排序。
[0121]
具体地,可以获取预先设置的等差数列的首项数值a,并将首项数值a及时间段异常分数的个数n代入公式a*n+[n*(n-1)*d]/2=1中,求解公差d,从而可以获得公差为d,首项数值为a的等差数列,并将该等差数列按从大到小的顺序排序,将从大到小排序的等差数列确定为时间段加权向量。
[0122]
示例性地,时间段异常分数的个数n为12,预先设置的等差数列的首项数值a为0.001,获得的公差d为0.015,则按等差数列生成的从大到小排序的时间段加权向量为wj=(0.164,0.151,0.136,0.121,0.106,0.091,0.076,0.061,0.046,0.031,0.016,0.001)。
[0123]
步骤s208、根据排序后的时间段异常分数与时间段加权向量进行有序加权算术平均,将有序加权算术平均结果确定为目标用户在第一时间范围内的数据异常分数。
[0124]
本技术实施例中,进行有序加权算术平均确定目标用户在第一时间范围内的数据异常分数的方式与步骤s104中类似,在此不再一一赘述。
[0125]
本技术实施例中,通过对时间段异常分数进行排序,采用有序加权平均算子对时间段异常分数进行有序加权算术平均,可以放大异常的时间段异常分数对数据异常分数的作用,当某个时间段异常分数异常时,将直接导致目标用户整体的数据异常分数异常,从而能更加准确的检测异常操作行为。
[0126]
步骤s209、判断数据异常分数是否大于预设分数阈值。
[0127]
具体的,若数据异常分数小于或等于预设分数阈值,则执行步骤s210;若数据异常分数大于预设分数阈值,则执行步骤s211。
[0128]
本技术实施例中,对设置预设分数阈值的方式不做具体限定。示例性地,预设分数阈值可以根据一定时间范围内目标用户的数据异常分数的预设分位数确定,例如,预设分位数为90%分位数,一定时间范围内目标用户的数据异常分数90%分位数为y,则将y确定为预设分数阈值,并判断目标用户第一时间范围内数据异常分数是否大于y。
[0129]
步骤s210、若确定数据异常分数小于或等于预设分数阈值,则确定目标用户不存在异常操作行为。
[0130]
本技术实施例中,若数据异常分数小于或等于预设分数阈值,则目标用户在第一时间范围内的操作行为符合目标用户的行为习惯,目标用户不存在异常操作行为。
[0131]
步骤s211、若确定数据异常分数大于预设分数阈值,则确定目标用户存在异常操作行为。
[0132]
本技术实施例中,数据异常分数越高,目标用户在第一时间范围内的操作行为越异常,若数据异常分数大于预设分数阈值,则可以确定目标用户在第一时间范围内存在异常操作行为。
[0133]
可选地,若确定数据异常分数大于预设分数阈值,还可以确定排序后的时间段异常分数bj=(b1,b2,...,bn)中b1对应的单位时间段,及该单位时间段的各类用户操作行为的异常分数s
op,t
,从而可以确定目标用户进行异常操作行为的时间及异常操作行为类型。
[0134]
本技术实施例中,根据概率密度函数将各单位时间段的各类用户操作行为次数转换为数据异常分数,可以获得更准确反应目标用户行为异常程度的数据异常分数,进一步可以提高异常操作行为检测的准确率。通过对时间段异常分数进行排序,采用有序加权平均算子对时间段异常分数进行有序加权算术平均,可以放大异常的时间段异常分数对数据异常分数的作用,当某个时间段异常分数异常时,将直接导致目标用户整体的数据异常分数异常,从而能更加准确的检测异常操作行为。
[0135]
实施例三
[0136]
图4为本技术实施例三提供的异常操作行为检测方法流程图,在上述实施例二的基础上,本实施例涉及的是对步骤s204将各单位时间段的各类用户操作行为次数分别代入对应的概率密度函数中,获得各单位时间段的各类用户操作行为的概率之前,确定概率密度函数的具体过程。
[0137]
如图4所示,该方法具体步骤如下:
[0138]
步骤s301、采集第二时间范围内目标用户对数据库进行操作的第二原始日志。
[0139]
其中,第二时间范围对应的时长大于第一时间范围对应的时长。示例性地,第一时间范围为1天、第二时间范围可以为半个月或一个月,第一时间范围为一周、第二时间范围可以为三个月或半年。
[0140]
本技术实施例中,根据目标用户的第二原始日志为单独进行建模,能够实现对目标用户异常操作行为的个性化检测,提高异常操作行为检测结果的准确性。采集第二原始日志的方式与实施例一中类似,在此不再一一赘述。
[0141]
可选地,可以周期性地或定时地采集第二原始日志并更新概率密度函数;也可以响应于模型更新指令采集第二原始日志并更新概率密度函数。其中,模型更新指令可以通过提供的更新控件由操作人员手动触发,也可以在目标用户数据异常分数大于预设分数阈值的次数超过预设次数后自动触发,例如,预设次数可以为3次,第一时间范围可以为1天,若目标用户数据异常分数连续3天大于预设分数阈值,则触发模型更新指令,采集目标用户的第二原始日志并更新对应的概率密度函数。
[0142]
步骤s302、根据第二原始日志中的结构化查询语句构造各类用户操作行为的面板数据。
[0143]
其中,面板数据包括时间粒度聚合统计后的用户操作行为次数。面板数据包含时间与截面两个维度的数据。面板数据的纵向为时间维度,表示第二时间范围内所包含的以第一时间划分的时间段;面板数据的横向为截面数据,表示第一时间范围内、以单位时间段为时间粒度聚合统计后的各类用户操作行为次数。
[0144]
具体地,根据第一原始日志中的结构化查询语句确定第二时间范围以第一时间划分的时间段内,以单位时间段为时间粒度聚合统计后的各类用户操作行为次数,并分别各
类用户操作行为对应的面板数据
[0145]
示例性地,以用户操作行为包括增操作、删操作、改操作、查操作及其他操作为例,构造增操作、删操作、改操作、查操作及其他操作对应的五个面板数据。以增操作对应的面板数据pi为例,第一时间范围为1天,单位时间段为两小时,面板数据整体表现为一个矩阵,矩阵的任一元素pi(i,t)=x,分别代表该用户在历史上日期为i的那一天,在t单位时间段内共执行数据库增操作共计x次。图5为本技术实施例三提供的查操作对应的面板数据示意图,如图5所示,矩阵的第一行第二列的值289,即表示目标用户在2020-04-28日这天的2点到4点共执行了289次数据库的查操作。
[0146]
步骤s303、将各类用户操作行为的面板数据代入核密度估计算法中,确定各单位时间段的各类用户操作行为对应的概率密度函数。
[0147]
其中,核密度估计是一种用于估计随机变量未知概率密度函数的非参数检验方法。
[0148]
具体地,将各类用户操作行为的面板数据中单位时间段对应的一列数据确定为样本xi=(x1,x2,

,xn),将样本xi=(x1,x2,

,xn)代入核密度估计算法中,可以确定该面板数据对应用户操作行为类型在该单位时间段的概率密度函数fh(x)。其中,n为第二时间范围内,以第一时间划分的时间段个数,核密度估计算法为:
[0149][0150]
其中kh为核函数,是积分值为1的非负函数;h为带宽,是一个平滑参数,核密度估计算法可以简单地理解为将每个样本作为中心点对应的核函数的加权求和。
[0151]
可选地,核函数kh可以为高斯核函数,核函数kh为高斯核函数能够使估计的分布更加平滑。带宽h可以根据scott经验法则、silverman经验法则等确定,也可以使用python的超参自动搜索模块gridsearchcv对带宽h进行调优。
[0152]
本技术实施例中,将确定的核函数kh,带宽h,样本xi=(x1,x2,

,xn)代入核密度估计算法中,获得的fh(x)即可确定为样本对应的单位时间段的用户操作行为类型对应的概率密度函数。
[0153]
示例性地,将图5中第一列数据确定为样本xi=(x1,x2,

,x
14
),将该样本代入代入核密度估计算法中,获得的fh(x)为0点到2点目标用户进行增操作的概率密度函数。
[0154]
本技术实施例中,采用核密度估计算法确定概率密度函数,可以无需对数据的分布进行预先假设,可以直接根据第二时间范围内的第二原始日志无监督地训练得到更符合各单位时间段的各类用户操作行为次数概率密度分布规律的概率密度函数;进一步地根据采用核密度估计算法确定的概率密度函数将各单位时间段的各类用户操作行为次数转换为数据异常分数,可以提高异常操作行为检测的准确率。并且根据目标用户对数据库进行操作的第二原始日志以目标用户为维度确定概率密度函数,能够实现异常操作行为的个性化检测,提高异常检测结果的准确性。
[0155]
实施例四
[0156]
图6为本技术实施例四提供的异常操作行为检测装置的结构示意图。本技术实施例提供的异常操作行为检测装置可以执行异常操作行为检测方法实施例提供的处理流程。
如图6所示,该异常操作行为检测装置60包括:日志采集模块601,操作次数确定模块602,第一分数确定模块603、第二分数确定模块604及行为确定模块605。
[0157]
具体地,日志采集模块601,用于采集第一时间范围内目标用户对数据库进行操作的第一原始日志。
[0158]
操作次数确定模块602,用于根据第一原始日志中的结构化查询语句确定第一时间范围内各单位时间段的各类用户操作行为次数。
[0159]
第一分数确定模块603,用于根据各单位时间段的各类用户操作行为次数确定各单位时间段的时间段异常分数。
[0160]
第二分数确定模块604,用于采用有序加权平均算子对时间段异常分数进行有序加权算术平均,确定目标用户在第一时间范围内的数据异常分数。
[0161]
行为确定模块605,用于根据数据异常分数确定目标用户是否存在异常操作行为。
[0162]
本技术实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。
[0163]
可选地,操作次数确定模块602具体用于:获取预先构建的各预设关键字段与各类用户操作行为的对应关系;将各单位时间段的包含预设关键字段的结构化查询语句的数量确定为对应的各单位时间段的各类用户操作行为次数。
[0164]
可选地,第一分数确定模块603包括:概率确定单元、分数确定单元。概率确定单元用于:将各单位时间段的各类用户操作行为次数分别代入对应的概率密度函数中,获得各单位时间段的各类用户操作行为的概率;分数确定单元用于:根据各单位时间段的各类用户操作行为的概率,采用加权平均法确定各单位时间段的时间段异常分数。
[0165]
可选地,异常操作行为检测装置60还包括:函数确定模块。在概率确定单元将各单位时间段的各类用户操作行为次数分别代入对应的概率密度函数中,获得各单位时间段的各类用户操作行为的概率之前,函数确定模块用于:采集第二时间范围内目标用户对数据库进行操作的第二原始日志;第二时间范围对应的时长于第一时间范围对应的时长;根据第二原始日志中的结构化查询语句构造各类用户操作行为的面板数据;面板数据包括时间粒度聚合统计后的用户操作行为次数;将各类用户操作行为的面板数据代入核密度估计算法中,确定各单位时间段的各类用户操作行为对应的概率密度函数。
[0166]
可选地,分数确定单元具体用于:根据换算算法将各单位时间段的各类用户操作行为的概率转换为各单位时间段的各类用户操作行为的异常分数;对各单位时间段的各类用户操作行为的异常分数进行加权,确定各单位时间段的时间段异常分数;换算算法为:
[0167]sop,t
=(1-p
op,t
)*100
[0168]
其中,s
op,t
为各单位时间段的各类用户操作行为的异常分数,p
op,t
为各单位时间段的各类用户操作行为的概率,op表示用户操作行为的类型,t表示单位时间段。
[0169]
可选地,第二分数确定模块604具体用于:按从大到小的顺序对时间段异常分数进行排序;按等差数列生成时间段加权向量;时间段加权向量按从大到小的顺序排序;根据排序后的时间段异常分数与时间段加权向量进行有序加权算术平均,将有序加权算术平均结果确定为目标用户在第一时间范围内的数据异常分数。
[0170]
可选地,行为确定模块605具体用于:判断数据异常分数是否大于预设分数阈值;若确定数据异常分数大于预设分数阈值,则确定目标用户存在异常操作行为;若确定数据
异常分数小于或等于预设分数阈值,则确定目标用户不存在异常操作行为。
[0171]
本技术实施例提供的装置可以具体用于执行上述方法实施例,具体功能此处不再赘述。
[0172]
实施例五
[0173]
图7为本技术实施例五提供的电子设备的结构示意图。如图7所示,该电子设备70包括:处理器701、存储器702、收发器703、以及存储在存储器702上并可在处理器701上运行的计算机执行指令。
[0174]
其中,处理器701,存储器702及收发器703之间电路互连;收发器703用于收发数据;处理器701运行计算机执行指令时实现上述任一方法实施例提供的异常操作行为检测方法。
[0175]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时实现上述任一方法实施例提供的方法。
[0176]
本技术实施例还提供了一种计算机程序产品,程序产品包括:计算机执行指令,计算机执行指令存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机执行指令,至少一个处理器执行计算机执行指令使得电子设备执行上述任一方法实施例提供的方法。
[0177]
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0178]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
[0179]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1