用于智能地检测客户端计算装置和公司网络上的恶意软件和攻击的方法和系统与流程

文档序号:16050367发布日期:2018-11-24 11:13阅读:204来源:国知局

近几年来,蜂窝技术和无线通信技术迅猛增长发展。无线服务提供商现在提供大量特征和服务,所述特征和服务向其用户提供对信息、资源和通信的前所未有的水平的存取。为了与这些改进保持同步,消费者电子装置(例如,蜂窝式电话、手表、头戴式耳机、远程控件等)变得前所未有的强大和复杂,且现在消费者电子装置通常包括大功率处理器、大型存储器和允许在其装置上执行复杂和强大软件应用程序的其它资源。这些装置还使其用户能够从应用程序下载服务(例如,appstore、store、play等)或因特网下载和执行多种软件应用程序。

由于这些和其它改进,增大数目的移动装置和无线装置用户如今使用其装置来存储敏感信息(例如,信用卡信息、联系人等)和/或完成对于其安全十分重要的任务。举例来说,移动装置用户频繁地使用他们的装置来购买货物、发送和接收敏感通信、支付账单、管理银行账户并且进行其它涉密交易。由于这些趋势,移动装置变为恶意软件和网络攻击的下一个前线。因而,更好的保护资源受限制的计算装置(例如,移动和无线装置)的新的且改进的安全解决方案将对消费者有利。



技术实现要素:

各种实施例包含保护计算装置免受非良性软件应用程序影响的方法,其可包含:通过服务器计算装置中的处理器从应用程序下载服务接收软件应用程序,通过处理器建立到客户端计算装置的安全通信链路,通过处理器凭借安全通信链路从客户端计算装置接收试验信息,通过处理器使用所接收的试验信息在客户端计算装置仿真器中试验(例如,执行)所接收的软件应用程序以识别一或多个行为,以及通过处理器确定所识别行为是否为良性的。

在一些实施例中,通过处理器使用所接收的试验信息在客户端计算装置仿真器中试验所接收的软件应用程序以识别一或多个行为可包含:在客户端计算装置仿真器的应用程序分析器组件中分析软件应用程序以识别确保观测的软件应用程序的方面,以及基于所接收的试验信息和对软件应用程序的分析选择供试验的软件应用程序的目标活动。这类实施例可进一步包含:触发软件应用程序的选定目标活动以供执行,以及在执行所触发活动期间观测软件应用程序的行为并且进一步基于软件应用程序的运行时行为选择新的目标活动。这类实施例可进一步包含:分析图形用户接口的布局,以及在触发软件应用程序的选定目标活动以供执行时使用图形用户接口的分析结果。

一些实施例可包含:响应于确定所识别行为是不良的,通过处理器封锁从应用程序下载服务接收的软件应用程序;以及向客户端计算装置发送通知消息,所述通知消息包含将软件应用程序识别为非良性的信息。一些实施例可包含响应于确定所识别行为是良性的,将从应用程序下载服务接收的软件应用程序发送到客户端计算装置。

一些实施例可包含响应于将从应用程序下载服务接收的软件应用程序发送到客户端计算装置,通过安全通信链路从客户端计算装置接收额外试验信息。这类实施例可包含:使用额外试验信息以进一步试验所接收的软件应用程序和识别额外行为,以及确定所识别的额外行为是否为良性的。在一些实施例中,从客户端计算装置接收试验信息可包含接收识别软件应用程序的置信度水平的信息、应用程序中的所探索活动(例如,图形用户接口(gui)屏幕等)的列表、所探索gui屏幕的列表、应用程序的未探索活动的列表、未探索gui屏幕的列表、未探索行为的列表、硬件配置信息或软件配置信息。

一些实施例可包含:计算所接收的软件应用程序的风险得分,以及通过安全通信链路将所计算风险得分发送到客户端计算装置。

一些实施例可包含:在客户端计算装置中接收软件应用程序,开始在客户端计算装置上执行软件应用程序,以及监测软件应用程序的活动以收集行为信息。这类实施例可包含:产生向量数据结构,所述向量数据结构通过多个数字或符号描述所收集的行为信息;将向量数据结构应用于机器学习分类器模型以产生分析结果;以及使用所产生的分析结果确定软件应用程序是否为良性的。一些实施例可包含响应于确定软件应用程序为不良的,将来自客户端计算装置的所产生分析结果作为试验信息发送到服务器计算装置。

一些实施例可包含从客户端计算装置接收通信请求消息。在这类实施例中,建立到客户端计算装置的安全通信链路可包含响应于从客户端计算装置接收通信请求消息建立到客户端计算装置的安全通信链路。

其它实施例包含一种服务器计算装置,其包含经配置有用以执行上文概述的方法的操作的处理器可执行指令的处理器。其它实施例包含一种非暂时性计算机可读存储媒体,其上存储有经配置以使得服务器计算装置中的处理器执行上文概述的方法的操作的处理器可执行软件指令。其它实施例包含一种计算装置,其具有用于执行上文概述的方法的功能的装置。

附图说明

并入本文中并且构成本说明书一部分的附图说明本发明的示范性实施例,并且与上文给出的一般描述和下文给出的详细描述一起用来解释本发明的特征。

图1为说明适合用于各种实施例的实例电信系统的网络组件的通信系统框图。

图2为说明在根据各种实施例配置的实施例系统中的实例逻辑组件和信息流的框图。

图3为说明在根据各种实施例经配置以保护公司网络和其装置的实施例系统中的额外组件和信息流的框图。

图4a为说明根据各种实施例的一种用于保护公司网络和客户端装置的方法的过程流程图。

图4b为说明根据各种实施例的一种在仿真器中试验软件应用程序的方法的过程流程图。

图5为适合用于各种实施例的一种客户端计算装置的组件框图。

图6为适合用于各种实施例的一种服务器装置的组件框图。

具体实施方式

将参考附图详细描述各种实施例。在可能的情况下,将在整个图式中使用相同参考编号来指代相同或相似部分。对特定实例和实施方案进行的参考是用于说明性目的,且不希望限制本发明或权利要求书的范围。

