使用用户操作生成模型检测异常用户行为的方法和系统
技术领域
本公开一般地涉及改进的数据处理系统,具体地说,涉及处理与用户行为相关的信息。更具体地说,本公开涉及用于检测用户的异常行为的方法和装置。
背景技术
当今,针对计算资源具有许多类型的攻击。执行这些攻击的计算机用户可以包括访问者、客户、工作者和其它类型的计算机用户。此外,恶意软件和其它类型的计算机程序可以针对计算资源执行这些攻击。例如,恶意软件可以控制用户凭证以便针对用户有权访问的计算资源执行攻击。在检测这些攻击的上下文中,标识用户行为何时指示攻击是所感兴趣的。
用于标识攻击的当前方法将被监视行为与可疑行为模式相匹配。这些当前方法将被监视行为与已知用于标识攻击的固定规则和统计信息相匹配。例如,标识成功之前的多次失败登录尝试指示密码猜测攻击。因为当前方法被限制为标识已知攻击模式,它们无法检测与已知模式不符的攻击。
还存在当前统计方法,其用于基于检测与用户操作频率标准的偏差来检测可疑行为。例如,用于检测可疑行为的统计方法可能包括基于将下载频率比从在线库下载文档的标准频率多5倍的计算机用户标识为可能攻击,生成警报。这些统计方法产生的警报数量可能很大。此外,其中某些数量的警报可能针对合法使用。在警报中标识的合法使用是假肯定。当接收过多的假肯定时,可能忽略或遗漏合法的警报。
因此,希望具有一种考虑上面讨论的至少某些问题的方法、装置和计算机程序产品。
发明内容
在一个示例性实施例中,公开一种用于检测用户的异常行为的方法、装置和计算机程序产品。一种装置从用户活动日志中标识用户在第一时段内执行的与针对所述用户的一个或多个角色所关联的任务的用户活动模式相匹配的第一数量的操作。基于所述用户在针对确定所述用户的所述角色而选择的时段内的操作,所述装置从所述用户活动日志中生成所述用户的所述一个或多个角色。所述装置还从所述用户活动日志中标识所述用户在第二时段内执行的与所述用户活动模式相匹配的第二数量的操作。所述装置计算所述第一数量的操作与所述第二数量的操作之间的偏差量。所述偏差标识在所述一个或多个角色中花费的时间量之间的差异。所述装置然后判定所述第一数量的操作与所述第二数量的操作之间的所述偏差量是否超出异常行为阈值。所述异常行为阈值是以下项之一:一个所述用户的异常行为阈值、一个所述用户在所述一个或多个角色中的异常行为阈值、多个所述用户的异常行为阈值,以及多个所述用户在所述一个或多个角色中的异常行为阈值。
附图说明
图1是根据一个示例性实施例的用于在异常行为检测环境中检测用户异常行为的过程的数据流的框图;
图2是根据一个示例性实施例的在检测用户异常行为中涉及的数据处理系统中的组件的框图;
图3是根据一个示例性实施例的用于检测用户异常行为的过程的流程图;
图4是根据一个示例性实施例的用于检测和报告用户异常行为的过程的流程图;
图5是根据一个示例性实施例的用于基于标识的行为偏差更改来检测用户异常行为的过程的流程图;
图6是根据一个示例性实施例的用于在执行多个任务的同时基于标识的行为偏差来检测用户异常行为的过程的流程图;以及
图7是根据一个示例性实施例的数据处理系统的图示。
具体实施方式
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机。此外,在涉及远程计算机的情形中,在异常行为检测环境中,远程计算机可以包括硬件和软件组件。例如,所述组件可以是网络设备和其它类型的数据处理系统,它们在异常行为检测环境中分析数据。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
不同示例性实施例提供一种用于检测用户的异常行为的方法、装置和计算机程序产品。例如,异常行为检测环境中的多个组件可以使用一种用于检测用户的异常行为的过程。例如,分析平台组件可以从用户活动日志中标识用户在第一时段内执行的与针对所述用户的一个或多个角色所关联的任务的用户活动模式相匹配的第一数量的操作。基于所述用户在针对确定所述用户的所述角色而选择的时段内的操作,分析平台可以从所述用户活动日志中生成所述用户的所述一个或多个角色。分析平台组件还可以从所述用户活动日志中标识所述用户在第二时段内执行的与所述用户活动模式相匹配的第二数量的操作。行为标识组件可以计算所述第一数量的操作与所述第二数量的操作之间的偏差量。所述偏差标识在所述一个或多个角色中花费的时间量之间的差异。行为标识组件然后可以判定所述第一数量的操作与所述第二数量的操作之间的所述偏差量是否超出异常行为阈值。所述异常行为阈值可以是以下项之一:一个所述用户的异常行为阈值、一个所述用户在所述一个或多个角色中的异常行为阈值、多个所述用户的异常行为阈值,以及多个所述用户在所述一个或多个角色中的异常行为阈值。
现在参考附图,具体地说,参考图1,示出根据一个示例性实施例的用于在异常行为检测环境中标识对用户感兴趣产品的影响的过程的数据流的框图。异常行为检测环境100是用于检测用户异常行为的环境的一个实例。
如图所示,异常行为检测环境100包括多个数据处理系统102,例如数据处理系统104和数据处理系统106。在这些示例性实例中,数据处理系统104执行应用108,并且数据处理系统106执行应用112以便提供服务。应用108提供服务110,并且应用112提供服务114。“多个”如在此参考项目使用的,指一个或多个项目。
在这些示出的实例中,用户活动116和用户活动118是与数据处理系统102关联的用户活动的实例。如图所示,用户活动116和用户活动118存储在活动日志(例如活动日志120)中。在这些示例性实例中,用户活动是与使用数据处理系统关联的任何用户活动。例如,用户活动118可以是与用户角色123中的角色关联的活动。在这些示例性实例中,用户角色是分配给用户以便执行特定活动的权限。
分析平台122是异常行为检测环境100的组件,其用于产生基准用户简档并对基准用户简档评分。在这些示例性实例中,分析平台122生成用户角色123。在这些示例性实例中,分析平台122可以使用角色挖掘方法从活动日志120中标识用户角色123。用户角色123中的每个角色是活动日志120中的用户活动的权限。分析平台122还生成在用户角色中花费的时间的模型124。分析平台122通过将用户的用户活动与全局用户角色模型拟合并且获得角色拟合度值列表,针对用户在模型124中生成基准用户简档125。角色拟合度值列表是在获取或获得用户操作的时段内用户属于每个角色的程度。如在此使用的,全局用户角色模型是用于多个用户的初始模型。
可以采用多种方式之一生成基准用户简档125。例如,可以将基准简档定义为在用户活跃的第一时段或者构建全局模型的另一个时段(两者之间的后者),用户在每个角色中的操作量。可以通过用于角色挖掘的多种技术的任意一种生成基准用户简档125。可以在长于用于评分的时段内生成基准用户简档125。例如,可以在比用于评分的时段长十(10)倍的时段内生成基准用户简档125。在这些示例性实例中,基准用户简档125可以包括针对用户生成的聚合拟合模型。例如,可以通过用于角色挖掘的多种技术的任意一种生成一系列拟合。例如,可以在比多个用户的每一个的评分时段长十(10)倍的时段内,使用生成角色挖掘方法针对用户生成一系列拟合。在该实例中,根据所述一系列拟合构建辅助模型以便确定每个角色操作的不确定性和显著性的度量,并且检测定期用户行为。在该实例中,可以通过使用诸如k平均、高斯模型或者k平均和高斯模型的混合之类的已知技术,集群个体拟合得分来构建辅助模型。在该实例中,构建一类分类器系统(例如支持向量机)以便学习样本。
行为标识126是异常行为检测环境100的组件,其用于测量用户在随后时段内的操作和模型之间的偏差量。为了测量用户在随后时段内的操作和模型之间的偏差量,将用户的用户活动与模型拟合以便获得角色拟合度得分列表。例如,使用用户的角色拟合度简档,应用诸如均方根误差、库尔贝克-莱布勒散度或平均绝对误差之类的距离函数,测量用户的角色拟合度简档和随后时段内获得的角色拟合度之间的偏差量。在该实例中,当偏差超出阈值时,产生警报。作为另一个实例,使用上面构建的辅助模型,可以将角色拟合度得分与辅助模型比较以获得偏差。在该实例中,标识偏差量基于如何生成辅助模型。例如,如果应用k平均算法生成辅助模型,则可以将到最近集群形心的距离与属于该集群的所有点的平均值和标准偏差相比较。在该实例中,当距离超出阈值时,产生警报。同样,如果使用高斯模型的混合,则可以计算从分布中获取角色拟合度得分列表的概率,并且在具有统计显著性时发出警报。备选地,当使用一类分类器算法时,可以返回异常得分。例如,当使用一类支持向量机(SVM)时,异常得分是与超平面的距离。在该实例中,当异常得分超出阈值时,生成警报。
图1中的异常行为检测环境100的例示并非暗示对可以实现不同示例性实施例的方式的物理或体系架构限制。除了示出的组件之外和/或代替示出的组件,可以使用其它组件。某些组件可能不是必要的。此外,提供方框以便例示某些功能组件。当在示例性实施例中实现时,可以将这些方框的一个或多个组合为和/或分为不同方框。
例如,在某些示例性实例中,可以在异常行为检测环境100中存在除了分析平台122和行为标识126之外的其它组件。例如,分析平台122的另一个组件可以使用以下项中的一个或多个生成用户角色模型:离散和概率角色挖掘、单集群和多集群算法,诸如隐含狄利克雷分配和隐藏主题马尔可夫模型之类的生成模型。在该实例中,角色模型生成过程采取给定时段内的一组用户活动作为输入,并且产生由该组用户活动定义的角色模型。在这些示例性实例中,然后将新用户活动与用户角色模型拟合以便产生拟合度函数向量,该向量指示按照活动模式定义,用户与用户角色模型的匹配程度。
此外,尽管数据处理系统102、活动日志120、分析平台122和行为标识126在异常行为检测环境100中被示出为单独方框,但它们的全部或部分还可以在异常行为检测环境100中的数据处理系统102或其它合适的组件中实现。在这些示例性实例中,异常行为检测环境100可以通过硬件和软件产品的任意组合实现,并且还可以在计算机系统集群的一个或多个计算机系统中实现。
现在转到图2,示出根据一个示例性实施例的在检测用户异常行为中涉及的数据处理系统中的组件的框图。在这些示例性实例中,数据处理系统202可以是实现用于检测用户异常行为的过程的硬件和软件组件的任意组合。如图所示,数据处理系统202中的分析模块204是图1中的分析平台122的一种实现的实例。在这些示例性实例中,分析模块204处理活动日志206。活动日志206是图1中的活动日志120的一种实现的实例。活动日志206存储用户208的活动。用户210是具有活动日志206中的活动的用户208中的用户的实例。
如图所示,活动214是活动日志206中的用户210的活动。如图所示,活动214可以包括用户210采取的操作216。例如,活动214可以是响应于提示而提供密码。在该实例中,当用户210提供密码时,用户可能正在执行称为登录的活动。还如图所示,用户210采取的操作216可以与资源218关联。例如,当用户210希望获得对资源218的访问时,用户210可以登录到资源218。
在这些示例性实例中,资源218是资源220中的资源的一个实例。在示出的实例中,资源220包括数据处理系统、存储设备以及硬件和软件的任意合适的组合,以便由用户208使用。
在这些示出的实例中,分析模块204生成模型224。模型224是图1中的模型124的一种实现的实例。模型224包括任务226。任务228是任务226中包括用户活动模式230的任务的实例。在示出的实例中,用户210执行用户活动模式230以便完成任务228。
如图所示,用户活动模式232是包括操作234和角色236的用户活动模式230的实例。操作234是操作216的实例,并且角色236是用户角色238的实例。用户角色238是图1中的用户角色123的实例。在这些示例性实例中,角色240是用户角色238中的角色的实例。如在此使用的,用户角色(例如角色240)是用户在执行任务226中的一个或多个任务时承担的职能或职位。例如,管理人员在管理用户时承担管理人员的角色。
分析模块204在特定时段(例如时段242中的时段244)内生成模型224。在这些示例性实例中,时段244可以是模型224的时段。例如,时段244可以被选择为上一年、上一个月的时段,以及是模型224的合适时段的其它时段。例如,时段244可以被选择为包括过去的时段,在这些时段内发生用户238的多个活动,这些活动类似于用户210的多个当前活动。
在这些示例性实例中,分析模块204还可以在时段250内针对用户248生成与用户活动模式匹配的操作246。如图所示,时段252内的操作254是与用户活动模式匹配的操作246的实例。
行为标识模块256是数据处理系统202的组件,其在硬件、软件或者硬件和软件的组合中实现。行为标识模块256是图1中的行为标识126的一种实现的实例。如图所示,行为标识模块256在用于标识用户208中的用户的异常行为的过程中,处理与用户活动模式匹配的操作246。在这些示例性实例中,行为标识模块256基于在时段242中的选定时段内,在相同角色中的一个或多个用户采取的操作之间的已计算偏差量,确定时段之间的偏差量258。在这些示例性实例中,时段之间的偏差量258标识在用户角色238中的一个或多个角色中的用户花费的时间量之间的差异。例如,行为标识模块256可以将用户210在第一时段内执行的第一数量的操作划分为用户210在第一时段内分离和连续的多个时间子间隔内执行的多个操作子组。在该实例中,行为标识模块256可以使用用户210在第二时段内执行的第二数量的操作和多个子组的每一个之间的一个或多个偏差量之间的差异,计算时段之间的偏差量258。
如图所示,行为标识模块256判定时段之间的偏差量258是否超出异常行为阈值260之一。在示出的实例中,响应于时段之间的偏差量258超出异常行为阈值260之一,行为标识模块256可以生成用户异常行为报告262。如图所示,用户异常行为报告262可以包括有关用户208在一个或多个用户角色238中花费的时间的时段之间的偏差量258的信息。
接下来转到图3,示出根据一个示例性实施例的用于检测用户异常行为的过程的流程图的一个示例性实例。所述过程中的步骤可以由图2中的数据处理系统202在软件、硬件或两者的组合中实现。
所述过程首先从用户活动日志中标识用户在第一时段内执行的与针对所述用户的一个或多个角色所关联的任务的用户活动模式相匹配的第一数量的操作(步骤300)。在该例示的过程中,用户活动日志是图2中的活动日志206的实例。用户在第一时段内执行的与用户活动模式匹配的第一数量的操作是图2中的用户210执行的图2中的用户活动模式232中的操作234的实例。
所述过程从所述用户活动日志中标识所述用户在第二时段内执行的与所述用户活动模式相匹配的第二数量的操作(步骤302)。在该例示的过程中,第二数量的操作是用户210执行的用户活动模式232中的操作234的另一个实例。
所述过程计算所述第一数量的操作与所述第二数量的操作之间的偏差量,其中所述偏差标识在所述一个或多个角色中花费的时间量之间的差异(步骤304)。在该例示的过程中,第一数量的操作和第二数量的操作之间的偏差量是图2中的时段之间的偏差量258的实例。
所述过程然后判定所述第一数量的操作与所述第二数量的操作之间的所述偏差量是否超出异常行为阈值(步骤306),之后所述过程结束。在该例示的过程中,异常行为阈值是图2中的异常行为阈值260的一个实例。还应注意,尽管步骤300和302被连续示出,但步骤300和302实际上可以基本并行地执行,并且步骤300和302还可以按相反的顺序执行。
接下来转到图4,示出根据一个示例性实施例的用于检测和报告用户异常行为的过程的流程图的一个示例性实例。所述过程中的步骤可以由图2中的数据处理系统202在软件、硬件或两者的组合中实现。
所述过程首先从用户活动日志中标识用户在第一时段内在一个或多个资源上执行的与针对所述用户的一个或多个角色所关联的任务的用户活动模式相匹配的第一数量的操作(步骤400)。在该例示的过程中,用户活动日志是图2中的活动日志206的实例。用户在第一时段内执行的与用户活动模式匹配的第一数量的操作是图2中的用户210执行的图2中的用户活动模式232中的操作234的实例;一个或多个资源是图2中的资源222的实例;与用户角色关联的任务是图2中的任务228的实例;以及用户角色是图2中的角色236中的角色的实例。
所述过程从所述用户活动日志中标识所述用户在第二时段内在一个或多个资源上执行的与所述用户活动模式相匹配的第二数量的操作(步骤402)。在该例示的过程中,第二数量的操作是用户210执行的用户活动模式232中的操作234的另一个实例。
所述过程计算所述第一数量的操作与所述第二数量的操作之间的偏差量,其中所述偏差标识在所述一个或多个角色中花费的时间量之间的差异(步骤404)。在该例示的过程中,所述第一数量的操作和所述第二数量的操作之间的偏差量是图2中的时段之间的偏差量258的实例。
所述过程然后判定所述第一数量的操作与所述第二数量的操作之间的所述偏差量是否超出异常行为阈值(步骤406)。在该例示的过程中,异常行为阈值是图2中的异常行为阈值260的一个实例。
如步骤410中所示,响应于所述偏差量超出阈值,所述过程从用户活动日志中生成用户活动报告,所述报告包括所述第一数量的操作和所述第二数量的操作之间的偏差量(步骤408),之后所述过程结束。在该例示的过程中,用户活动报告是图2中的用户异常行为报告262的实例。还如步骤410中所示,响应于所述偏差量未超出阈值,所述过程结束而不从用户活动日志中生成用户活动报告。
接下来转到图5,示出根据一个示例性实施例的用于基于标识的行为偏差更改来检测用户异常行为的过程的流程图的示例性实例。所述过程中的步骤可以由图2中的数据处理系统202在软件、硬件或两者的组合中实现。
所述过程首先从用户活动日志中标识用户在第一时段内执行的与第一用户活动模式相匹配的第一数量的操作(步骤500)。在该例示的过程中,用户活动日志是图2中的活动日志206的实例。用户在第一时段内执行的与用户活动模式匹配的第一数量的操作是图2中的用户210执行的图2中的用户活动模式232中的操作234的实例。
所述过程从用户活动日志中标识用户在第二时段内执行的与第一用户活动模式相匹配的第二数量的操作(步骤502);用户在所述第一时段内执行的与第二用户活动模式相匹配的第三数量的操作(步骤504);以及用户在所述第二时段内执行的与所述第二用户活动模式相匹配的第四数量的操作(步骤506)。在该例示的过程中,第二、第三和第四数量的操作是用户210执行的用户活动模式232中的操作234的其它实例。
所述过程计算所述第一和第三数量的操作与所述第二和第四数量的操作之间的偏差量(步骤508)。在该例示的过程中,所述第一和第三数量的操作与所述第二和第四数量的操作之间的偏差量是图2中的时段之间的偏差量258的实例。
所述过程接下来判定所述偏差量是否超出异常行为阈值(步骤510)。在该例示的过程中,所述异常行为阈值是图2中的异常行为阈值260的一个实例。
如步骤514中所示,响应于所述偏差量超出阈值,所述过程然后生成警报(步骤512),之后所述过程结束。在该例示的过程中,警报是图2中的用户异常行为报告262的实例。还如步骤514中所示,响应于所述偏差量未超出阈值,所述过程结束而不生成警报。尽管步骤500、502、504和506被连续示出,但这些步骤实际上可以基本并行地执行。
接下来转到图6,示出根据一个示例性实施例的用于在执行多个任务的同时基于标识的行为偏差来检测用户异常行为的过程的流程图的一个示例性实例。所述过程中的步骤可以由图2中的数据处理系统202在软件、硬件或两者的组合中实现。
所述过程首先从用户活动日志中标识用户在第一时段内执行的与用户活动模式相匹配的第一数量的操作(步骤600)。在该例示的过程中,用户活动日志是图2中的活动日志206的实例。用户在第一时段内执行的与用户活动模式匹配的第一数量的操作是图2中的用户210执行的图2中的用户活动模式232中的操作234的实例。
所述过程还从所述用户活动日志中标识用户在第二时段内执行的与用户活动模式相匹配的第二数量的操作(步骤602)。所述过程然后计算所述第一数量的操作和所述第二数量的操作之间的第一偏差量(步骤604)。
所述过程还从所述用户活动日志中标识用户在第三时段内执行的与用户活动模式相匹配的第三数量的操作(步骤606),以及用户在第四时段内执行的与用户活动模式相匹配的第四数量的操作(步骤608)。所述过程然后还计算所述第三数量的操作和所述第四数量的操作之间的第二偏差量(步骤610)。在该例示的过程中,所述第二、第三和第四数量的操作是用户210执行的用户活动模式232中的操作234的其它实例。在该例示的过程中,所述第一偏差量和所述第二偏差量是图2中的时段之间的偏差量258的实例。
所述过程接下来判定所述第一偏差量和所述第二偏差量之间的差异是否超出异常行为阈值(步骤612)。如步骤616中所示,响应于所述偏差量超出阈值,所述过程然后生成警报(步骤614),之后所述过程结束。还如步骤616中所示,响应于所述偏差量未超出阈值,所述过程结束而不生成警报。还应该注意,尽管用于计算第一偏差量的第一序列的步骤600、602和604与用于计算第二偏差量的第二序列的步骤606、608和610被连续示出,但第一和第二序列的步骤实际上可以基本并行地执行。
现在转到图7,示出根据一个示例性实施例的数据处理系统的图示。数据处理系统700是可以用于标识用户异常行为的数据处理系统的一个实例。更具体地说,数据处理系统700可以用于实现图2中的数据处理系统202。在该示例性实例中,数据处理系统700包括通信框架702,其在处理器单元704、存储器706、永久性存储装置708、通信单元710、输入/输出(I/O)单元712和显示器714之间提供通信。在这些实例中,通信框架702可以是总线系统。
处理器单元704用于执行可以加载到存储器706中的软件的指令。处理器单元704可以是多个处理器、多处理器核心或某种其它类型的处理器,具体取决于特定实现。如在此参考项目使用的,多个指一个或多个项目。此外,处理器单元704可以使用多个异构处理器系统实现,其中在单个芯片上同时存在主处理器与辅助处理器。作为另一个示例性实例,处理器单元704可以是包含同一类型的多个处理器的对称多处理器系统。
存储器706和永久性存储装置708是存储设备716的实例。存储设备是任何能够存储信息的硬件,所述信息例如但不限于数据、功能形式的程序代码和/或其它合适的瞬态和/或持久性信息。在这些实例中,存储设备716还可以称为计算机可读存储设备。在这些实例中,存储器706例如可以是随机存取存储器或者任何其它合适的易失性或非易失性存储设备。永久性存储装置708可以采取多种形式,具体取决于特定实现。
例如,永久性存储装置708可以包含一个或多个组件或设备。例如,永久性存储装置708可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述某种组合。永久性存储装置708使用的介质还可以是移动的。例如,可移动硬盘驱动器可以用于永久性存储装置708。
在这些实例中,通信单元710提供与其它数据处理系统或设备的通信。在这些实例中,通信单元710是网络接口卡。通信单元710可以通过使用物理和无线通信链路两者之一或全部来提供通信。
输入/输出单元712允许使用其它可以连接到数据处理系统700的设备来输入和输出数据。例如,输入/输出单元712可以通过键盘、鼠标和/或某种其它适合的输入设备来提供连接以实现用户输入。此外,输入/输出单元712可以将输出发送到打印机。显示器714提供用于向用户显示信息的机构。
用于操作系统、应用和/或程序的指令可以位于存储设备716中,存储设备716通过通信框架702与处理器单元704通信。在这些示例性实例中,指令以功能形式位于永久性存储装置708中。这些指令可以被加载到存储器706以便由处理器单元704运行。处理器单元704可以使用计算机实现的指令(可以位于存储器(例如存储器706)中)执行不同实施例的过程。
这些指令被称为程序代码、计算机可用程序代码或计算机可读程序代码,它们可以由处理器单元704中的处理器读取和执行。在不同的实施例中,程序代码可以包含在不同的物理或计算机可读存储介质(例如存储器706或永久性存储装置708)中。
程序代码718以功能形式位于选择性地可移除的计算机可读介质720中,并且可以被加载或传输到数据处理系统700以便由处理器单元704执行。在这些实例中,程序代码718和计算机可读介质720形成计算机程序产品722。在一个实例中,计算机可读介质720可以是计算机可读存储介质724或计算机可读信号介质726。计算机可读存储介质724例如可以包括光盘或磁盘,它们被插入或放置到属于永久性存储装置708的一部分的驱动器或其它设备中,以便传输到属于永久性存储装置708的一部分的存储设备(例如硬盘驱动器)。计算机可读存储介质724还可以采取永久性存储装置的形式,例如连接到数据处理系统700的硬盘驱动器、拇指驱动器或闪存。在某些情况下,计算机可读存储介质724可能不可从数据处理系统700移除。在这些实例中,计算机可读存储介质724是用于存储程序代码718的物理或有形存储设备,而不是传播或传输程序718的介质。计算机可读存储介质724还称为计算机可读有形存储设备或计算机可读物理存储设备。换言之,计算机可读存储介质724是人可以接触的介质。
备选地,可以使用计算机可读信号介质726将程序代码718传输到数据处理系统700。计算机可读信号介质726例如可以是包含程序代码718的传播数据信号。例如,计算机可读信号介质726可以是电磁信号、光信号和/或任何其它合适类型的信号。这些信号可以通过通信链路(例如无线通信链路、光缆、同轴电缆、电线和/或任何其它合适类型的通信链路)来传输。换言之,在所述示例性实例中,通信链路和/或连接可以是物理或无线的。
在某些示例性实施例中,可以通过网络借助计算机可读信号介质726将程序代码718从另一个设备或数据处理系统下载到永久性存储装置708,以便在数据处理系统700中使用。例如,可以通过网络将存储在服务器数据处理系统内的计算机可读存储介质中的程序代码从该服务器下载到数据处理系统700。提供程序代码718的数据处理系统可以是服务器计算机、客户端计算机,或者能够存储和传输程序代码的718的某种其它设备。
针对数据处理系统700示出的不同组件并非旨在提供有关可以实现不同实施例的方式的体系架构限制。可以在如下数据处理系统中实现不同的示例性实施例:该系统包括除了针对数据处理系统700示出的那些组件之外的组件或代替那些组件的组件。图7中所示的其它组件可以不同于所示的示例性实例。可以使用任何能够运行程序代码的硬件设备或系统来实现不同实施例。作为一个实例,数据处理系统可以包括与无机组件集成的有机组件和/或可以完全由有机组件(不包括人类)组成。例如,存储设备可以包括有机半导体。
在另一个示例性实例中,处理器单元704可以采取硬件单元的形式,该硬件单元具有被制造或配置用于特定用途的电路。这种类型的硬件可以执行操作,而无需将程序代码从存储设备加载到存储器以便被配置为执行所述操作。例如,当处理器单元704采取硬件单元的形式时,处理器单元704可以是电路系统、专用集成电路(ASIC)、可编程逻辑设备,或者被配置为执行多个操作的某种其它合适类型的硬件。使用可编程逻辑设备,所述设备被配置为执行多个操作。所述设备可以在稍后被重新配置,或者可以永久地被配置为执行多个操作。可编程逻辑设备的实例例如包括可编程逻辑阵列、可编程阵列逻辑、现场可编程逻辑阵列、现场可编程门阵列,以及其它合适的硬件设备。使用这种类型的实现,程序代码718可以被省略,因为在硬件单元中实现用于不同实施例的过程。
在另一个示例性实例中,处理器单元704可以使用在计算机和硬件单元中发现的处理器组合实现。处理器单元704可以具有多个硬件单元和多个处理器,它们被配置为运行程序代码718。使用该示出的实例,可以在多个硬件单元中实现某些过程,而在多个处理器中实现其它过程。
在另一个实例中,总线系统可以用于实现通信框架702,并且可以包括一条或多条总线,例如系统总线或输入/输出总线。当然,总线系统可以使用任何合适类型的体系架构来实现,该体系架构在连接到总线系统的不同组件或设备之间提供数据传输。
此外,通信单元可以包括多个设备,这些设备传输数据,接收数据或者传输和接收数据。通信单元例如可以是调制解调器或网络适配器、两个网络适配器,或者它们的某种组合。此外,存储器例如可以是存储器706,或者例如在接口中发现的高速缓存以及可以存在于通信框架702中的存储控制器集线器。
因此,各示例性实施例提供一种用于检测用户异常行为的方法、装置和计算机程序产品。在一个实例中,程序从用户活动日志中标识用户在第一时段内在一个或多个资源上执行的与针对所述用户的一个或多个角色所关联的任务的用户活动模式相匹配的第一数量的操作。在该实例中,基于所述用户在针对确定所述用户的所述角色而选择的时段内的操作,程序从所述用户活动日志中生成所述用户的所述一个或多个角色。在该实例中,程序从所述用户活动日志中标识所述用户在第二时段内在所述一个或多个资源上执行的与所述用户活动模式相匹配的第二数量的操作。所述程序计算所述第一数量的操作与所述第二数量的操作之间的偏差量,其中所述偏差标识在所述一个或多个角色中花费的时间量之间的差异。所述程序接下来判定所述第一数量的操作与所述第二数量的操作之间的所述偏差量是否超出异常行为阈值。在该实例中,所述异常行为阈值可以是以下项之一:一个所述用户的异常行为阈值、一个所述用户在所述一个或多个角色中的异常行为阈值、多个所述用户的异常行为阈值,以及多个所述用户在所述一个或多个角色中的异常行为阈值。响应于所述偏差量超出阈值,所述程序然后从所述用户活动日志中生成用户活动报告。在该实例中,所述报告包括所述第一数量的操作和所述第二数量的操作之间的所述偏差量。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。如在此使用的,短语“至少一个”在用于项目列表时,表示可能使用一个或多个列出的项目的不同组合,并且可能仅需要列表中的每个项目之一。例如,“项目A、项目B和项目C中的至少一个”例如可以包括但不限于项目A,或者项目A和项目B。该实例还可以包括项目A、项目B和项目C,或者项目B和项目C。在其它实例中,“至少一个”例如可以是但不限于两个项目A、一个项目B和十个项目C;四个项目B和七个项目C;以及其它合适的组合。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。