一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

向应用提供应用安全、验证和特征分析的制作方法

2021-11-15 15:32:00 来源:中国专利 TAG:

向应用提供应用安全、验证和特征分析
1.相关申请的交叉引用
2.本技术要求于2019年1月24日提交的名称为“providing application security,validation and profiling to an application”的美国专利申请no.16/256,142的优先权和利益,其内容出于所有目的通过引用全部合并于此。


背景技术:

3.操作系统可以向在计算装置上执行的各种应用提供关于适应或集成应用的不同功能的能力的控制。例如,操作系统可以包括限制或拒绝某些功能或限制一个或多个应用与在计算装置上执行的其他应用交互的能力的策略。因此,可以约束或限制计算装置上的各种应用和系统之间的完全集成。


技术实现要素:

4.本文提供了用于通过对应用进行应用识别、验证和特征分析(profiling)来提供应用安全的系统和方法。应用服务器的应用验证器可以从各种不同的源接收或收集数据,以对移动装置可用的移动应用执行安全评估。安全评估可以识别各个移动应用的安全相关能力和设置。应用验证器可以为应用生成应用签名并使用应用签名来执行对应用的识别。应用验证器可以将应用签名与其他已接受或已知签名进行比较以验证相应的应用。应用验证器可以为相应的应用生成许可配置文件,其列出相应应用的安全能力。许可配置文件可提供给移动装置、应用服务器或管理员以识别应用的安全能力,并在应用的执行期间监控应用的安全能力。
5.在一个方面,本公开涉及一种用于应用安全的方法。该方法可以包括由服务器从多个数据源接收应用数据。应用数据可以对应于能够在移动装置上执行的应用的第一实例。该方法可以包括由服务器基于应用的第一实例和第二实例的属性以及与应用的第一实例和第二实例相对应的多个应用编程接口(api)来识别应用的第一实例和第二实例的安全能力。该方法可以包括由服务器并响应于识别来确定应用的第一实例和第二实例的安全能力的差异。安全能力的差异可以指示应用的第一实例的安全漏洞。该方法可以包括由服务器响应于应用的第一实例和第二实例的安全能力的差异处于或高于阈值水平,将来自多个数据源的应用数据提供给能够在移动装置上执行的应用。
6.在一些实施例中,该方法可以包括由服务器从移动应用包或管理员文件中识别与应用的第一实例相对应的静态应用数据。该方法可以包括:由服务器将监控模块注入到所述应用中;以及由监控模块在应用的执行期间将与所述应用相对应的动态应用数据传输至服务器。该方法可以包括由服务器使用来自多个数据源的应用数据为应用的第一实例生成第一应用签名,该应用签名包括应用的第一实例的属性和与应用的第一实例相对应的多个api。
7.在一些实施例中,该方法可以包括由服务器在以下中至少之一的期间将应用的第一实例的第一应用签名与应用的第二应用签名进行比较:在应用的发布时间或在应用的执
行期间。该方法可以包括由服务器通过比较应用的第一实例和第二实例的属性来验证应用的第一实例。该方法可以包括向应用的第一实例的每个属性分配权重值,以及使用签名阈值和为应用的第一实例的每个属性分配的权重值来识别应用的第二实例。
8.在一些实施例中,该方法可以包括由服务器确定应用的第一实例的属性和应用的第二实例的属性之间的一个或多个差异,以及由服务器生成指示应用的第一实例的属性和应用的第二实例的属性之间的一个或多个差异的验证报告。该方法可以包括由服务器识别包括在应用的第一实例内的恶意逻辑,以及由服务器防止移动装置访问应用的第一实例。该方法可以包括由服务器识别应用的第一实例的更新版本,该更新版本具有一个或多个不同的属性;由服务器利用一个或多个不同的属性来更新应用的第一实例的应用签名;以及由服务器利用一个或多个不同的属性来更新应用的第二实例的第二应用签名。
9.在一些实施例中,该方法可以包括由服务器识别由应用调用的多个api中的api,该api与应用的第一实例和第二实例的属性中包括的api不同;以及由服务器防止应用执行该api。该方法可以包括由服务器为与应用相对应的多个api生成使用配置文件。该方法可以包括由服务器编译在应用的执行期间由多个api请求的安全许可的列表;以及由服务器生成指示对在应用的执行期间由多个api请求的安全许可的响应的安全配置文件。
10.在另一方面,提供了一种用于应用安全的系统。该系统可以包括服务器。服务器可以被配置为从多个数据源接收应用数据。应用数据可以对应于能够在移动装置上执行的应用的第一实例。服务器可以被配置为基于应用的第一实例和第二实例的属性以及与应用的第一实例和第二实例相对应的多个应用编程接口(api)来识别应用的第一实例和第二实例的安全能力。服务器可以被配置为响应于识别来确定应用的第一实例和第二实例的安全能力的差异。安全能力的差异可以指示应用的第一实例的安全漏洞。服务器可以被配置为响应于应用的第一实例和第二实例的安全能力的差异处于或高于阈值水平,将来自多个数据源的应用数据提供给能够在移动装置上执行的应用。
11.在一些实施例中,服务器可以被配置为将监控模块注入到应用中。监控模块可以被配置为在应用的执行期间将与所述应用相对应的动态应用数据传输至服务器。服务器可以被配置为通过比较应用的第一实例和第二实例的属性来验证应用的第一实例。
12.在一些实施例中,服务器可以被配置为使用来自多个数据源的应用数据为应用的第一实例生成第一应用签名。应用签名可以包括应用的第一实例的属性和与应用的第一实例相对应的多个api。服务器可以被配置为将第一应用签名与应用的第二实例的第二应用签名进行比较,以确定应用的第一实例和第二实例的安全能力的差异。服务器可以被配置为识别包括在应用的第一实例内的恶意逻辑,以及防止移动装置访问应用的第一实例。
13.在另一方面,提供了一种非暂时性计算机可读介质,其包括包括指令,当由装置的处理器执行所述指令时,使所述处理器从多个数据源接收应用数据的指令。应用数据可以对应于能够在移动装置上执行的应用的第一实例。当由装置的处理器执行所述指令时,使处理器基于应用的第一实例和第二实例的属性以及与应用的第一实例和第二实例相对应的多个应用编程接口(api)来识别应用的第一实例和第二实例的安全能力。当由装置的处理器执行所述指令时,使处理器响应于识别来确定应用的第一实例和第二实例的安全能力的差异。安全能力的差异可以指示应用的第一实例的安全漏洞。当由装置的处理器执行所述指令时,使处理器响应于应用的第一实例和第二实例的安全能力的差异处于或高于阈值
水平,将来自多个数据源的应用数据提供给能够在移动装置上执行的应用。
14.在一些实施例中,当由装置的处理器执行所述指令时,使得处理器响应于上述识别,识别应用的第一实例的更新版本。该更新版本可以包括一个或多个不同的属性。当由装置的处理器执行所述指令时,使处理器利用一个或多个不同的属性来更新应用的第一实例的应用签名。当由装置的处理器执行所述指令时,使处理器利用一个或多个不同的属性来更新与应用的第二实例相对应的至少一个已知签名。
15.在附图和下面的描述中阐述了本发明的各种实施例的细节。
附图说明
16.根据以下详细描述、所附权利要求和附图,本文公开的实施例的目的、方面、特征和优点将变得更加明显,其中相似的附图标记标识相似或相同的元件。在说明书中与附图相关联地引入的附图标记可以在一个或多个后续附图中重复,而无需在说明书中进行额外的描述,以便为其他特征提供上下文,并且并非每个元件都可以在每个附图中被标记。附图不一定按比例绘制,而是重点放在说明实施例、原理和概念上。附图并非旨在限制本文所包括的权利要求的范围。
17.图1是计算装置的实施例的框图;
18.图2是用于向应用提供应用安全、验证和特征分析的系统的框图;以及
19.图3a

