发明内容
针对现有技术中的问题,本发明实施例提供一种用户异常行为识别方法、装置、设备和存储介质。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种用户异常行为识别方法,包括:
获取目标用户的用户行为基线;所述用户行为基线包括:所述目标用户在预设时间范围内各个第一时间段内发生的至少一种用户行为中各用户行为的行为数据;
若所述目标用户的当前行为的行为数据与所述用户行为基线中所述当前行为的行为数据的差异超过差异阈值,则根据所述用户行为基线,确定所述当前行为在所述当前行为发生时间对应的第二时间段发生的第一概率;其中,所述用户行为基线中所述当前行为的行为数据为所述当前行为在所述当前行为发生时间对应的第一时间段的行为数据;
若所述第一概率小于或等于第一概率阈值,则确定所述当前行为是异常行为。
进一步地,所述确定所述当前行为在所述当前行为发生时间对应的第二时间段发生的第一概率,包括:
根据所述用户行为基线,确定所述目标用户在所述预设时间范围内各个第二时间段内分别发生至少一种用户行为中各用户行为的第一概率;
根据所述目标用户在各个所述第二时间段内分别发生各所述用户行为的第一概率,确定所述当前行为在所述当前行为发生时间对应的第二时间段发生的第一概率。
进一步地,所述若所述第一概率小于或等于第一概率阈值,则确定所述当前行为是异常行为,包括:
在所述第一概率小于或等于第一概率阈值的情况下,确定所述目标用户所属的用户组在所述当前行为发生时间对应的第二时间段发生所述当前行为的第二概率;
若所述第二概率小于或等于第二概率阈值,则确定所述当前行为是异常行为。
进一步地,所述确定所述目标用户所属的用户组在所述当前行为发生时间对应的第二时间段发生所述当前行为的第二概率之前,还包括:
将多个用户通过聚类方式分为至少一个用户组;
根据所述多个用户的用户行为基线,分别确定各个所述用户组在所述预设时间范围内各个第二时间段发生至少一种用户行为中各用户行为的第二概率。
进一步地,所述确定所述目标用户所属的用户组在所述当前行为发生时间对应的第二时间段发生所述当前行为的第二概率,包括:
根据各个所述用户组在所述预设时间范围内各个第二时间段发生至少一种用户行为中各用户行为的第二概率,确定所述目标用户所属的用户组在所述当前行为发生时间对应的第二时间段发生所述当前行为的第二概率。
进一步地,所述第二时间段的时长小于所述第一时间段的时长。
第二方面,本发明实施例还提供了一种用户异常行为识别装置,包括:
获取模块,用于获取目标用户的用户行为基线;所述用户行为基线包括:所述目标用户在预设时间范围内各个第一时间段内发生的至少一种用户行为中各用户行为的行为数据;
处理模块,用于若所述目标用户的当前行为的行为数据与所述用户行为基线中所述当前行为的行为数据的差异超过差异阈值,则根据所述用户行为基线,确定所述当前行为在所述当前行为发生时间对应的第二时间段发生的第一概率;其中,所述用户行为基线中所述当前行为的行为数据为所述当前行为在所述当前行为发生时间对应的第一时间段的行为数据;
所述处理模块,还用于获取若所述第一概率小于或等于第一概率阈值,则确定所述当前行为是异常行为。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述用户异常行为识别方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述用户异常行为识别方法的步骤。
本发明实施例提供的用户异常行为识别方法、装置、设备和存储介质,若目标用户的当前行为的行为数据与用户行为基线中当前行为的行为数据的差异超过差异阈值,则根据用户行为基线,确定当前行为在当前行为发生时间对应的第二时间段发生的第一概率;若第一概率小于或等于第一概率阈值,则确定当前行为是异常行为,即结合了对比用户行为基线以及当前行为发生的历史概率,提高了异常行为识别的准确性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的方法可以应用于用户实体行为分析场景中,保证网络安全。
相关技术中,通过与用户个人的历史行为进行对比,检测是否为异常行为,但是由于用户的行为常常发生变化,对比当前的用户行为与行为基线中该用户行为对应的行为数据,如果两者的差异超出预设的阈值,则认为是异常行为,但是由于用户的行为常常发生变化,如果用户行为基线的时间段单位设置过小,则会产生大量误报;如果用户行为基线的时间段单位设置过大,则异常行为容易被淹没。因此,如何准确识别出用户的异常行为是本领域技术人员亟需解决的技术问题。
本发明实施例的用户异常行为识别方法,对比目标用户的当前行为的行为数据与用户行为基线中该当前行为对应的行为数据,如果两者的差异超出阈值,则进一步利用该当前行为在某一时间段发生的概率,确定是否为异常行为,即结合了对比用户行为基线以及行为发生的历史概率,能够更加准确的识别异常行为。
下面结合图1-图5以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1是本发明实施例提供的用户异常行为识别方法一实施例的流程示意图。如图1所示,本实施例提供的方法,包括:
步骤101、获取目标用户的用户行为基线;用户行为基线包括:目标用户在预设时间范围内各个第一时间段内发生的至少一种用户行为中各用户行为的行为数据。
具体的,对于某个用户来说,可以基于该用户的用户行为日志中该用户的行为信息,以第一时间段为时间单元生成该用户的用户行为基线。
用户行为基线包括:该目标用户在预设时间范围内各个第一时间段内发生的至少一种用户行为中各用户行为的行为数据。
可选地,行为数据包括以下至少一项:行为发生的数量、频率、使用流量;进一步,行为数据还可以包括各个用户行为的时间戳,即发生时间。
例如,采集一周内的用户行为日志,该用户的登录网站1的行为发生的总数量为100次,第一时间段的时长为一天,用户的登录网站1的行为在第一时间段1(星期一)内发生的数量为10次,频率为10%,在第一时间段2(星期二)内发生的数量为20次,频率为20%等等。
如图2所示,第一时间段的时长为4小时,图2表示了一天内各个第一时间段发生某一行为的数量。
步骤102、若目标用户的当前行为的行为数据与用户行为基线中当前行为的行为数据的差异超过差异阈值,则根据用户行为基线,确定当前行为在当前行为发生时间对应的第二时间段发生的第一概率。
其中,用户行为基线中当前行为的行为数据为当前行为在当前行为发生时间对应的第一时间段的行为数据。
具体的,在确定目标用户的当前行为是否为异常行为时,首先可以与该当前行为在该目标用户的用户行为基线中对应的行为数据进行比较,若与该用户行为基线中对应的行为数据差异较大,超过差异阈值,则说明该当前行为与该目标用户的该行为的历史行为数据的差异较大,该当前行为可能为异常行为,为了更准确的识别异常行为,需要进一步根据其他信息确定是否为异常行为。
其中,比较当前行为的行为数据与用户行为基线中的行为数据的差异,即比较该当前行为的行为数据,与用户行为基线中该当前行为在第一时间段的行为数据的差异,第一时间段包括当前行为发生时间。
例如,在本实施例中可以利用用户行为基线中该当前行为的行为数据,确定该当前行为在某一第二时间段发生的概率,进而可以确定该当前行为是否为异常行为。其中,第二时间段可以与第一时间段相同或不同。
其中,第二时间段包含该当前行为的发生时间。例如,当前行为发生的时间为上午8点55分,第二时间段可以是8点半-9点的时间段。
若该当前行为在某一第二时间段发生的概率较大,说明该当前行为不是异常行为,否则为异常行为。
可选地,行为数据可以包含多个维度的行为数据,例如用户行为发生的数量、用户行为发生的频率或使用的流量等。
若行为数据包括两个维度以上的数据,则在比较当前行为的行为数据与用户行为基线中该当前行为的行为数据的差异时,各个维度的行为数据分别进行比较,例如比较第一时间段内当前行为发生的数量,与用户行为基线中该当前行为发生的数量的差异a;比较第一时间段内当前行为发生的频率,与用户行为基线中该当前行为发生的频率的差异b;比较第一时间段内当前行为使用的流量,与用户行为基线中该当前行为使用的流量的差异c;若至少一个差异不满足差异阈值,则说明可能是异常行为,执行步骤102;或,若所有的差异均不满足差异阈值,则执行步骤102。
步骤103、若第一概率小于或等于第一概率阈值,则确定当前行为是异常行为。
具体的,若该当前行为发生的第一概率小于或等于第一概率阈值,则说明该当前行为不是该目标用户经常发生的行为,确定当前行为是异常行为。
例如,当前行为发生时间为8点45分,对应8点-9点的第二时间段,发生的第一概率为6%,小于第一概率阈值10%,则确定当前行为是异常行为。
本实施例的方法,若目标用户的当前行为的行为数据与用户行为基线中当前行为的行为数据的差异超过差异阈值,则根据用户行为基线,确定当前行为在当前行为发生时间对应的第二时间段发生的第一概率;若第一概率小于或等于第一概率阈值,则确定当前行为是异常行为,即结合了对比用户行为基线以及当前行为发生的历史概率,提高了异常行为识别的准确性。
可选地,为了更准确的识别出该当前行为是否为异常行为,第二时间段小于第一时间段。
具体的,为了更准确的识别出该当前行为是否为异常行为,如果第一时间段的时长过大,则会出现漏识别的情况,因此在确定该当前行为发生的概率时可以减小设置的第二时间段的长度。
在其他实施例中,第二时间段和第一时间段也可以相同,本申请实施例对此并不限定。
上述实施方式中,第二时间段小于第一时间段,即减小当前行为发生概率的时间粒度,可以减少异常行为的漏识别。
在一实施例中,步骤102中“确定当前行为在第二时间段发生的第一概率”具体可以通过如下步骤实现:
根据用户行为基线,确定目标用户在预设时间范围内各个第二时间段内分别发生至少一种用户行为中各用户行为的第一概率;
根据目标用户在各个第二时间段内分别发生各用户行为的第一概率,确定当前行为在当前行为发生时间对应第二时间段发生的第一概率。
具体的,在执行步骤102之前可以利用该目标用户的用户行为基线,确定出该目标用户在预设时间范围内的各个第二时间段内分别发生各种用户行为的第一概率。
首先把预设时间范围按照一定跨度划分为多个第二时间段,这个第二时间段可以是小时,或者15分钟为单位的时间段,或者其他任意时间跨度的时间段,比如,以小时为单位,把一天分为24个时间段,以时间段为X轴,概率为Y轴,利用该目标用户的用户行为基线中包括的各个用户行为的行为数据,确定该目标用户在各个第二时间段内发生各个用户行为的第一概率。例如,如图3所示,图3中表示了一种用户行为在各个第二时间段内发生的第一概率。
通过得到的每一种用户行为在各个第二时间段的第一概率,查找当前行为发生的时间对应的第二时间段,并确定当前行为在该第二时间段发生的第一概率。
例如,当前行为发生的时间为8点45分,对应8点-9点的时间段,发生的概率为36%。
可选地,可以基于核心概率密度估计(Kernel Density Estimation,KDE)算法,以及用户在预设时间范围内发生的至少一种用户行为的行为数据,得到每个用户在各个第二时间段发生各种用户行为的概率曲线。
上述实施方式中,可以预先根据用户行为基线,确定目标用户在预设时间范围内各个第二时间段内分别发生至少一种用户行为中各用户行为的第一概率;进而根据预先得到的该目标用户在各个第二时间段内分别发生各用户行为的第一概率,确定当前行为在当前行为发生时间对应第二时间段发生的第一概率,实现过程较为简单。
在一实施例中,如图4所示,步骤103可以通过如下方式实现:
步骤1031、在第一概率小于或等于第一概率阈值的情况下,确定目标用户所属的用户组在当前行为发生时间对应第二时间段发生当前行为的第二概率;
步骤1032、若第二概率小于或等于第二概率阈值,则确定当前行为是异常行为。
具体的,在第一概率小于或等于第一概率阈值的情况下,为了减少误报,进一步可以与该目标用户具有相似行为数据的用户的概率进行比较,确定是否为异常行为,例如,若该当前行为发生时间对应的第二时间段的第一概率较低,与该目标用户具有相似行为数据的其他用户在该第二时间段发生该当前行为的概率也较低,则说明是异常行为。
例如,若当前行为1发生时间为8点23分,对应的第二时间段为8点-9点,在该第二时间段发生该当前行为1的第一概率为5%,低于第一概率阈值10,与该目标用户具有相似行为数据的其他用户在该第二时间段发生该当前行为的概率也较低,说明不是经常发生的行为,则确定是异常行为。
在一实施例中,执行步骤1031之前,可以进行如下操作:
将多个用户通过聚类方式分为至少一个用户组;
根据多个用户的用户行为基线,分别确定各个用户组在预设时间范围内各个第二时间段发生至少一种用户行为中各用户行为的第二概率。
具体的,在执行步骤1031之前,可以先对多个用户进行分组,例如可以通过聚类方式进行分组,得到一个或多个用户组。例如从访问频次、应用访问数量、访问流量、用户身份类别等多个维度对用户进行聚类。
利用多个用户的行为日志,获取多个用户中每个用户的用户行为基线。每个用户的用户行为基线包括:每个用户在预设时间范围内各个第一时间段内发生的至少一种用户行为中各用户行为的行为数据;
根据每个用户的用户行为基线,分别确定各个用户组在预设时间范围内各个第二时间段发生各用户行为的第二概率。
进一步,根据各个用户组在预设时间范围内各个第二时间段发生各用户行为的第二概率,确定目标用户所属的用户组在当前行为发生时间对应第二时间段发生当前行为的第二概率。
如果该第二概率小于第二概率阈值,则说明该用户组中的用户发生该当前行为的概率也较小,可以确定当前行为为异常行为。
可选地,各个用户组在预设时间范围内各个第二时间段发生各用户行为的第二概率,也可以基于KDE算法计算得到。
例如,用户1、用户2和用户3分为用户组1,用户1在第一时间段1天内发生用户行为1的数量为5(8点-9点数量为2,其余时间段数量为3),用户2在第一时间段1天内发生用户行为1的数量为4(8点-9点数量为1,其余时间段数量为3),用户3在第一时间段1天内发生用户行为1的数量为6(8点-9点数量为2,其余时间段数量为4),用户组1在第三时间段8点-9点发生用户行为1的总数为5,一天内发生用户行为1的总数为15,用户组1在第三时间段8点-9点发生用户行为1的第二概率为5/15。
在一实施例中,为了识别该当前行为是否异常,也可以比较第一概率和第二概率的差异,若差异较大,则说明不是异常行为,若差别较小,则说明是异常行为。
例如,当前行为在第二时间段发生的第一概率为28%,小于第一概率阈值30%,用户组的当前行为在第二时间段发生的第二概率为59%,第二概率阈值为30%,则说明该当前行为不是异常行为。而且第二概率和第一概率的差值为31%,大于预设阈值(例如10%)。
例如,用户1在时间段20点-21点发生登录行为1的第一概率较小,但是同一办公室的用户组在时间段20点-21点发生登录行为1的第一概率较大,说明该登录行为1不是异常行为。
上述实施方式中,在当前行为在当前行为发生时间对应的第二时间段发生的第一概率小于或等于第一概率阈值的情况下,进一步结合该目标用户所属的用户组在对应的第二时间段发生该当前行为的第二概率,确定当前行为是异常行为,能够减少误判,进一步提高了异常行为识别的准确性。
示例性的,如图5所示,本实施例的用户异常行为识别方法包括如下步骤:
步骤11、生成用户行为基线;
步骤12、计算用户沿时间轴的特定行为发生的概率;
步骤13、对多个用户按多个维度进行聚类,分成多个用户组;
步骤14、计算用户组沿时间轴的特定行为发生的概率;
其中,步骤13、步骤14,与步骤13的顺序不分前后。
步骤15、获取目标用户的行为日志;
具体的,获取目标用户待识别的当前行为的行为日志。
步骤16、对比该目标用户的当前行为的行为数据与用户行为基线中行为数据的差异;
若差异超出差异阈值,则执行步骤17,否则结束;
步骤17、根据用户特定行为的时间轴概率曲线,计算用户当前行为是异常行为的概率;
若未超出第一概率阈值,则执行步骤18;否则结束。
具体的,首先从用户行为日志中获取当前行为的时间戳,即当前行为的发生时间,计算时间戳位于概率曲线中哪个时间段,然后从概率曲线中,获取这个时间段对应的该当前行为的概率值,如果这个概率值低于设定的第一概率阈值,则判定为异常行为。如果判定是异常行为,则进行下一步的判断,即执行步骤18;否则结束。
步骤18、从用户组的角度,计算用户的当前行为是异常行为的概率;
若未超出第二概率阈值,则执行步骤19;否则结束。
具体的,利用该目标用户的当前行为的时间戳,确定该用户行为对应的时间段,从用户组对应的概率曲线获取该当前行为在该时间段的概率值,如果这个概率值低于配置的第二概率阈值,则判断为异常行为。如果判断是异常行为,则产生告警;否则,忽略该当前行为,即结束。
步骤19、发出告警。
本实施例的方法,若目标用户的当前行为的行为数据与用户行为基线中当前行为的行为数据的差异超过差异阈值,则根据用户行为基线,确定当前行为在当前行为发生时间对应的时间段发生的第一概率;若第一概率小于或等于第一概率阈值,则确定当前行为是异常行为,即结合了对比用户行为基线以及当前行为发生的历史概率,提高了异常行为识别的准确性。
下面对本发明提供的用户异常行为识别装置进行描述,下文描述的用户异常行为识别装置与上文描述的用户异常行为识别方法可相互对应参照。
图6是本发明提供的用户异常行为识别装置一实施例的结构示意图。如图6所示,本实施例提供的用户异常行为识别装置,包括:
获取模块210,用于获取目标用户的用户行为基线;所述目标用户在预设时间范围内各个第一时间段内发生的至少一种用户行为中各用户行为的行为数据;
处理模块220,用于若所述目标用户的当前行为的行为数据与所述用户行为基线中所述当前行为的行为数据的差异超过差异阈值,则根据所述用户行为基线,确定所述当前行为在所述当前行为发生时间对应的第二时间段发生的第一概率;其中,所述用户行为基线中所述当前行为的行为数据为所述当前行为在所述当前行为发生时间对应的第一时间段的行为数据;
所述处理模块220,还用于获取若所述第一概率小于或等于第一概率阈值,则确定所述当前行为是异常行为。
可选地,所述处理模块220,具体用于:
根据所述用户行为基线,确定所述目标用户在所述预设时间范围内各个第二时间段内分别发生至少一种用户行为中各用户行为的第一概率;
根据所述目标用户在各个所述第二时间段内分别发生各所述用户行为的第一概率,确定所述当前行为在所述当前行为发生时间对应的第二时间段发生的第一概率。
本实施例的装置,若目标用户的当前行为的行为数据与用户行为基线中当前行为的行为数据的差异超过差异阈值,则根据用户行为基线,确定当前行为在当前行为发生时间对应的第二时间段发生的第一概率;若第一概率小于或等于第一概率阈值,则确定当前行为是异常行为,即结合了对比用户行为基线以及当前行为发生的历史概率,提高了异常行为识别的准确性。
可选地,所述处理模块220,具体用于:
在所述第一概率小于或等于第一概率阈值的情况下,确定所述目标用户所属的用户组在所述当前行为发生时间对应的第二时间段发生所述当前行为的第二概率;
若所述第二概率小于或等于第二概率阈值,则确定所述当前行为是异常行为。
可选地,所述处理模块220,还用于:
将多个用户通过聚类方式分为至少一个用户组;
根据所述多个用户的用户行为基线,分别确定各个所述用户组在所述预设时间范围内各个第二时间段发生至少一种用户行为中各用户行为的第二概率。
可选地,所述处理模块220,具体用于:
根据各个所述用户组在所述预设时间范围内各个第二时间段发生至少一种用户行为中各用户行为的第二概率,确定所述目标用户所属的用户组在所述当前行为发生时间对应的第二时间段发生所述当前行为的第二概率。
可选地,所述第二时间段的时长小于所述第一时间段的时长。
本发明实施例的装置,其用于执行前述任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
举个例子如下:
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:获取目标用户的用户行为基线;所述用户行为基线包括:所述目标用户在预设时间范围内各个第一时间段内发生的至少一种用户行为中各用户行为的行为数据;若所述目标用户的当前行为的行为数据与所述用户行为基线中所述当前行为的行为数据的差异超过差异阈值,则根据所述用户行为基线,确定所述当前行为在所述当前行为发生时间对应的第二时间段发生的第一概率;若所述第一概率小于或等于第一概率阈值,则确定所述当前行为是异常行为。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的用户异常行为识别方法包括:获取目标用户的用户行为基线;所述用户行为基线包括:所述目标用户在预设时间范围内各个第一时间段内发生的至少一种用户行为中各用户行为的行为数据;若所述目标用户的当前行为的行为数据与所述用户行为基线中所述当前行为的行为数据的差异超过差异阈值,则确定所述当前行为在所述当前行为发生时间对应的第二时间段发生的第一概率;若所述第一概率小于或等于第一概率阈值,则确定所述当前行为是异常行为。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。