概括地说,各种实施例包含方法和经配置以实施方法的装置(例如,服务器计算装置、客户端计算装置等),其用于保护公司网络和移动计算装置免受恶意软件和可降低计算装置或公司网络的性能的其它非良性应用程序或行为的影响。

各种实施例可包含一种服务器计算装置,其经配置有用于通过多个用户交互测试用于客户端装置的软件应用程序以检测潜在的非良性行为的软件模块或可执行代码。与用于此项技术的术语一致,执行各种实施例的操作的软件应用程序被称作“雷管组件(detonatorcomponent)”。雷管组件可经配置以从应用程序下载服务(例如,appstore、store、play等)接收或拦截客户端计算装置(例如,移动或资源受限计算装置等)所请求的软件应用程序。雷管组件可模拟客户端计算装置并通过各种配置、操作和用户交互试验所接收的/拦截的软件应用程序或对其进行压力测试。通过观测这种试验期间的操作和行为,雷管组件可执行各种分析操作(例如,静态分析操作、动态分析操作、基于行为的分析操作等)以确定软件应用程序为良性的还是非良性的。雷管组件可响应于确定软件应用程序为非良性的而采取各种校正性或预防性动作。举例来说,雷管组件可封锁经确定为非良性的软件应用程序,防止客户端计算装置下载非良性软件应用程序,通知公司或信息技术(it)安全系统客户端装置尝试下载恶意软件(并因此可能正经历网络攻击或由于其它原因而需要审查或评估),通知客户端计算装置应阻止、删除或不下载所请求的应用程序,并执行其它类似操作。

各种实施例可包含一种客户端计算装置,其经配置以执行各种操作来完成客户端驱动的触发。举例来说,客户端计算装置可经配置以建立到雷管组件或服务器计算装置的安全通信链路并使用安全通信链路来请求雷管组件评估软件应用程序的特定方面或行为(例如,响应于客户端计算装置确定所述软件应用程序可疑、非良性等)。

在一些实施例中,客户端计算装置可装备有装置上安全系统,其经配置以使用行为分析和机器学习技术来识别、防止、响应于和/或校正非良性行为。作为这些操作的部分,装置上安全系统可监测装置行为,产生行为信息结构(例如,行为向量),将行为信息结构应用于分类器模型以产生行为分析结果,并使用行为分析结果确定软件应用程序或装置行为是良性还是非良性的。

响应于确定软件应用程序或装置行为可疑(例如,无法基于比较或分析结果等以足够高的置信度分类为良性或非良性的),客户端计算装置可收集试验信息并通过安全通信链路将其发送到雷管组件并且请求雷管组件进一步分析软件应用程序。试验信息可包含识别软件应用程序的置信度水平的信息、应用程序中的所探索活动的列表、所探索gui屏幕的列表、应用程序的未探索活动的列表、未探索gui屏幕的列表、未探索行为的列表、硬件配置信息、软件配置信息、所收集的行为信息、所产生的行为向量、分类器模型、其分析操作的结果、按钮位置、显示在客户端装置的电子显示器上的文本框或其它电子用户输入组件以及其它类似信息。服务器计算装置可接收并使用试验信息更新其客户端计算装置仿真器和/或使其操作集中在评估特定行为活动、屏幕、用户接口元件、电子密钥、布局等上。

在一些实施例中,客户端计算装置可经配置以从雷管或服务器计算装置接收信息(例如,风险得分、置信度值、分级等),并使用所接收的信息来评估(或进一步评估)软件应用程序和/或确定所述软件应用程序是良性的还是非良性的。

雷管组件可经配置以通过安全通信链路从客户端计算装置安全地接收关于软件应用程序的试验信息(例如,行为信息、分类器模型、行为向量等)。在一些实施例中,服务器计算装置可经配置以使用模拟或分析结果(例如,由执行静态和/或动态分析操作产生的结果)产生试验信息并将试验信息发送到客户端计算装置。试验信息可包含行为信息、行为向量、分类器模型、其分析操作的结果、置信度水平、风险得分、探索活动或图形用户接口(gui)屏幕的列表、未探索gui屏幕或活动的列表、硬件配置信息、软件配置信息、分级、安全性得分和其它类似信息。在一实施例中,试验信息可包含简明地描述或表征软件应用程序的活动(例如,通过一系列数字或符号等)的行为向量(信息结构)。

各种实施例通过改进计算装置的安全性、性能和功率消耗特征来改进其机能。举例来说,通过比较从服务器接收的信息与装置中所收集的信息以确定软件应用程序是否可疑,各种实施例允许计算装置快速并智能地确定是要执行额外分析操作还是请求服务器执行对软件应用程序的更稳固分析。这通过允许装置分担处理器或电池密集型操作并控制由雷管组件评估(例如,通过借助安全链路发送试验信息)的特征或因素来改进装置的性能和功率消耗特征。计算装置的功能、功能性和/或机能的额外改进将从下文所提供的实施例的详细描述中显而易见。

例如“性能下降”、“性能降低”等等短语可用于本申请案中以指代网络或计算装置的多种多样的非所要操作和特征,例如较长处理时间、较慢实时响应、较短电池寿命、私人数据丢失、恶意经济活动(例如,发送未授权高价短消息服务(sms)消息)、拒绝服务(dos)、不佳地撰写或设计的软件应用程序、恶意软件、恶意程序、病毒、碎片化存储器、与征用所述装置或将装置用于间谍或僵尸网络活动相关的操作等。并且,出于这些原因中的任一者的降低性能的行为、活动和状况在本文中被称作“不良的”或“非良性的”。

术语“客户端计算装置”和“移动计算装置”在本申请案中类属地和可互换地使用,并且指代以下中的任何一者或全部:蜂窝式电话、智能电话、个人或移动多媒体播放器、个人数据助理(pda)、膝上型计算机、平板计算机、智能本、超级本、掌上型计算机、无线电子邮件接收器、具多媒体因特网功能的蜂窝式电话、无线游戏控制器以及包含存储器、可编程处理器的类似电子装置,对于所述电子装置性能是重要的,并且所述电子装置在电池电源下运行使得电力节约方法是有益的。虽然各种实施例明确地说适用于为资源受限系统的客户端计算装置,但所述实施例一般适用于包含处理器和执行软件应用程序的任何计算装置。