3b是用于向移动应用提供应用安全、验证和特征分析的方法的流程图。
具体实施方式
20.为了阅读下面各个实施例的描述,本说明书的各部分的以下描述及其各自的内容可能是有帮助的:
21.用于执行敏感或关键任务的客户机装置使用正在增加,因为客户机装置可以允许随时随地执行时间关键功能。然而,客户机装置提供的自由会增加安全风险,即与使用客户机装置执行的关键任务相对应的敏感数据可能容易受到安全攻击。例如,关键任务可以对应于通过与客户机装置耦合的工作环境的工作任务,并且在客户机装置上执行任务时,敏感数据可能最终被存储或以其他方式通过客户机装置可用。工作任务可以包括从不同源访问的应用,这些应用可以通过客户机装置在工作环境中执行并处理敏感数据。工作环境的管理员可能担心此类敏感数据经由客户机装置被不当访问、泄露或修改。例如,应用可能包括恶意逻辑或与网络内通常受限的端点进行交互。因此,可能需要锁定或防止与工作环境耦合的客户机装置或其他系统受到不影响或限制相应客户机装置或其他系统的可用性的此类安全攻击。
22.本文描述的系统和方法可以通过移动应用的应用识别、验证和特征分析来提供应用安全。在应用服务器或管理服务器上执行的应用验证器可以从各种不同的来源(包括静态和运行时源)收集应用数据,以执行对应用(例如,移动应用)的分析。应用验证器可以包括由服务器在移动应用中注入的逻辑或代码。应用验证器可以包括服务器的代理,该代理具有至少一个处理器以从各种不同的源收集应用数据并执行对相应应用的分析。例如,应用验证器可以执行对应用的安全评估,包括对相应应用的应用识别、验证和安全相关能力和设置的特征分析。相应应用的能力和设置可以包括但不限于功率使用、文件大小、由相应
应用访问的一个或多个应用编程接口(api)以及由相应应用请求的许可对话。应用验证器可以对在客户机装置(诸如但不限于计算装置、移动装置或其他形式的手持装置)上执行的应用执行安全评估。
23.a部分描述了一种计算环境,其对于实践本文描述的实施例可能是有用的;以及
24.b部分描述了用于提供应用安全的系统和方法的实施例。
25.a.计算环境
26.在讨论本文b部分中详细描述的系统和方法的实施例的细节之前,讨论可以部署这种实施例的计算环境可能是有帮助的。
27.如图1所示,计算机101可以包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(ram))、非易失性存储器128(例如,一个或多个硬盘驱动器(hdd)或其他磁性或光学存储介质、一个或多个固态驱动器(ssd)(例如闪存驱动器或其他固态存储介质)、一个或多个混合磁性和固态驱动器、和/或一个或多个虚拟存储卷(例如云存储)、或这种物理存储卷和虚拟存储卷或其阵列的组合)、用户接口(ui)123、一个或多个通信接口118和通信总线150。用户接口123可包括图形用户接口(gui)124(例如,触摸屏、显示器等)和一个或多个输入/输出(i/o)装置126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个照相机、一个或多个生物特征扫描仪、一个或多个环境传感器、一个或多个加速度计等)。非易失性存储器128存储操作系统115、一个或多个应用116和数据117,从而例如由处理器103在易失性存储器122之外执行操作系统115和/或应用116的计算机指令。在一些实施例中,易失性存储器122可以包括一种或多种类型的ram和/或高速缓冲存储器,其可以提供比主存储器更快的响应时间。可以使用gui 124的输入装置输入数据,或从i/o装置126接收数据。计算机101的各种元件可以经由一个或多个通信总线(示出为通信总线150)进行通信。
28.如图1所示的计算机101仅作为示例示出为客户机、服务器、中间装置和其他网络装置,并且可以由任何计算或处理环境以及利用可以具有能够如本文所述操作的适当硬件和/或软件的任何类型的机器或机器集合来实现。处理器103可以由一个或多个可编程处理器实现以执行一个或多个可执行指令(例如计算机程序),以执行系统的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作序列的电路。功能、操作或操作序列可以被硬编码到电路中,或者可以通过保持在存储器装置中并由电路执行的指令被软编码。“处理器”可以使用数字值和/或使用模拟信号来执行功能、操作或操作序列。在一些实施例中,“处理器”可以体现在一个或多个专用集成电路(asic)、微处理器、数字信号处理器(dsp)、图形处理单元(gpu)、微控制器、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、多核处理器或具有关联存储器的通用计算机中。“处理器”可以是模拟、数字或混合信号。在一些实施例中,“处理器”可以是一个或多个物理处理器或一个或多个“虚拟”(例如,位于远程的或“云”)处理器。包括多个处理器核的处理器和/或多个处理器可以提供用于并行、同时执行多个指令或在多于一段数据上并行、同时执行一个指令的功能。
29.通信接口118可以包括一个或多个接口,以使计算机101能够通过各种有线和/或无线或蜂窝连接来访问诸如局域网(lan)、广域网(wan)、个人局域网(pan)或互联网之类的计算机网络。
30.在所描述的实施例中,计算装置101可以代表客户机计算装置的用户执行应用。例如,计算装置101可以执行虚拟机,其提供执行会话,在该执行会话内,应用代表用户或客户
机计算装置执行,例如托管的桌面会话。计算装置101还可以执行终端服务会话以提供托管的桌面环境。计算装置101可以提供对计算环境的访问,计算环境包括以下中的一个或多个:一个或多个应用、一个或多个桌面应用、以及可以在其中执行一个或多个应用的一个或多个桌面会话。
31.网络环境、计算机101以及客户机和服务器计算机的实施方式和操作的附加细节可以如2017年1月3日授予佛罗里达州劳德代尔堡的citrix systems,inc.的美国专利no.9,538,345中所述,其教导在此通过引用并入本文。
32.b.应用安全
33.本文描述的系统和方法可以从各种不同的源接收或收集数据以执行对在客户机装置(例如,移动装置)上执行的一个或多个应用的安全评估。安全评估可以识别相应应用的安全相关能力和设置。相应应用的安全相关能力和设置可以包括但不限于功率使用、文件大小、由相应应用访问的一个或多个应用编程接口(api)以及由相应应用请求的许可对话。例如,在客户机装置上执行的应用验证器可以通过应用签名来执行对应用的识别。应用签名可以对应于应用的指纹或为相应应用收集的数据组,以从其他应用中唯一地识别该应用并描述该应用执行哪些动作或功能。例如,应用签名可以包括应用名称、应用标识符、文件大小数据、api数据(例如,与应用相关联的api、由应用调用的api)、由应用生成的安全许可对话、电池使用数据、中央处理单元(cpu)使用数据和套接字数据(例如,端口数据)。应用验证器可以将应用签名与应用的其他实例的其他已接受或已知的签名进行比较,以验证相应的应用。例如,应用的实例可以包括相同应用的不同版本或相同应用的不同格式。因此,应用验证器可以比较应用的不同实例的属性,以识别应用的更新、应用的功能问题(例如,使用太多存储器、调用错误的api)或嵌入在应用的至少一个实例中的恶意逻辑。应用验证器可以为相应的应用生成许可配置文件,其列出相应应用的安全能力。许可配置文件可以包括例如当在客户机装置上执行时,应用被允许执行或不被允许执行的动作或能力的列表。许可配置文件可以包括允许或不允许应用与之交互的api的列表。许可配置文件可以包括允许或不允许与应用关联的api执行哪些动作。许可配置文件可以包括允许或不允许应用传输哪些安全许可对话。许可配置文件可以包括允许或不允许应用与客户机装置的哪些本地文件或装置交互。
34.应用验证器可以检测应用的异常行为,其可以指示相应应用的安全问题。应用验证器可以识别可能已被修改为包含恶意逻辑的应用的污染或修改版本。在一些实施例中,应用验证器可以确定当前在客户机装置上执行的应用是旧版本并且因此缺少应用的较新版本所包括的安全更新或更新的功能。应用验证器可以为应用生成许可配置文件以包括应用的安全问题,并将许可配置文件提供给客户机装置的用户或包括客户机装置的网络(例如,虚拟专用网络(vpn))的管理员。例如,安全问题可以包括但不限于应用中未包括的防火墙更新,从而允许应用访问网络的管理员已阻止的api。安全问题可以包括但不限于应用重复调用但被阻止访问的api。安全问题可以包括但不限于用于访问本地装置(例如,请求照相机访问)的安全许可对话,该本地装置与不允许相应应用访问的客户机装置耦合。因此,当应用在客户机装置上执行时,应用验证器可以使用许可配置文件来阻止或拒绝应用的某些功能。应用验证器可以使用许可配置文件来阻止或拒绝某些客户机装置访问客户机装置的不同应用。应用验证器可以使用许可配置文件来阻止或拒绝应用访问不同的应用编程接
口(api)或与其交互。因此,应用验证器可以以不影响或限制相应装置或其他系统的可用性的方式来管理与网络耦合的一个或多个装置的应用安全。
35.参考图2,描绘了具有应用验证器204的应用服务器202的一个实施例的框图。应用服务器202可以对应于用于管理和控制对一个或多个装置210的一个或多个应用206的访问和执行的管理服务器,一个或多个装置210通过网络203与应用服务器202耦合。应用服务器202可以包括应用验证器204以便为装置210(例如,移动装置、客户机装置)提供应用识别、以及验证和特征分析。例如,应用服务器202可以与多个服务器240a

