本发明总体上涉及计算领域,并且更具体地涉及互联网安全。
背景技术:
经由互联网路由的通信容易受到端点和服务器之间的拦截,从而利用服务器上托管的应用的应用逻辑背后的弱点。由于这些漏洞与应用逻辑有关,因此常见的漏洞扫描程序和保护技术无法检测到此类恶意活动。
因此,在本领域中需要解决前述问题。
技术实现要素:
从第一方面来看,本发明提供了一种用于检测关于托管在服务器上的应用的恶意活动的方法,方法包括:收集与通过网络远程访问的应用相关的用户活动数据,其中收集的用户活动数据包括从用户接收的至少一组用户请求,接收到的至少一组用户请求中的每个组与应用内的对应位置相关联;根据收集到的用户活动数据生成图,所生成的图包括多个节点和链接多个节点的多个连接,其中,多个节点中的每个节点代表接收到的至少一组用户请求中的对应组,并且多个连接中的每个连接代表应用中的一对对应位置之间的用户可导航路径;存储生成的图;监视与通过网络远程访问的应用相关的后续用户活动;以及检测后续用户活动与所收集的用户活动数据的存储的图不匹配。
从另一方面来看,本发明提供了一种用于检测关于托管在服务器上的应用的恶意活动的计算机系统,包括:一个或多个处理器,一个或多个计算机可读存储器,一个或多个计算机可读有形存储介质以及存储在一个或多个计算机可读有形存储介质中的至少一个上的程序指令以由一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个执行,其中计算机系统能够执行一种方法,方法包括:收集与通过网络远程访问的应用相关的用户活动数据,其中收集的用户活动数据包括从用户接收的至少一组用户请求,接收到的至少一组用户请求中的每个组与应用内的对应位置相关联;根据收集到的用户活动数据生成图,所生成的图包括多个节点和链接多个节点的多个连接,其中,多个节点中的每个节点代表接收到的至少一组用户请求中的对应组,并且多个连接中的每个连接代表应用中的一对对应位置之间的用户可导航路径;存储生成的图;监视与通过网络远程访问的应用相关的后续用户活动;以及检测后续用户活动与所收集的用户活动数据的存储的图不匹配。
从另一方面来看,本发明提供一种用于检测关于托管在服务器上的应用的恶意活动的计算机程序产品,计算机程序产品包括计算机可读存储介质,可由处理电路读取并存储指令,以供处理电路执行以执行用于执行本发明步骤的方法。
从另一方面来看,本发明提供一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当程序在计算机上运行时,软件代码部分用于执行本发明的步骤。
本发明的实施例公开了一种用于检测关于托管在服务器上的应用的恶意活动的方法、计算机系统和计算机程序产品。在第一方面,本发明可以包括一种计算机实现的方法,方法包括:收集与通过网络远程访问的应用有关的用户活动数据,根据收集到的用户活动数据生成图,图的每个节点代表从用户接收到的应用内有关位置的一组用户请求,并且节点之间的每个连接代表应用内位置之间的用户可导航路径,存储生成的图,监视有关应用的后续用户活动以及检测与存储的图不匹配的任何用户活动。
根据第二方面,本发明可以包括一种数据处理系统,包括处理器,处理器被布置为收集与通过网络远程访问的应用有关的用户活动数据,根据收集到的用户活动数据生成图,图的每个节点代表从用户接收到的应用内有关位置的一组用户请求,并且节点之间的每个连接代表应用内位置之间的用户可导航路径,存储生成的图,监视有关应用的后续用户活动以及检测与存储的图不匹配的任何用户活动。
根据第三方面,本发明可以包括一种用于控制数据处理系统的计算机程序产品,数据处理系统包括处理器,计算机程序产品包括计算机可读存储介质,计算机可读存储介质具有体现在其上的程序指令,程序指令可由计算机执行使处理器:收集与通过网络远程访问的应用有关的用户活动数据,根据收集到的用户活动数据生成图,图的每个节点代表从用户接收到的应用内有关位置的一组用户请求,并且节点之间的每个连接代表应用内位置之间的用户可导航路径,存储生成的图,监视有关应用的后续用户活动以及检测与存储的图不匹配的任何用户活动。
附图说明
通过以下结合附图对示例性实施例的详细描述,本发明的这些和其他目的、特征和优点将变得显而易见。附图的各种特征未按比例绘制,因为图示是为了清楚起见,以帮助本领域技术人员结合详细描述来理解本发明。附图中:
图1示出了根据至少一个实施例的用户设备通过网络计算机环境访问应用的示意图;
图2是示出根据至少一个实施例的图1中所描绘的设备的组件的示意图;
图3是示出根据至少一个实施例的节点和连接的图的示意图;
图4是示出根据至少一个实施例的用于对与应用的交互执行安全性检查的过程的操作流程图;
图5是示出根据至少一个实施例的应用和图的示意图;和
图6是示出根据本公开的实施例的图2中描绘的设备的示意图。
具体实施方式
本文公开了所要求保护的结构和方法的详细实施例;然而,可以理解,所公开的实施例仅是可以以各种形式体现的所要求保护的结构和方法的说明。然而,本发明可以以许多不同的形式来实施,并且不应被解释为限于在此阐述的示例性实施例。而是,提供这些示例性实施例,使得本公开变得透彻和完整,并将向本领域技术人员充分传达本发明的范围。在说明书中,可以省略众所周知的特征和技术的细节,以避免不必要地混淆所呈现的实施例。以下描述的示例性实施例提供了一种用于检测关于托管在服务器上的应用的恶意活动的系统、方法和程序产品。
参照图1,示出了根据一个实施例的示例性联网计算机环境。
联网计算机环境可以包括可以通过网络14连接到远程服务器12的用户设备10。设备10和服务器12之间的通信可以通过安全设备8。设备8可以包括独立设备,但是也可以被实现为可以安装在服务器12上的软件组件。如图1所示,在一个实施例中,用户设备10可以包括移动设备(例如,智能电话),并且远程服务器12可以运行用户设备10可以通过网络14连接到的移动应用16。网络14可以包括无线组件,例如4g,以及有线组件,例如互联网。用户设备10可以连接到4g网络,并且4g网络提供商可以连接到互联网,从而允许用户设备10的用户访问互联网以及通过用户设备10经由互联网交付的应用。尽管用户设备10可以包括智能电话,但是任何合适的连接设备,例如经由有线网络连接的计算机,都可以访问服务器12上的应用16。
在一个实施例中,用户设备10可以通过在用户设备10上运行的互联网浏览器来访问诸如应用16之类的移动应用。在另一个实施例中,用户设备10可以通过安装在用户设备10上的专用应用访问应用16,其中专用应用可以直接连接到应用16。在图1所示的示例中,用户可以使用用户的智能手机10来访问远程银行应用16,该远程银行应用可以通过在用户的智能手机10上运行的应用16向用户提供各种在线银行服务。例如,用户可以通过在用户的智能手机10上运行的应用16登录到用户银行帐户,并执行与该用户银行帐户相关的操作,例如检查当前银行余额并执行银行转帐。
可以理解,与移动应用16相关联的各种服务向用户的智能手机10的安全交付对于移动应用16可能是高度优先的。应用16执行例如与用户银行帐户之间的银行转账的能力可能意味着此类应用16可能成为恶意和犯罪活动的目标。可以使用许多不同的技术来尝试干扰这样的应用16。通过internet路由的通信可能总是容易受到拦截和操纵以更改通信的内容,或被用来构成对应用16进行攻击的基础。
现在参考图2,示出了根据至少一个实施例设备8的组件的示意图。
在一个实施例中,设备8可以包括三个组件:活动监视组件18、建模引擎组件20和安全监视组件22。这三个组件可以由设备8的处理器24运行。在图2中将活动监视组件18、建模引擎组件20和安全监视组件22描绘为单独的组件,以用于说明目的并解释不同的功能。根据一个实施例,这三个组件可以被实现为可以交付安全功能的一个或相同的整体软件或硬件元件的一部分。活动监视组件18、建模引擎组件20和安全监视组件22可以被设计为为应用16提供安全性并且检测并防止与应用16相关联的恶意和犯罪活动。
根据一个实施例,活动监视组件18可以收集用户活动日志以提供用于行为建模过程的数据。然后,建模引擎组件20可以使用由活动监视组件18收集的数据来生成可以对用户行为进行建模的图。接下来,安全监视组件22可以监视后续的用户互联网活动,以检测是否有任何用户互联网活动可能违反所生成的模型。建模引擎组件20可以将用户行为模型生成为图,其中图的每个节点可以对应于关于应用16内的位置的活动,并且节点之间的每个连接可以表示应用16内的位置之间的用户可导航路径。在一个实施例中,应用16内的位置可以是应用16的状态(例如,特定页面)。
如前所述,设备8的三个组件(例如,活动监视组件18、建模引擎组件20和安全监视组件22)可以实现为生成代表相对于应用16的正常用户行为的图,然后可以检测与已生成的图不匹配的任何用户行为。可以从包括用户可以在足够长的时间段内与应用16进行的累积交互的归一化版本的数据集构建图,活动可以由活动监视组件18来收集。可以预期,在收获的数据集中,应用16的任何恶意用户的权重可以忽略不计,因为应用16的绝大多数用户可能是合法用户。
建模引擎组件20然后可以使用由活动监视组件18收集的数据集来生成图。在至少一个实施例中,活动监视组件18或建模引擎组件20都不会干扰应用16的正常操作。活动监视组件18和建模引擎组件20对于不执行两个组件18和20的可以执行正常操作的应用16是透明的。
根据一个实施例,使用用户设备10的用户可以浏览web应用或移动应用16,其中,每当用户导航功能时,几乎可以同时将几个请求从用户设备10发送到服务器12。继续前面的示例,当用户使用智能手机10通过在线银行应用16付款时,一些请求,例如令牌验证请求、相关页面上的图像、样式表和帐户余额信息,可能会发送到应用服务器12。在一实施例中,请求簇可以是伪原子请求。活动监视组件18可以捕获与应用16内的用户的当前位置有关的伪原子请求。
然后,建模引擎组件20可以使用收集的历史数据来分析用户流量,并将用户行为建模为基于图的数据结构。一旦对用户流量建模,安全监视组件22就可以根据生成的模型监视和分析后续的用户流量。
现在参考图3,示出了根据至少一个实施例的图26的示例的示意图。
在一个实施例中,图26可以包括一个或多个节点28和一个或多个连接30。每个连接30可以连接两个节点28,并且可以是单向连接或双向连接。在图3中,描绘了图26的一种视觉表示。然而,可以以许多其他方式来表示图26底层的数据。图3还示出了表格32,该表格描绘了可以被聚类在一起的各种请求。尽管图3所示的图26仅包括四个节点28,但是在一个实施例中,图26可以包括任意数量的与应用16相关联的节点28和连接30。
继续前面的示例,关于在线银行应用16,节点a可以代表应用16的主页,节点b可以代表“当前余额”功能,节点c可以代表“转账”功能。这样,图3所示的图26的结构可以指示在主页(例如,节点a)之后,用户可以直接导航到“转账”页面(例如,节点c),或者可以首先导航到“当前余额”页面(例如,节点b)。连接30可以表示在导航应用16时用户可用的导航选项。
现在参考图4,描绘了根据至少一个实施例的对与应用16的交互执行安全性检查的示例性计算机实现的方法的操作流程图。
在步骤s4.1,收集与远程应用有关的用户活动数据。活动监视组件18可以收集或收获与通过网络14远程访问的应用16有关的用户活动数据。在一个实施例中,活动监视组件18可以在限定的时间段(例如24小时)内收集用户与应用16的交互。收集的数据可以包括用户活动日志,用户活动日志可以包含从用户设备10向托管应用16的服务器12做出的请求。
然后,在步骤s4.2,从所收集的数据生成图。建模引擎组件20可以从所收集的用户活动数据生成图26(参见图3)。图26的每个节点28(参见图3)可以表示与应用16内的位置有关的从用户设备10接收的一组用户请求。另外,图26的节点28之间的每个连接30(参见图3)可以表示应用16内的位置之间的用户可导航路径。在一个实施例中,建模引擎组件20可以将从用户设备10接收的用户请求集合(作为用户与应用16的交互的结果)聚类为伪原子请求,然后可以针对每个这样的伪原子请求簇生成节点28。
接下来,在步骤s4.3,存储所生成的图。可以在与应用16的交互上执行安全性检查的设备8的处理器24可以在本地存储所生成的图26,从而可以根据需要/在需要时连续地访问所生成的图26。根据一个实施例,所生成的图26可以被本地存储在设备8内。
然后,在步骤s4.4,在应用内监视用户活动。安全监视组件22可以监视关于应用16的后续用户活动。在一个实施例中,当应用16继续被进入托管应用16的服务器12的请求使用和访问时,安全性监视组件22可以连续地监视与应用16相关联的用户活动。
接下来,在步骤s4.5,检测与图不匹配的用户活动。安全监视组件22(参见图2)可以检测与存储的图26(参见图3)不匹配的任何用户活动。根据一个实施例,安全监视组件22可以检测用户活动,例如包括可能未同时发送到服务器12的请求簇、可能同时发送到服务器12的来自不同簇的请求以及在图26中可能发现的任何异常导航路径。响应于检测到任何恶意活动,安全监视组件22可以生成警报并且可以暂停对应用16的检测到的请求。在另一个实施例中,安全监视组件22可以触发警报以进行监视。当检测到恶意活动时,可以停止应用16的正常操作,并且可以提高应用16的安全性。
继续先前的示例,当接收到的一组用户请求与生成的图26(参见图3)的任何节点28(参见图3)不匹配时,可以检测到用户活动。具体而言,可能形成伪原子请求的用户请求可能与可能形成由节点28定义的任何簇的请求不匹配。这可能表示访问应用16的恶意尝试,因此,请求可能被拒绝。在一实施例中,所有正常接收到的请求可以匹配图26中的节点28的请求。因此,可以检测到对正常用户请求的任何篡改或伪造用户请求的创建。
根据一个实施例,如果用户活动对应于未通过连接30直接连接的两个节点28之间的导航,则可以检测到用户活动。在应用16中,节点28之间的连接30的潜在数量可能非常大。但是,大多数节点28只能连接到少数其他节点28。这样,如果用户活动指示在应用16中未在图形26上连接的位置之间导航,则用户活动可触发警报。
一旦触发警报,该安全方法就可以自动采取行动,例如,通过停止应用16对可疑活动的响应,中止对用户帐户的访问以及向应用16的管理员发送电子邮件警报。在所有其他方面,应用16可以继续正常运行,并且安全过程的各个组件可以继续执行相应的组件任务。安全监视组件22可以继续监视关于应用16的所有用户活动。
现在参考图5,描绘了根据至少一个实施例的包括位置34的应用16的示意图。
位置34可以包括应用16内的逻辑位置,在该逻辑位置可以向用户呈现用户设备10上的输出和/或可以使用用户设备10执行一个或多个特定动作。例如,网络应用16的登陆页面或主页可以是应用16内的第一位置34。
应用16还可在应用16内包括可导航路线36,可以表示用户在导航应用16时可向下(例如,在逻辑意义上)行进的路径。例如,如果用户选择从主页访问“当前余额”页面,则用户可能必须导航到应用16中的新位置34。建模引擎组件20可以生成包括节点28和连接30的图26,可以对应于应用16的位置34和路线36。建模引擎组件20可以基于活动监视组件18的输出来操作,并且可以不直接访问应用16。这样,建模引擎组件20在生成图26的过程中可能不访问应用16的应用逻辑。
在一个实施例中,建模引擎组件20可以确定应用16中每个位置34的用户活动的加权平均值,并根据用户活动的加权平均值在图26中为特定位置34生成节点28。建模引擎组件20可以相对于特定位置34(和对应的节点28)确定与用户活动有关的用户活动的加权平均值。可以预期,应用16的绝大多数用户可以是合法用户,因此,数据集中的恶意用户的权重可以忽略不计。这样,恶意用户的行为可能不会被编入图26,这可能表示正常用户相对于应用16的正常行为。图26可以包含多个节点28,可以代表应用16内的位置34的正常用户活动。
根据一个实施例,建模引擎组件20可以从收集的用户活动数据中去除可以独立于用户与应用16的交互而生成的任何数据请求。以这种方式,建模引擎组件20可以过滤出可以独立于用户活动而发送到服务器12的公共请求。建模引擎组件20可以提供图26可以仅将由于用户与应用16的直接交互而产生的伪原子请求进行编码。用户设备10与服务器12上的应用16之间可能发生的不是直接用户操作的结果的任何后台活动,可能不包含在图26中。
现在参考图6,示出了根据本公开的实施例的包括数据处理系统的设备8的示意图。
设备8可以包括处理器24,配置为控制设备8的操作。设备8的处理器24可以连接到本地存储设备38(例如,用于存储所生成的图26)和本地接口40。可以提供计算机可读存储介质(“cd-rom”)42,用于存储计算机程序产品,该计算机程序产品可以用于控制处理器24以操作设备8。处理器24可以执行来自计算机程序产品的指令以操作设备8。具有建模引擎组件20(参见图2)的处理器24可以生成图26。然后,处理器24可以将所生成的图26存储在本地存储设备38中。
在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。