现代计算装置使其用户能够从应用程序下载服务(例如,appleappstore、windowsstore、googleplay等)或因特网下载和执行多种软件应用程序。这些应用程序中的许多个易受恶意软件、广告软件、程序错误或其它非良性元素影响和/或含有所述非良性元素。因此,下载和在计算装置上执行这些应用可降低公司网络和/或计算装置的性能。因此,重要的是确保仅将良性应用下载至计算装置或公司网络。

近来,谷歌/安卓已研发出一种被称作“themonkey”对允许用户对软件应用程序进行“压力测试(stress-test)”的工具。这种工具可作为仿真器运行以产生用户事件(例如,点击、触摸、手势等)和开发人员可用于对软件应用程序进行压力测试的系统级事件(例如,显示设置改变事件、会话结束事件等)的伪随机流。虽然在一定程度上可使用这类常规工具(例如,themonkey等),但其不合适用于经设计以供在移动计算装置或其它资源受限装置中执行和使用的具有软件应用程序特有的富图形用户接口的“应用(app)”或软件应用程序的系统性/智慧性/智能评估。

常规压力测试工具存在许多局限性,这些局限性妨碍这类工具在下载和在客户端计算装置上执行恶意软件和/或其它非良性应用程序之前智能地识别所述应用程序。首先,最常规的仿真器经设计用于在桌面环境上执行和/或用于模拟经设计以供在桌面环境中执行的软件应用程序。桌面应用程序(即,经设计用于在桌面环境中执行的软件应用程序)的研发速率比应用(即,经设计主要用于在移动或资源受限环境中执行的软件应用程序)慢得多。因此,常规解决方案通常并不包含用于快速、有效(即,不使用大量处理或电池资源)或自适应地(即,基于由执行相同或类似应用程序的其它移动计算装置在“野外(wild)”或“现场(field)”收集的真实数据)评估应用程序的特征和功能性。

另外,移动计算装置为具有相对受限的处理、存储器和能量资源的资源受限系统,并且这些常规解决方案可能需要在移动计算装置中执行计算密集型处理程序。因而,在移动计算装置中实施或执行这些常规解决方案可对移动计算装置的响应性、性能或功率消耗特征具有显著的负面影响和/或用户可察觉影响。

另外,许多常规解决方案(例如,“themonkey”等)产生使得软件应用程序执行有限数目的操作的事件的伪随机流。这些流可仅用于评估有限数目的状况、特征或因素。然而,现代移动计算装置为高度可配置且复杂的系统,并且包含多种多样的可能需要分析以识别非良性行为的状况、因素和特征。因此,例如themonkey的常规解决方案并未对应用或移动计算装置应用程序进行充分压力测试,因为其无法评估移动计算装置中可能需要分析的所有状况、特征或因素。举例来说,themonkey和其它常规工具并未充分识别按钮文本框或显示在移动计算装置的电子显示器屏幕上的其它电子用户输入组件的呈现、存在或位置。因此,这些解决方案无法对这些特征(例如,电子用户输入组件等)进行充分的压力测试或评估以确定移动计算装置应用程序是良性的还是非良性的。

另外,常规工具不能智能地确定供软件应用程序或移动计算装置使用的活动或屏幕的数目,或个别活动或屏幕的相对重要性。另外,常规工具将制作的测试数据(即,在程序执行之前确定的数据)用于评估性软件应用程序,与从移动计算装置上的软件应用程序的使用搜集的真实或实况数据相反。出于所有这些原因,用于对软件应用程序进行压力测试的常规工具不能充分或彻底地“试验(exercise)”经设计用于在移动计算装置上执行的软件应用程序或对所述软件应用程序进行压力测试,并且所述常规工具在其它方面不适合于在将非良性应用程序下载到公司网络上之前和/或在将所述非良性应用程序下载、安装在移动计算装置上或在移动计算装置上执行之前识别所述非良性应用程序。

各种实施例包含计算装置,其经配置以克服常规解决方案的上文提及的局限性并在将非良性应用程序下载到公司或专用网络上之前和/或在将所述应用程序下载和安装在客户端计算装置上之前识别所述应用程序。

各种实施例可包含一种服务器计算装置,其包含服务器处理器,所述服务器处理器经配置以从应用程序下载服务接收软件应用程序、建立到客户端计算装置的安全通信链路并通过安全通信链路从客户端计算装置接收试验信息。可由服务器接收的试验信息的实例可包含识别软件应用程序的置信度水平的信息、所探索活动的列表、所探索gui屏幕的列表、未探索活动的列表、未探索gui屏幕的列表、未探索行为的列表、硬件配置信息、软件配置信息等。服务器可使用所接收的试验信息在客户端计算装置仿真器中试验/执行所接收的软件应用程序以识别一或多个行为。基于在所述试验期间对仿真器的行为的观测,服务器可确定如何触发将引起所需行为的一系列活动并在随后触发所识别行为。服务器可在触发所识别行为时观测仿真器的行为,并确定软件应用程序和/或所识别行为是否为良性的。计算装置可响应于确定软件应用程序或所识别行为中的任一者为不良的而封锁软件应用程序,或响应于确定所识别行为是良性的而将软件应用程序发送到客户端计算装置。在一些实施例中,服务器计算装置还可计算所接收的软件应用程序的风险得分,并通过安全通信链路将所计算的风险得分发送到客户端计算装置。

客户端计算装置可接收和执行软件应用程序并动态地选择用于观测的行为。客户端计算装置可自适应地观测动态地选定的行为以收集行为信息。基于所述观测,客户端计算装置可产生通过多个数字或符号描述所收集的行为信息的向量数据结构。客户端计算装置可将向量数据结构应用于机器学习分类器模型以产生分析结果,并使用所产生分析结果确定软件应用程序为可疑的。客户端计算装置可响应于确定软件应用程序为可疑的而收集额外试验信息并通过安全通信链路将其发送到服务器计算装置。