240n耦合以检索或接收多个应用206a

206n。应用验证器204可以为应用206a

206n执行识别、验证并生成许可配置文件,从而为装置210、为应用服务器202和/或应用服务器202的管理员监控各个应用206a

206n的不同的属性。
36.应用服务器202可以对应于或包括被配置为管理网络203内的应用206a

206n的属性的处理器。应用服务器202可以包括网络装置或vpn装置,用于管理装置210和多个服务器240a

240n之间的网络203内的网络流量。应用服务器202可以监控由至少一个服务器240提供的应用206与装置210之间的交互的访问、发布、下载、执行或其他形式的交互。例如,应用服务器202可以向应用206应用网络策略以控制(例如,允许、阻止)涉及相应应用206的交互的访问、发布、下载、执行或其他形式的交互。在一些实施例中,应用服务器202可以通过执行计算机可执行指令或以其他方式编程而转换为专用微处理器。
37.应用验证器204可以包括处理器以接收对应于应用206的应用数据208,为应用206生成应用签名214,将应用签名214与已知签名218进行比较,关于应用206的实例228验证应用206,确定应用206的安全能力226,并为应用206生成许可配置文件222。应用验证器204可以在应用服务器202上执行。在一些实施例中,应用验证器204可以包括监控模块205或监控代理205。监控模块205可以包括用于跟踪和记录与至少一个应用206相对应的数据的功能、协议或指令。应用验证器204可以将监控模块205传输或提供给装置210以跟踪、监控和记录与正在装置210上执行的应用206相对应的动态应用数据208。监控模块205可以将动态应用数据208传输或提供给应用验证器204或应用服务器202。在一些实施例中,应用验证器204可以通过执行计算机可执行指令或以其他方式编程而转换为专用微处理器。
38.应用服务器202可以包括数据库216。数据库216可以包括或对应于数据库服务器。数据库216可以是应用服务器202的组件或应用服务器202内的组件的子组件。在一些实施例中,数据库216可以是通过网络203与应用服务器202耦合的外部数据库服务器。应用服务器202、应用验证器204和数据库216中的每一个可以被实现为硬件组件、软件组件或固件组件或这些组件的任何组合,或与之相关联。应用服务器202、应用验证器204和数据库216可以例如被实现为服务器、软件进程和引擎和/或各种嵌入式系统,或与之相关联。
39.数据库216可以包括存储、组织和维护由应用服务器202和应用验证器204生成、传输或接收的数据。例如,数据库216可以包括应用数据208。应用数据208可以对应于移动应用数据208。应用数据208可以包括静态应用数据和动态应用数据。静态应用数据可以包括在编译或发布应用206时由管理员或应用生成器输入的数据。静态应用数据可以包括例如当应用206被编译或发布时从移动应用包中提取的元数据。在一些实施例中,静态应用数据可以包括应用名称、应用206的最低版本、应用206的最高版本、由应用206使用或与应用206相对应的api 234a

234n、文件大小数据和/或应用206的安全能力。动态应用数据可以包括
或对应于应用206在装置210上执行(例如,运行时间)期间由应用206生成的应用数据208。动态应用数据可以包括由应用206调用或请求的api 234a

234n、由应用206生成的安全许可请求、应用运行进程数据、磁盘空间数据、存储器数据、cpu使用、电池使用和/或开放套接字数据。应用数据208可以包括对应于应用206的网络流量数据或vpn数据。
40.应用服务器202可以包括由应用验证器204生成的多个应用签名214。应用验证器204可以为每个应用206生成应用签名214。应用签名214可以包括由应用验证器204接收、生成或提取的应用206的属性220。在一些实施例中,应用签名214可以包括属性220,诸如但不限于应用名称、应用标识符(例如,全局唯一标识符(guid))、应用扩展数据、文件大小数据、api数据(例如,二进制文件中列出的api、执行期间调用的api)、安全许可请求、安全许可响应、电池使用数据和开放套接字数据。应用签名214可以对应于应用206的指纹或唯一标识符。在一些实施例中,应用签名214可以识别相应应用206执行哪些动作或功能。例如,应用签名214可以包括应用206调用的api 234a

234n(例如,gps api)以识别应用206如何在装置210上执行或应用在装置210上执行哪些功能(例如,导航应用)。应用验证器204可以使用应用签名214来部分地基于相应应用206的不同的属性220从其他应用206中识别应用206。
41.数据库216可以包括多个已知签名218。已知签名218可以包括或对应于先前已经由应用验证器204生成并且由应用验证器204批准或指示为可接受(例如,满足安全参数)的应用签名214。已知签名218可以包括至少一个应用206的属性220。已知签名218可以对应于应用206的实例228。应用206的实例228可以包括相同应用的不同版本206。可以生成实例228来为装置210执行相同的动作或相同的功能。可以在不同的时间生成或在不同的装置210上执行实例228,从而导致可以对应于各个实例228的签名214、218之间的一个或多个差异的一个或多个不同的属性220,即使实例执行相同的动作或相同的功能。例如,在一些实施例中,数据库216可以包括用于导航应用206的第一应用签名214和用于导航应用206的一个或多个第二实例214的一个或多个已知签名218。因此,每个实例228可以对应于导航应用206,然而不同的实例228可能已在不同时间生成或包括同一应用206的不同版本。例如,导航应用206可能已用新的软件或功能(例如,新的防火墙策略、新的安全许可)从导航应用206的先前实例228进行了更新。在一些实施例中,每个已知签名218可以与应用206的至少一个实例228进行链接或分组在一起。应用的实例228可以包括具有相同类型和/或执行相似功能的应用206。在一些实施例中,已知签名218可以被组织或分组为与应用的实例228相对应的子集。例如,被标记或分组到应用的同一实例228的已知签名218可以包括一定数量的相同属性220或一定百分比的相同属性220,并且该数量或百分比高于指示已知签名218对应于相似应用206或同一应用206的其他实例的签名阈值。签名阈值可以包括数值,该数值对应于被认为是彼此的实例228的应用206的属性220的数量。在一些实施例中,签名阈值可以包括百分比值,该百分比值对应于被认为是彼此的实例228的应用206的属性220的百分比。
42.数据库216可以包括网络流量数据224。应用验证器204可以使用网络流量数据224来识别应用206正尝试访问哪些端点(例如,服务器240a

240n)。应用验证器204可以使用网络流量数据224来识别应用206正尝试访问哪些api 234a

234n。网络流量数据224可对应于装置210与应用服务器202之间的通信、装置210与多个服务器240a

240n中的一个或多个服务器240之间的通信、以及应用服务器202与多个服务器240a

240n中的一个或多个服务器
240之间的通信。网络流量224可以包括来自在装置210上执行的应用206的请求。例如,网络流量224可以包括对一个或多个api 234a

234n的网络调用。网络流量224可以包括来自应用服务器202或应用验证器204的对来自应用206的请求的响应。应用验证器204可以使用网络流量224来确定应用206是否正尝试访问被阻止的服务器240a

240n或api 234a

234n并因此尝试违反网络203的一个或多个安全策略。应用验证器204可以使用网络流量224来确定应用206是否遵循网络203的一个或多个安全策略。
43.数据库216可以包括为多个应用206a

206n生成的多个许可配置文件222。在一些实施例中,应用验证器204可以为多个应用206a

206n中的每个应用206生成许可配置文件222。许可配置文件222可以向应用服务器202的管理员或装置210的用户提供应用206正在执行什么动作的列表、动作是已被允许还是被阻止、已被允许或被阻止的api 234a

234n的列表、以及由应用206访问的多个文件。应用验证器204可以使用许可配置文件222来监控在网络203内,例如在与网络203耦合的装置210上执行的应用206的活动。应用验证器204可以使用许可配置文件222来将应用206的活动通知给应用服务器202的管理员或装置210的用户。许可配置文件222可以包括应用206的安全能力226的列表、应用206的安全配置文件230和应用206的使用配置文件232。在一些实施例中,许可配置文件222可以包括来自管理员、来自应用验证器204或应用服务器202的对应于应用206的策略、使用配置文件232和/或安全配置文件230。例如,来自管理员的策略可以对应于网络策略或vpn策略,该网络策略或vpn策略用于在与网络203耦合或在网络203内执行的装置210上执行应用206。安全配置文件230可以包括来自一个或多个api 234a

234n的安全许可请求。安全配置文件230可以包括来自应用验证器204、应用服务器202或装置210的对来自一个或多个api 234a

234n的安全许可请求的响应。使用配置文件232可以包括对应于由应用206访问、使用或以其他方式与之交互的api 234a

243n的api数据。在一些实施例中,许可配置文件222可以包括数据,诸如由应用206进行的文件访问次数、由应用206传输的数据字节数、由应用206接收的数据字节数。许可配置文件222可以包括对应于应用206在装置210上或者在网络203内执行时的交互的多个不同信息。数据库216可以包括多个验证报告236。验证报告可以包括在应用206的属性220和应用206的其他实例228的属性220之间识别的差异。应用验证器204可以使用验证报告236来验证和确定应用206的第一实例228与应用206的一个或多个其他实例228之间的差异。例如,应用验证器204可以使用应用206的实例228之间的差异来识别应用206的安全漏洞或问题。安全漏洞或问题可以包括但不限于识别应用206的过时版本,识别应用206的性能问题(例如,使用太多存储器),以及识别应用206内包括的恶意逻辑。
44.在一些实施例中,应用服务器202可以包括多个api 234a

234n。在一些实施例中,应用服务器202可以从多个服务器240a

240n接收多个api234a

234n。api 234a

234n可以包括由多个服务器240a

240n提供的一个或多个应用206a

206n调用、访问或与之交互的api 234。应用服务器202可以跟踪和记录由在装置210上执行或在网络203内执行的一个或多个应用206a

206n调用、访问或与之交互的api 234a

234n。
45.装置210可以是客户机装置,诸如但不限于移动装置。装置210可以通过网络203与应用服务器202和多个服务器240a

240n耦合。装置210可以包括或对应于本文描述的任何客户机装置、移动装置或计算机装置的实例。例如,装置210可以与图1的计算机101相同或基本相似。装置210可以包括用于访问、下载应用260或与应用260交互的浏览器212。例如,
具有浏览器212(例如,嵌入式浏览器(ceb))的装置210可以包括ceb。浏览器212可以包括web浏览器应用或引擎的元件和功能。浏览器212可以将应用206a

206n中的一个或多个本地呈现为装置210的系统的组件或扩展。例如,浏览器212可以在ceb内部呈现saas/web应用,其可以向ceb提供对在装置210上执行的至少一个应用会话的完全可见性和控制。装置210可以与应用服务器202和多个服务器240a

240n耦合以下载至少一个应用206。装置210可以部分基于为应用206生成的许可配置文件222执行或运行应用206。在装置210上执行的应用206可以包括应用数据208,诸如静态应用数据和动态应用数据。在一些实施例中,应用验证器204可以对于应用206提供或传输监控模块205(或监控代理)以跟踪和记录动态应用数据。应用验证器204可以从监控模块205接收动态应用数据以更新应用206的应用签名214和/或应用206的许可配置文件222。在一些实施例中,当装置210下载应用206、激活或打开应用206或执行应用206时,应用验证器204可以使用装置210的浏览器212来提供或显示应用206的许可配置文件222。因此,在一些实施例中,当应用206在装置210上执行时,应用验证器204可以向装置210的用户提供对应于应用206的实时数据。
46.在一些实施例中,应用验证器204可以建立到应用206a

206n(例如,网络应用)中的一个或多个的一个或多个会话250a

250n。例如,应用验证器204可以通过浏览器212和网络203为装置210建立到应用206a

206n中的一个或多个的一个或多个会话250a

250n。应用验证器204可以在装置210和至少一个服务器240之间建立单个会话250。应用验证器204可以在装置210和服务器240a

240n之间建立多个会话250a

250n。在一些实施例中,应用验证器204可以在装置210和服务器240a

240n之间同时建立多个会话250a

250n,使得多个会话250a

250n同时执行以向装置210提供对由相应的服务器240a

240n托管的多个应用206a

206n的访问。会话250a

250n可以包括但不限于应用会话、执行会话、桌面会话、托管桌面会话、终端服务会话、浏览器会话、远程桌面会话、url会话和远程应用会话。会话250a

250n可以包括在应用206和装置210之间建立的加密和/或安全会话。例如,会话250a

250n可以包括在至少一个应用206和装置210之间通过网络203(例如,vpn网络203)建立的加密url会话和/或安全url会话。加密url会话250a

250n可以包括在至少一个应用206和装置210之间通过网络203传输的加密数据或流量。
47.应用206a

206n可以包括从一个或多个服务器提供服务和/或托管在一个或多个服务器上的应用(app),一个或多个服务器在这里是服务器240a

240n(例如,第三方服务器)。应用206a

206n可以包括托管在由装置210经由网络203访问的至少一个服务器240上的应用206。应用206a

206n可以包括从一个或多个服务器240a

240n提供服务和/或托管在一个或多个服务器240a

240n上的应用(app),诸如但不限于web应用、软件即服务(saas)应用和/或远程托管应用。应用206a

206n可以包括但不限于web应用、桌面应用、远程托管应用、虚拟应用、软件即服务(saas)应用、移动应用、hdx应用、本地应用、和/或本机应用(例如,装置210的本机应用)。应用206a

206n可以包括一个或多个api 234a

234n。api 234a

234n可以包括用于控制应用206和装置210、应用服务器202和/或应用验证器204之间的交互的功能、协议或指令集。在一些实施例中,api 234a

234n可以控制对应用206可能不一定具有使用许可或访问功能的硬件装置和软件功能的访问。api 234a

234n可以包括或对应于在装置210上执行的操作系统的api。例如,api 234a

234n可以对应于一api,该api用于提供或调用在装置210上执行的浏览器212(或本机应用)内的web视图以控制和提供对应于
应用206的web内容。
48.网络203可以是公共网络,诸如广域网(wan)或互联网。在一些实施例中,网络203可以是专用网络,诸如局域网(lan)或公司内联网。网络203可以是公共网络,诸如广域网(wan)或互联网。网络203可以采用一种或多种类型的物理网络和/或网络拓扑,诸如有线和/或无线网络,并且可以采用一种或多种通信传输协议,诸如传输控制协议(tcp)、互联网协议(ip)、用户数据报协议(udp)或其他类似的协议。在一些实施例中,装置210和服务器240a

240n中的一个或多个可以在同一网络203上。在一些实施例中,装置210和服务器240a

240n中的一个或多个可以是不同的网络203。网络203可以包括虚拟专用网络(vpn)。vpn可以包括从装置210到应用服务器202或多个服务器240a

240n通过网络203(例如,互联网、公司网络、专用网络)的一个或多个加密会话250a

250n。
49.在一个或多个实施例中,上述元件或实体中的每一个以硬件或硬件和软件的组合来实现。应用验证器204的每个组件可以使用上面结合图1详述的硬件或硬件或软件的组合来实现。例如,这些元件或实体中的每一个可以包括在客户机装置(例如,装置210)的硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。在一些实施例中,应用验证器204可以部署在应用服务器202上。在一些实施例中,应用验证器204可以部署在装置210上。例如,应用验证器204可以对应于应用206中注入的逻辑或代码,其被提供给装置210并在装置210上执行。应用验证器204可以包括注入在应用206中的应用服务器202的代理,该应用206被提供给装置210并在装置210上执行。在一些实施例中,当相应的应用206被编译或发布时,应用服务器202可以通过包装工具将应用验证器204注入到应用204中。应用验证器204可以对应于应用到应用206的代码以监控相应应用206的行为和动作的管理层。因此,应用验证器204可以在应用206在装置210上执行时收集与应用206相对应的应用数据。
50.现在参考图3a

3b,描绘了用于通过对在装置(诸如移动装置)上执行的应用的应用识别、验证和特征分析来提供应用安全的方法300的一个实施例的流程图。方法300的功能可以使用本文结合图1