服务器计算装置可通过安全通信链路从客户端计算装置接收额外试验信息。服务器计算装置可使用额外试验信息进一步试验所接收的软件应用程序和识别额外行为。观测所识别的额外行为,服务器计算装置可确定所识别的额外行为是良性的还是不良的。

在一些实施例中,服务器计算装置可经配置以在将恶意软件和/或其它非良性应用程序下载到公司网络上之前和/或在将所述应用程序下载、安装在客户端计算装置上或在客户端计算装置上执行之前智能地识别所述应用程序。

在一些实施例中,服务器计算装置可经配置以试验、评估经设计用于在移动或其它资源受限计算装置中执行和使用的“应用”或软件应用程序或对其进行压力测试。

在一些实施例中,服务器计算装置可经配置以评估软件应用程序和/或客户端计算装置的多种多样的状况、因素和特征以确定行为或软件应用程序是否为非良性的。

在一些实施例中,服务器计算装置可经配置以快速有效地和自适应地评估应用而不会对客户端计算装置的响应性、性能或功率消耗特征具有显著的负面和/或用户可察觉影响。

在一些实施例中,服务器计算装置可经配置以识别按钮文本框或显示在客户端计算装置的电子显示器屏幕上的其它电子用户输入组件的呈现、存在或位置,并评估这些所识别状况、特征或因素中的任一者或全部以确定行为或软件应用程序是否为非良性的。

在一些实施例中,服务器计算装置可经配置以确定供软件应用程序使用的活动或屏幕的数目,确定个别活动或屏幕的相对重要性,并使用这些信息确定行为或软件应用程序是否为非良性的。

在一些实施例中,服务器计算装置可经配置以使用从软件应用程序在客户端计算装置上的使用收集的真实或实况数据来更充分地试验经设计用于在客户端计算装置上执行的软件应用程序或对所述软件应用程序进行压力测试。

各种实施例可在多种通信系统(例如图1中所示的实例通信系统100)内实施。典型的小区电话网络104包含耦合到网络操作中心108的多个小区基站106,所述小区电话网络104用以(例如)通过电话陆线(例如,传统电话业务(pots)网络,未展示)和因特网110连接客户端计算装置102(例如,手机、膝上型计算机、平板计算机等)与其它网络目的地之间的呼叫(例如,语音呼叫或视频呼叫)和数据。客户端计算装置102与电话网络104之间的通信可通过双向无线通信链路112(例如第四代(4g)、第三代(3g))、码分多址接入(cdma)、时分多址接入(tdma)、长期演进(lte)和/或其它移动通信技术)实现。电话网络104还可包含耦合到网络操作中心108或在网络操作中心108内的一或多个服务器114,所述一或多个服务器114提供到因特网110的连接。

通信系统100可进一步包含连接到电话网络104和因特网110的网络服务器116。网络服务器116与电话网络104之间的连接可通过因特网110或通过专用网络(如虚线箭头所示)。网络服务器116还可实施为云服务提供商网络118的网络基础设施内的服务器。网络服务器116与客户端计算装置102之间的通信可通过电话网络104、因特网110、专用网络(未示出)或其任何组合实现。在一实施例中,网络服务器116可经配置以建立到客户端计算装置102的安全通信链路,并通过安全通信链路安全地传达信息(例如,行为信息、分类器模型、行为向量等)。

客户端计算装置102可请求从专用网络、应用程序下载服务或云服务提供商网络118下载软件应用程序。网络服务器116可装备有经配置以接收或拦截客户端计算装置102请求的软件应用程序的仿真器、试验器和/或雷管组件。仿真器、试验器和/或雷管组件还可经配置以模拟客户端计算装置102,试验所接收/拦截的软件应用程序或对软件应用程序进行压力测试,并执行各种分析操作以确定所述软件应用程序是良性的还是非良性的。

因此,网络服务器116可经配置以在将软件应用程序下载到客户端计算装置102之前拦截所述软件应用程序,模拟客户端计算装置102,试验所拦截的软件应用程序或对所述软件应用程序进行压力测试,并确定所拦截的软件应用程序是良性的还是非良性的。在一些实施例中,网络服务器116可装备有经配置以确定软件应用程序是良性的还是非良性的基于行为的安全系统。在一实施例中,基于行为的安全系统可经配置以产生机器学习分类器模型(例如,包含组件列表、决策节点等的信息结构),产生行为向量(例如,表征装置行为和/或通过多个数字或符号表示所收集的行为信息的信息结构),将所产生的行为向量应用于所产生的机器学习分类器模型以产生分析结果,并使用所产生的分析结果将软件应用程序分类为良性的或非良性的。

图2说明根据各种实施例的实例系统200,所述实例系统200包含可经配置以拦截和评估软件应用程序的雷管组件202。在图2所示的实例中,安全通信链路204建立在雷管组件202与客户端计算装置102之间。在一些实施例中,客户端计算装置102可建立到雷管组件202的安全通信链路204。在其它实施例中,雷管组件202可建立到客户端计算装置102的安全通信链路204。

在各种实施例中,雷管组件202可响应于从客户端计算装置102接收到下载应用程序的请求、响应于确定其接收到客户端计算装置102所请求的软件应用程序等建立到客户端计算装置102的安全通信链路204。在各种实施例中,客户端计算装置102可响应于确定待从应用程序下载服务下载软件应用程序、响应于接收到软件应用程序、响应于确定所接收的软件应用程序为可疑的或非良性的等而建立到雷管组件202的安全通信链路204。

雷管组件202可经配置以通过安全通信链路204从客户端计算装置102接收试验信息(例如,置信度水平、所探索活动的列表、所探索gui屏幕的列表、未探索活动的列表、未探索gui屏幕的列表、未探索行为的列表、硬件配置信息、软件配置信息、行为向量等)。雷管组件202还可通过安全通信链路204将信息(例如,风险得分、安全性等级、行为向量、分类器模型等)发送客户端计算装置102。