2详述的组件来实现或由其执行。简而言之,可以接收静态应用数据和动态应用数据(305)。可以生成应用签名(310)。可以识别已知签名(315)。可以执行应用识别(320)。可以执行应用验证(325)。可以确定安全能力(330)。可以生成安全配置文件(335)。可以生成许可配置文件(340)。可以提供应用数据(345)。
51.现在参考操作(305),并且在一些实施例中,可以接收对应于一个或多个应用206的数据。例如,方法300可以包括由服务器202从多个数据源接收应用数据208。应用数据208可以对应于在移动装置210上可执行的应用206的第一实例。在一些实施例中,该方法可以包括由在应用服务器202上执行的应用验证器204从多个数据源接收应用数据208。应用数据208可以对应于在装置210(例如,客户机装置、移动装置)上执行的至少一个应用206(例如,移动应用)。在实施例中,应用验证器204可以从各种不同的源提取或接收应用数据208以适当地对应用206进行特征分析。应用206可以包括但不限于在装置210上执行的移动应用206。
52.应用验证器204可以提取或接收应用数据208,包括但不限于静态数据(例如,静态元数据)、动态数据和网络流量数据。例如,当相应的应用206被发布或提供给应用市场时,或者以其他方式使其可供装置210下载或执行时,应用验证器204可以从管理员手动输入的
静态应用数据208中提取或接收静态应用数据208。应用数据208可以包括应用名称、应用206的最低版本、应用206的最高版本、对应于应用206的安全策略以及由应用206支持的平台。
53.应用验证器204可以在编译应用206时、在相应应用206被发布之前或在相应应用206的发布时间期间提取或接收从应用包(例如,移动应用)提取的静态应用数据208。例如,应用验证器204可以访问应用服务器202的数据库216以检索对应于应用206的应用数据208。应用验证器204可以识别对应于要编译或发布的应用206的应用包。例如,应用包可以包括用于生成相应应用206的逻辑、代码和应用数据208。应用验证器204可以访问应用包以检索相应应用208的应用数据208。在一些实施例中,应用验证器204可以从应用包中提取静态应用数据208,该应用包包括以下各项中的至少一项或任何组合:与应用206相关联的api 234a

234n的列表、文件大小、安全协议(例如,安全权利)、扩展数据(例如,捆绑扩展)、应用版本数据或应用标识符(例如,全局唯一标识符(guid))。
54.在一些实施例中,可以接收对应于一个或多个应用206a

206n的动态应用数据208。在一些实施例中,应用验证器204可以在装置210上执行应用206期间接收动态应用数据208。例如,应用验证器204可以向装置210传输或提供监控模块205。监控模块205可以包括或对应于提供给或注入到应用206中的代码或逻辑,以跟踪或记录对应于应用206的动态应用数据208或对应于应用206的网络流量数据224。例如,当应用206被编译或发布时,应用验证器204可以通过包装工具或通过定制软件开发工具包(sdk)注入或提供具有代码或逻辑的监控模块205。网络流量数据224可以包括对应于应用206的网络流量的外部视图,例如来自vpn或基于每个应用。
55.应用验证器204可以提取或接收对应于在相应应用206的执行或运行时间期间调用的一个或多个api的动态应用数据208。动态应用数据208可以包括对应于装置210如何与一个或多个api 234a

234n交互、执行或响应一个或多个api 234a

234n的数据。例如,在一些实施例中,动态应用数据208可以包括用于api 234和在装置210上执行的应用206之间的交互的安全许可请求或数据。安全许可请求可以包括api 234和在装置210上执行的应用206之间的对话交换。在一些实施例中,安全许可请求可以包括但不限于显示“使用照相机?”对话,显示“使用地址簿?”对话,显示“使用位置?”对话。动态应用数据208可以包括来自装置210、应用服务器202或应用验证器204的对安全许可请求的安全许可响应。例如,安全许可响应可以包括指示相应的安全许可请求是否被授予(例如,允许)、部分授予、拒绝或部分拒绝的响应。动态应用数据208可以包括在装置210外部或与装置210不同的操作系统api 234a

234n。在一些实施例中,动态应用数据208可以包括网络api(例如,开放套接字)、文件api(例如,写文件)、音频api(例如,播放声音)、蓝牙api、地址簿api、gps/位置api、后台执行api和/或vpn api。
56.应用验证器204可以提取或接收对应于应用执行数据的动态应用数据208。例如,当在装置210上执行时,应用验证器204可以探测或提取与应用运行进程或沙箱运行时间相对应的动态应用数据208。当应用206在装置210或至少一个服务器240上执行时,应用验证器204可以探测或提取动态应用数据208。例如,当应用206在装置210上执行时,应用验证器204可以监控应用206。应用验证器204可以跟踪和记录当应用206在装置210上执行时的动作(例如,调用api 234a

234n)。当应用206被装置210访问并在服务器240上执行时,应用验
证器204可以监控应用206。应用验证器204可以跟踪和记录当应用206被装置210通过服务器240访问时的动作(例如,请求许可对话)。应用执行数据可以包括剩余磁盘空间、剩余存储器、中央处理器(cpu)使用、电池使用和/或多个开放套接字。在一些实施例中,应用验证器204可以提取或接收对应于网络流量的应用数据208。例如,应用验证器204可以通过监控模块205通过跟踪或记录在应用206处接收的或从应用206传输的网络流量或数据来提取或接收对应于应用206的网络流量数据。在一些实施例中,应用验证器204可以通过跟踪或记录在由应用206调用的api 234处接收的或由应用206调用的api234传输的网络流量或数据来提取或接收对应于应用206的网络流量数据。在一些实施例中,应用验证器204可以仅接收或提取静态应用数据208。
57.在一些实施例中,应用验证器204可以仅接收或提取动态应用数据208。
58.在一些实施例中,应用验证器204可以接收或提取静态应用208和动态应用数据208的组合。应用验证器204可以尝试访问来自多个不同源的不同类型的应用数据208(例如,静态的、动态的)以适当地对应用206进行特征分析。
59.现在参考操作(310),并且在一些实施例中,可以为应用206生成应用签名214以从其他应用206中唯一地识别应用206,并且描述相应应用206执行什么动作或功能。例如,方法300可以包括由应用验证器204使用来自多个数据源的应用数据208为应用206生成应用签名214。应用签名214可以对应于为应用206编译的应用数据208的集合,其从其他应用206和应用206的其他实例中唯一地识别相应的应用206。例如,应用签名214可以包括应用数据208,诸如但不限于应用名称、应用标识符、文件大小数据、api数据(例如,与应用相关联的api、由应用调用的api)、由应用生成的安全许可对话、电池使用数据、中央处理单元(cpu)使用数据和套接字数据(例如,端口数据)。应用验证器204可以使用应用签名214来识别对应用206的更新、应用206的功能问题(例如,使用太多存储器、调用错误的api)或嵌入在应用206内的恶意逻辑。应用签名214可以包括应用206的属性220和对应于应用206的多个应用编程接口(api)234a

234n。应用验证器204可以生成具有应用数据208的任意组合的应用签名214。应用验证器204可以编译接收到的对应于应用206的应用数据208以生成描述应用206是什么以及应用206执行的动作的应用签名214。例如,应用签名可以对应于相应应用206的指纹。因此,应用206a

206n中的每一个可以具有唯一的应用签名214。
60.应用验证器204可以使用相同类型的数据和/或相同的应用属性(例如,文件大小、电池使用、api)为不同的应用206生成应用签名214。在一些实施例中,应用验证器204可以使用不同类型的数据或数据组合和/或应用属性(例如,文件大小、电池使用、api)的不同组合为不同应用206生成应用签名214。例如,与为不同于第一应用206的第二应用206生成的应用签名214相比,应用验证器204可以使用不同类型的数据或不同的应用属性(例如,文件大小、电池使用、api)为第一应用206生成应用签名214。在一些实施例中,应用签名214可以包括应用名称、应用标识符(例如,guid)、扩展数据、文件大小、api数据、安全许可对话数据、电池数据和/或开放套接字数据。api数据可以包括以二进制形式列出的api(例如,网络api、安全api、文件api、地址簿api、照相机api)和在应用206的执行期间使用的api(例如,运行时间api,包括但不限于网络api、安全api、文件api、地址簿api)。当应用206正在执行时(例如,运行时间),安全许可对话数据可以包括api 234和应用206之间的对话或交换。在一些实施例中,安全许可对话数据可以包括但不限于使用地址簿交换或使用照相机访问请
求。
61.现在参考操作(315),并且在一些实施例中,可以识别已知签名218以提供用于识别应用206的比较点。例如,应用验证器204可以识别对应于应用206的不同实例228的已知签名218。应用验证器204可以使用已知签名218,来部分地基于应用206的应用签名214与应用206的一个或多个实例228的一个或多个已知签名218之间的差异程度来执行对应用206的识别。在一些实施例中,应用验证器204可以识别对应于先前已经编译、发布或执行的应用206的多个已知签名218(例如,已知应用签名)。已知签名218可以包括已经被应用验证器204批准为满足安全阈值的应用签名214。例如,响应于使用图3a

3b的方法300的方法识别和验证应用签名214,应用验证器204可以将应用签名214标记为已知签名218。
62.多个已知签名可以存储在在应用服务器202上执行的数据库216中。多个已知签名218可以存储在外部服务器的数据库216中,该外部服务器在应用服务器202外部并且与应用服务器202通信地耦合。在一些实施例中,应用验证器204可以从服务器240a

240n中的一个或多个接收已知签名218。来自服务器240a

240n的已知签名218可以对应于服务器240a

240n托管或提供的应用206a

206n的应用签名214。在一些实施例中,应用验证器204可以将多个已知签名218分组到应用206的不同实例228中。例如,应用验证器204可以将来自相似应用206(例如,相同名称、相同功能)或相同类型的应用206的签名218分组到应用206的单个或公共实例228(例如,应用的实例)中。可以部分地基于应用的类型、应用的功能或对应于应用206的api 234a

234n将已知签名218进行分组。例如,安全相关应用206的已知签名218可以被分组到应用206的同一实例中或标记为应用206的同一实例。在一些实施例中,gps相关应用206的已知签名218可以被分组到应用206的同一实例中或标记为应用206的同一实例。邮件相关应用206的已知签名218可以被分组到应用206的同一实例中或标记为应用206的同一实例。在一些实施例中,使用相同或相似api234a

234n的应用206可以被分组到应用206的同一实例中或标记为应用206的同一实例。
63.现在参考操作(320),并且在一些实施例中,可以识别应用206以确定或确认应用验证器204正在与哪个应用206交互或监控哪个应用206。例如,方法300可以包括由服务器202基于应用206的第一实例和第二实例的属性220以及对应于应用206的第一实例和第二实例的多个api234a

234n来识别应用206的第一实例和第二实例的安全能力226。在一些实施例中,应用服务器202的应用验证器204可以基于应用签名214和一个或多个已知签名218之间的差异执行对应用206的识别,以确认应用206是正确的版本。例如,应用验证器204可以使用该识别来验证应用206的版本、在应用206的发布期间检查错误或确定应用206是否是恶意应用206。可以使用应用206的属性220来执行对应用206的识别。例如,方法300可以包括由应用验证器204将应用签名214与多个已知签名218进行比较来识别具有匹配应用206的属性220的签名阈值的多个属性220的至少一个已知签名218。至少一个已知签名218可以对应于应用206的实例228。
64.如上所述,该比较可以被称为识别应用206。例如,应用验证器204可以将为应用206生成的应用签名214与不同的已知签名218进行比较以识别应用206或确定应用206是什么。应用签名214可以具有与多个签名218中的至少一个已知签名218相同的多个属性220,其指示应用206是与对应于该至少一个已知签名218的应用相同的应用206、相同类型的应用206、属于相同应用类别、和/或是对应于该至少一个已知签名218的应用的不同实例228。
属性220可以包括但不限于应用名称、应用标识符(例如,guid)、扩展数据、文件大小、api数据、安全许可对话数据、电池数据和/或开放套接字数据。签名阈值可以包括数值。例如,如果应用签名214和已知签名218具有多于三个的共同属性,则应用验证器204可以将应用206分组或标记为对应于相应已知签名218的应用206的另一个实例228。签名阈值的数值可以变化并且至少部分地基于包括在应用签名214或已知签名218中的多个属性220来选择。在一些实施例中,签名阈值可以包括百分比值。例如,如果应用签名214和已知签名218具有大于75%的共同属性,则应用验证器204可以将应用206分组或标记为与相应已知签名218相对应的应用206的另一个实例228。签名阈值的百分比值可以变化并且至少部分地基于包括在应用签名214或已知签名218中的多个属性220来选择。
65.应用验证器204可以在应用206的生命周期期间的不同时间或周期执行比较或识别。例如,应用验证器204可以在应用206被编译时或在应用206的包装时间期间执行比较或识别。应用验证器204可以使用在应用206的编译期间生成的应用签名,并将其与一个或多个已知签名218进行比较。应用验证器204可以在相应的应用206被编译时将应用206的应用签名214与一个或多个已知签名218进行比较。应用验证器204可以在编译相应应用206之后将应用206的应用签名214与一个或多个已知签名218进行比较。在一些实施例中,应用验证器204可以在应用206被发布、上传或以其他方式使一个或多个装置210可用(例如,可用于下载)时执行比较或识别。应用验证器204可以在应用206在装置210上执行(例如,运行时间)时执行比较或识别。应用验证器204可以使用在应用206已经发布之后或者在应用已经被装置210下载之后生成的应用签名。当相应应用206正被上传或以其他方式使得一个或多个装置210可用时,应用验证器204可以将应用206的应用签名214与一个或多个已知签名218进行比较。当相应应用206在装置210上执行时,应用验证器204可以比较应用206的应用签名214与一个或多个已知签名218。
66.在一些实施例中,实例228可以指示应用206的不同版本。例如,应用签名214和已知签名218之间的差异可以指示应用206的不同版本。应用验证器204响应于比较,可以将应用206标记或移动到对应于已知签名218的一种类别的应用206中。该类别的应用206可以包括应用206的多个实例228。例如,可能有应用206的不同版本被编译或发布。因此,应用验证器204可以将应用206的不同实例228分组或组织在一起,以提供更简化的方式来管理、报告和应用安全策略到相似或共同应用206的不同实例228。在一些实施例中,应用验证器204可以将安全策略应用于该组或该类别的应用206,而不是将安全策略单独应用于每个应用206。应用验证器204可以管理该组或该类别的应用206,而不是单独管理每个应用206。应用验证器204可以为该组或该类别的应用206生成报告,而不是单独为每个应用206生成报告。
67.在一些实施例中,应用验证器204可以将为应用206生成的应用签名214与不同的已知签名218进行比较,以识别应用签名214和已知签名218之间的差异。例如,差异可以对应于编译或发布应用206时的错误或误差。在一些实施例中,错误可以对应于应用206的属性不正确,诸如但不限于不正确的应用名称、文件大小或列出的不正确的api。在一些实施例中,应用签名214和已知签名218之间的差异可以指示应用206中包含或嵌入的恶意逻辑。应用签名214和已知签名218之间的差异可以指示应用206是假应用或流氓应用。例如,假应用或流氓应用可能具有与对应于已知签名218的应用206a