雷管组件202可经配置以从应用程序下载服务接收或通过因特网110接收软件应用程序(或应用程序包、应用程序数据等)。雷管组件202可经配置以在客户端计算装置仿真器中试验所接收的软件应用程序或对所述软件应用程序进行压力测试。雷管组件202可经配置以识别软件应用程序和/或客户端计算装置102的一或多个活动或行为并根据其重要性水平为所述活动或行为分级。雷管组件202可经配置以基于其分级区分活动或行为的优先级,并根据其优先级分析所述活动或行为。雷管组件202可经配置以产生分析结果,并使用所述分析结果确定所识别行为是良性的还是非良性的。

雷管组件202可将所接收的软件应用程序(或应用程序包、应用程序数据等)发送到公司网络206或以其它方式允许在公司网络206中接收软件应用程序。公司网络206可包含经配置以将软件应用程序发送到客户端计算装置102的组件。

响应于确定所述软件应用程序或所识别行为中的任一者为非良性的,雷管组件202可封锁所述软件应用程序并将安全警告或通知消息发送到公司或it/安全系统206。作为响应,公司或it/安全系统206可将通知消息发送到客户端计算装置102和/或采取其它校正性或预防性措施,所述通知消息包含将软件应用程序识别为非良性的信息。

图3说明根据各种实施例配置的系统300中的各种组件和信息流,所述系统300包含在服务器中执行的雷管组件202和客户端计算装置102。在图3所示的实例中,雷管组件202包含应用程序分析器组件322、目标选择组件324、活动触发器组件326、布局分析组件328和捕获器组件330。客户端计算装置102包含安全系统300,所述安全系统300包含行为观测器组件302、行为提取器组件304、行为分析器组件306和致动器组件308。

如上文所提及,雷管组件202可经配置以试验软件应用程序(例如,在客户端计算装置仿真器中)以识别软件应用程序和/或客户端计算装置102的一或多个行为并确定所识别行为是良性的还是非良性的。作为这些操作的部分,雷管组件202可执行静态和/或动态分析操作。静态分析操作可包含分析字节代码(例如,上载到应用程序下载服务的软件应用程序的代码)以识别代码路径,评估软件应用程序的意图(例如,以确定其是否为恶意的等),以及执行其它类似操作以识别软件应用程序的可能操作或行为中的全部或多者。动态分析操作可包含通过仿真器(例如,在云端等)执行字节代码以确定其行为中的全部或多者和/或以识别非良性行为。在一实施例中,雷管组件202可经配置以使用由静态和动态分析操作产生的信息的组合(例如,静态和动态分析结果的组合)确定软件应用程序或行为是良性的还是非良性的。举例来说,雷管组件202可经配置以基于应用程序编程接口(api)用途和/或代码路径使用静态分析填充具有预期行为的行为信息结构,并基于模拟行为和其相关统计资料(例如激发或使用特征的频率)使用动态分析填充行为信息结构。雷管组件202随后可将行为信息结构应用于机器学习分类器以产生分析结果,并使用分析结果确定应用程序是良性的还是非良性的。

应用程序分析器组件322可经配置以执行静态和/或动态分析操作以识别一或多个行为并确定所识别行为是良性的还是非良性的。举例来说,针对各个活动(即,gui屏幕),应用程序分析器组件322可执行多种操作中的任一者,例如对代码行的数目计数,对敏感/受关注api调用的数目计数,检查其对应的源代码,调用方法以展开源代码或操作/活动,检查所得源代码,以递归方式对代码行的数目计数,以递归方式对敏感/受关注api调用的数目计数,输出可从活动获得的代码行的总数,输出可从活动获得的敏感/受关注api调用的总数,等等。应用程序分析器组件322还可用以产生用于指定应用程序的捕捉不同活动(即,gui屏幕)如何彼此链接的活动过渡图表。

目标选择组件324可经配置以识别和选择高价值目标活动(例如,根据使用情况,基于试探法,基于应用程序分析器组件322执行的分析的结果,以及从客户端计算装置接收的试验信息等)。目标选择组件324还可根据代码行的累计数目、制作于源代码中的敏感或受关注api调用的数目等为活动或活动类别分级。用于恶意软件检测的敏感api的实例可包含takepicture、getdeviceid等。用于能量程序错误检测的所关注api的实例可包含wakelock.acquire、wakelock.release等。目标选择组件324还可根据分级区分活动访问的优先级,并基于分级和/或优先级选择目标。

一旦达到和探索了当前目标活动,就可通过目标选择组件324选定新目标。在一实施例中,这可通过比较实际上在运行时期间进行的敏感/受关注api调用的数目与由应用分析器组件322确定的敏感/受关注api调用的数目来实现。此外,基于观测到的应用程序展现的运行时行为,可将活动中的一些(包含已经探索的那些活动)再分级并且再次在仿真器上进行探索/试验。

基于应用程序分析器组件322中确定的活动过渡图表,活动触发器组件326可确定如何触发将引起选定目标活动的一系列活动,从例如应用程序的清单文件识别入口点活动,和/或使用monkey工具模拟、触发或执行所确定的一系列活动。

布局分析组件328可经配置以分析源代码和/或评估显示器或输出屏幕的布局以识别gui屏幕上可见的不同gui控件(按钮、文本框等)、其位置和其它特性,例如按钮是否可点击。

捕获器组件330可经配置以捕获或引起目标行为。在一些实施例中,这可包含监测软件应用程序的活动以收集行为信息,使用所收集的行为信息产生行为向量,将行为向量应用于分类器模型以产生分析结果,以及使用分析结果确定软件应用程序或装置行为是良性的还是非良性的。

各个行为向量可为包封一或多个“行为特征”的行为信息结构。各个行为特征可为表示观测到的行为中的全部或一部分的抽象数。另外,各个行为特征可与识别可能值范围的数据类型、可对那些值执行的操作、值的含义等相关联。数据类型可包含可用于确定应如何测量、分析、加权或使用特征(或特征值)的信息。举例来说,捕获器组件330可产生包含“location_background”数据字段的行为向量,所述数据字段的值识别软件应用程序在其在背景状态下操作时存取位置信息的数目或速率。这允许捕获器组件330独立于软件应用程序的其它观测/监测到的活动和/或与所述活动并行地分析所述执行状态信息。以这种方式产生行为向量还允许系统随时间推移聚集信息(例如,频率或速率)。

分类器模型可为包含数据和/或信息结构(例如,特征向量、行为向量、组件列表、决策树、决策节点等)的行为模型,所述数据和/或信息结构可由计算装置处理器使用以评估装置的行为的特定特征或实施例。分类器模型还可包含用于监测和/或分析计算装置中的多个特征因素、数据点、条目、api、状态、状况、行为、软件应用程序、过程、操作、组件等(本文中统称为“特征”)。

在客户端计算装置102中,行为观测器组件302可经配置以仪表化或协调客户端计算装置102的各种层级处的各种应用程序编程接口(api)、寄存器、计数器或其它组件(本文中统称为“仪表化组件”)。行为观测器组件302可通过从仪表化组件收集行为信息来反复地或持续地(或几乎持续地)监测客户端计算装置102的活动。在一实施例中,这可通过从存储在客户端计算装置102的存储器中的api日志文件读取信息来实现。

行为观测器组件302可将所收集的行为信息传达(例如,通过存储器写入操作、功能调用等)到行为提取器组件304,所述行为提取器组件304可使用所收集的行为信息产生行为信息结构,所述行为信息结构各自表示或表征与客户端计算装置的特定软件应用程序、模块、组件、任务或进程相关联的观测到的行为中的多者或全部。各个行为信息结构可为包封一或多个“行为特征”的行为向量。各个行为特征可为表示观测到的行为中的全部或一部分的抽象数。另外,各个行为特征可与识别可能值范围的数据类型、可对那些值执行的操作、值的含义等相关联。数据类型可包含可用于确定应如何测量、分析、加权或使用特征(或特征值)的信息。

行为提取器组件304可将所产生的行为信息结构传达(例如,通过存储器写入操作、功能调用等)到行为分析器组件306。行为分析器组件306可将行为信息结构应用于分类器模型以产生分析结果,并使用分析结果确定软件应用程序或装置行为是良性的还是非良性的(例如,恶意的、不佳地写入的、性能降低的等)。

行为分析器组件306可经配置以通知致动器组件308活动或行为是不良的。作为响应,致动器组件308可执行各种动作或操作以消除、解决、隔离或修复所识别的问题。举例来说,致动器组件308可经配置以在将行为信息结构应用于分类器模型(例如,通过分析器模块)的结果指示软件应用程序或进程是不良的时终止软件应用程序或进程。

行为分析器组件306还可经配置以响应于确定装置行为可疑(即,响应于确定分析操作的结果不足以将行为分类为良性或非良性的)而通知行为观测器组件302。作为响应,行为观测器组件302可调整其观测的粒度(即,监测到客户端计算装置特征的细节水平)和/或改变基于从行为分析器组件306接收的信息(例如,实时分析操作的结果)观测到的因素/行为,产生或收集新的或额外的行为信息,并且将新的/额外的信息发送到行为分析器组件306以供进一步分析。行为观测器组件302与行为分析器组件306之间的这类反馈通信使得客户端计算装置处理器能够以递归方式增大观测粒度(即,进行更精细或更详细观测)或变化直至将行为分类为良性或非良性的之前、直至达到处理或电池消耗阈值之前或直至客户端计算装置处理器确定可疑的或性能降低的行为的来源无法依据观测粒度的进一步增大而识别之前所观测到的特征/行为。这类反馈通信还使得客户端计算装置102能够在客户端计算装置102中本地调整或修饰分类器模型,而不消耗客户端计算装置102的过量处理存储器或能量资源。

图4a说明根据各种实施例的用于保护公司网络和/或计算装置的服务器方法400和客户端计算装置方法450。方法400可由服务器计算装置中的服务器处理器执行,所述服务器处理器实施雷管组件的全部或部分。方法450可由客户端计算装置(例如移动计算装置、资源受限计算装置等)中的客户端计算装置处理器执行。

在方法400的框402中,服务器处理器可从应用程序下载服务接收软件应用程序。在框404中,服务器处理器可建立到客户端计算装置的安全通信链路。在一些实施例中,服务器处理器可响应于从客户端计算装置接收请求消息(例如,请求建立安全通信)而建立到客户端计算装置的安全通信链路。在一些实施例中,服务器处理器可在接收软件应用程序之前建立到客户端计算装置的安全通信链路。在一些实施例中,服务器处理器可响应于接收到软件应用程序而建立到客户端计算装置的安全通信链路。

在框406中,服务器处理器可通过安全通信链路从客户端计算装置接收试验信息(例如,如果用户已经在移动装置上使用应用程序并希望进一步在雷管服务器上评估所述应用程序,等等)。试验信息可包含识别软件应用程序的置信度水平的信息、所探索活动的列表、所探索gui屏幕的列表、未探索活动的列表、未探索gui屏幕的列表、未探索行为的列表、硬件配置信息、软件配置信息等。

在框408中,服务器处理器可试验所接收的软件应用程序(例如,在客户端计算装置仿真器中,等等)以识别一或多个行为。举例来说,服务器处理器可在仿真器中执行应用程序以测试所述软件应用程序的可基于所接收的试验信息选择或确定的各种特征、活动、行为等。

在框410中,服务器处理器可评估所识别行为(例如,对代码行、api调用等计数)并确定软件应用程序是否可分类为良性对或非良性的。

在确定框412中,服务器处理器可确定软件应用程序是否为良性的。

响应于确定软件应用程序为良性的(即,确定框412=“是”),在框414中,服务器处理器可将软件应用程序发送到公司网络中的服务器和/或客户端计算装置。

响应于确定软件应用程序是不良的(即,确定框412=“否”),在框416中,服务器处理器可封锁软件应用程序,并且在框418中,服务器处理器可将安全警告或通知消息发送到公司或it安全系统和/或客户端计算装置。

在方法450的框452中,客户端计算装置处理器可从应用程序下载服务接收软件应用程序。在一实施例中,客户端计算装置处理器可在服务器处理器执行框414中的操作之后接收软件应用程序。

在框454中,客户端计算装置处理器可建立到雷管组件的安全通信链路(如果已经不存在安全链路)。