206b相似的一个或多个属性(例如,相同的名称、相似的api),然而,假应用或流氓应用可能对应于当在装置210上执行时意
图损害装置210的病毒或恶意软件程序。
68.应用验证器204可以使用不同的算法来比较或识别应用206。例如,应用验证器204可以执行将应用签名214的属性220与已知签名218的属性220进行比较的识别算法。属性220的比较可以识别应用206的应用签名214与应用206的一个或多个实例228的一个或多个已知签名218之间的差异,其可能对应于嵌入在应用206内的恶意代码或由应用206尝试的恶意动作。例如,在一些实施例中,属性220的差异可以包括与由应用206的一个或多个实例228生成的安全许可对话相比在装置210上执行时由应用206生成的安全许可对话的差异。安全许可对话的差异可以对应于嵌入在应用206内的恶意代码,其导致应用206检索不允许应用206访问的敏感或安全数据(例如,密码、财务账户)。因此,应用验证器204可以执行识别算法以识别应用206是否与同一应用206的其他实例228不同地操作,从而识别恶意动作。识别算法可以包括使应用验证器204从应用206的应用签名214检索属性220并且从一个或多个类别的应用206检索已知签名218的属性220的指令集。识别算法可以包括使应用验证器204将应用签名214的属性220与已知签名218的属性220进行比较的指令集。识别算法可以包括使应用验证器204识别应用签名214的属性220和已知签名218的属性220之间的公共属性220的指令集。识别算法可以包括使应用验证器204识别应用签名214的属性220和已知签名218的属性220之间的差异的指令集。
69.在一些实施例中,应用验证器204可以为每个属性220分配权重值。在一些实施例中,应用验证器204可以向应用206的每个属性220分配权重值并且使用签名阈值和为应用206的每个属性220分配的权重值来识别与应用206相对应的类别的应用206。例如,应用验证器204可以分配指示相应属性220的等级或重要性的权重值。在一些实施例中,第一属性220可以被分配第一权重值,第二属性220可以被分配第二权重值,第三属性220可以被分配第三权重值,并且第四属性220可以被分配第四权重值。第一权重值可以大于或高于第二、第三和第四权重值。第二权重值可以大于或高于第三和第四权重值。第三权重值可以大于或高于第四权重值。权重值的数量可以变化并且至少部分地基于应用签名214或已知签名218的属性220的数量来选择。
70.现在参考操作(325),并且在一些实施例中,可以验证应用206。例如,方法300可以包括由服务器202并响应于识别来确定应用206的第一实例和第二实例的安全能力226的差异。安全能力的差异可以包括应用206的第一实例的安全漏洞(例如,恶意逻辑、过期版本)。在一些实施例中,方法300可以包括由应用验证器204通过比较应用206的实例228的属性220与应用206的属性220来验证应用206。验证可以包括将应用206的属性220与被识别为应用206的不同实例228并被指示为与应用206具有相同类型或相似的应用206的属性220进行比较。例如,响应于应用206的比较或识别,可以识别应用206和应用206的实例228之间的差异。应用206的实例228可以包括与应用206具有相同类型的应用、应用206的不同版本或与在装置210上执行的应用206相似的应用206(例如,执行相似的功能)。应用验证器204可以执行验证以识别应用206和应用206的实例228之间的差异。在一些实施例中,应用验证器204可以使用应用206的最近实例228或一组最近实例228。例如,当应用206的实例228被保存到数据库216中时,应用验证器204可以部分地基于与应用206的实例228相关联的时间戳来选择实例228或一组实例228。应用服务器202可以保存各种时间段(例如,一个月、一年)的应用206的实例228。应用服务器202可以保存应用206的实例228,直到应用206的新的或
更新的实例228被保存在数据库216中。
71.在一些实施例中,验证可以包括将应用206的实例228的性能度量与应用206的性能度量进行比较。例如,性能度量可以包括api使用、存储器使用、网络使用、带宽使用和/或处理器使用。应用验证器204可执行验证以确定应用206是否正在使用比应用206的其他实例228更多或更少的存储器。在一些实施例中,应用验证器204可执行验证以确定应用206是否正在使用一个或多个与应用206的其他实例228不同的api 234a

234n。应用验证器204可以执行验证以确定与应用206的其他实例228相比,应用206是否正在使用更多或更少的网络流量或带宽。在一些实施例中,应用验证器204可以执行验证以确定应用206是否正在使用或访问未被应用206的其他实例228访问或使用的公共网络或专用网络(例如,vpn)。应用验证器204可以执行验证以确定应用206是否正在使用与应用206的其他实例228相比更多或更少的处理功率来执行相似的功能。例如,在一些实施例中,处理功率的差异可能对应于嵌入在应用206中的恶意逻辑。恶意逻辑(例如,故障、病毒)可以减慢执行应用206的装置210的一个或多个处理器。恶意逻辑可以导致执行应用206的装置210的一个或多个存储器单元或数据库的存储器泄漏。恶意逻辑(例如,故障、病毒)可以导致装置210执行应用206的性能降低(例如,较慢)。应用验证器204可以执行验证以将应用206的性能与应用206的其他实例228进行比较,以确定是否存在差异以及差异是否是由恶意意图或由于安全漏洞引起的。在一些实施例中,应用验证器204可以执行验证以识别应用206的执行的差异,并确定差异是否由嵌入在应用206内的恶意逻辑引起,由应用206的过时版本引起或者由执行应用206的其他实例228可能不包括的新功能的应用206的新更新版本引起。
72.在一些实施例中,可以生成验证报告236。在一些实施例中,应用验证器204可以确定应用206的属性220与应用206的其他实例228的属性220之间的一个或多个差异。应用验证器204可以生成验证报告236,其指示应用206的属性220和应用206的其他实例228的属性220之间的一个或多个差异。例如,响应于验证,应用验证器204可以生成验证报告236,其识别应用206和应用206的其他实例228之间的差异(如果有的话)。应用验证器204使用差异来确定差异中的任何一个是否对应于应用206的问题或执行应用206的装置210的问题。在一些实施例中,验证报告236可以识别管理员、应用服务器202或装置210是否接收到具有恶意逻辑的应用206的污染版本。应用验证器204可以响应于验证来识别应用206内包括的恶意逻辑。应用验证器204可以防止或阻止装置210访问、下载具有恶意逻辑的应用206或与具有恶意逻辑的应用206交互。应用验证器204可以在验证报告236中包括指示应用206包括恶意逻辑并且被阻止的消息或指令。
73.在一些实施例中,验证报告236可以识别应用206是否是应用206的较新版本或更新版本。例如,验证可以识别应用206的属性220和应用206的其他实例228的属性220的差异对应于应用206的更新或较新版本。更新版本可以包括与应用206的其他实例228的属性220不同的一个或多个属性220。应用验证器204可以用一个或多个不同的属性220来更新应用206的应用签名214,并用一个或多个不同的属性220来更新对应于应用206的其他实例228的至少一个已知签名218。
74.在一些实施例中,验证报告236可以识别应用206是否包括故障或正在错误地执行。例如,应用验证器204可以确定应用206正在使用不正确的存储器量、不正确的api、不正确的带宽量或不正确的处理功率量。故障会导致应用206在装置210上的性能降低。在一些
实施例中,故障会导致执行应用206的装置210的系统降级,诸如但不限于,导致装置210崩溃。因此,应用验证器204可以使用验证来跟踪和识别发布时间和/或运行时间期间应用的问题。
75.在一些实施例中,验证报告236可以识别应用206是否正在访问网络203或其他网络内的不适当或恶意端点。例如,应用206的属性220和应用206的其他实例228的属性220之间的差异可以指示应用206的可能损害执行应用206的装置210的恶意动作。应用验证器204可以确定应用206尝试访问受限ip地址、受限域名或受限api 234。例如,应用验证器204可以识别由应用206调用的多个api 234a

234n中的api 234不同于包括在应用206的其他实例228的属性220中的api 234a

234n。所调用的api234可以包括受限api 234。应用验证器204可以防止或阻止应用206访问、执行受限api 234或与受限api 234交互。因此,验证报告236可以指示一个或多个api 234a

234n是受限的,一个或多个ip地址是受限的,一个或多个域名是受限的,和/或一个或多个网络端点是受限的。应用验证器204可以向与装置210耦合的网络的管理员或装置210的用户提供验证报告236。例如,当装置210下载、激活或正在执行相应的应用206时,应用验证器204可以在装置210上显示验证报告236。在一些实施例中,验证报告236可以被包括在应用206的许可配置文件222内。
76.现在参考操作(330),并且在一些实施例中,可以确定应用206的安全能力226。在一些实施例中,应用验证器204可以使用识别结果和验证报告236来确定应用206的安全能力226。安全能力226可以对应于应用206的属性220和该类别的应用206的属性220。在一些实施例中,安全能力226可以包括存储器使用、api使用、带宽使用、处理器使用和/或网络使用。例如,应用验证器204可以生成与应用206的允许存储器使用范围相对应的应用206的安全能力226。因此,在生成的范围之外的存储器使用可以指示不当使用、应用206的问题或恶意逻辑。
77.应用验证器204可以为与应用206的允许的api 234a

234n相对应的应用生成安全能力226。如果应用206调用、访问未包括在允许的api234a

234n列表中的api 234或与其交互,则这样的动作可以指示不当使用、应用206的问题或恶意逻辑。在一些实施例中,应用验证器204可以在应用206的执行期间编译由多个api 234a

234n请求的安全许可的列表。安全许可可以包括来自api 234的用于访问装置210的系统或组件、来自装置210的用户的数据或信息、和/或来自装置210的用户的数据或信息的请求。在一些实施例中,应用验证器204可以通过对应用206、api 234或应用206与api 234之间的交互的二进制分析从api 234a

234n检索安全许可请求。应用验证器204可以为应用206生成与应用206的允许带宽使用范围或网络流量范围相对应的安全能力226。这些范围之外的带宽使用或网络流量使用可以指示不当使用、应用206的问题或恶意逻辑。应用验证器204可以为应用206生成与应用206的允许处理器使用范围相对应的安全能力226。该范围之外的处理器使用可以指示不当使用、应用206的问题或恶意逻辑。
78.现在参考操作(335),并且在一些实施例中,可以为应用206生成安全配置文件230。安全配置文件230可以包括来自api 234的一个或多个安全许可请求。在一些实施例中,应用验证器204可以在应用206的执行期间编译由多个api 234a