在框456中,装置处理器可运行或执行软件应用程序,并观测用户交互、行为和装置的配置(例如,通过装置上安全系统等)以收集试验信息(例如,所探索/未探索gui屏幕的列表等)。在框458中,装置处理器可通过安全通信链路将所收集的试验信息发送或发射到服务器。装置处理器可在框456和458中持续地或反复地执行操作,直至其在框460中接收安全通知消息为止。

在框462中,装置处理器可响应于接收到安全通知消息而采取校正性动作。举例来说,在框462中,装置处理器可终止或封锁软件应用程序。

在于方法400的框408中在移动装置仿真器中试验所接收的软件应用程序时,服务器处理器可智能地执行软件应用程序以试图诱发可为非良性的行为。换句话说,利用从客户端装置接收的试验信息以及对软件应用程序本身的分析,服务器处理器可选择用于执行的特定活动、将触发的gui接口和分析指示涉及或触发的非良性行为的概率提高的操作模式。图4b说明操作的实例方法,所述操作可在方法400的框408中执行以实现软件应用程序的所述智能执行。

在框420中,服务器处理器可在应用程序分析器组件(例如,图3的应用程序分析器组件322)中分析软件应用程序以识别确保执行和观测的所述应用程序的方面。这种分析可涉及识别供非良性采用的可能性提高的可疑api调用、操作模式、数据传送等。

在框422中,服务器处理器可基于所接收的试验信息以及对应用程序的分析选择供试验的目标活动(例如,gui交互)。在一些实施例中,目标活动的选择可通过如参考图3所描述的目标选择组件324实现。

在框424中,服务器处理器可触发软件应用程序的选定目标活动以供执行。举例来说,服务器处理器可使用程序或应用程序激活选定gui图标或交互以使得相关联操作或活动得以执行。

作为框424中触发选定目标活动的执行的部分,服务器处理器可在框426中分析gui屏幕的布局以识别特定图标以供激活,以及辨别可指示非良性行为的屏幕元素。举例来说,服务器处理器可在框426中分析gui屏幕的布局以识别与软件应用程序的目标活动相关联的供触发的图标的坐标。作为另一实例,服务器处理器可在框426中分析gui屏幕的布局以识别与活动触发器相关联的屏幕的部分,所述部分不与可见图标相关联。作为另一个实例,服务器处理器可在框426中分析gui屏幕的布局以识别所显示的图标,所述图标将触发与所述图标上的标签或指示不一致的活动(例如,在图标标记为“取消”时触发活动)。

在框428中,服务器处理器可在所触发活动的执行期间观测软件应用程序的行为。举例来说,服务器处理器可基于在所触发活动的执行期间观测到的行为产生行为向量,并如本文中所描述将行为向量应用于行为分析模型。

基于应用程序的所观测运行时行为,可选择新的目标活动以供在仿真器上试验。此外,基于应用程序展现的运行时行为,可将活动中的一些(包含已经探索的那些活动)再分级并且再次在仿真器上进行探索/试验。

可继续触发选定目标活动以供执行和在所触发活动的执行期间观测软件应用程序的行为的操作,直至已执行和观测到全部选定目标活动为止。

可在如上文参考图4a所描述的框410中通过服务器处理器评估执行和观测软件应用程序的选定目标活动的行为的结果。

各种实施例可实施于多种移动客户端计算装置上,在图5中说明所述移动客户端计算装置的实例。确切地说,图5为适合用于实施例中的任一者的呈智能电话/手机500形式的客户端计算装置的系统框图。手机500可包含耦合到内部存储器504、显示器506及扬声器508的处理器502。另外,手机500可包含用于发送和接收电磁辐射的天线510,其可连接到耦合到处理器502的无线数据链路和/或蜂窝式电话(或无线)收发器512。手机500通常还包含用于接收用户输入的菜单选择按钮或摇臂开关514。

典型手机500还包含声音编码/解码(编解码器)电路516,其将从麦克风接收的声音数字化成适合于无线发射的数据包,并解码所接收的声音数据包以产生提供到扬声器508以产生声音的模拟信号。而且,处理器502、无线收发器512及编解码器516中的一或多者可包含数字信号处理器(dsp)电路(未单独地展示)。手机500可进一步包含用于无线装置之间的低功率短程通信的zigbee收发器(即,电气电子工程师学会(ieee)802.15.4收发器),或其它类似通信电路(例如,实施或wifi协议的电路等)。

上文所描述的实施例和网络服务器可实施于多种可商购的服务器装置(例如图6所示的服务器600)中。这种服务器600通常包含耦合到易失性存储器602和大容量非易失性存储器(例如磁盘驱动器603)的处理器601。服务器600还可包含耦合到处理器601的软盘驱动器、压缩光盘(cd)或dvd光盘驱动器604。服务器600还可包含网络接入端口606,其耦合到处理器601以用于建立与网络605(例如耦合到其它通信系统计算机和服务器的局域网)的数据连接。

处理器502、601可为任何可编程微处理器、微型计算机或一或多个多处理器芯片,其可通过软件指令(应用程序)配置以执行多种功能,包含下文所描述的各种实施例的功能。在一些客户端计算装置中,可提供多个处理器502,例如,一个处理器专用于无线通信功能,并且一个处理器专用于运行其它应用程序。通常,软件应用程序在被存取和加载到处理器502、601中之前可存储于内部存储器504、602中。处理器502可包含足以存储应用程序软件指令的内部存储器。在一些服务器中,处理器601可包含足以存储应用程序软件指令的内部存储器。在一些接收器装置中,安全存储器可在耦合到处理器601的单独存储器芯片中。内部存储器504、602可为易失性或非易失性存储器,例如闪存存储器,或两种存储器的混合物。出于这种描述的目的,一般提到存储器是指处理器502、601可存取的全部存储器,包含内部存储器504、602、插入到装置中的可卸除式存储器和处理器502、601自身内的存储器。

许多现代计算为具有相对受限的处理、存储器和能量资源的资源受限系统。举例来说,客户端计算装置为包含可造成其性能和功率利用率水平随时间推移而降低的许多特征或因素的复杂且资源受限的计算装置。可造成性能下降的因素的实例包含不佳地设计的软件应用程序、恶意软件、病毒、碎片化存储器和后台进程。由于所述因素的数目、多样性和复杂度,通常不可能评估可降低所述复杂且资源受限系统的性能和/或功率利用率水平的所有各种组件、行为、进程、操作、状况、状态或特征(或其组合)。因而,用户、操作系统或应用程序(例如,抗病毒软件等)难以准确并有效地识别这类问题的来源。因此,客户端计算装置用户目前具有极少用于预防客户端计算装置的性能和功率利用率水平随时间推移而降低或用于将老化客户端计算装置恢复到其初始性能和功率利用率水平的补救措施。

在本申请案中论述的各种实施例尤其较适合用于资源受限计算装置(例如客户端计算装置)中,因为智能地检测恶意软件的任务主要委托给雷管服务器,这是因为其不需要评估客户端计算装置上的极大型行为信息合集,动态地产生解释计算装置的装置特有或应用程序特有特征的分类器/行为模型,智能地区分分类器/行为模型所测试/评估的特征的优先级,不限于评估个别应用程序或进程,智能地识别待由计算装置监测的因素或行为,准确并有效地对所监测行为进行分类,和/或并不需要执行计算密集型进程。出于所有这些原因,各种实施例可实施或执行于资源受限计算装置中而对所述装置的响应性、性能或功率消耗特征不具有显著的负面和/或用户可察觉影响。

举例来说,现代客户端计算装置是高度可配置且复杂的系统。因而,对于确定特定装置行为是良性的还是不良的(例如,恶意的或性能降低的)而言最重要的因素或特征在各个客户端计算装置中可能不同。另外,可能需要在各个客户端计算装置中监测和/或分析因素/特征的不同组合,以便所述装置快速并有效地确定特定行为是良性的还是不良的。然而,需要监测和分析的因素/特征的精确组合以及各个特征或特征组合的相对优先级或重要性通常仅可使用从行为待监测或分析的特定计算装置获得的装置特有信息来确定。出于这些和其它原因,除使用分类器模型的所述特定装置外的任何计算装置中产生的分类器模型无法包含识别对于分类所述特定装置中的软件应用程序或装置行为而言最重要的因素/特征的精确组合的信息。也就是说,通过在使用分类器模型的特定计算装置中产生所述模型,各种实施例产生改进的模型,所述改进的模型更好地识别对于确定软件应用程序、进程、活动或装置行为是良性的还是非良性的而言最重要的因素/特征并区分所述因素/特征的优先级。

如本申请中所使用,术语“组件”、“模块”等等旨在包含计算机相关实体,例如但不限于,硬件、固件、硬件与软件的组合、软件或执行中的软件,其经配置以执行特定操作或功能。举例来说,组件可为但不限于在处理器上运行的进程、处理器、对象、可执行程序、执行线程、程序和/或计算机。借助于说明,在计算装置上运行的应用程序以及所述计算装置可被称为组件。一或多个组件可驻留在进程和/或执行线程内,并且组件可位于一个处理器或核心上和/或分布在两个或大于两个处理器或核心之间。另外,这些组件可从具有存储在其上的各种指令和/或数据结构的各种非暂时性计算机可读媒体中执行。组件可借助于本地和/或远程进程、功能或程序调用、电子信号、数据包、存储器读取/写入和其它已知的网络、计算机、处理器和/或进程相关通信方法进行通信。

前述方法描述和过程流程图仅仅作为说明性实例提供,并且其并不打算要求或暗示各种实施例的步骤必须以所呈现的次序执行。如所属领域的技术人员将了解,前述实施例中的步骤的次序可按任何次序执行。例如“此后”、“随后”、“接下来”等词并不希望限制步骤的次序;这些词仅用以引导读者浏览对方法的描述。另外,举例来说,使用冠词“一”、“一个”或“所述”对单数形式的权利要求要素的任何参考不应被解释为将所述要素限制为单数。

结合本文中所揭示的实施例所描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件,或两者的组合。为清晰地说明硬件与软件的这种可互换性,上文已大体就其功能性描述了各种说明性组件、块、模块、电路和步骤。这类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。熟练的技术人员可针对各个特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本发明的范围。

用于实施结合本文中所揭示的实施例所描述的各种说明性逻辑、逻辑块、模块和电路的硬件可与通用处理器、数字信号处理器(dpc)、专用集成电路(asic)、现场可编程门阵列(fpga)或经设计以执行本文中描述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合一起实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如dpc和微处理器的组合、多个微处理器、与dpc核心结合的一或多个微处理器,或任何其它这类配置。或者,可通过特定地针对给定功能的电路来执行一些步骤或方法。

在一或多个示范性实施例中,所描述的功能可实施在硬件、软件、固件或其任何组合中。如果在软件中实施,那么所述功能可作为一或多个指令或代码存储在非暂时性计算机可读媒体或非暂时性处理器可读媒体上。本文揭示的方法或算法的步骤可体现于可驻留在非暂时性计算机可读或处理器可读存储媒体上的处理器可执行软件模块中。非暂时性计算机可读或处理器可读媒体可为可由计算机或处理器存取的任何存储媒体。借助实例但非限制,这类非暂时性计算机可读或处理器可读媒体可包含ram、rom、eeprom、闪存存储器、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于以指令或数据结构的形式存储所需程序代码且可由计算机存取的任何其它媒体。如本文所使用的磁盘及光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软磁盘及蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。上文各项的组合也包含在非暂时性计算机可读和处理器可读媒体的范围内。另外,一种方法或算法的操作可作为代码和/或指令的一个或任何组合或集合而驻留在非暂时性处理器可读媒体及/或计算机可读媒体上,所述媒体可并入到计算机程序产品中。

提供对所揭示实施例的先前描述以使得所属领域的技术人员能够制造或使用本发明。所属领域的技术人员将容易了解对这些实施例的各种修改,且可在不脱离本发明的精神或范围的情况下将本文定义的一般原理应用于其它实施例。因此,本发明并不希望限于本文中展示的实施例,而是希望符合与以下权利要求书及本文揭示的原理和新颖特征相符的最宽范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1