234n请求的安全许可的列表,并且生成安全配置文件230,该安全配置文件230指示对多个api 234a

234n在应用206的执行期间请求的安全许可的响应。例如但不限于,安全配置文件230可以包括与访问
装置210的照相机或图像装置的请求、访问装置210的gps系统的请求、访问装置210的地址系统的请求、和/或访问装置210的电话系统的请求相对应的安全许可请求。安全配置文件230可以包括来自装置210的对来自api 234a

234n的安全许可请求的响应。例如,安全配置文件230可以包括指示装置210是否接受安全许可请求(例如,处理或允许安全许可请求)或者装置210是否拒绝或阻止安全许可请求的响应数据。响应数据可以指示装置210的安全能力、系统或组件是否被api 234访问或使用。
79.在一些实施例中,可以为应用206生成使用配置文件232。应用验证器204可以生成具有与由应用206使用的api 234a

234n相对应的数据的使用配置文件232。例如,在一些实施例中,应用验证器204可以确定在应用206的执行期间应用调用、访问哪些api 234a

234n或与哪些api234a

234n交互,以及应用206调用、访问api 234a

234n或与api 234n交互的频率。使用配置文件232可以包括由应用验证器204指示为许可或允许的api 234a

234n的api数据。应用验证器204可以为对应于应用206的多个api 234a

234n生成使用配置文件232。
80.现在参考操作(340),并且在一些实施例中,可以为应用206生成许可配置文件222。例如,方法300可以包括由应用验证器204并且响应于验证为应用206生成许可配置文件222。许可配置文件222可以包括用于在装置210上执行的应用206的安全能力226的列表。许可配置文件可以包括来自应用服务器202、应用服务器202的管理员、应用验证器204或对应于应用206的管理员的策略。许可配置文件222可以包括验证报告236、使用配置文件232和安全配置文件230。来自应用服务器202的管理员的策略可以对应于用于在与相应网络203耦合的装置210上执行应用206的网络策略或vpn策略。例如,来自管理员的策略可以包括哪些应用206被允许以及哪些应用206被拒绝访问网络203。来自管理员的策略可以包括在网络203内或当应用206在与网络203耦合的装置(例如,装置210)上执行时,允许应用206的哪些功能。
81.在一些实施例中,许可配置文件222可以包括装置210的操作系统可能不跟踪或包括的数据。例如,应用验证器204可以生成具有由应用206进行的多个文件访问、由应用206传输的多个数据字节或由应用206接收的多个数据字节的许可配置文件222。应用验证器204可以生成许可配置文件222以包括对应于以下时间值的时间数据:应用206何时传输安全许可请求、应用206何时调用api 234、api 234何时访问或尝试访问应用206或装置210的系统。因此,应用验证器204可以生成许可配置文件222以包括当在装置210上执行时与应用206的交互相对应的多个不同信息。
82.现在参考操作(345),并且在一些实施例中,可以提供应用数据208。例如,方法300可以包括由服务器202响应于应用226的第一实例和第二实例的安全能力226的差异处于或高于阈值水平,将来自多个数据源的应用数据208提供给可在移动装置210上执行的应用206。阈值水平可以对应于指示应用206(例如,第一实例)的应用签名214与应用206的第二实例228的已知签名218之间的差异的签名阈值水平。当安全能力226的差异处于或高于(例如,大于)签名阈值时,应用服务器202或应用验证器204可以向应用206提供应用数据208以在装置210上显示。应用206可以响应于接收到应用数据208而在装置210上显示应用数据208。例如,可以在应用的许可配置文件22中提供应用数据208。许可配置文件222可以包括为应用206收集的应用数据208。许可配置文件222可以包括为应用206生成的安全配置文件
230和使用配置文件232。在一些实施例中,应用验证器204可以向应用服务器202、应用服务器202的管理员、装置210或装置210的用户提供许可配置文件222。在一些实施例中,应用验证器204可以向装置210提供许可配置文件222以在装置210上显示。当装置210下载、激活或正在执行相应的应用206时,应用验证器204可以在装置210上显示许可配置文件222。例如,应用验证器204可以向装置210的用户提供应用206之前已经访问、尝试访问或当前正在使用(例如,在运行时间期间)的安全能力226的列表。许可配置文件222可以向装置210的用户指示装置210是允许来自应用206的安全许可请求还是拒绝来自应用206的安全许可请求。在一些实施例中,许可配置文件222可以向装置210的用户指示装置210是否实时允许或拒绝安全许可请求。因此,许可配置文件222可以向装置210的用户通知应用206在装置210上执行时正在访问或以其他方式与之交互的api 234a

234n、特征或系统。在一些实施例中,许可配置文件222可以实时提供应用206的安全能力数据。在一些实施例中,应用验证器204可以在应用206的执行期间更新应用206的许可配置文件222。例如,应用验证器204可以接收指示新的或不同的安全能力被在装置210上执行的应用206访问或尝试访问的应用数据208(例如,动态应用数据)。
83.应用验证器204可以向应用服务器202提供许可配置文件222。例如,应用验证器204可以为网络203的管理员向应用服务器202或向管理流量的网络装置和/或与网络203耦合的装置提供许可配置文件。许可配置文件222可以包括为应用206收集的应用数据208。许可配置文件222可以包括为应用206生成的安全配置文件230和使用配置文件232。例如,应用验证器204向网络203的管理员或管理网络203的网络装置(例如,应用服务器202)传输许可配置文件222。在一些实施例中,应用验证器204可以将许可配置文件222存储在可由网络203的管理员或管理网络203的网络装置访问的数据库216或外部服务器中。用于网络203的管理员或管理网络203的网络装置的许可配置文件222可以包括与多个应用206或访问共同应用206的多个装置210相对应的平均数据。例如,应用验证器204可以为一种类别的应用206或应用206的一组实例228生成许可配置文件222。该类别的应用206或应用206的一组实例228的许可配置文件222可以包括平均属性220,该平均属性220对应于包括在该类别的应用206或应用206的一组实例228内的每个应用206的属性220的平均值。
84.在一些实施例中,应用验证器204可以生成许可配置文件222以包括并提供与应用206生成相同安全许可请求的次数相对应的数据。例如,对于访问或使用装置210的不同功能或系统(例如,照相机功能、gps系统、打印机功能)的许可,应用206可以每天多次或在一段时间内(例如,一周、一个月)多次传输安全许可请求。许可配置文件222可以包括指示是否每个安全许可请求、是否安全请求在特定时间被允许、或者是否安全许可请求被阻止或拒绝的数据。
85.在一些实施例中,许可配置文件222可以识别应用206行为或与装置210的交互中的模式。例如,应用206可以重复请求访问装置210的功能或系统(例如,地址簿)。应用验证器204可以确定应用206正在访问装置210的功能或系统。应用验证器204可以确定应用206正在尝试访问装置210的功能或系统并且已经被反复拒绝。应用验证器204可以生成许可配置文件222以包括应用206的行为模式并且将许可配置文件222提供给网络203的管理员或管理网络203的网络装置。在一些实施例中,应用验证器204或管理员可以验证这种行为是否被允许。例如,应用验证器204或管理员可以将行为模式与应用206、网络203或装置210的
安全策略进行比较。应用验证器204或管理员可以确定该行为不被允许。响应于该确定,应用验证器204或管理员可以改变应用206的策略以防止或锁定应用206访问装置210的功能或系统。
86.许可配置文件222可以包括管理员、应用服务器202或应用验证器204已经阻止或拒绝的应用206的安全能力226的列表。在一些实施例中,管理员、应用服务器202或应用验证器204可以阻止应用206访问装置210的照相机或图像装置。许可配置文件222可以包括指示为应用206阻止的照相机功能的条目,并将该信息呈现给装置210的用户。因此,装置210的用户可以使用该信息来理解为什么应用206的某些特征不可用、已被阻止或将被阻止。
87.在本文一个或多个实施例的上下文中描述的各种元件可以单独提供或以任何合适的子组合提供。例如,本文描述的过程可以以硬件、软件或其组合来实现。此外,本文描述的过程不限于所描述的具体实施例。例如,本文描述的过程不限于本文描述的特定处理顺序,相反,过程块可以根据需要重新排序、组合、移除或并行或串行执行,以实现本文所阐述的结果。
88.将进一步理解,在不脱离以下权利要求的范围的情况下,本领域技术人员可以对本文描述和示出的部件的细节、材料和布置进行各种改变。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献