HK1185174A - 用於服务器耦合的恶意软件防止的系统和方法 - Google Patents
用於服务器耦合的恶意软件防止的系统和方法 Download PDFInfo
- Publication number
- HK1185174A HK1185174A HK13112557.5A HK13112557A HK1185174A HK 1185174 A HK1185174 A HK 1185174A HK 13112557 A HK13112557 A HK 13112557A HK 1185174 A HK1185174 A HK 1185174A
- Authority
- HK
- Hong Kong
- Prior art keywords
- data
- server
- mobile communication
- data object
- evaluation
- Prior art date
Links
Description
背景技术
本公开内容主要地涉及移动安全性,并且具体地涉及检测和防止数据不利地影响移动通信设备或者移动通信设备组。
如今的移动通信设备、比如蜂窝电话、智能电话、具有无线功能的个人数据助理、写字板PC、上网本等正在更普遍变成用于各种软件应用的平台。移动通信设备用户现在有更多自由来选择和安装不同软件应用、由此定制移动通信设备体验。然而尽管有在市面上可用的许多积极软件应用,但是用于交互、安装和操作第三方软件的能力不可避免地让移动通信设备易受弱点、恶意软件和其它有害软件应用影响。不同于可以安装和运行防病毒软件以防范有害软件应用的桌面型计算机和其它更少便携的计算设备,移动通信设备缺乏用于高效运行类似软件的处理功率或者资源。
已经开发在移动通信设备上提供基本扫描功能的第三方应用;然而这些应用经常是设备、操作系统或者应用专属的。这样,用于高效监视、扫描、补救和保护移动通信设备的单个通用的与平台无关的系统并不存在。将希望提供这样的系统,该系统在任何移动通信设备上工作、与硬件和软件无关并且可以被不断更新以提供持续实时保护。另外,将希望提供一种可以作用和回应对多个移动通信设备有影响的需求和改变、由此提供智能恶意软件保护的可适应系统。
许多移动通信设备共同的一个特征是它们持续地连接到网络这样的事实。然而尽管有这一共同链路,仍然难以在移动网络级完全保障移动通信设备,因为设备可以连接到附加网络并且利用加密的服务,这二者经常绕过网络级保护。将希望提供一种远程保护移动通信设备从而向多个设备提供恶意软件防止和分析措施而无那些措施在每个设备上本地运行的开销的系统、而不是仅依赖于网络上的每个移动通信设备的处理和存储器资源。
使得难以保护移动通信设备免于不合需要的应用的问题之一是可用于这样的设备的许多不同类型的数据和应用。尽管服务提供者能够在提供应用时管理网络流量,但是当前没有用于在已经在用户的移动通信设备上安装这些应用之后有效监视它们的行为的方式。作为又一结果,难以按照新的先前未知恶意应用的行为标识它们并且一旦已经向网络发布破坏性的应用和数据就跟踪和防止蔓延或者传播它们。将希望提供一种可以主动监视移动通信设备组以便收集关于应用在移动通信设备上的安装和行为的数据的系统。
一旦这样的系统就位,将希望使用关于移动通信设备应用获得的数据和信息,以帮助用户关于他们选择在他们的移动通信设备上运行的应用进行更有根据的判决、并且允许管理员和网络运营者采取预防措施以进一步保证个别设备和作为整体的网络二者安全。还将希望开发一种匿名汇集关于移动通信设备行为和活动的数据以便促进开发更安全移动应用的开发。
附图说明
在附图的各图中通过例子而非限制举例说明本公开内容,在附图中,相似标号指示相似单元,并且在附图中:
图1是描绘本公开内容的一个实施例的示例框图。
图2是图示本公开内容的一个实施例的步骤的示例流程图。
图3是图示本公开内容的一个实施例的步骤的示例流程图。
图4是图示本公开内容的一个实施例的步骤的示例流程图。
图5是图示本公开内容的一个实施例的步骤的示例流程图。
图6是图示本公开内容的一个实施例的步骤的示例流程图。
图7是图示本公开内容的一个实施例的步骤的示例流程图。
图8是图示本公开内容的一个实施例的步骤的示例流程图。
图9是图示本公开内容的一个实施例的步骤的示例流程图。
图10是图示本公开内容的一个实施例的步骤的示例流程图。
图11是图示本公开内容的一个实施例的步骤的示例流程图。
图12是图示本公开内容的一个实施例的步骤的示例流程图。
具体实施方式
本公开内容涉及一种用于使用服务器以无论移动通信设备、移动通信网络或者在移动通信设备上存在的软件应用的构造或者模型如何都提供防范和去除可以影响移动通信设备或者多个移动通信设备的不合需要的应用或者其它数据对象的系统和方法。如这里所用,在非限制术语“安全性”之下描述与标识、分析和去除潜在不合需要的应用或者其它数据对象以及移动通信设备保护关联的所有服务。因此,本公开内容的一个实施例涉及向多个移动通信设备、比如用于雇员组的多个移动通信设备或者访问特定网络的多个移动通信设备提供安全性。本公开内容的一个实施例涉及安全和可靠地收集关于移动通信设备上的应用的信息而未耗用个别移动通信设备或者移动网络、并且利用关于应用的信息以保证移动通信设备安全。本公开内容的一个实施例涉及使用从移动通信设备收集的信息以生成可以用来开发用于移动通信设备的将来产品或者服务的用户或者设备信息。
应当理解,可以用许多方式实施本公开内容的一个实施例,这些方式包括实施为过程、装置、系统、设备、方法、计算机可读介质、比如包含计算机可读指令或者计算机程序代码的计算机可读存储介质或者实施为包括如下计算机可用介质的计算机程序产品,该计算机可用介质具有在其中实现的计算机可读程序代码。将理解这里描述的移动通信设备可以包括运行用于在手持或者移动设备、比如智能电话、PDA、写字板、移动电话等上使用的操作系统的任何计算机或者计算设备。例如移动通信设备可以包括设备,比如Applethe ApplePalm PreTM或者运行Apple iOSTM、AndroidTMOS、Google Chrome OS、SymbianWindowsOS、Palm或者Palm Web OSTM的任何设备。如这里所用,移动通信设备也可以称为移动设备、移动客户端或者简称为设备或者客户端。
在本文献的上下文中,计算机可用介质或者计算机可读介质可以是任何如下介质,该介质可以包含或者存储用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。例如计算机可读存储介质或者计算机可用介质可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)或者持久存储库(比如海量存储设备、硬驱动、CDROM、DVDROM、磁带、可擦除可编程只读存储器(EPROM或者闪存))或者用于存储信息的任何磁、电磁、红外线、光学或者电系统、装置或者设备。备选地或者附加地,计算机可读存储介质或者计算机可用介质可以是这些设备的组合或者甚至是在其上印刷程序代码的纸张或者另一适当介质,因为可以例如经由光学扫描纸张或者其它介质来电子捕获、然后如果必要则以适当方式编译、解译或者以其它方式处理、然后在计算机存储器中存储程序代码。
应用、软件程序或者计算机可读指令可以称为部件或者模块或者数据对象或者数据项目。应用可以在硬件中被硬接线或者硬编码或者可以采用如下软件的形式,该软件在通用计算机上执行,从而在向计算机中加载和/或计算机执行软件时,计算机变成用于实现公开内容的装置。也可以通过使用如下软件开发包或者工具包来完全或者部分下载应用,该软件开发包或者工具包实现创建和实施公开内容的一个实施例。在本说明书中,这些实现方式或者公开内容的一个实施例可以采用的任何其它形式可以称为技术。一般而言,可以在公开内容的范围内变更公开的过程的步骤的顺序。
如先前提到的那样,服务器或者一起操作的服务器组可以向一个或者多个移动通信设备提供安全性服务。有其中多个服务器可以一起操作以提供安全性服务的许多可能方式而未脱离本公开内容的范围。在图1中示出这一系统的一个实施例,在该实施例中,一个或者多个服务器151通过蜂窝、无线因特网或者其它网络121与一个或者多个移动通信设备101通信。如上文提到的那样,移动通信设备101也可以称为“移动客户端设备”、“客户端设备”、“设备”或者“客户端”并且可以用单数或者复数形式来指代。一个或者多个服务器151可以具有对如下数据存储装置111的访问,该数据存储装置存储用于一个或者多个移动通信设备101的安全性信息。可以在服务器151和/或数据存储装置111上存储数据、评估信息、关于移动通信设备101的信息或者用于存储的其它对象。服务器151或者数据存储装置111可以是单数或者复数或者可以是物理的或者被虚拟化。数据存储装置111可以是数据库、数据表、数据结构、文件系统或者其它存储器存储库。数据存储装置111可以在一个或者多个服务器151中的任何服务器上被托管、或者可以存在于一个或者多个服务器151外部,只要一个或者多个服务器151具有对数据存储装置111的访问。在一个实施例中,数据存储装置111是第三方提供的外部服务、比如Amazon Web Services,LLC提供的简单存储服务(S3)或者其它产品。将理解图1中所示系统的配置无限制性而仅为示范、并且其它配置是可能的而未脱离本公开内容。
将理解在移动通信设备101与服务器151之间的通信可以利用多种联网协议和安全性措施。在一个实施例中,服务器151作为HTTP服务器来操作,并且设备101作为HTTP客户端来操作。为了保证在途数据安全,移动通信设备101和服务器151可以使用事务层安全性(“TLS”)。此外,为了保证移动通信设备101具有用于访问服务器151的特权和/或验证移动通信设备101的身份,设备101可以向服务器151发送一个或者多个标识符或者认证证书。例如认证证书可以包括用户名和口令、设备专属证书或者向服务器151标识移动通信设备101的任何其它数据。认证可以允许服务器151存储专属于移动通信设备101的信息或者与移动通信设备101关联的账户,以向设备101提供定制的服务并且维持移动通信设备101的安全性状态的持久查看。
为了提供用于移动通信设备101的安全性服务,本领域普通技术人员将理解移动通信设备101将向服务器151传输某些数据。如下文将更具体讨论的那样,服务器151将分析这一数据并且提供与安全性有关的评估、响应和/或其它动作。下文描述从移动通信设备101向服务器151传输的数据类型、服务器151执行的分析以及对或者由移动通信设备101采取的动作。
将理解本公开内容的一个实施例可以独立存在于移动通信设备101上或者可以被并入于在移动通信设备中驻留的现有安全性系统、比如在提交于2008年10月21日并且完全结合于此、标题为“SYSTEM ANDMETHOD FOR MONITORING AND ANALYZING MULTIPLEINTERFACES AND MULTIPLE PROTOCOLS”的第12/255,614号美国专利申请中描述的安全性系统。本领域普通技术人员也将理解,为了在多种移动通信设备平台上实施本公开内容的一个实施例,可以有必要并入跨平台系统、比如在提交于2008年10月21日并且完全结合于此、标题为“SYSTEM AND METHOD FOR A MOBILE CROSS PLATFORMSOFTWARE SYSTEM”的第12/255,626号美国专利申请中公开的跨平台系统。此外,如下文进一步讨论的那样,本公开内容的方面可以用来确定用于移动通信设备101的安全性状态、比如在提交于2008年10月21日并且完全结合于此、标题为“SECURE MOBILE PLATFORM SYSTEM”的第12/255,632号美国专利申请中所描述。
本领域技术人员将理解,移动通信设备暴露于不同类型的数据。这一数据包括网络数据、文件、可执行和非可执行应用、电子邮件以及可以向移动通信设备传输、由移动通信设备接收或者在移动通信设备上安装的其它类型的对象。移动通信设备也通常通过包括蓝牙、WiFi、红外线、无线电接收器等的一个或者多个网络接口传输和接收数据。类似地,可以在分层通信协议或者协议集合、比如TCP/IP、HTTP、蓝牙等中封装数据。当前服务器-客户端安全性模型、比如当前可用于桌面型和膝上型计算机的服务器-客户端安全性模型不能延伸它们的能力以向多个移动通信设备提供充分评估和安全性。
本公开内容设想可以用来评价和保护移动通信设备的至少两个类型的数据。第一类型的数据包括关于移动通信设备的数据、即“设备数据”。设备数据涉及状态、能力、操作系统、固件版本、存储器容量、可用通信端口、电池限制、硬件特性和无用户定制的所有相似设备可以共有的其它“基线”信息。设备数据可以包括如从制造者、服务提供者或者IT服务接收的用于设备的默认规范。设备数据可以包括在已经以某一方式升级所有相似移动通信之后它们共同的状态信息。如下文将进一步讨论的那样,设备数据可以用来评价弱点是否由于未防护的通信端口、操作系统利用、设备专属攻击等而存在。
可以用来评价移动通信设备的第二类型的数据是涉及可以在移动通信设备上安装或者运行的特定应用、文件或者对象的数据。如这里所用,这一数据称为“应用数据”。应用数据包括数据对象和关于数据对象的信息、比如行为数据或者元数据二者。数据对象包括某些移动通信设备可以特有的应用包。例如iPhone OS设备通常使用IPA文件或者APP包,Android OS设备通常使用APK文件,Windows Mobile设备通常使用CAB、EXE或者DLL文件,并且Symbian OS设备通常使用SIS文件。设备也可以支持跨平台应用格式、比如在Adobe’s Flash运行期或者可以在Java虚拟机上运行的JAR文件下面的SWF格式。
应用数据包括如下数据对象,这些数据对象是恶意软件或者间谍软件并且由此可能负面地影响移动通信设备。恶意软件和间谍软件包括有意图地被设计用于不利地影响移动通信设备或者从移动通信设备窃取信息的应用、文件和其它数据对象。应用数据也包括不是出于邪恶原因而被设计的数据对象、但是可以具有可能负面地影响设备的编码缺陷或者其它问题。应用数据也包括可以出于各种原因而不合需要的数据对象。例如数据对象可以不合需要,因为它危害隐私、过度耗用设备的电池或者网络连接和/或具有有异议的内容。如这里所用,“数据对象”也可以称为“数据项目”。使用其它术语并非旨在于使数据限于任何一个形式。
应用数据包括关于数据对象的元数据。例如元数据是关于具体数据对象的信息而不是数据对象本身。元数据包括移动通信设备的文件系统上的其中存储数据对象的位置、数据对象的哈希(hash)、数据对象的名称、在数据对象中存在或者与数据对象关联的唯一标识符、比如GUID或者UUID、与数据对象有关的安全性信息、比如它的密码签名者信息或者批准的权限级、以及数据对象如何安装于移动通信设备的操作系统上或者与该操作系统集成的特性。用于数据对象的元数据也可以包括数据对象来自何处(例如从其下载它的URL、从其下载它的应用集市(marketplace)、从其安装或者存储它的记忆卡)。也可以从应用集市取回元数据。称为集市元数据的这样的元数据包括关于数据对象的信息(比如下载次数、关于数据对象的用户评论、数据对象的描述、数据对象请求的权限、用于数据对象的硬件或者软件要求、关于数据对象的作者的信息、数据对象的价格、数据对象支持的一个或者多个语言)以及集市可以提供的其它信息。
在一个实施例中,应用数据也包括行为数据。行为数据包括关于应用如何与移动通信设备的资源交互或者使用移动通信设备的资源的信息、比如存储器使用量、电池使用量、网络使用量、存储装置使用量、CPU使用量、API使用量、错误和崩溃、连接的网络服务(例如远程主机地址和端口)以及运行期库链接。行为数据也包括关于应用、文件或者数据对象在它运行时如何利用移动通信设备的操作系统的功能、比如在进程或者安装的应用之间的通知和消息接发的信息。
如下文将进一步说明的那样,设备数据和应用数据二者有助于基于存储的数据(例如安装的应用)或者穿过设备的数据提供设备的安全性的评估。本领域普通技术人将理解,设备数据和应用数据仅为可以用来防护移动通信设备或者提供与移动通信设备有关的其它功能的数据类型的例子。公开的系统也可以评估其它类型的数据而未脱离本公开内容的范围。如这里所用,术语评估指代涉及数据对象的如下信息,该信息可以用来评价或者以别的方式进一步理解数据对象的操作或者操作效果。例如评估可以包括确定应用是恶意或者非恶意、不良或者良好、不安全或者安全或者应用可以出现于黑名单或者白名单上。评估可以包括用于数据对象的归类或者表征数据、评级、比如安全性评级、隐私评级、性能评级、质量评级和用于数据对象的电池影响评级、用于数据对象的信任评级、用于数据对象的分布数据。评估可以来自服务器151汇集和/或处理数据的结果并且可以由服务器151经由API、用户接口、数据馈送或者其它方法暴露给用户或者其它系统。将理解针对“评估”的先前描述并非为了以任何方式限制。
A.设备数据汇集
下文是关于根据本公开内容的一个实施例如何汇集和存储设备数据和应用数据的讨论。一般而言,以下讨论包括通过网络121在服务器151与移动通信设备101之间的通信。可以在服务器151上或者在数据存储装置111上存储在这些通信期间传输或者接收的任何数据。在一个实施例中,在数据存储装置111或者服务器151上存储的数据与系统知道的特定账户或者设备关联。在数据与设备或者账户之间的关联可以允许服务器151基于先前接收的数据提供用于账户或者设备的定制功能。在一个实施例中,在服务器151或者数据存储装置111上将一些或者所有数据和与特定账户或者设备的匿名关联一起存储。例如可以出于隐私目的而将数据和匿名关联一起存储,从而检查服务器151或者数据存储库111上的数据不能将匿名关联的数据连结到特定账户或者设备;然而设备可以填充和更新这一匿名关联的数据。下文进一步具体描述匿名关联。在一个实施例中,服务器151将请求来自移动通信设备101的信息,该移动通信设备将用请求的信息做出响应。在一个实施例中,移动通信设备101将向服务器151传输设备数据和/或应用数据用于分析和评估。例如移动通信设备101的用户可以希望向他的设备下载文件、但是在安装文件之前可以希望向服务器151发送文件或者与文件关联的标识数据以便检查文件是否恶意或者以别的方式不合需要。服务器151然后将分析这一接收的信息以便提供可用于移动通信设备101中的任何移动通信设备的安全性评估。在另一例子中,知道访问的数据对象将如何影响移动通信设备的性能或者行为可以是有用的,该评估包含信息、比如数据对象的平均电池影响或者平均网络使用量。在一个实施例中,服务器151在分析之后存储数据对象的评估并且可以用多种方式提供对这些评估的访问。下文将进一步讨论服务器151执行的分析。下文也将进一步讨论服务器151用来提供对评估信息的访问的过程。
为了防止用网络流量耗用网络121和服务器151,各种方法可以用来减少服务器151请求的和向服务器151传输的数据量。例如哈希函数或者哈希算法可以应用于数据并且可以向服务器151发送数据的所得哈希、而不是传输完全数据对象、比如应用文件或者应用包用于分析。服务器151可以使用哈希以唯一标识数据对象。如果服务器先前已经执行对哈希标识的数据对象的评估,那么如果该先前评估仍然有效,则服务器151可以返回它。如果服务器151尚未针对数据对象执行评估,则服务器151可以返回指示评估未知的响应和/或请求来自移动通信设备101的附加数据。本领域普通技术人员将理解,哈希算法将把任意数量的数据变换成固定长度的标识符。例如SHA-1哈希算法可以将任意数量的输入数据摘要成160位的哈希。在另一例子中,除了数据对象的哈希之外还可以发送元数据代替数据对象本身,例如可以发送用于应用的元数据而不是整个应用用于评估。在许多情况下,元数据、比如包名称、应用名称、文件名称、文件大小、请求的权限、密码签名者、下载来源、比如UUID的唯一标识符和其它信息可以足以作为用于数据对象的标识信息;因此,如果服务器151接收适当标识信息,则它可以确定数据对象是否不合需要。本领域技术人员将理解有可以用来以如下这样的方式标识数据对象的多种方法,该方式可以允许服务器151确定在设备101上安装的数据对象是否恶意而无需向服务器151传输整个数据对象。
在本公开内容的一个实施例中,服务器151可以请求数据对象的部分而不是完整数据对象。可以增量地传输整个数据对象,从而网络流量未给网络121带来负担。备选地或者附加地,服务器151可以请求关于特定应用的信息、但是可以查询各自具有这一应用的移动通信设备组。以这一方式,服务器151可以如必需的那样接收来自一个移动通信设备的数据部分或者“组块”和来自第二移动通信设备的另一数据部分并且以此类推。服务器151然后可以在接收这一信息时聚合它、由此从具有应用/文件数据的多个移动通信设备汇聚而未耗用任何具体移动通信设备。下文进一步讨论这一方法的例子。
图2是在移动通信设备101与服务器151之间传输不同类型的数据的总览。如图2所示,在块201中,移动通信设备101向服务器151发送应用数据,该服务器接收这一数据(块203)。在这一实施例中,移动通信设备向服务器151发送标识或者认证信息,从而服务器151可以引用关于移动通信设备101的先前存储的标识或者认证信息、存储和取回与移动通信设备101关联的数据并且在其它移动通信设备之中具体标识或者认证移动通信设备101。
在一个实施例中,服务器151向移动通信设备101发送通知(块205)。这一通知可以是提醒、消息、指令或者与专属于移动通信设备101的应用数据或者设备数据有关的其它信息。在一个实施例中,该通知归因于设备先前已经发送与起初未被服务器151评估为不合需要、但是随后被服务器151确定为不合需要的数据对象对应的应用数据。在块207中,移动通信设备101接收通知,并且在块209中,移动通信设备101基于通知采取动作。如下文将更具体讨论的那样,这样的动作可以包括去激活在移动通信设备101上的一个或者多个特征或者应用。
本领域技术人员将理解,在移动通信设备101与服务器151之间的交互可以包括从移动通信设备到服务器以及从服务器到移动通信设备的通信。例如在一个实施例中,服务器151可以从移动通信设备101接收应用数据,但是服务器151可以在提供评估或者传输通知之前需要附加信息。在块211中,服务器151可以请求来自移动通信设备101的附加信息。移动通信设备接收请求(块213)、收集如服务器151请求的附加信息(块215)、然后在块217中向服务器151传输附加信息。在块219中,服务器151接收请求的附加信息。将理解这一过程可以如必需的那样重复。
图3-7更具体图示传输和汇集应用数据和设备数据。图3图示如下实施例,在该实施例中,服务器151评价在移动通信设备101上存储的数据对象的改变。在图3中,移动通信设备101检测具体数据对象的改变(块301)。本领域技术人员将理解,检测数据对象的改变可以涉及到机制、比如截获系统调用或者文件系统操作、文件系统或者其它数据对象改变监听器、从包管理系统接收事件(例如在AndroidTM操作系统中的PACKAGE_UPDATED和/或PACKAGE_REPLACED意图)以及轮循在能够枚举数据对象的文件系统或者其它系统中的数据对象。也可以使用用于检测改变的其它技术。备选地或者附加地,以下方法可以在检测到对数据对象的改变时、在移动通信设备的用户请求时或者在用于分析和评估移动通信设备上的数据对象的预配置的时间表时出现。
在一个实施例中,数据对象的改变可以包括在任何时间添加、去除或者修改数据对象。在传输用于数据对象的应用数据之后,移动通信设备101在记录它已经成功传输用于数据对象的应用数据之前等待来自服务器的确认。在从移动通信设备101接收用于数据对象的应用数据之后,服务器151传输确认。如果有传输中的或者数据本身的错误,则服务器151返回错误。如果移动通信设备101从服务器151接收错误或者在传输用于数据对象的应用数据之后未接收响应,则移动通信设备101将不记录用于数据对象的应用数据为已经被发送,并且移动通信设备101可以在将来的某一点重试发送数据。本领域技术人员将认识到移动通信设备有时不能连接到网络或者可以让它们的网络连接在传输中间中断。这样,移动通信设备101记录服务器151是否已经成功接收用于数据对象的应用数据对于可靠数据汇集系统的工作是重要的。在一个实施例中,在任何时间尚未从移动通信设备101传输并且服务器151尚未接收用于数据对象的应用数据,它都视为被改变并且需要传输。
在一个实施例中,移动通信设备101存储是否它已经传输并且服务器151已经成功接收用于在设备上存在的一个或者多个数据对象的应用数据。为了标识哪些数据对象已经让适当应用数据报告给服务器151,移动通信设备101可以存储如下数据库,该数据库包含用于已经向服务器151成功报告的数据对象的标识信息以确定设备是否需要传输用于那些数据对象的应用数据。例如如下数据对象可以由它的内容的哈希标识,该数据对象是在文件系统上的文件。在首次在移动通信设备101上安装数据对象时,数据库可以不含用于数据对象的数据。由于无用于数据对象的标识信息,所以移动通信设备101识别数据对象为新并且向服务器151传输用于数据对象的应用数据从而指示对象是新的。在向服务器151传输用于数据对象的应用数据并且接收服务器成功接收应用数据这样的确认之后,设备在数据库中存储文件内容的哈希和文件系统上的其中文件驻留的位置。如果将删除数据对象,则移动通信设备101可以检测在先前存储的文件系统位置无文件并且可以通过报告用于数据对象的哈希标识信息和/或文件系统位置来向服务器151报告数据对象的删除。如果比如在更新应用的情况下将修改文件,则移动通信设备可以检测在文件系统上的先前存储的位置中有文件、但是文件的内容哈希未与存储的内容哈希匹配。在这一情况下,移动通信设备101可以向服务器报告已经更新文件位置和/或先前内容哈希标识的数据对象并且报告文件的新内容哈希。
在例子中,在移动通信设备101上安装的安全性系统可以出于接收数据对象的评估的目的而向服务器151报告用于数据对象的应用数据。如果移动通信设备下载恶意的新应用,则重要的是安全性系统一有可能就检测到这一新项目。服务器151可以分析新应用并且提供安全性评估,由此可以基于结果采取动作。在另一例子中,应用的第一版本可以安全,但是应用的第二版本可以恶意。重要的是安全性系统识别这一更新不同于应用的第一版本、从而它将产生第二版本的新评估而未仅报告第一评估。服务器151可以分析更新的应用并且提供安全性评估,由此可以基于结果采取动作。
在图3的块303,移动通信设备101向服务器151传输用于移动通信设备的标识信息。在一个实施例中,标识信息是认证信息。在一个实施例中,标识信息是用于设备的非权威标识符、比如未视为秘密的设备ID。在一个实施例中,标识信息包括用于移动通信设备的设备信息(例如构造、模型、硬件特性)。此外,移动通信设备101传输用于改变的数据对象的信息。这样的信息可以包括用于数据对象的标识信息、比如元数据(例如哈希、包名称、文件名、文件路径、密码签名者、唯一标识符、比如UUID)等。在块305中,服务器151接收用于移动通信设备101的标识符和用于改变的数据对象的信息。服务器151在服务器上或者在数据存储装置111上存储接收的数据(块307)。在一个实施例中,存储服务器151接收的数据中的仅一些数据。在块309中,服务器151使用这里公开的或者来自通过完全引用而结合于此的第12/255,621号美国专利申请的技术中的任何技术来提供针对改变的数据对象的评估。该评估可以包括标注改变的数据对象为安全、恶意或者未知的指令和/或归类。在一个实施例中,接收的数据中的一些或者所有数据被存储于服务器151或者数据存储装置111上并且与传输数据的设备关联。例如这可以以后允许服务器151确定设备已经遇到哪些应用。在另一实施例中,以服务器151不能将信息直接连结到特定设备的方式在服务器或者数据存储装置111上存储接收的数据中的一些或者所有数据。例如,服务器151可在无需到特定设备或账户的任何链接的情况下存储接收的数据。在另一例子中,服务器可以在存储时关联数据与标识符来匿名关联数据与设备。为了保证服务器151不能关联存储的数据与特定设备,标识符仅为传输数据的设备所知并且无论设备何时传输数据都被提供给服务器。服务器未存储这一标识符,从而标识符从未与在服务器151或者数据存储库111上的特定设备或者账户直接链接。在一个实施例中,服务器151在服务器上或者在数据存储装置111上存储评估的结果。如果在需要针对数据对象的评估309并且针对数据对象的先前评估存在并且视为有效时,服务器151从数据存储装置111取回先前评估而不是执行新评估。如果涉及每个对象的元数据以多种方式匹配——包括如果评估涉及具有相同哈希、相同包名称、相同密码签名者或者相同文件路径的数据对象——则评估可以视为用于相同数据对象。在块311中,向移动通信设备101传输评估,该移动通信设备从服务器151接收这一评估(块313)、然后处理评估或者采取适当动作(块315)。
本领域技术人员将理解,在移动通信设备101与服务器151之间的交互是动态的,因为服务器151可以前摄地(proactively)传输用于纠正其评估已经改变的数据对象的指令或者通知、由此需要移动通信设备101的动作。图4图示这样的实施例。在图4的块401中,移动通信设备101检测具体数据对象的改变。在块403中,移动通信设备101向服务器151发送用于设备的标识信息和关于改变的数据对象的信息。服务器151接收用于移动通信设备101的标识信息和关于改变的数据对象的信息(块405)。在块407中,服务器151在服务器上或者在数据存储装置111上存储改变的数据信息。在块409中,服务器151可以分析和评估改变的数据对象并且可以向移动通信设备101报告评估(块411)。如先前讨论的那样,如果已经针对数据对象执行评估,则可以取回和使用该先前执行的评估而不是重新执行评估。如果服务器151报告评估,则移动通信设备101在块413中接收评估或者其它通知并且处理评估(块415)。
在一个实施例中,针对数据对象的评估可以改变。例如先前已经被评估为安全或者未知的数据对象可以以后被标识为恶意,从而引起某一先前未知弱点或者引起不合需要的行为、比如网络过度使用或者电池耗费。在块417中,如果服务器151检测到针对先前分析的数据对象的评估改变,则在块419中,服务器151可以向移动通信设备101传输通知、纠正指令等。移动通信设备101从服务器151接收通知(块421)、然后执行推荐的动作或者纠正指令(块423)。在块425中,移动通信设备101传送它执行了所需动作这样的确认,服务器151接收该确认(块427)。在一个实施例中,仅如果确定数据对象在移动通信设备151上存在则才向移动通信设备发送通知。在一个实施例中,服务器151在服务器151上或者在数据存储装置111上存储信息,从而允许服务器151确定移动通信设备101当前是否具有数据对象或者先前已经请求针对数据对象的评估。
本领域技术人员将理解,图4提供服务器151如何可以向移动通信设备报告评估改变的仅一个例子,并且可以略去一些步骤而未脱离本公开内容。例如移动通信设备可以执行纠正指令或者其它所需动作而未向服务器151发送确认。
在一个实施例中,服务器151可以请求来自移动通信设备101的关于特定数据对象的附加信息。例如移动通信设备101可以向服务器151发送关于改变的数据对象的信息;然而发送的信息可能不足以让服务器151执行结论性的分析。图5图示这一实施例。在图5的块501中,移动通信设备101检测到数据对象已经改变,并且将用于移动通信设备101的标识信息与用于改变的数据对象的信息一起向服务器151传输(块503)。服务器151接收用于移动通信设备101的标识信息和用于改变的数据对象的信息(块505),并且在服务器上或者在数据存储装置111上存储用于改变的数据对象的信息(块507)。在块509中,服务器151确定它是否需要关于改变的数据对象的附加信息。例如服务器151可以尝试评估改变的数据对象是否安全或者恶意、但是不能提供结论性的评估(即评估产生“未知”)。如果无足够数据以甚至开始评估则可以在服务器151执行评估之前或者可以在评估完全或者部分由于缺乏数据而无结论地返回之后执行是否需要更多信息的确定。如果需要附加信息,则服务器151可以请求来自移动通信设备101的附加信息(块511)。
在图5的块513中,移动通信设备101接收针对附加信息的请求、收集请求的信息(块515)、然后向服务器151传输附加信息(块517)。在一个实施例中,附加信息包括用于数据对象的行为数据和用于数据对象的应用数据、比如用于数据对象的内容。在块519中,服务器151从移动通信设备101接收附加信息并且存储附加信息(块521)。服务器151然后可以将改变的数据对象信息与附加信息一起分析以提供评估(块523),可以向移动通信设备101发送该评估(块525)。在块527中,移动通信设备101从服务器151接收对改变的数据对象的评估、然后处理评估(块529)。
在一个实施例中,移动通信设备101可以选择向服务器151传输附加信息。例如服务器151可以分析数据对象、但是未提供结论性的评估。移动通信设备101可以通过向服务器151提供用于数据对象的附加信息来请求附加评估而未请求来自设备的附加信息。图6图示这一实施例。
在图6的块601中,移动通信设备101检测数据对象的改变,然后在块603中,移动通信设备101向服务器151发送它的标识信息和用于改变的数据对象的信息。在块605中,服务器151接收用于移动通信设备101的标识信息和用于改变的数据对象的信息。这一信息由服务器151存储于服务器上或者数据存储装置111上(块607)、然后由服务器151分析以产生评估(块609)。在块611中,服务器151向移动通信设备101传输评估或者适当通知。移动通信设备101从服务器151接收评估(图6的块613)。在块615中,移动通信设备101确定是否发送关于数据对象的附加信息。例如服务器151可能不能在它具有的可用数据给定时产生针对数据对象的评估、因此需要更多信息以能够产生评估。在块617中,如果移动通信设备101确定它应当发送关于数据对象的附加信息,则收集这一信息。在块619中,移动通信设备101向服务器151传输附加信息,该服务器接收这一信息(块621)并且存储接收的附加信息(块623)。将理解,服务器151将知道附加信息将涉及服务器151先前接收的信息(块605),因为移动通信设备101将把标识信息与附加信息一起传输。
在图6的块625中,服务器151分析从移动通信设备101接收的附加信息。在一个实施例中,可以将附加信息与先前接收的信息一起分析(块605)。在块627中,服务器151向移动通信设备101传输评估,该移动通信设备处理评估(块629)。如果移动通信设备101仍然需要发送附加信息,则它可以如必需的那样重复该过程。
如先前指出的那样,服务器151可以具有对多个移动通信设备的访问,这些移动通信设备中的一些移动通信设备可以运行或者存储相同应用程序或者数据对象。请求来自单个移动通信设备的数据对象信息可能引起网络流量,从而不仅影响单个移动通信设备而且影响网络上的其它设备。在一个实施例中,如果服务器151需要关于在多于一个移动通信设备上存储的数据对象的信息,则服务器151可以从移动通信设备中的每个移动通信设备收集所需信息的部分而不是依赖于单个设备。图7图示如下实施例,该实施例使用第一和第二移动通信设备、由此优化来自两个或者更多移动通信设备的数据汇集。
在图7的块701中,第一移动通信设备检测数据对象的改变。数据对象也在第二移动通信设备上被发现、但是可以实现或者可以未实现相同改变。第一移动通信设备向服务器151传输它的标识信息和用于它的改变的数据对象的信息(块703)。在块705中,服务器151将用于第一移动通信设备的标识信息与用于改变的数据对象的信息一起接收。服务器151存储这一信息(块709)。在块711中,服务器151确定它需要关于数据对象的附加信息。在块713中,服务器151标识如下第二移动通信设备,服务器151知道该第二移动通信设备也存储数据对象以及用于数据对象的附加信息。
在图7的块715中,服务器151请求来自第二移动通信设备的用于数据对象的附加信息。第二移动通信设备接收这一请求(块717)。作为响应,第二移动通信设备将收集附加信息(块719)、然后向服务器151传输附加信息(块721)。服务器151从第二移动通信设备接收(块723)并且在服务器151上或者在数据存储装置111上存储关于数据对象的附加信息(块725)、然后将这一附加信息与来自第一移动通信设备的先前接收的信息一起分析以提交评估(块727)。向第一移动通信设备传输这一评价(块729),该第一移动通信设备接收评价(块731)并且处理评估(733)。将理解如果相关则服务器151也可以向第二移动通信设备传输评估。
在一个实施例中,服务器151可以从多个设备收集附加信息。在一个实施例中,服务器151通过分析服务器先前存储的设备信息和应用数据来选择从哪些设备请求附加信息。例如为了表征应用对SMS消息接发的使用以确定它是否出于垃圾消息目的而滥用SMS,服务器151可以请求来自许多如下移动通信设备的对应用发送的SMS消息的计数,这些移动通信设备先前已经报告它们已经安装应用。在一个实施例中,服务器尝试分析数据对象以产生评估而未先等待从设备接收关于数据对象的信息。取而代之,服务器可以从其它来源接收数据并且前摄地请求来自一个或者多个设备的信息以创建针对数据对象的评估。
在一个实施例中,移动通信设备101收集并且向服务器151传输的用于数据对象的应用数据可以包括关于数据对象的行为数据。下文更深入讨论服务器151比如在分析期间对这样的数据的使用。行为数据可以包括关于数据对象在它在设备上运行时做过什么的信息。行为数据的例子包括关于数据对象引起的网络连接的信息(例如服务器名、来源/目的地地址和端口、连接持续时间、连接协议、传输和接收的数据量、连接总数、连接频率以及用于连接的网络接口信息、产生的DNS请求)、数据对象在运行时的行为(例如系统调用、API调用、使用的库、进程间通信调用、传输的SMS消息数目、发送的电子邮件消息数目、关于显示的用户接口的信息、访问的URL)、数据对象引起的开销(例如使用的电池、使用的CPU时间、传输的网络数据、使用的存储装置、使用的存储器)。其它行为数据包括在特定行为出现时的情境(例如电话的屏幕是否在数据对象发送SMS消息时关断、用户是否在它连接到远程服务器时使用数据对象等)。
由于数据对象每当它们运行时生成大量行为数据,所以移动通信设备未收集或者传输所有可能行为数据是重要的;否则,收集和传输行为数据可能过度利用设备101、服务器151和网络121上的资源。在一个实施例中,移动通信设备101限制它收集和传输什么类型的用于数据对象的行为数据、以及基于自从数据对象上次已经改变起的时间段而多么频繁地收集和传输行为数据。例如在首次在移动通信设备上安装数据对象时,设备可以每天收集和传输可用的全数量行为数据。在安装数据对象之后的一周之后,设备可仅在每周间隔中发送行为数据的有限子集。安装之后的一个月,设备可以仅在每月间隔中发送最少量行为数据。在一个实施例中,如果将升级数据对象(例如将应用更新成不同版本),则设备可以每天传输全范围行为数据并且在一周之后和/或在一月之后减少收集和传输的数据的范围和频率。在一个实施例中,服务器151向移动通信设备101发送如下配置,该配置请求设备在具体频率发送具体类型的行为数据。设备存储配置,从而它可以确定是否收集和/或传输用于数据对象的行为数据。在一个实施例中,配置信息专属于特定数据对象。在一个实施例中,配置信息用于设备遇到的所有数据对象。在一个实施例中,服务器151请求来自设备的用于特定数据对象的行为数据,从而服务器可以使不必要地收集和传输的行为数据最少。
在一个实施例中,服务器151可以影响行为数据的收集和从设备101向服务器151的传输。例如仅如果服务器151具有指示移动通信设备101当前具有数据对象的信息并且如果服务器需要更多行为数据以更好地评估数据对象,则服务器才可以向设备传输请求用于数据对象的行为数据的指令。在一个实施例中,服务器151基于已经报告行为数据的设备数目确定它需要更多的用于对象的行为数据。例如服务器可以要求至少一百(100)个设备报告用于每个数据对象的行为数据以便具有置信评估。在一个实施例中,不同设备报告的行为数据的差异用来确定为了评估置信而需要多少行为数据。例如,如果三十(30)个设备都在小的变化内报告数据对象的电池使用量,则服务器可以未请求用于该对象的任何更多行为数据;然而如果那些三十(30)个设备表明宽的电池使用量变化,则服务器可以请求来自两百(200)个设备的行为数据。
在一个实施例中,仅如果数据在正常限度(bound)以外,则移动通信设备才可以传输行为数据。在一个实施例中,限度是所有数据对象通用的。例如可以设置关于网络使用量的限度,从而仅如果数据对象维持至少一个开放连接持续它运行的时间的多于50%或者如果数据对象在24小时时段中传输多于一兆字节数据,则移动通信设备才传输用于数据对象的网络的连接的行为数据。在一个实施例中,服务器151可以通过向移动通信设备101传输更新的限度信息来更新设备上的限度。在一个实施例中,限度可以是一个或者多个数据对象特有的。例如设备可以具有如下默认限度集合,它将按照该默认限度集合发送行为数据,但是服务器可以传输用于特定数据对象的如下限度,这些限度通过标识信息、比如哈希、密码签名者、包名称或者文件系统位置来标识该数据对象。更新的限度可以指示设备发送比默认限度集合更多或者更少的行为数据。例如移动通信设备可以默认从未发送行为数据。在设备上安装新数据对象时,设备向服务器报告与数据对象关联的元数据和安装事件。如果服务器已经通过来自其它设备的行为数据表征数据对象,则服务器可以向设备发送如下限度,这些限度指定数据对象在其它设备上的典型行为(例如每天使用少于100千字节数据、从未发送SMS消息、从未发送电子邮件),从而如果数据对象从这些限度偏离,则移动通信设备将向服务器发送偏离的行为数据。这样的偏离可以在变成被利用并且开始表现非特性行为的合法应用的情况下或者在仅在某一时间之后开始变成恶意的“定时炸弹”应用的情况下有用。
在一个实施例中,从移动通信设备101向服务器151传输的数据可配置以便保护用户隐私;防止设备、网络或者服务器资源过度使用;或者出于其它原因。一些例子配置包括选择从设备101向服务器151发送什么应用数据、多么频繁地发送应用数据以及如果初始传输失败则如何重新传输应用数据。例子配置还可以包括仅传输标识信息(例外无附加元数据或者行为数据)、从未传输任何应用数据、从未传输数据对象内容、仅基于数据对象的来源传输用于数据对象的应用数据、仅传输某些类型的行为数据、每天仅传输某一数量的应用数据、每天仅传输一个数据对象的内容、每天最多一次传输每个数据对象的行为数据等。本领域技术人员将认识到附加配置是可能的而未脱离公开内容的范围。在一个实施例中,移动设备101和/或服务器151、仅进行某些传输的设备和/或仅向设备产生某些请求的服务器可以实行配置。在一个实施例中,一方或者多方控制配置。例如服务器151或者在移动通信设备101上驻留的软件可以自动设置或者管理员可以经由服务器151控制和/或用户可以经由移动设备101控制配置。在一个实施例中,不同方控制配置的部分。例如用户可以能够控制是否向服务器151报告数据对象,但是对服务器151的管理员可以控制用于所有设备的行为数据报告频率以优化安全性系统的电池使用量。
在一个实施例中,在移动通信设备101上的软件在它接收对传输用于数据对象的应用数据、比如它的内容或者行为数据的请求时显示用户接口对话。如上文讨论的那样,针对数据对象的内容的请求可以针对整个内容或者针对内容的部分,如果请求部分,则该请求标识内容的哪个部分。显示的用户接口对话可以标识将对其发送应用数据的数据对象并且向设备的用户给予用于允许或者拒绝传输的机会。在一个实施例中,对话允许用户让设备记住他的或者她的针对将来数据对象的判决。在一个实施例中,对话允许用户查看关于待发送的应用数据的更深入信息并且提供一种用于用户理解发送数据的隐私牵连(比如链接到隐私策略、隐私描述或者描述如何传输、存储和使用数据的其它内容)的方式。在一个实施例中,移动通信设备在它接收服务器151需要更多信息以产生评估这样的指示时尝试传输数据对象。在这一实例中,设备可以在设备尝试传输数据对象时显示如下用户接口对话,该用户接口对话提示设备的用户选择是否传输数据对象的内容。在一个实施例中,对某些类型的应用数据、比如数据对象的内容的一些尝试的传输产生用于确认的用户接口对话,而传输其它类型的应用数据、比如元数据或者行为数据无需用户确认。
由于特定应用可以利用多个数据对象,所以可以希望移动通信设备101和/或服务器151将多个数据对象一起分组,从而可以作为整体分析应用。在一个实施例中,移动通信设备101或者服务器151可以通过在多个数据对象之间比较应用数据来执行分组。例如可以用来对数据对象分组的应用数据包括如何安装数据对象(例如可以对来自相同安装程序的数据对象分组)、是否在运行期或者动态地一起链接数据对象、多个数据对象是否在相同文件系统目录中以及数据对象是否共享密码签名者。例如应用安装程序可以向移动通信设备上的文件系统提取可执行文件和多个库。移动通信设备101可以使用共同安装程序以考虑分组的数据对象并且可以存储分组信息用于在收集行为数据时使用(下文讨论)。为了服务器151识别组,每个数据对象的应用数据可以包括用于共同安装程序的标识信息。服务器151可以在服务器151上或者在数据存储装置111中显式地存储分组的关系以在分析期间高效访问分组信息。
由于行为数据不能在多个对象比如在单个进程的情境中一起执行时总是归于单个数据对象,所以如果设备操作系统未支持粒度行为数据或者通过其它机制,则可以希望移动通信设备101将多个数据对象一起分组并且一起报告用于组的行为数据。在一个实施例中,移动通信设备101向服务器151传输指示分组的数据对象关联的信息并且一起传输用于分组的数据对象的应用数据。例如如果在移动通信上的进程加载来自不同销售者的多个部件并且仅可以在每进程级上收集网络数据和/或如果检测到进程连接到已知恶意服务器,则可以希望在进程中加载的所有部件可由服务器标识以确定犯规部件。在移动通信设备101收集用于进程的行为数据(比如进程已经连接到的IP地址)时,设备向服务器报告用于与进程关联的所有数据对象的标识信息。在服务器接收用于数据对象组的行为数据时,它可以分析来自多个设备的行为数据并且确定仅包含特定数据对象的组将连接到恶意服务器。因此,仅造成连接到恶意服务器的数据对象将视为恶意。在一个实施例中,如果移动通信设备未提供关于特定数据对象的行为的粒度信息,则可以向服务器传输作为整体的用于设备的行为数据作为代表在设备上安装的所有数据对象的组。例如如果操作系统未提供每进程电池使用量信息,则运行该操作系统的设备可以向服务器151传输在每个设备上安装的应用的列表和用于每个设备的总电池寿命。服务器然后可以对这一数据执行分析以确定哪些应用与更好或者更差电池寿命相关并且估计每个应用在安装于设备上时对电池寿命的贡献。在其中组中的多个数据对象具有不同行为数据收集配置的一个实施例中,移动通信设备将一起汇合配置。例如如果移动通信设备101被配置用于针对一个数据对象每天报告大量行为数据、但是被配置仅报告用于另一数据对象的异常行为数据,并且数据对象被分组,则设备可以汇合两个配置并且报告用于组的大量行为数据。备选地,如果第二数据对象被配置用于出于隐私原因而从未报告行为数据,则可以针对组未报告行为数据以满足隐私约束。
本领域技术人员将理解,可以使用二进制格式或者非二进制格式来格式化服务器151或者移动通信设备101传输的数据、比如元数据、行为数据、配置信息、行为数据限度、分组数据、针对附加数据的请求、通知和其它形式的数据。例子包括用XML、JSON或者作为URI的部分来格式化数据。可以使用包括TCP、UDP、DNS和HTTP的多种协议来传输数据。可以使用其它格式和/或协议而未脱离本公开内容。
上文是如何从一个或者多个移动通信设备收集和汇集数据的各种非限制例子。上文也公开用于优化数据汇集的技术。如讨论的那样,移动通信设备101将向服务器151传输上文描述的数据中的一些或者所有数据用于分析,从而服务器151可以提供对分析的数据的评估。以下章节描述分析技术的非限制例子。本领域技术人员将理解,尽管以下例子和公开内容对使用这里描述的方法来收集的数据进行使用,但是可以传输其它类型的数据,并且本公开内容不限于这里描述的数据。
B.数据汇集系统
本领域技术人员将理解,服务器151可以从除了移动通信设备之外的来源接收数据用于在分析数据对象和产生评估时使用。图10图示其中服务器151可以从多个来源接收数据并且传输评估信息用于多个用途的一个实施例。图示一个或者多个服务器151为“云”以强调多个服务器可以协调操作以提供这里描述的功能。图示一个或者多个移动通信设备101为组以强调多个设备101可以向服务器151传输信息和从服务器151接收信息。如上文公开的那样,一个或者多个移动通信设备101可以向服务器151传输用于数据对象的应用数据,并且设备101可以从服务器接收评估数据、针对更多信息的请求、通知等。
除了从移动通信设备收集数据之外,服务器151还可以从多种数据收集系统接收涉及数据对象的信息。这样的系统可以从服务器151分离或者可以是服务器151的部分。在一个实施例中,数据收集系统利用用于一个或者多个数据对象的信息直接更新服务器151或者数据存储装置111上的数据库或者其它存储装置。在一个实施例中,数据收集系统与服务器151通信以向服务器151提供信息。有可以用作向服务器151的数据馈送的许多类型的系统。一些例子包括网页爬虫(web crawler)1003、应用集市数据收集系统1005、蜜罐技术(honeypot)和可以向服务器151馈送与移动设备应用有关的信息的其它系统。
在一个实施例中,网页爬虫1003下载可以在移动通信设备上运行的数据对象并且取回关于数据对象的信息从而向服务器151馈送二者。例如网页爬虫1003可以利用搜索引擎以寻找托管移动应用的网站。一旦爬虫1003标识托管移动下载的站点,爬虫可以取回在那些站点上可用的网页从而检查每个页面的内容以确定待取回的附加页面。例如在移动下载站点上的页面可以包含指向其它页面的链接以及用于下载数据对象的链接。可以希望数据收集系统向服务器151仅传输与移动设备相关的信息,因为有在因特网上可用的未影响移动通信设备的大量内容(例如PC软件)。在一个实施例中,爬虫1003可以标识可用于下载或者已经下载的数据对象是否能够在移动通信设备上运行。例如爬虫1003可以检查用于如下具体串的下载URL,该具体串指示URL对应于移动应用包(例如SIS、APK、CAB、IPA)。在另一例子中,爬虫1003可以在数据对象已经被下载之后检查它以确定它是否影响移动通信设备并且如果是这样则确定它是否影响具体移动平台。在这一情况下,爬虫1003可以针对如下特性检查下载的数据对象,这些特性比如是它的名称、它是否包含与任何移动平台兼容的可执行代码或者它是否包含对于特定移动设备平台而言典型的数据。在一个实施例中,网页爬虫1003收集关于数据项目的集市元数据并且向服务器151传输集市元数据。一些例子集市元数据包括数据对象可用于从哪些网站下载、针对数据对象的用户评级和评论、如果数据对象可用于购买则它的价格、已经下载数据对象的次数、关于数据对象的作者的信息和涉及在网站上可用的数据对象的其它信息。如下文将讨论的那样,在给定的数据对象可用时可以用来确定数据对象多么可信。例如从有信誉的公司的网站可用的数据对象可以视为比移动设备论坛的用户之一在论坛上上传的数据对象更可信。
由于许多移动应用仅经由移动应用集市可用,所以服务器151接收关于在应用集市中可用的数据对象的信息可以是重要的。在一个实施例中,应用集市数据收集系统1005从移动应用集市取回关于数据对象的信息、比如数据对象的内容和用于数据对象的集市元数据并且向服务器151报告信息。在一个实施例中,应用集市数据收集系统1005是服务器151的部分。在一个备选实施例中,应用集市数据收集系统从服务器151分离。应用集市经常由移动平台销售者(例如Android Marketplace、BlackberryApp World、Apple App Store、Nokia Ovi Store)或者第三方(例如GetJar、Handango)提供并且可以使用专有API。在一个实施例中,应用集市数据收集系统1005被配置用于经由专有协议与应用集市服务器通信。为了以服务器151可使用的方式向服务器151传输从应用集市服务器接收的数据,集市数据收集系统1005可以将用于数据对象的应用数据从专有格式变换成服务器151可以用于分析的格式。例如应用集市可以提供用于访问用户的针对应用的评论和评级的API;然而该API返回的数据可以不同于另一应用集市的评论数据。在另一例子中,应用市场可以向集市数据收集系统1005前摄地传输数据,从而数据收集系统无需重复地查询它。为了允许服务器151能够分析来自多个应用集市的评论数据,应用集市数据收集系统1005可以将不同格式化的评论数据变换成标准格式用于向服务器151传输。在一个实施例中,应用集市数据收集系统1005可以在用户评审中搜寻如下某些项、比如“电池耗费”、“崩溃”、“隐私设置”、“未工作”、“电话号码”、“联系人”等,这些项可以使用这里描述的系统部件用来建立应用的可信性或者用来表征应用为“已知不良”。在一个备选实施例中,应用集市数据收集系统1005可以收集所有评论数据,并且服务器可以执行对评论数据的分析。类似地,服务器151或者应用集市数据收集系统1005可以能够识别针对数据对象的正面评审或者分数、由此提高针对数据对象的评估和/或可信性。
除了自动化收集数据对象信息之外,服务器151接收人类信息1007也可以是重要的。这样的信息可以包括可以将移动应用分类为可疑的用于移动应用销售者的主观信任分数、具体关键词或者其它特性、比如试探。本领域技术人员将认识到人类可以提供与对用于移动设备的数据对象的分析有关的其它类型的信息是可能的而未脱离本公开内容的范围。在一个实施例中,服务器151提供如下用户接口,有人可以通过该用户接口向服务器151提供关于具体数据对象、数据对象组(例如来自特定开发者的数据对象、在具体平台上的所有数据对象)的信息或者用于作为整体的分析系统(例如更新的分析试探)的信息。在一个实施例中,从服务器151分离的服务器提供如下用户接口,有人可以通过该用户接口提供关于具体数据对象、数据对象组或者用于作为整体的分析系统的信息。这一分离服务器可以向服务器151传输用户提供的信息,其中服务器151在服务器151上或者在数据存储装置111中存储它。在一个实施例中,分离服务器利用用户提供的信息直接更新数据存储装置111。
图10图示服务器151如何可以向外部系统提供关于数据对象的信息。在一个实施例中,可以经由API传输服务器151提供的信息;提供该信息为列表、数据馈送、报告或者格式化的数据、比如防火墙或者病毒定义;或者以其它形式。在一个实施例中,服务器151向应用集市1009提供关于数据对象的信息。例如服务器151可以向集市1009提供在集市1009中存在的恶意数据对象的列表。在另一例子中,服务器151可以暴露如下API,应用集市1009可以通过该API向服务器151传输标识信息(例如数据对象的内容的哈希)以确定数据对象是否视为恶意或者以别的方式不合需要。在一个实施例中,服务器151向网络安全性基础结构1011提供数据,从而网络安全性基础结构1011可以在网络级防范在恶意或者不合需要的应用。例如通过在网络级保护,即使无安装的安全性软件的移动通信设备也可以从保护中受益。在一个实施例中,服务器151向网络安全性基础结构1011传输威胁签名。这样的威胁签名可以采用多种形式、例如不合需要的应用的哈希、用于不合需要的应用的二进制序列、不合需要的应用的包名称、用于阻止恶意服务器或者攻击者的防火墙规则和用于网络安全性系统、比如Snort的规则。在一个实施例中,服务器151以数据馈送1013的形式提供数据。数据馈送1013可以包含来自服务器的数据收集或者来自进一步分析(下文描述)的可用于服务器151或者数据存储装置11的多种数据、例如使用比给定的阈值更多的网络流量以标识行为不当或者滥用应用的任何数据对象的列表、最盛行恶意数据对象的列表以及与判据、比如用于标识潜在恶意应用的试探集合匹配的应用的列表。
C.服务器侧分析系统
为了产生针对数据对象的评估或者其它形式的有用输出,服务器可以使用多种分析方法。在一个实施例中,由于服务器具有对从一个或者多个来源关于数据对象收集的信息的访问,所以服务器可以处理信息以产生针对数据对象的评估。图11图示如下实施例,在该实施例中,服务器151聚合用于数据对象的应用数据、存储信息、生成针对数据对象的表征和归类、评估数据对象以产生评估信息并且传输评估信息。在图11的块1101中,针对数据对象收集应用数据(例如数据对象内容、元数据、行为数据、集市元数据)。上文已经讨论用于收集的可能方法和收集的数据类型中的一些方法和数据类型。这样的方法可以包括从设备、从网站、从应用集市、从人群和从其它来源收集数据。在块1103中,在服务器151或者数据存储装置111上存储用于数据对象的应用数据,从而可以在与在收集数据时不同的时间使用它。
在块1105,收集并且在服务器151或者数据存储装置111上存储(块1107)设备数据。可以希望设备数据被链接到用于报告的设备的应用数据,从而评估、归类和表征可以考虑数据的来源。例如如果应用仅在安装于特定设备类型上时出故障,则服务器151能够在什么特定设备类型提供数据的情境中分析设备提供的应用数据是重要的。在一个实施例中,在存储应用数据1103时,关联它与用于提供它的设备的设备数据。例如在设备101向服务器151传输应用数据时,设备可以传输如下认证信息,该认证信息允许服务器151取回用于设备101的先前存储的数据。如果设备101已经向服务器151传输设备数据,则然后可以关联先前存储的设备数据与新应用数据。在这样的数据收集系统中,保护隐私并且使服务器151或者数据存储装置111存储的个别可标识信息最少可以是重要的。在一个实施例中,聚合用于具有相同设备数据的多个设备的应用数据,从而存储的数据未被链接到特定设备、但是为一个或者多个设备共享的设备数据集合。在这样的系统的设计中,考虑在设备数据粒度与如下级别之间的平衡可以是重要的,聚合的数据可以在该级别归于特定设备。
作为分析数据对象的部分,可以希望服务器151表征它和/或对它归类(块1109)。在一个实施例中,服务器151存储用于数据对象的表征和归类数据(块1111)。可以希望随着更多数据变成可用或者对数据的分析改变而更新表征和归类数据。在一个实施例中,服务器151在分析系统使用的用于数据对象的新或者更新的数据可用时执行附加分析(块1109)并且更新用于数据对象的存储的归类和表征数据(块1111)。
表征数据包括如下信息,该信息描述数据对象的功能、行为和信誉、比如它的能力、用于数据对象的度量、对涉及数据对象的其它数据的分析等。在一个实施例中,服务器151使用应用数据、设备数据、集市数据、分布数据和可用于服务器151的其它数据来生成关于数据对象的表征数据。尽管下文描述一些方法,但是本领域技术人员将理解,有可以运用的用于生成表征信息的其它方法而未脱离本公开内容的范围。在一个实施例中,服务器151传输表征信息作为评估。将理解表征信息可以有助于用户在判决是否安装应用时理解。例如如果用户考虑下载游戏、但是用户接收如下评估,该评估指示游戏具有用于向因特网发送用户的位置的能力,则用户可以判决不安装游戏。在另一例子中,如果用户考虑下载即时消息接发应用并且关注应用可能使用不相称数量的电池功率,则用户可以接收评估以了解应用的平均电池使用量度量并且基于度量判决可接受安装应用。在一个实施例中,可以消耗(consume)表征信息作为向一个或者多个其它分析系统的输入。例如产生对应用的隐私风险的评估的分析系统可以使用表征信息以确定应用是否具有有风险的能力、比如向因特网服务器发送位置或者联系人列表信息。
能力是服务器151可以产生的表征数据的一个形式。在一个实施例中,服务器151从数据对象提取能力。在某些移动操作系统或者应用环境中,应用可以请求用于访问设备上的特许功能(比如发送或者接收网络数据、访问电话的位置、读取或者写入联系人条目和SMS消息接发)的粒度权限。在一个实施例中,服务器151使用关于数据对象请求的权限的数据以确定数据对象的能力。服务器可以通过包括设备报告的元数据和行为数据、集市数据、数据对象的静态分析和数据对象的动态分析的多种手段确定权限数据。例如在Android操作系统上的应用必须在安装时间声明权限,因此服务器151可以直接经由一个或者多个设备报告的关于应用包的元数据或者经由集市数据分析应用包中的这些声明的权限以确定权限数据。
在一个实施例中,服务器151执行对数据对象的内容的分析以确定数据对象利用设备上的什么API。在一个实施例中,API分析可以包括在数据对象中搜索指示API调用的数据序列;分析数据对象中的具体库、函数、类或者其它导入数据结构;分析动态链接程序调用;分析对本地或者远程服务的调用;静态分析数据对象;动态分析数据对象;以及分析一个或者多个设备报告的行为数据。在一个实施例中,服务器151利用提取的API调用信息以确定应用具有特定能力。例如如果应用调用用于与设备上的GPS无线电交互的API,则服务器151确定应用具有用于确定设备的位置的能力。虽然这样的分析可以检测数据对象使用的API的大多数,但是可能的是高级自修改代码可以防止对数据对象的透彻分析。在一个实施例中,服务器151检测代码是否或者可以可能自修改。数据对象的用于修改本身的能力可以表示数据对象有比更简单直接的数据对象更高的风险。尽管PC上的恶意软件的许多实例使用自修改代码以向防恶意软件系统隐藏,但是复制保护系统也经常加密代码以防止未授权访问;因此,自修改本身可能不足以将数据对象分类为恶意,除了其它特性、比如行为数据之外,它也可以由分析系统用来产生针对数据对象的评估。
在一个实施例中,服务器151分析行为数据以确定用于数据对象的能力。例如服务器151可以寻找进行电话呼叫、发送SMS消息、访问因特网或者执行指示特定应用能力的其它动作的数据对象。在一些情况下,不仅理解数据对象利用哪些单个功能而且理解应用是否在API之间交换数据是重要的。例如使用因特网并且可以读取设备的联系人列表的应用可以具有如下多个能力,这些能力具有显著不同风险。例如简单地使用因特网以检查更新的地址簿应用具有比读取联系人并且向因特网发送那些联系人的地址簿应用更少的隐私风险。在一个实施例中,服务器151分析数据对象以确定是否有用来将一个API或者服务返回或者产生的数据向另一API或者服务发送的代码路径。例如服务器151可以执行在两个API之间的污点跟踪以确定应用是否在API之间传送数据。例如服务器151可以确定在数据对象中是否有如下代码路径,可以通过该代码路径向移动设备上的任何网络API提供对设备上的联系人API的任何调用所返回的数据。如果有这样的代码路径,则服务器151确定数据对象具有向因特网发送联系人的能力。具有这样的能力可以在服务器151或者用户的进一步分析期间比简单地知道应用访问联系人并且它访问因特网更有价值。许多应用可以使用两个权限;然而更少应用可以实际上向因特网发送联系人数据。用户或者自动化分析系统将能够使用知道有在两个API之间的代码路径这一能力作为比更少粒度的能力测量强得多的能力指示符。
在一个实施例中,服务器151在虚拟(例如仿真或者模拟)或者物理设备中运行数据对象并且分析数据对象在运行时的行为。在一个实施例中,仪器化虚拟或者物理设备,从而它报告用于数据对象的行为数据。在一个实施例中,服务器151分析虚拟或者物理设备的网络流量、调用和SMS消息。例如虚拟设备可以被配置用于总是经由它的不可能在任何现实境况中出现的位置API报告具体位置。通过针对该位置的各种编码、比如二进制双编码、基数64编码和文字编码分析设备的网络流量,服务器151能够确定数据对象是否尝试向服务器报告设备的位置。在一个实施例中,服务器151检查虚拟或者物理设备在数据对象在设备上运行之前和在数据对象已经运行之后的状态差异。例如数据对象可以利用在它安装于其上的设备上的内核以便安装隐形rootkit。在这一情况下,虚拟设备可以知道不应在普通境况之下改变的、比如在系统调用分派表中的某些存储器段的实质差异。在一个实施例中,物理或者虚拟设备在它的信任证书列表中具有定制根证书特权,并且服务器151使用由定制证书特权签名的服务器证书来截获所有TLS流量并且将流量代理给它的原有目的地。由于设备具有定制证书特权,所以数据对象能够通过服务器151建立有效TLS连接并且所有加密的流量能够由服务器151分析。
除了数据对象的能力之外,服务器151收集如下度量也可以是重要的,这些度量涉及数据对象在设备上运行的效果或者它对设备上的能力的使用。例如网络数据、电子邮件或者SMS消息接发过度使用可以视为滥用或者指示恶意或者利用的应用。在一个实施例中,服务器151分析来自许多移动通信设备的应用数据、比如元数据和行为数据、设备数据以及它具有的其它数据,该数据可用于它产生表征数据对象的度量数据。例如服务器151可以确定应用针对所有设备或者针对特定设备类型平均需要多少电池使用量、数据对象通过任何网络接口或者通过蜂窝比对Wi-Fi网络接口发送多少数据、数据对象发送多少电子邮件消息或者SMS消息、对象进行多少电话呼叫和其它度量。
服务器151可以根据上文已经描述的信息产生其它表征信息,该表征信息可以辅助服务器151的进一步分析以产生评估或者可以由服务器151直接暴露。在一个实施例中,服务器151分析与数据对象关联的网络流量信息以产生网络表征数据、比如数据对象已经连接到的服务器的列表、在数据对象与之通信的那些服务器上的端口和协议、向每个服务器传输和从每个服务器接收多少数据。在一个实施例中,网络表征信息包括运行特定数据对象的设备的什么比例连接到每个服务器。例如连接到IM服务器或者已知恶意bot命令和控制服务器的应用可以在它安装于其上的所有设备上连接到仅一个或者小数目的服务器;然而允许用户指定的连接的web浏览器或者应用可以在不同设备上连接到很大数目的不同服务器。在一个实施例中,如果数据对象连接到许多不同服务器,则服务器151通知一个或者多个设备不汇集用于该数据对象的网络行为数据以使不必要的数据报告最少。在一个实施例中,从移动通信设备收集网络流量信息作为行为数据,或者在虚拟或者物理设备上运行数据对象的服务器151收集网络流量信息。
在一个实施例中,服务器151确定数据对象是否使移动通信设备101访问恶意因特网或者其它公共或者专用网络。例如使移动通信设备访问恶意网站的数据对象可以使设备遭受利用。本公开内容的一个实施例允许分辨传输的因特网或者内部网地址(例如URL)以确定地址是否将把移动通信设备引向安全网站而不是邪恶网站或者钓鱼伎俩。可以存储这一信息为它涉及特定数据对象。
为了用户将应用策略应用于移动设备而无需针对每个单个应用进行单独判决,对应用归类使得用户可以简单地判决允许或者拒绝哪些应用类别可以是有帮助的。在一个实施例中,服务器151使用它具有的可用数据、比如应用数据、设备数据、集市数据和表征数据来对数据对象分类。例如如果表征数据对象为调用移动通信设备上的位置API,则服务器151可以将数据对象分类为映射或者其它基于位置的应用。在一个实施例中,类别可以直接映射到能力、比如读取你的联系人列表的应用或者可以向因特网发送你的位置的应用。其它例子类别包括数据对象是否传输来自移动通信设备的联系人列表的任何信息、数据对象是否使其它数据、比如设备的电话号码由移动通信设备传输以及可能影响移动通信设备的隐私安全性的其它行为。在一个实施例中,服务器151使用用于数据对象的度量数据以对它分类。例如服务器可以具有如下繁重电池用户类别,该繁重电池用户包括通常使用设备的电池的多于10%的数据对象。由于归类除了表征数据之外还可以依赖于设备数据,所以电池浪费者类别可以依赖于评估针对什么设备类型。例如使用一个设备的电池的多于10%的数据对象可以使用另一设备的电池的仅5%。
在一个实施例中,如果数据对象未直接提供归类信息,则服务器151可以推断这样的信息。例如如果数据对象与已知及时消息接发服务器通信,则服务器151可以确定数据对象是IM应用。例如可以在分析期间将连接到属于流行社交网络的服务器的应用分类为社交联网应用,可以将连接到已知恶意IRC服务器的应用分类为恶意bot,并且可以将耗费一个或者多个设备的电池的应用标记为电池耗费者。
由于应用的归类可以主观和难以自动确定,所以可以希望让在组织内部或者作为协同团体工作的部分的一个或者多个人员确定用于应用的类别。在一个实施例中,服务器151暴露如下接口,用户可以通过该接口建议用于数据对象的类别。例如服务器151可以定义不适合于儿童的应用的类别,这些应用具有包括色情或者暴力的内容。在这一例子中,一个或者多个用户向作为如下web应用而提供的团体表决系统签到,他们可以在该web应用中搜索和浏览服务器151知道的所有应用。设备报告的应用数据和集市爬行可以填充应用列表。每个应用可以具有如下页面,用户可以在该页面中选择他们推荐的用于该应用的类别。在一个实施例中,用户接口示出关于数据对象的信息、比如聚合的应用数据、用于数据对象的特性和可用于服务器151的其它信息,从而用户可以基于分析输出来进行判决。在一个实施例中,用户接口允许用户从类别列表选择、添加新类别和添加用于数据对象的标签。在一个实施例中,用户接口具有讨论部件,从而人们可以讨论针对数据对象的适当归类。在一个实施例中,如下表决系统可以确定用于应用的类别,用户可以通过该表决系统选择他们的用于应用的优选类别,最多用户选择的类别是用于应用的权威类别。在一个实施例中,用户接口被显示于移动通信设备上、显示在设备上安装的数据对象的列表并且允许用户建议用于那些数据对象的类别。
在一个实施例中,服务器151处理应用数据和设备数据以确定用于数据对象的分布数据。分布数据可以包括当前多么广泛地分布给定的应用、应用的分布的增长已经在应用已经可用的时间段内是什么、什么客户人口、比如地理已经安装应用以及应用在移动通信设备组之中的其它盛行功能。例如服务器151可以检查多少移动通信设备报告已经在当前时间安装数据对象以确定该应用多么盛行。在一个实施例中,如下文讨论的那样,服务器151使用分布数据以确定数据对象的可信性或者针对风险分析数据对象。例如已经在许多设备上长时间段安装而未被卸载的应用可能比新品牌并且仅在少数设备上安装的应用有更少风险。
由于服务器151可以遇到在开发中、因此未广泛分布的合法应用,所以本公开内容的一个实施例涉及服务器151标识哪些应用可以在开发中、由此防止它们在防恶意软件或者其它系统中被分类为不合需要。服务器151可以接收用于数据对象的如下应用数据,该应用数据指示数据对象具有在开发中的应用固有的特性、比如调试符号、可调试权限或者标志、与调试库的链接和其它特性。在开发中的应用也可以可能具有低分布或者隔离的分布。如果服务器151标识应用在开发中,则它可以存储应用视为在开发中的指示并且使用该指示以防止服务器151评估应用为可疑或者不合需要或者减少服务器达成这样的评估的可能性。在一个实施例中,在确定数据对象是否应当视为“在开发中”时,服务器151考虑遇到讨论的数据对象的设备所遇到的先前数据对象。如果设备频繁遇到在开发中的数据对象,则服务器151更可能将数据对象分类为在开发中。如果设备不频繁地遇到在开发中的数据对象,则服务器151更少可能将数据对象分类为在开发之中。
在一个实施例中,服务器151建立用于数据对象的信誉或者信任级。在一个实施例中,人工或者自动确定并且向单个数据对象、作为应用的部分的多个数据对象、应用的多个版本或者针对在一个平台或者多个平台上的来自给定的开发者的所有应用分配信任级。在一个实施例中,服务器151在服务器上或者在数据存储装置111中存储信任数据,因此可以随后直接使用它或者使用它作为产生评估的部分。
在一个实施例中,针对应用经由人工评审过程批准信任。例如如果服务器151仅基于应用的能力(例如具有对专用数据的访问和/或利用敏感API)认为它有风险,则即使良好地看待应用,查看评估的用户仍然可以选择不下载它。为了解决这一问题,人工评审可以向应用分配信任评级。如果评审认为应用可信任,则评估报告应用为无风险;然而如果在评审时确定应用可疑,则评估可以继续报告应用为有风险。由于有信誉的应用可以由多个数据对象构成、可以用新数据对象来更新或者可以具有用于多个平台的版本,所以允许信任评级跨越多个数据对象、应用和甚至平台从而无需针对作为应用的部分的每个版本或者文件完成人工评审可以是重要的。类似地,由于许多有信誉的软件销售者可以产生可以假设为可信任的多个应用,所以可以希望向标识为源于那些销售者的数据对象自动批准高信任级。在一个实施例中,如果数据对象可以通过可用于服务器151的数据、比如数据对象的密码签名者、包名称或者集市元数据来归于信任的销售者或者信任的应用,则服务器151向数据对象批准高信任级。
在一个实施例中,服务器151使用分布数据和应用数据以建立用于应用的信任。例如如果在数以百万计的移动通信设备上安装流行应用、比如Maps并且有应用的都具有相同密码签名者和相似分布特性的多个先前版本,则应用的具有该密码签名者的后续版本将视为具有高信任级。如果服务器151遇到具有与流行应用、比如Maps相同的名称、在仅少数设备上安装并且使用不同密码签名者的另一应用,则服务器151可以向低分布应用批准低信任级。防恶意软件系统可以使用这样的指示数据对象具有低信任的数据以自动评估数据对象为不合需要或者标记它用于人工评审。在一个实施例中,用于应用的信任数据可以考虑关联应用、比如确定为在相同平台上或者在不同平台上由相同开发者创建的应用。例如如果公司生产用于具有大数目的用户和良好评级的一个移动平台的应用并且公司在不同平台上发布新应用,则可以基于新应用与第一应用的关联向它给予高信任评级。
在一个实施例中,服务器151分析应用数据以确定数据对象是否为移动通信设备操作系统的部分或者由制造者或者开发者预加载。在一个实施例中,如果服务器151确定数据对象是移动操作系统的部分或者被预加载,则自动向它批准高信任级。
在一个实施例中,服务器151分析用于应用的由用户生成的评级和评论、比如应用集市数据收集系统1005收集的评级和评论。例如服务器151可以使用评级和评审以确定用于应用的信任评级。如果应用具有指示应用“崩溃”或者以别的方式“不良”的低评级和负面评论,则服务器151基于在应用的评论中指示的信誉向它分配低信任评级;然而如果应用具有一贯高评级和许多评审,则服务器151向应用分配高信任评级。在另一例子中,服务器151使用评级和评审作为主观应用质量指示符用于在产生针对应用的评估时使用。如果应用具有显著数目的如下评审,这些评审具有指示应用“耗费电池”或者“吸取电池”的文字,则服务器151确定应用具有产生不利电池影响的信誉并且产生应用的指示这一点的评估。
在一个实施例中,服务器经由API向第三方暴露信任数据。例如信任的应用可以视为经观察认证。在一个实施例中,API暴露的信任级是二元的(例如信任、不信任)、模糊的(例如86%信任、11%信任)或者按类别(例如全信任、恶意、可疑、半信任)。移动应用集市可以希望在应用下载用户接口上显示这一认证的指示符作为应用具有良好信誉的信号。在这一情况下,服务器151可以暴露如下API,第三方可以通过该API供应数据对象或者用于数据对象的标识信息、比如哈希标识符、包名称或者密码签名者。在接收数据对象或者用于标识数据对象的足够信息之后,服务器151用数据对象是否视为被认证的指示做出响应。在一个实施例中,响应是指示服务器151是否认为数据对象被认证的图像。在一个实施例中,响应包含指向服务器151的如下超链接,用户可以通过该超链接验证用于应用的认证是否真实。在一个实施例中,超链接引用的网页示出关于应用的附加信息、比如它为何视为信任或者不信任(例如通过人工评审、评论、分布数据)、应用请求什么权限、应用具有的特性和能力以及在人工评审期间关于应用的注释。
使用服务器151收集的或者来自这里描述的分析系统的数据,服务器可以产生评估(图11的块1113)。在产生评估之后,服务器151可以存储数据对象的评估,从而可以在以后时间取回它(块1115)。服务器可然后传输针对数据对象的评估(块1117)。例如服务器可以在应用提供者网站上公布评估、以可搜索报告的形式提供评估、向移动通信设备传输通知、传输包含给定的数据对象已知为良好或者已知为不良这样的评估的病毒签名以及传输对如下API调用的响应,该API调用查询数据对象的评估。这样的信息可以是以可读文字形式、机器可读格式或者可以包括“分数”、徽章、图标或者其它象征性的评级。本领域技术人员将理解,其中服务器151传输针对数据对象的评估的其它情形是可能的而未脱离本公开内容的范围。
在一个实施例中,评估数据包括来自分析系统的输出、比如表征数据、归类数据、信任数据和分布数据。例如针对数据对象的评估可以(单独或者除了其它信息之外还)包括用于数据对象的检测到的能力、用于数据对象的平均电池使用量、数据对象发送的SMS或者电子邮件消息的平均数目、数据对象连接到的最常见服务器、用于数据对象的网络数据的平均数量以及用于数据对象的信任评级。将理解可以提供上述评估数据作为向服务器151中的输入。例如网络运营者或者企业可以操作如下服务器,该服务器产生评估数据并且向主控服务器反馈数据。在另一例子中,用户可以确定评估数据并且经由接口、比如web应用向服务器151提供它。在这一情况下,用户可以提供主观信任数据、风险评级、归类或者服务器可以使用的其它评估数据。在一个实施例中,服务器151组合从多个来源接收的评估数据以产生聚合评估。例如如果恶意软件作者抱着使服务器151产生错误评估的愿望尝试向服务器151传输指示恶意应用安全的评估,则服务器可以利用提供评估的多个唯一来源和那些来源的可信性以产生聚合评估。如果从不同可靠来源、比如网络运营者和企业接收指示应用为恶意的一百个评估,但是来自特定未认证的来源的一万个评估指示应用为安全,则服务器产生指示应用为恶意的聚合评估。
在一个实施例中,服务器151产生的评估数据包括用于数据对象的一个或者多个评级。例如针对数据对象的评估可以包括服务器151的用于数据对象的隐私的如下评级,该评级考虑应用是否具有用于从设备向服务器发送位置数据、联系人数据、SMS消息或者文件的能力。在另一例子中,针对数据对象的评估可以包括服务器151的用于数据对象的安全性的如下评级,该评级考虑是否有用于应用的任何已知弱点、应用是否监听任何端口上的网络连接、它是否满足安全编码指南、应用的信任级是什么以及在应用中是否有异常(例如隐身代码、解密的代码、结构异常)。在另一例子中,针对数据对象的评估可以包括服务器151的用于数据对象的电池影响的如下评级、比如电话电池寿命减少的估计分钟数目,该评级考虑设备报告的电池使用量数据。在另一例子中,针对数据对象的评估可以包括服务器151产生的用于数据对象的性能的如下评级,该评级考虑应用的平均CPU使用量和应用未对用户输入事件做出响应的频率。在另一例子中,针对数据对象的评估包括服务器151产生的如下质量评级,该质量评级考虑应用崩溃频率、用户评论、用户评级和在设备上保持应用的平均时间。在一个实施例中,服务器151提供多个评级作为一个评估的部分以便沿着多个维度提供关于数据对象的信息。在一个实施例中,评估可以是二元的(例如良好、不良)或者模糊的(例如100%、90%、10%)。在一个实施例中,可以将多个评级组合成总评级。
在一个实施例中,服务器151处理可用于服务器151的多个数据来源以产生用于数据对象的评级。例如服务器151可以利用应用数据、设备数据、表征数据、信任数据、分布数据和用户供应的数据以确定应用是否恶意。服务器可以利用在服务器可用的应用于数据的多种系统或者模型以产生评估。例如产生对数据对象是否恶意的评估可以涉及到包括如下试探引擎的恶意软件检测系统,该试探引擎分析特性数据以标识可能恶意的数据对象的行为。一些例子试探包括检测数据对象是否利用任何用于通过向在它安装于其上的OS上的应用枚举系统隐藏来规避检测的能力、应用是否尝试修改本身、应用是否具有与已知间谍软件关联的能力以及应用是否连接到已知恶意服务器。
本领域技术人员可以理解,在服务器151执行的用于产生评估的分析部分可以视为提取用于数据对象的特征,并且另一分析部分可以视为将模型应用于那些特征以产生有用评估;因此,可以应用多种系统、比如人工智能系统或者算法以处理用于数据对象的特征以达成希望的评级和评估形式。
在一个实施例中,服务器151产生考虑不同设备数据或者配置信息的针对数据对象的多个评估。例如如果服务器151被配置用于产生对数据对象是否将正确工作的评估,并且如果数据对象在安装于一个类型的设备上出故障、但是在安装于另一设备类型上时正确工作,则服务器可以产生针对数据对象的两个评估。如果服务器151具有如下API,移动通信设备101可以通过该API在给予用于数据对象的标识信息时请求针对数据对象的评估并且移动通信设备已经向服务器151发送设备数据,则服务器151可以提供针对与请求评估的设备对应的数据对象的评估。如果其中数据对象将出故障的设备101请求评估,则服务器151将返回如下评估,该评估指示数据对象在该设备101上的出故障的行为。如果其中数据对象将正确工作的设备101请求评估,则服务器151将返回如下评估,该评估指示在该设备101上的恰当工作的行为。
在一个实施例中,评估指示是否在给予管理员设置的策略时允许数据对象在设备上运行。如果在服务器151上配置多个策略并且数据存储装置111存储哪个策略将应用于设备101,则给定的数据对象可具有如下多个评估,这些评估依赖于查询评估的设备的策略。例如如果具有严格隐私策略的设备请求针对如下应用的评估,该应用可以共享用户的位置,则服务器151传输指示不允许应用的评估。如果具有宽松隐私策略的设备请求针对相同应用的评估,则服务器151传输指示允许应用的评估。在一个实施例中,未存储评估数据,并且仅存储用来产生评估的信息、比如应用数据、设备数据、分布信息、表征信息、信任数据和归类信息,并且在请求时通过将策略应用于存储的信息来执行评估。
虽然自动化分析系统可以在多数时间产生可接受的结果,但是可以有其中人工分析推翻自动分析结果的情形。在一个实施例中,服务器151存储用于数据对象的人工分析结果并且传输人工分析结果作为评估。例如服务器151可以基于应用的行为数据将它分类为社交联网应用;然而应用可以实际上是允许用户向社交网络公布笔记的字处理应用。在这一情况下,用户或者管理员可以推翻针对数据对象的归类,服务器151存储归类并且响应于请求针对数据对象的评估来传输它。在另一例子中,防恶意软件系统标识具有某些特性的数据对象为不合需要。也可以希望用户人工配置服务器151以将特定数据对象视为不合需要。服务器151存储视为不合需要的数据对象的列表并且在被要求针对这些数据对象之一的评估时返回指示数据对象不合需要的评估。
由于可以希望关于数据对象的评估反映最新可用信息,所以在一个实施例中,服务器151先产生评估、然后如果附加应用数据或者设备数据变成可用或者如果分析系统本身被更新则更新评估。在一个实施例中,如果(例如由于新应用数据、设备数据或者更新的分析系统而)重新评估数据对象,则服务器151存储新评估1111并且传输它1113。例如在从十个设备收集用于数据对象的应用数据和设备数据之后,服务器151可以生成针对该数据对象的评估。然后如果服务器151从一千个更多设备接收设备数据和应用数据,则它可以按照新数据重新分析数据对象从而产生针对数据对象的新评估。如果更新的评估本质上不同于第一评估,则服务器151可以执行动作、比如通知设备或者用户。
C.防恶意软件系统
在一个实施例中,服务器151和移动通信设备101被配置用于一起工作以防止恶意软件或者间谍软件不利地影响移动通信设备。由于移动通信设备在存储器、处理能力和电池容量上有限,所以可以希望服务器151执行分析、比如这里描述的分析以确定应用是否视为恶意软件或者间谍软件、而不是每个设备执行分析。另外,可以希望服务器存储分析的结果,从而如果多个设备遇到相同应用,则无需重复分析。此外,可以希望服务器151使用这里描述的数据汇集系统来汇集关于潜在恶意应用的数据以便提供来自多种来源的数据用于由分析系统使用。
在一个实施例中,在移动通信设备101评估数据对象、比如应用包或者可执行文件以确定数据对象是否恶意或者以别的方式不合需要时,设备向服务器151发送针对数据对象的评估的请求,该请求包含用于数据对象的标识信息。在一个实施例中,移动通信设备101传输的请求包含用于数据对象的应用数据用于服务器在执行评估时使用。例如除了传输标识信息、比如应用的包名称和哈希之外,移动通信设备还可以额外传输数据对象请求的权限和设备通过执行静态分析来确定的信息、比如利用的API的列表。
在一个实施例中,移动通信设备101通过使用操作系统提供的工具和潜在附加处理来收集用于数据对象的元数据。例如Blackberry和Android平台提供如下机制,防恶意软件应用可以通过这些机制查询在设备上安装的包的列表。每个平台也提供用于查询关于包的附加信息、比如密码签名信息和关于包如何选择向操作系统集成或者暴露它们的信息的方法。
在另一例子中,移动通信设备101可以从数据对象提取特征以辅助服务器151产生评估。在一个实施例中,移动通信设备101对数据对象执行静态分析以提取用于向服务器151传输的应用数据。例如在Android上,设备可以分析应用包的通常称为“classes.dex”的可执行部分。设备可以提取可执行文件直接或者间接执行的、利用“绑定器(binder)”机制的进程间通信调用的列表,并且向服务器151传输关于调用的信息用于在分析应用包时使用。
在一个实施例中,服务器151可以立即分析数据对象或者可以需要使用过程、比如这里公开的过程来收集附加信息。在产生针对数据对象的评估之后,服务器向移动通信设备101传输评估。在一个实施例中,评估包含对数据对象是否视为不合需要的指示。例如服务器151可以传输已知良好、已知不良和未知这三个评估之一。如果服务器确定数据对象已知为良好(例如因为它具有高信任级),则它将返回数据对象已知良好这样的评估。如果服务器确定数据对象已知为不良(例如由于确定它为一款恶意软件),则它将返回数据对象已知不良这样的评估。如果服务器无足够信息以进行确定,则它将返回数据对象未知这样的评估。在一个实施例中,评估包含数据对象的风险级或者已知良好或者已知不良评估的置信度级,从而移动通信设备或者它的用户可以使用风险或者置信度级以确定如何对数据对象分类。
在一个实施例中,服务器151向移动通信设备101传输的评估包含关于服务器151为何确定数据对象不合需要的信息。例如服务器151可以传输确定数据对象属于的恶意软件系列的名称、或者服务器可以传输引用服务器151的如下HTTP URL,移动通信设备101可以使用该HTTP UTRL以显示关于数据对象的附加信息,该URL包含如下标识符,服务器151对该标识符解码以允许它取回关于数据对象的存储的信息。网页可以显示附加信息、比如来自用来产生评估的不同分析系统的输出。例如网页可以显示用于数据对象的分布信息、关于数据对象连接到的常见服务器的信息、数据对象的人类分析提供的信息、与数据对象关联的信任数据、关于数据对象的地理分布的信息、关于相似数据对象的信息以及关于数据对象的作者的信息。
可以希望使移动通信设备101需要向服务器151发送的针对数据对象的评估的请求最少,从而设备使它传输和接收的数据量最少、减少为了访问数据对象而需要的时间、优化电池消耗并且使服务器151上的负荷最少。在一个实施例中,移动通信设备101维持从服务器151接收的评估信息的本地高速缓存。可以使用轻量级数据库、比如SQLite或者在针对评估存储而优化的专有二进制文件格式中来存储本地高速缓存。例如高速缓存可以包含关于数据对象是否不合需要的指示、与数据对象关联的风险级和定义信息、比如用于数据对象的标识信息。在设备扫描数据对象时,它可以查找在本地高速缓存中的数据对象的标识信息。如果高速缓存针对数据对象的评估,则使用该评估。如果未高速缓存评估,则设备从服务器151取回评估。在一个实施例中,在移动通信设备向它的高速缓存中插入针对在设备上遇到的数据对象的评估时,它生成用于数据对象的定义信息。例如设备可以使用数据对象的内容的哈希以保证它高速缓存来自服务器的评估结果。在一个实施例中,服务器151将定义信息与评估一起传输,从而移动通信设备可以将评估应用于适当应用集合。例如在一些情况下,服务器151可以指示评估仅适用于如下具体数据对象,该数据对象由它的内容的哈希标识,而在其它情况下,服务器可以指示评估适用于用相同密码密钥签名的所有数据对象。
在一个实施例中,移动通信设备101存储用于已知良好数据对象和已知不良数据对象的定义的本地高速缓存,用于由在移动通信设备上操作的识别部件(下文描述)使用。使用识别部件,如果本地高速缓存包含与可疑数据对象对应的定义和对应评估,则移动通信设备可以确定针对可疑数据对象的评估。例如定义可以使用判据、比如哈希标识符、包名称和密码签名者以匹配数据对象。每个定义可以具有对应评估(例如“良好”、“不良”)。如果定义与可疑数据对象匹配,则定义的评估可以用于可疑数据对象。如果无定义对应于数据对象、比如识别数据为安全或者不安全,则移动通信设备101可以向服务器151传输用于可疑数据对象的应用数据用于更全面分析。
在一个实施例中,高速缓存用作如下防恶意软件定义的主存储装置,这些防恶意软件定义确定在移动通信设备101上的防恶意软件是否将识别数据对象为恶意而无需询问服务器151。在一个实施例中,高速缓存存储设备上的识别部件使用的定义信息。例如高速缓存可以包含用来匹配设备上的数据对象与高速缓存的评估的定义信息、比如包名称、密码签名者、字节序列、模式或者逻辑。如果高速缓存包含如下条目,该条目将特定字节序列链接到为恶意应用的评估和在设备上的包含该字节序列的数据对象,则设备将确定该数据对象为恶意而无需联系服务器151。在一个实施例中,高速缓存仅包含定义信息,所有定义对应于为恶意的数据对象的单个评估。在一个实施例中,高速缓存可以包含如下评估信息,该评估信息可能包含如上文讨论的标识符,可以向服务器151传输该标识符以便设备取回信息用于向用户显示。用来从服务器151取回数据的这样的标识符允许高速缓存使它存储的关于潜在恶意软件的信息最少。在一个实施例中,设备高速缓存用作白名单和黑名单二者。高速缓存包含用于已知良好和已知不良数据对象的定义信息,从而如果确定数据对象为已知良好或者已知不良,则设备无需请求来自服务器151的评估,在一个实施例中,用作黑名单和白名单二者的高速缓存由移动通信设备上的识别部件用来确定数据对象是否可识别地不良或者可识别地良好。如果设备遇到的数据对象基于在高速缓存中存储的定义数据既未可识别地良好也未可识别地不良,则设备可以向服务器151传输用于数据对象的应用数据,因此设备可以从服务器接收针对数据对象的评估。在一个实施例中,用如下定义的预填充的高速缓存安装移动通信设备上的防恶意软件,设备在它接收新评估或者存储的评估视为无效时修改这些定义。
在一个实施例中,在设备上高速缓存的评估和定义视为有效仅持续一段时间,从而移动通信设备未依赖于潜在过期的数据。在一个实施例中,高速缓存的评估和定义被无限地存储并且视为有效而无时间约束。在一个实施例中,设备仅存储某些类型的评估和定义。例如设备可以仅高速缓存已知良好评估或者可以仅高速缓存已知不良评估。在这一情况下,仅如果定义具有对应评估则才存储它们。在一个实施例中,在易失性存储装置、比如RAM中存储高速缓存的部分,并且在非易失性存储器、比如闪存上存储高速缓存的部分。由于易失性存储器通常比非易失性存储器更有限而快得多,所以设备可以在易失性存储器中存储频繁访问的评估和定义而在非易失性存储器中存储更少频繁访问的评估和定义。例如如果防恶意软件系统每当数据对象被打开时分析它们,那么如果近来已经扫描并且未改变数据对象,则可以希望很快确定针对它的评估。通过在易失性存储器中存储近来使用的定义和评估,设备可以很快调回先前评估。
在一个实施例中,服务器151将如下高速缓存控制信息与评估一起传输,该高速缓存控制信息指示设备是否应当高速缓存评估并且如果是这样则为多久。例如服务器151可以传输针对来自有信誉的公司的流行应用的如下评估,该评估包括指示设备应当高速缓存评估的高速缓存控制信息。如果服务器151传输针对更少已知应用的评估,则它可以包括指示设备不应高速缓存评估的高速缓存控制信息,因为应用可以在关于它已知更多时在将来变为视为不合需要。在一个实施例中,服务器151基于评估的置信度确定高速缓存控制信息。例如针对具有高信任级的应用的已知良好评估可以视为高度地置信,而由于缺乏可用于服务器的数据而指示应用未知的评估可以不视为置信。在一个实施例中,在评估到期时,与评估关联的高速缓存的定义信息也到期。
由于取回高速缓存的评估比从服务器151取回高速缓存更快(由此使与确定数据对象是否恶意关联的延迟和开销最少),所以可以希望使可以根据高速缓存的数据本地确定的评估的数目最大。在一个实施例中,服务器向移动通信设备传输评估而设备未请求评估,并且移动通信在它的高速缓存中存储这些评估。由于可用于服务器151的所有评估可以需要比在移动通信设备101上希望的存储装置更多的存储装置,所以服务器可以仅传输它的可用评估的子集。在一个实施例中,服务器151通过分析设备数据和应用数据来确定向移动通信设备101传输哪些评估。例如服务器151可以用服务器可以查询与给定的操作系统有关的所有评估这样的方式存储数据对象兼容的、与针对数据对象的评估关联的操作系统。服务器151然后可以向移动通信设备仅传输针对与设备运行的操作系统兼容的数据对象的评估。不会向设备传输其它评估,因为其它评估引用的数据对象不能在设备的操作系统上运行。在另一例子中,服务器可以使用设备的国家、语言或者区域代码以确定向设备传输什么评估。恰如俄罗斯用户不可能下载西班牙语应用,美国用户不可能下载俄罗斯语言应用。
在一个实施例中,服务器151存储它已经向设备传输并且设备已经成功接收哪些评估,从而不必要地重新传输评估。如果设备尚未接受希望的评估,则服务器在设备下次连接时传输评估。为了高效跟踪设备已经接收哪些评估,服务器151可以对评估分组,从而给定的设备接收一个或者多个组中的所有评估。例如给定的评估组可以具有每天多次改变(例如访问新数据对象、改变现有评估);然而设备可以被配置用于每天仅一次接收更新的评估。为了确定向设备传输什么评估,服务器可以记录在设备上次已经接收针对组的最新评估时的时间并且仅检查自从设备上次已经接收评估起的对组的改变。例如如果设备在周一接收针对给定的组的所有评估并且在周二向组添加两个新评估,那么如果设备在周三连接,则服务器仅需查询什么评估自从周一起已经在组中改变并且将确定它需要传输仅两个添加的评估。在一个实施例中,服务器利用推送服务、比如这里描述的推送服务以提醒设备有服务器准备好向设备传输的附加评估。在使用这样的推送服务时,在服务器更新作为组的部分的评估时,可以接近立即地用最新评估更新从该组接收评估的所有设备。
有其中服务器151可以对评估分组以便有选择地向设备传输评估的多种方式。例如可以有针对与给定的操作系统兼容的数据对象的、比希望在设备上存储的评估更多的评估。在这一情况下,服务器可以基于可用于服务器151的分布数据或者市场数据产生与最盛行数据对象对应的评估组。在这一情况下,设备将高速缓存针对他们最可能遇到的数据对象的评估。也可能通过服务器151分析与设备先前遇到的数据对象对应的、在服务器可用的应用数据并且基于那些先前遇到来预测设备可能在将来遇到什么数据对象,进一步提高设备具有针对它遇到的数据对象而高速缓存的评估的可能性。然后可以向设备传输针对那些可能数据对象的评估。
由于将在设备上高速缓存的评估数据的最优数量可以根据设备的硬件、用户行为或者用户偏好而不同,所以可以希望该数据量可调。在一个实施例中,服务器151确定将在移动通信设备101上高速缓存的评估数据量。例如服务器151可以检查在设备上可用的存储装置数量、用户下载应用的频率以及附加高速缓存的评估数据将多么可能减少设备传输的所需评估请求的数目。如果设备具有大量可用存储装置并且它的用户下载大量应用,则服务器可以确定高速缓存大量评估数据;然而如果设备具有很少可用存储装置并且它的用户很少下载应用,则服务器可以确定仅高速缓存少量数据或者不高速缓存数据。服务器也可以检查设备进行的先前评估请求以确定高速缓存附加评估信息的设备是否可以已经避免那些请求。例如如果设备当前接收属于特定应用组的评估并且服务器评估设备是否应当接收针对附加应用组的评估,则服务器检查先前评估请求以确定那些评估中的多少评估在第二组中。如果服务器151确定将已经避免评估请求中的足够评估请求,则它将开始从两组向设备传输评估。在一个实施例中,用户可以控制将向移动通信设备101上的高速缓存的评估分配的存储装置数量。
可以希望服务器151报告它尚无评估而不是总是产生绝对评估(例如已知良好或者已知不良)。在一个实施例中,服务器151传输针对数据对象的如下评估,该评估指示对象的不合需要性未知。在移动通信设备101遇到数据对象时,它向服务器151传输针对评估的请求并且接收未知评估,设备暂时信任数据对象并且在以后时间重试针对评估的请求。为了避免不必要的请求,设备如果它继续接收未知评估则增加在重试之间的时间延迟。在这样的暂时信任时段期间,设备未每当扫描数据对象时重新传输评估请求。例如在移动设备上的被设计用于在文件系统上的文件被访问时扫描它们的防恶意软件系统中,首次访问数据对象可以造成设备向服务器151传输评估请求。如果服务器返回未知评估,则设备在它的评估数据库中存储如下暂时条目,该暂时条目指示用于数据对象的标识信息、如下暂时评估和评估有效的时间段,该暂时评估指示允许数据对象。
在一个实施例中,服务器151在未知评估中传输关于数据对象的信息,并且移动通信设备101使用来自服务器151的数据评估作为向本地分析系统中的输入。例如移动通信设备101可以具有如下试探系统,该试探系统分析数据对象的内容以确定它是否恶意。在来自服务器151的已知良好或者已知不良结果的情况下,设备然后未运行试探系统或者丢弃来自试探系统的结果。如果服务器151返回包括用于数据对象的信任级的未知结果,则设备101组合来自试探系统的结果与服务器提供的信任级以确定是否将数据对象视为不合需要。例如移动通信设备101可以基于服务器151报告的信任级缩放来自本地分析的结果。如果设备上的试探系统确定数据对象有66%风险并且来自服务器151的未知评估指示数据对象具有可疑1%信任级,则设备确定数据对象不合需要;然而如果来自服务器151的未知评估指示数据对象具有70%信任级,则设备101确定数据对象合需要。
为了一旦标识不合需要的应用、比如恶意软件和间谍软件为不合需要就对它们做出响应,可以希望服务器151向移动通信设备101传输关于在先前分类为良好或者未知之后确定为不合需要的数据对象的通知。在一个实施例中,服务器151存储关于移动通信设备101遇到的数据对象的信息,从而如果设备遇到的数据对象被评估为良好或者未知、但是随后被确定为不合需要,则服务器151可以确定已经遇到数据对象的所有设备并且传输指示数据对象不合需要的通知。在一个实施例中,仅如果作为通知的对象的数据对象可以在设备的操作系统上操作,则服务器151才向设备101发送通知。例如如果设备运行Blackberry并且遇到Android间谍软件应用,则服务器151不会向设备传输通知;然而如果设备遇到Blackberry间谍软件应用,则服务器151将传输通知。如这里公开的那样,可以通过分析用于设备的设备数据和用于数据对象的应用数据来确定数据对象是否可以在给定的设备上运行。
在一个实施例中,从服务器151向设备101传输的通知被设计用于由设备消耗并且包括用于数据对象的标识信息和纠正信息二者。例如通知可以利用平台销售者提供的推送服务并且包括用于数据对象的包名称和内容哈希。通知也可以指定纠正动作、比如“消灭”包含数据对象的任何进程、请求用户卸载数据对象和删除对象而无用户干预。在一个实施例中,通知包括用于向用户显示的关于数据对象的信息、比如纠正指令、用于数据对象为何视为不合需要的说明或者对采取特定动作的请求。在一个实施例中,通知是以人类可读消息、比如文字消息、电子邮件或者电话呼叫的形式。可以希望服务器执行人类可读和机器可读通知二者以保证用户对危险数据对象做出响应。例如服务器可以向用户传输电子邮件消息并且发送用于设备去除数据对象而无用户干预的通知。
在一个实施例中,移动通信设备101包含在设备上存在的所有数据对象的数据库,并且服务器151在设备遇到的数据对象被确定为不合需要时向设备传输更新的签名数据。在设备接收更新的签名数据时,它比较更新的签名数据与在设备上存在的数据对象。如果在设备上存在的任何对象被更新的签名数据视为不合需要,则设备立即启动纠正动作、未等待下次扫描数据对象。
如果防恶意软件系统执行针对数据对象的评估,则可以希望只要数据对象尚未改变就信任它以避免必须重新评估数据对象。在一个实施例中,移动通信设备101维持已经分析并且视为合乎需要的标识的数据对象的列表。在希望扫描数据对象时,设备可以先检查这一列表以查看数据对象是否存在。如果对象存在,则设备未重新扫描对象。在扫描文件并且确定它合乎需要之后,设备在列表中放置用于数据对象的标识符。例子标识符包括文件名、文件系统节点标识符或者操作系统专属数据对象句柄。在一个实施例中,移动通信设备向非易失性存储装置保存这一数据对象列表,从而即使设备被重新启动或者用完电池,仍然可以保留列表。在存储评估并且以后访问它们时,重要的是任何存储的评估仅对于特定数据对象内容集合有效。如果数据对象的内容改变,则不同评估可以是必需的,因为可以已经修改数据对象以包括在原有数据对象中不存在的恶意代码。在一个实施例中,列表包含数据对象的内容的密码哈希。在设备确定数据对象视为在列表上时,它比较如在设备上存储的数据对象的哈希与在列表中存储的哈希。如果哈希匹配,则数据对象视为在列表上。在一个实施例中,防恶意软件的软件可以确定何时打开和关闭文件。如果用写入访问打开列表上的文件,则从列表去除它。在有向文件的打开写入之时,不能向列表添加文件。
将理解本公开内容的一个实施例设想用于在提供用于保证移动通信设备安全的充分选项之时减少网络流量的其它方式。在一个实施例中,移动通信设备可以在移动通信设备首次启动或者上电时或者在负责监视移动通信的应用首次被起动时请求分析在设备上驻留的所有数据(“扫描”)。这提供对移动通信设备的安全性的基线分析。可以在移动通信设备访问新应用时或者在预设时间间隔或者在用户请求时执行将来扫描。可以根据对网络121的访问调整扫描。如果连接性是问题,则可以仅访问较新的数据或者可疑数据。可以在连接性提高时排队和执行扫描。
在一个实施例中,在移动通信设备101上的防恶意软件系统具有用于执行在设备上存在的所有数据对象的按需和调度扫描二者的能力。如果防恶意软件系统利用服务器151以执行针对数据对象的评估,则可以希望优化为了执行扫描而需要的时间。由于网络延时引起在设备传输针对评估的请求的时间与设备从服务器151接收响应的时间之间的延迟,所以可以希望以设备未在等待响应之时简单地空闲这样的方式流水线化请求。在一个实施例中,移动通信设备向服务器151传输对提供针对多个数据对象的评估的请求,并且服务器151向设备传输针对那些多个数据对象的评估。例如在按需扫描期间,设备可以被配置用于先枚举设备上的所有数据对象、然后向服务器151发送对评估所有枚举的数据对象的请求。在另一例子中,设备可以一次枚举十个数据对象、然后向服务器发送请求并且在扫描附加数据对象之前接收用于那些十个数据对象的请求。在另一例子中,设备可以枚举数据对象并且传输评估请求从而继续枚举过程而未等待来自服务器的评估响应。设备可以仅在枚举完成时等待响应。
在如下防恶意软件系统中,该防恶意软件系统阻止加载或者执行数据对象直至系统已经达到布置,可以希望在需要加载或者执行数据对象之前访问它。在一个实施例中,移动通信设备101前摄地扫描数据对象并且存储结果,从而在加载数据对象时设备可以引用先前扫描结果。例如在设备加载依赖于多个其它文件的程序(例如链接到共享库的可执行文件)时,在设备上的防恶意软件系统可以分析程序以确定它依赖于的所有库、向服务器151发送针对程序及其依赖库的评估的请求、然后一旦设备接收正面评估结果就允许程序的执行继续。在设备的操作系统加载应用依赖于的库时,无需向服务器151的请求,因为系统已经具有针对库的最新评估。如果未前摄性地分析库,则用于程序的总加载时间可以更大,因为设备可能必须等待向服务器151的多个请求串行出现。在一个实施例中,在移动通信设备上的软件在数据对象被下载之后、但是在它们被执行之前分析它们。例如在设备上的防恶意软件可以监视用于新文件的下载目录或者可以简单地等待创建、写入、然后关闭文件。在下载完成之后,软件可以启动新文件的扫描,从而一旦打开文件,系统已经访问它并且可以回调先前评估。
如果防恶意软件系统在它评估数据对象之时阻止用户请求的操作或者系统操作,那么尤其如果评估依赖于可以具有显著延时的网络连接,则可以希望向用户给予评估在进行中的指示。在一个实施例中,在移动通信设备101上的防恶意软件系统在系统扫描数据对象并且阻止用户请求的操作时,显示指示正在扫描数据对象的用户接口。例如如果防恶意软件系统防止执行应用直至应用及其所有依赖库已经通过将本身插入于应用起动进程中来访问,则可以有设备的用户可察觉的显著延迟。可以通过向用户通知发生什么而不是设备简单地看来无响应来减轻与延迟关联的烦恼。在用户发起应用时,设备显示如下用户接口视图,该用户接口视图指示防恶意软件系统正在访问用户起动的应用。在一个实施例中,用户接口允许设备的用户略去等待扫描完成。例如如果设备对数据对象的扫描需要连接到服务器151并且用户不想等待,则用户可以继续而未等待评估返回。如果数据对象为恶意这样的评估随后返回,则即使允许数据对象运行,设备仍然可以启动纠正动作、比如消灭包含数据对象的任何进程并且删除数据对象。
用户可以对让应用被访问感兴趣、但是不希望等待来自服务器151的响应。用户可以选择先于完整分析并且在等待分析结果之时使用应用。在这样的情形中,如果服务器151或者用户的移动通信设备101可以在正式分析之前提供暂时可信性评价则将有帮助。报告可以是以接口元素(interface element)、通知、警告、风险评级等的形式。在一个实施例中,移动通信设备101可以运行本地分析以确定应用是否暂时可信任。也可以希望在用户接口上示出关于数据对象的如下信息,该信息指示防恶意软件系统何时等待来自服务器的评估,从而用户未意外地略去高风险的项目。在一个实施例中,等待用户接口在等待来自服务器151的评估之时示出本地分析结果。例如用户接口可以示出数据对象的能力或者用于数据对象的风险分数。在一个实施例中,仅如果本地分析确定数据对象为低风险,则设备才允许用户略去等待来自服务器151的评估。例如可以通过分析数据对象访问什么敏感功能来计算风险分数。访问用户的联系人列表和浏览器历史的数据对象可以视为比未访问任何敏感功能的数据对象更有风险。
在一个实施例中,在设备101上的防恶意软件系统在基于扫描的情境达成结论之前确定它是否应当等待来自服务器151的响应。例如在系统启动期间或者在无活跃网络连接时出现的扫描不应阻止等待来自服务器的响应。为了确定是否有网络连接,防恶意软件系统可以依赖于多种方法、比如查询操作系统提供的网络接口状态信息并且分析向服务器151的请求是否超时。如果防恶意软件系统截获系统调用,则由于系统试图执行数据对象而出现的扫描应当在等待来自服务器151的响应之时阻止,而由于应用获得关于数据对象的信息(例如文件管理器提取用于数据对象的图标)而产生的扫描不应在等待响应之时阻止。在一个实施例中,如果不能完成针对数据对象评估的请求,则在以后时间重试它。
在一个实施例中,如果无附加分析就可以产生准确评估,则防恶意软件系统略去服务器或者本地分析的部分。例如如果本地分析确定数据对象无风险,则设备可以不请求来自服务器151的评估——仅如果扫描的数据对象具有如在设备上的本地分析部件确定的最小风险,则设备才可以请求来自服务器151的评估。在例子中,对是否略去等待附加结果的确定由结果和哪个系统返回每个结果二者确定。在从服务器151接收结果之前来自本地分析的“不良”结果可以足以将数据对象视为恶意;然而来自本地分析的“良好”结果仍然可以要求系统等待来自服务器151的评估以在确定最终布置之前确认数据对象良好。
在一个实施例中,如果多个分析系统产生不同结果,则在设备上的防恶意软件系统分析系统的结果以关于数据对象的最终布置进行确定,该确定考虑产生什么结果和哪个系统产生每个结果二者。例如防恶意软件系统可以确定单个不合需要结果足以标记数据对象为不合需要。在另一例子中,服务器151可以视为权威,或者服务器151可以传输它的评估的置信度级,从而设备101可以确定是否将评估视为权威。在另一例子中,来自服务器151的已知不良结果可以是权威的,但是来自设备101上的本地分析系统的已知不良结果可以推翻来自服务器的已知良好结果。
在一个实施例中,服务器151存储已经在设备上检测到的并且仍然在设备上活跃的恶意软件或者其它不合需要的应用的列表。为了填充这一列表,移动通信设备101向服务器151发送事件、包括无论它何时遇到不合需要的应用、无论何时去除不合需要的应用以及无论何时忽略不合需要的应用。事件包括用于数据对象的标识信息,从而服务器151可以将事件与已知数据对象相关。例如由于用户可以选择忽略恶意软件,所以用户能够查看他的或者她的被忽略恶意软件列表、以避免其中恶意用户在别人的电话上安装恶意软件并且在电话上配置防恶意软件的软件以忽略恶意软件从而防止系统自动去除它的情形是重要的。在这一境况中,电话的合法用户能够告知一款恶意软件在他的或者她的设备上活跃、但是被忽略。在一个实施例中,由于服务器151具有指示设备101是否当前具有活跃恶意软件的数据,所以向服务器151查询给定的设备的状态的网络访问控制系统可以根据设备的恶意软件状态向它允许或者拒绝网络访问。
在本公开内容的一个实施例中,可以使用在完全结合于此的第12/255,621号美国专利申请中描述的三部件系统的版本来执行服务器侧或者“云”分析。在图9中图示三部件系统的例子,并且该系统包括第一部件903,该第一部件903可以用来识别安全或者“已知良好”(这里也称为形成“白名单”的部分或者在“白名单”上包括)的数据。第二部件905可以用来识别恶意、浪费设备资源或者“已知不良”(这里也称为形成“黑名单”的部分或者在“黑名单”上包括)的数据。第三部件907是可以用来评价既不是已知良好也不是已知不良、即“未知”的数据的判决部件。在一个实施例中,已知良好部件903和已知不良部件905可以在移动通信设备101上驻留,并且判决部件907可以在服务器151上驻留。在一个实施例中,已知良好部件903、已知不良部件905和判决部件907可以都在服务器151上驻留。在一个实施例中,已知良好部件903、已知不良部件905和/或判决部件907的部分可以在移动通信设备101上驻留,并且已知良好部件903、已知不良部件905和/或判决部件907的部分可以在服务器151上驻留。在一个实施例中,已知良好部件903和已知不良部件905在服务器151上驻留,而判决部件907在移动通信设备101上驻留。
例如数据存储库111可以包含服务器151不断更新和可访问的恶意软件定义。移动通信设备101可以被配置用于向服务器151发送用于可疑数据对象的应用数据、比如哈希标识符用于分析。服务器151可以包含已知良好部件903、已知不良部件905和判决部件907,或者可以跨越两个或者更多服务器分布部件。一个或者多个服务器可以由此使用应用数据以确定可疑数据对象是否为可识别地安全的数据对象。如果可疑数据对象可识别地安全,则一个或者多个服务器可以通知移动通信设备或者指示设备它可以接受和处理数据对象。一个或者多个服务器然后可以使用应用数据以确定可疑数据对象是否可识别地恶意。如果可疑数据对象可疑地恶意,则一个或者多个服务器可以通知移动通信设备或者指示设备拒绝数据对象并且不进一步处理它。已知良好和已知不良部件可以具有用于识别已知良好和已知不良数据对象的多种方法。已知良好和/或已知不良部件分别用来标识可识别地良好或者可识别地不良数据对象的数据、逻辑以及任何其它信息可以称为“签名”或者“定义”(下文进一步说明)。
如果已知良好和已知不良部件并非结论性的,则一个或者多个服务器可以执行附加分析以关于数据对象的布置达成判决。在一个实施例中,服务器151包含如下判决部件,该判决部件使用一个或者多个分析系统以分析用于数据对象的应用数据并且关于数据对象是否视为不合需要进行确定。在一个实施例中,如果无足够信息以执行附加分析,则一个或者多个服务器可以请求移动通信设备向服务器发送附加应用数据用于分析。例如设备可以起初向服务器发送用于数据对象的哈希标识符、包名称和密码签名者信息用于分析。如果已知良好或者已知不良部件无法标识数据对象为已知良好或者已知不良,则服务器可以请求设备向服务器发送整个数据对象,从而可以分析数据对象本身。在接收附加应用数据时,用于针对设备是否应当接受或者拒绝数据对象达成布置的进一步分析可以由判决部件907或者人工执行。在一个实施例中,服务器存储给定的数据对象是否需要人工分析,从而分析团队可以容易确定需要分析什么数据对象。
由于针对数据对象的评估可以依赖于人类分析来产生,所以服务器151可以使用分析系统以产生存储需要进一步研究的可疑数据对象的列表。在一个实施例中,来自服务器151上的分析系统的一些结果产生向移动通信设备101传输的评估,并且其它结果标识数据对象为需要人类分析。例如如果服务器151利用试探集合以标识恶意应用,则试探的一些集合可以被良好测试并且在正确标识恶意行为时提供可接受的准确性,而其它试探集合可以是实验性的从而需要人类分析以确定结果是否可接受。
下文更具体描述上文标识的部件中的每个部件。本领域技术人员将理解,由于可以标识用于移动通信设备的已知良好应用的总数,所以使用耦合到包含用于已知良好数据对象的定义(例如应用数据、比如哈希标识符)的数据库、逻辑或者其它数据存储库的已知良好部件903可以显著减少误判的对不合需要的应用的检测并且减少对执行计算成本高的分析或者联系服务器用于分析的需要。也将理解使用已知良好部件903可以对于包含可执行软件代码的数据特别有效。用于给定的应用的可执行软件代码在不同移动通信设备之间很少改变,因此创建已知良好应用数据的数据库或者用于评价应用数据的逻辑可以是一种用于识别安全或者信任数据的有效方法。这一数据库可以根据在移动通信设备上可用的资源而在规模上变化。备选地,本公开内容的方面、比如已知良好部件和已知不良部件可以具有对如下远程服务器的访问,该远程服务器具有用于已知良好或者不良数据对象的应用数据的更大库、比如图1中的耦合到数据存储库111的服务器151。
在本公开内容的一个实施例中,已知不良部件905可以具有对如下数据库、逻辑或者其它数据存储库的访问,该数据库、逻辑或者其它数据存储库包含可以在移动通信设备上存储而未占用大量存储器的用于不良数据对象的定义。例如病毒和其它恶意软件或者间谍软件定义可以包括在数据库或者其它存储器高速缓存中存储的应用数据、比如哈希标识符、包名称、密码签名者、字节序列和字节模式。换而言之,可以有补充在移动通信设备101上存储的已知良好数据库的已知不良数据库。附加地或者备选地,已知不良部件905可以能够使用其它恶意软件代码共同的特性来标识恶意软件。在应用于网络数据或者数据文件时,已知不良部件905可以具有对如下数据库的访问,该数据库包含呈现安全性威胁的协议数据单元或者文件格式的模式或者其它特性。已知不良部件905也可以标识如下数据,该数据不合需要地影响移动通信设备、比如暴露弱点、耗费电池寿命、向第三方传输私人或者未授权信息或者用尽不必要的设备资源。与已知良好部件903和数据库相似,可以从移动通信设备的进一步处理中删除、隔离或者拒绝标识为“不良”的任何数据。如果删除已知不良数据对象,则本公开内容的一个实施例可以显示与在标题为“SECURITY STATUS ANDINFORMATION DISPLAY SYSTEM”、提交于2008年10月21日并且完全结合于此的第12/255,635号共同待决美国专利申请中描述的通知或者其它消息相似的通知或者其它消息。
判决部件907可以用来评价不能表征为已知良好或者已知不良的数据。由于在移动通信设备101上接收的数据的大多数可以落入这一类别内,所以这一部件可以在服务器151上驻留。这一部件可以利用多种方法以产生针对数据对象的评估、包括使用这里公开的分析系统中的任何分析系统。例如判决部件907可以应用静态分析、动态分析、分布分析或者其它分析方法,以便确定是否可以向接收的数据的预计目标传递它或者为了防止损害降临于设备而拒绝它。下文讨论这一分析的例子。
以下例子举例说明一个或者多个服务器如何可以用来扩充或者替换在第12/255,621号美国专利申请中描述的方法。
包含已知良好部件、已知不良部件和判决部件的多个系统是可能的。根据分析的具体数据类型和防止的安全性威胁类型,可以运用向每个部件的输出应用的不同执行顺序和逻辑。在一个实施例中,如果已知良好部件903未确定数据为良好(块805),则将从处理813中拒绝它。已知良好部件903确定为良好的数据(块805)仍然由已知不良部件905分析(块807)。如果已知不良部件905确定数据为不良(块807),则从处理813中拒绝它,否则判决部件907可以分析数据(块809)。在一个实施例中,如果已知良好部件903未确定数据为已知良好,则已知不良部件905分析它。如果已知良好部件确定数据为良好,则允许它。如果已知不良部件905确定数据为不良,则将从处理813中拒绝它。如果已知不良部件905未确定数据为不良,则判决逻辑907可以分析数据以达成针对数据的评估。
在图8中示出对在移动通信设备上存在的网络数据或者数据文件的例子分析。如图8中所示,块801可以涉及到收集向移动通信设备发送或者从移动通信设备接收的数据。可以分析数据以标识它的协议和跟踪状态(块803)。在块805中,在移动通信设备上驻留的已知良好部件903可以针对已知良好特性评价收集的数据。已知良好特性可以包括先前在第12/255,621号美国专利申请中讨论或者描述的特性。如果数据包含充分已知良好特性,则可允许它向它的预计目的地继续(块811)用于处理、执行或者其它操作。备选地,数据还可以由在移动通信设备上驻留的已知不良部件905分析以确认数据真正地安全(块807)。如果已知不良部件确定数据真正地安全,则可以允许数据向它的预计目的地继续(块811)。判决部件907也可以可用于在允许数据继续(块811)之前提供最终检查(块809)。
可以在任何时间执行对数据对象的分析。例如可以在访问或者下载之前、或者如果数据是应用则在下载之后、但是在安装之前或者在安装之后、在安装数据对象的新版本之前或者在安装数据对象的新版本之后评价数据对象。在一个实施例中,通过使用关于数据对象的标识信息来评价尚未向设备下载的数据对象。例如如果移动通信设备可访问的应用市场使应用可用于下载并且提供关于数据对象的标识信息、比如应用的内容的哈希或者用于应用的包名称,则在移动通信设备上的软件可以使用标识信息,以通过使用这里描述的系统中的任何系统本地评价标识信息或者通过向服务器151传输标识信息并且从服务器接收评估来确定针对应用的评估。以这一方式,在移动通信设备上的软件可以在用户下载应用之前评估它们是否不合需要。
在分析期间的任何点,如果已知良好部件903、已知不良部件905或者判决部件907(下文进一步讨论)确定数据非良好或者肯定地包含安全性威胁、数据不一致等,则在块813中将阻止、拒绝、删除或者隔离数据。在本公开内容的一个实施例中,可以更新信号事件或者安全性事件信息日志以记录遇到污染的数据。
对移动通信设备上的可执行数据、比如应用、程序和/或库的分析可以如图9中所示继续。在块901中,确定可执行文件需要分类为良好或者不良作为来自对访问可执行文件的尝试、安装可执行文件或者下载或者以别的方式向移动设备传送可执行文件的结果。可以预处理或者可以未预处理可执行文件,以在由移动通信设备上驻留的已知良好部件903评价(块903)之前提取附加应用数据、比如哈希标识符、密码签名者、包名称或者其它特性。这一评价可以包括比较可执行文件的哈希标识符或者其它特性与已知良好特性数据库、标识可执行文件是否具有充分已知良好特性或者上文讨论或者在第12/255,621号美国专利申请中描述的判据中的任何判据。
如果识别可执行文件为已知良好,则在块911中可以允许它执行它的代码或者向它的预计目的地继续用于处理或者其它操作。如果已知良好部件903无法允许可执行文件数据,则在移动通信设备上驻留的已知不良部件905可以执行它的分析(块905)。如果已知不良部件905确认可执行文件恶意,则可以隔离、拒绝或者删除可执行文件并且可以记录事件(块909)。如果已知不良部件905不能表征可执行文件,则判决部件907可以执行它的如下文进一步描述的分析(块907)。如果判决部件907最终确定可执行文件安全,则允许可执行文件(块911)。如果判决部件907最终确定可执行文件不安全或者保持不确定,则可以隔离可执行文件(块909)。将理解由于可执行文件可以包含可能引起对移动通信设备的显著损害的代码,所以它可以在允许可执行文件继续之前需要更严格分析。
将理解可以通过仅存储关于移动通信设备最可能访问的那些应用的定义信息来在驻留移动通信设备上保持已知良好部件903和已知不良部件905轻量级。如上文描述的那样,可以例如基于设备数据、在移动通信设备上先前安装的应用和使用移动通信设备的方式(例如工作比对娱乐、访问公共网络比对专用网络等)确定这样的信息。将理解每个移动通信设备可以存储不同定义信息并且本公开内容的一个实施例设想这样的粒度。
如上文和全文讨论的那样,本公开内容的一个实施例涉及在已知良好部件903和已知不良部件905不能确定数据是否安全的情况下对数据的服务器侧分析。在一个实施例中,判决部件907在通过网络121与移动通信设备通信的一个或者多个服务器151上、即“在云中”驻留。判决部件可以依赖于一个或者多个分析系统、比如这里公开的分析系统。由于判决部件907在比移动通信设备更强大的计算资源上驻留,所以它可以提供更鲁棒分析以确定数据是否应当对于设备101视为不良或者良好。另外,在服务器151上发生的分析可以利用服务器汇集的数据以产生不会可能仅依赖于可用于移动通信设备101的数据的评估。例如如果设备报告的行为数据指示数据对象在它安装于其上的设备上发送溢价费率SMS消息或者拨打溢价费率电话号码,则在服务器151上的判决部件907可以确定数据对象恶意。
在一个实施例中,判决部件907利用一个或者多个类型的内部分析系统以表征是否数据对象良好或者不良。判决部件907被设计用于检测如下安全性威胁,这些安全性威胁无用于防范的威胁的具体定义。换而言之,判决部件907可以作为附加安全性部件来操作,以补偿来自已知良好部件903或者已知不良部件905的任何缺点并且标识先前尚未标识的新威胁。
将理解有判决部件907可以利用的多个分析系统、包括但不限于使用试探算法的系统、基于规则或者非基于规则的专家系统、模糊逻辑系统、神经网络或者系统可以用来对数据对象分类的其它方法。如上文描述的那样,这样的系统可以使用可用于判决部件907的多种数据、包括但不限于分布数据、表征数据、归类数据、信任数据、应用数据等。例如判决部件907可以分析移动通信设备上的应用、库或者其它可执行文件。在例子中,判决部件907可以包含如下神经网络,该神经网络分析可执行文件的特性并且基于网络连接特性确定安全性评估。可以基于在可执行文件格式中包含的信息或者作为处理可执行文件的内容的结果来确定这样的特性。在另一例子中,判决部件907可以包含如下专家系统,该专家系统通过通过可执行文件可以对操作系统采取的动作或者功能调用、系统调用分析可执行文件的行为。如果可执行文件以表示恶意行为的方式访问敏感系统调用,则系统可以标记该可执行文件为潜在恶意软件并且可以采取动作。
如果判决部件907位于移动通信设备101上,则可以希望与更新向判决部件提供动力的可执行代码独立地更新规则或者分析参数。在一个实施例中,判决部件907包含如下基于虚拟机的判决系统,与判决部件本身独立地更新的规则集合可以通过该判决系统对可执行文件分类。这样的系统能够在不工作(on the fly)时添加用于检测某些新的不合需要应用类的新逻辑而无需更新整个判决部件。系统可以预处理可执行文件,从而虚拟机的逻辑可以象征性地引用可执行文件而不是必须处理可执行文件本身。
在例子中,判决部件907可以考虑第三方信息以评估数据。本领域技术人员将理解,移动通信设备101能够访问用于提供可用于在移动通信设备上下载和安装的应用的应用提供者、比如Apple’s App Store、AndroidMarket或者其它软件贮存库或者数字分布平台。在一个实施例中,服务器151具有对这样的应用提供者的访问并且可以汇集关于具体应用的信息。例如服务器151可以搜寻和汇集关于应用的由用户生成的评审或者评级。具有有利评级的应用可以视为安全,而具有显著负面评级的应用可以视为不合需要。由于服务器151也可以确定用于数据对象的信任数据,所以如果应用具有低信任评级,则针对具有负面评审的应用的评估可以仅指示应用不合需要,而具有高信任评级和负面评审的应用仍然可以被防恶意软件系统视为合乎需要。
上述例子举例说明判决部件907如何可以利用多种分析方法以便完全评价移动通信设备接收或者从移动通信设备传输的数据的威胁级。可以设想其它例子而未脱离本公开内容的范围。
将理解比如移动通信设备101或者服务器151标识可识别地良好数据对象和可识别地不良数据对象可以由单个部件而不是由分离“已知良好”和“已知不良”部件执行。在一个实施例中,单个识别部件执行识别可识别地良好和可识别地不良数据对象二者的功能。
在一个实施例中,识别部件利用定义以确定针对数据对象的评估。识别部件先检查用于数据对象的应用数据以确定是否任何定义对应于数据对象。例如如果识别部件具有对如下定义的访问,这些定义是数据对象的内容的哈希,则确定具有与给定的数据对象的内容的哈希相同的哈希的定义对应于数据对象。在另一例子中,如果识别部件访问包含字节序列签名的定义,则确定具有在数据对象的内容中包含的字节序列的定义对应于数据对象。每个定义可以与评估关联,从而识别部件可以检查用于数据对象的应用数据以确定对应定义、确定针对定义的对应评估、因此产生与数据对象对应的评估。例如用于数据对象的应用数据可以包括标识信息、比如数据对象的哈希、包名称、唯一标识符或者其它应用数据、比如数据对象的内容。在一个实施例中,识别部件使用的定义代表已知数据对象。在这一情况下,在识别部件确定针对已知数据对象的评估是否对应于分析的数据对象时,分析的数据对象和已知数据对象无需确切地相同。例如如果通过分析(例如人工分析、自动化分析)确定来自特定开发者的第一应用不合需要,则可以针对与第一应用的包名称匹配的第一应用创建定义。如果开发者创建具有与第一应用相同的包名称的修改的应用并且识别部件遇到修改的应用,则确定定义对应于修改的应用,因为在定义中的包名称与修改的应用的包名称匹配。识别部件然后确定针对第一应用的不合需要评估适用于修改的应用。
例如识别部件可以访问定义数据库,每个定义指示数据对象的内容的哈希和对定义对应于的数据对象是否视为良好或者不良的指示。在一个实施例中,在服务器151上或者在数据存储装置111上存储在服务器151上操作的一个或者多个识别部件使用的定义。在一个实施例中,已知良好部件903和已知不良部件905各自在服务器151上使用识别部件来实施。例如已知良好部件可以包括识别部件,其中识别部件访问的所有定义对应于数据对象视为良好这样的评估。在一个实施例中,已知良好部件和已知不良部件各自被实施为如下识别部件,该识别部件匹配用于数据对象的应用数据与已知良好和已知不良应用数据。例如已知良好部件可以具有它试图与分析的数据对象匹配的已知良好哈希标识符、包名称和保密签名者的列表。在一个实施例中,如果数据对象具有已知良好列表中的任何特性,则它视为安全。在一个实施例中,服务器可以使用相似已知不良系统,该系统匹配已知不良应用数据与用于分析的数据对象的应用数据。其它已知良好和已知不良分析系统是可能的而未脱离本公开内容的范围。在一个实施例中,识别部件产生多种评估——并非仅为“良好”或者“不良”。在一个实施例中,如果所有定义仅具有单个对应评估,比如在其中识别部件仅标识数据对象是否“已知不良”的情况下,则识别部件使用单个评估而不是存储多个评估。其它变化也是可能的而未脱离本公开内容的范围。
图12图示用来评估移动通信设备上的数据对象的本公开内容的一个实施例。移动通信设备101可以比如在全系统扫描的情况下或者在数据对象被执行或者安装时先启动数据对象的扫描1201。识别部件评价用于数据对象的应用数据(例如包名称、数据对象的内容的哈希、唯一标识符、数据对象的内容)以确定识别部件可访问的定义是否对应于数据对象(块1202)。例如如上文讨论的那样,对应性可以包括匹配用于数据对象的标识信息与在定义中包含的数据或者匹配数据对象的内容与在定义中包含的序列、模式或者逻辑。如果定义对应于数据对象,则识别部件确定针对数据对象的对应评估。在一个实施例中,识别部件在块1202中利用定义和评估信息的数据存储库。例如如上文讨论的那样,可以在移动通信设备从服务器151接收定义和评估信息时预填充或者填充在移动通信设备上存储的定义。在一个实施例中,在移动通信设备上存储的定义可以视为高速缓存,该高速缓存如上文描述的那样工作。如果在移动通信设备上的识别部件确定针对数据对象的评估(块1203),则处理该评估以确定如何看待数据对象(块1204)。例如如果评估指示数据对象恶意,则移动通信设备可以不允许数据对象被执行或者提示设备的用户卸载数据对象。如果在移动通信设备上的识别部件未确定针对数据对象的评估(块1203),则移动通信设备101向服务器151传输数据对象信息、比如应用数据(例如标识信息、数据对象的内容)(块1205)。服务器接收数据对象信息(块1206),并且在服务器上的识别部件评价数据对象信息以确定识别部件可访问的定义是否对应于数据对象(块1207)。如果定义对应于数据对象(块1208),则服务器151确定针对数据对象的评估并且向移动通信设备传输它(块1209)。如果识别部件未确定用于数据对象的评估或者对应定义(块1208),则在服务器上的判决部件分析数据对象信息(块1210)。如果判决部件产生评估,则服务器151向移动通信设备传输评估(块1209)。如果判决部件未产生评估,则服务器向移动通信设备传输数据对象未知这样的指示(块1209)。移动通信设备101从服务器接收评估(块1211)并且处理评估信息以确定如何看待数据对象(块1204)。在一个实施例中,移动通信设备101在它处理评估信息时向它的本地定义高速缓存添加来自从服务器151接收的评估的信息(块1204)。例如设备可以存储信息、比如用于数据对象的布置(例如“已知良好”、“已知不良”、“恶意软件”、“间谍软件”)、服务器151传输的标识符和设备生成或者服务器151传输的定义信息(例如数据对象的内容的哈希、数据对象的包名称)。
在一个实施例中,在移动通信设备上的识别部件未确定评估的情况下,移动通信设备在向服务器151传输数据对象信息之前使用移动通信设备上的本地判决部件对扫描的数据对象执行分析。在一个实施例中,本地判决部件的分析和向服务器传输数据对象信息并行出现以使到用户的延迟最少。本领域技术人员将理解组合的客户端-服务器防恶意软件系统中的部件的多种配置是可能的而未脱离本公开内容的范围。
在一个实施例中,移动通信设备101无论何时发送关于数据对象的信息都向服务器151传输认证信息、比如认证证书或者会话信息,从而服务器可以关联交换的信息与在服务器上的特定账户。
D.应用评估和建议系统
本公开内容的先前部分描述如下各种系统和方法:其用于从一个或者多个移动通信设备和其它来源汇集不同类型的数据以及分析汇集的数据以产生针对数据对象的评估。下文是对服务器151如何可以将评估用于显示、经由API的暴露和多种其它目的的讨论。这里已经公开的一些评估例子包括来自一个或者多个分析系统的输出(例如表征数据、归类数据、信任数据和分布数据)和用于数据对象的一个或者多个评级(例如安全性评级、隐私评级、电池评级、性能评级、质量评级)。本领域普通技术人员将理解,评估信息涉及超出典型防恶意软件系统对数据对象是否恶意的评估以外的广泛多种如下信息,该信息可以用来理解在移动通信设备上安装给定的数据对象的影响。此外,这一评估信息可以用来指导关于是否下载和安装不同类型的数据对象的判决。这样的信息可以对如下个别用户有用,该个别用户试图判决是否在他的移动通信设备上安装某个应用。这样的信息也可以对如下IT管理员有用,该IT管理员试图判决是否向多个移动通信设备部署某个应用。在一个实施例中,用户或者IT管理员可以将这一评估信息用于应用策略实行。
本领域技术人员将理解,可用于服务器151的数据和服务器产生的评估超出防恶意软件这样的目的之外有用。例如评估可以详述数据对象是否已知用于过量耗费移动通信设备的电池或者数据对象是否利用数量不合需要的网络资源。由于服务器151继续收集、存储和分析数据以产生评估信息,所以在一个实施例中,服务器151可以在数据对象安装于移动通信设备上之前提供如下信息,该信息详述估计数据对象如何影响移动通信设备。例如服务器151可以提供用于应用的估计电池使用量信息和/或网络使用量信息。
在用户与评估交互时,可以希望评估代表适当粒度级,从而用户未感觉评估太宽泛或者太狭隘。在一个实施例中,服务器151将针对多个数据对象的评估合并成单个评估并且传输合并的评估。例如如果应用包含多个数据对象(例如可执行文件和多个库),则用户可以希望查看针对作为整体的应用的评估而不是针对它的组成数据对象的评估。类似地,如果有应用的表现相似特性的多个版本(在单个平台或者多个平台上),则关于应用进行判决的企业策略管理员可以仅希望查看涵盖应用的所有版本的单个评估。
为了合并针对多个数据对象的评估,服务器151可以使用应用数据、比如文件路径、版本号、包名称、密码签名者、安装程序源和其它信息以确定数据对象组涉及应用的特定版本和/或一个或者多个数据对象或者数据对象组属于应用的不同版本。例如如果在相同目录中共同一起看见可执行文件集合,则服务器151可以确定那些可执行文件都与相同应用有关。在另一例子中,如果应用包具有在该应用包中嵌入的包名称和版本标识符二者,则服务器151可以确定具有相同包名称和人类可读应用名称、但是不同版本标识符的两个数据对象是相同应用的多个版本。
由于可以希望评估提供在平台之间的一致信息形式,所以本公开内容的一个实施例涉及服务器151在针对在不同平台上运行的数据对象的评估中包括一些或者所有相同字段。例如即使在不同智能电话操作系统上的位置API在它们功能上很不相同,服务器151仍然可以对数据对象执行操作系统专属分析以产生对每个数据对象是否访问设备的位置的跨平台评估。如果评估是以用于数据对象的能力的列表这一形式,则在BlackBerry上的绘图应用和在Android上的基于位置的社交网络二者将具有“访问设备位置”能力。类似地,可以在不同平台上不同地计算电池使用量,但是服务器151可以产生对测量为总电池容量百分比的估计每日电池使用的跨平台评估。在一个实施例中,针对多个数据对象的合并的评估包括关于针对数据对象的特性和归类范围的信息。例如评估可以示出应用的多个版本的电池使用量趋势。在旧版本中使用大量电池、但是近来已经减少其电池使用的应用可以是可接受的,而具有一贯高电池使用量的应用可以不可接受。
本公开内容的一个实施例涉及服务器151针对经由web接口可用的数据对象进行评估。例如用户可以希望能够关于他们在他们的移动设备上具有的应用的特性和能力了解更多。服务器151可以暴露其评估可用的应用的索引和针对这些应用中的每个应用的评估为web接口。为了有助于易于对应用定位,服务器151可以用多种方式、比如按字母顺序、按它们的特性、按它们的归类和按平台来组织应用。此外,服务器151可以允许用户使用与应用的名称、描述或者在应用的评估中的字段匹配的检索项来搜寻应用(例如在Android OS上运行并且向因特网发送位置的所有应用)。另外,公开显示的评估可以辅助应用的透明性。
例如应用销售者可以将用户引向服务器151收集的如下评估页面,该评估页面作为对应用的能力的独立第三方评估,从而用户可以验证应用在做什么。在一个实施例中,服务器生成如下web接口,该web接口允许用户查看应用的基于设备数据的有条件的评估(例如这一应用在MotorolaDroid上使用多少电池、这一应用在AT&T Wireless上使用多少网络数据)并且比较不同的有条件的评估(例如这一应用在Motorola Droid比对HTC Hero上的电池使用量、这一应用在AT&T Wireless比对VerizonWireless上使用多少网络数据)。这样的有条件的评估可以有助于标识特定境况中的异常行为——例如评估页面可以指示在设备上安装的听筒、操作系统版本或者其它应用的某个集合引起用于这一应用的某些评估特性的更高错误率或者异常改变。在一个实施例中,服务器151标识具有用于特定评估值的极端值的数据对象。例如服务器151可以生成如下网页,该网页标识哪些应用每月使用多于1吉字节网络数据或者哪些应用使用设备的电池的多于10%。
由于服务器151生成的评估数据可以用来提供多种其它产品和服务,所以本公开内容的一个实施例涉及服务器151经由API暴露评估数据。也可以暴露如上文描述的由web接口暴露的所有功能为API,从而可以构建多种产品和服务。例如服务器151可以提供如下HTTP API,通过该HTTP API在请求URL中供应数据对象的包名称或者内容哈希将造成服务器返回针对包名称或者内容哈希标识的数据对象的评估。在另一例子中,服务器151可以生成远程网页可以包括的JavaScript文件并且可显示用于特定数据对象的交互评估视图。
在一个实施例中,服务器151可以使评估数据、比如评级或者关于应用是否合乎需要的布置出现于应用集市中。将理解可以用多种方式、比如使用网站、使用移动客户端应用、使用基于PC的客户端应用和使用消息接发服务、比如SMS来实施应用集市。这样,本公开内容的这一实施例将提供用于应用或者其它数据对象的客观评估信息而不是主观的由用户提供的评审信息。
例如服务器151可以提供如下API,可以通过该API向它查询评估数据,或者服务器151可以前摄地分析在应用集市中可用的所有应用从而向集市提供者传输评估数据。在一个实施例中,用户可以在应用集市中仅搜寻满足某些合乎需要的判据、比如安全性、隐私、设备效率、可信性等的那些应用。在一个实施例中,应用提供者可以使用聚合信息以便提供质量控制措施。应用提供者可以仅展示满足某些电池效率判据、用于可接受崩溃或者错误数目的判据、某些网络流量限制、隐私保护等的应用。以这一方式,本公开内容的一个实施例可以提高在应用集市上的要约(offering)、由此鼓励开发者创建更好应用。在一个实施例中,评估信息可以用作认证系统,其中用如下符号、徽章或者其它图标标记满足某个判据的应用,该符号、徽章或者其它图标表示针对应用的正面评估。例如具有高信任评级的应用或者仅访问最少隐私信息集合的应用可以视为被认证。为了验证应用的认证,认证标记符可以具有用于用户从服务器151取回全评估的链接或者其它方式。
在一个实施例中,服务器151向移动通信设备101传输评估信息用于显示。例如移动设备可以具有如下接口,用户可以通过该接口探查针对在设备上安装的所有应用的评估。接口可以允许用户查看用于特定应用的评估信息以及允许用户查看哪些应用与评估判据集合匹配(例如向因特网发送设备的位置的所有应用、前10位电池用户、每月使用多于50兆字节网络流量的所有应用)。在一个实施例中,移动通信设备101在移动通信设备上显示接口作为应用集市、应用下载过程或者应用安装过程的部分,从而浏览可用于下载的应用或者下载/安装应用的用户看见用于应用的评估信息。在浏览、下载或者安装应用时,设备向服务器151传输标识信息并且接收针对应用的评估从而在用户接口上显示一些或者所有评估。例如接口可以显示应用的能力或者应用的特性。接口也可以交互从而允许用户探查评估的方面从而如果必需则请求来自服务器151的附加评估信息。在另一例子中,设备可以显示如服务器151确定并且向设备101传输的作为评估的部分的、用于应用的信任指示符。可以用多种方式显示信任指示符、包括作为认证印章(例如“LookoutTM认证”)或者评级(例如“A+”、“B-”、“C+”)。
在一些情况下,用户不会阅读冗长安全性说明,因此以可容易理解这样的方式显示关于应用的安全性信息是重要的。在一个实施例中,移动通信设备101显示用于应用的图形评估指示。例如可以显示评估的显著方面为用于应用的图标或者徽章。一些例子包括用于“电池高效”、“电池独占”、“访问位置”、具有“间谍能力”、“社交网络”和“文件共享应用”的徽章。用于每个显著评估的徽章可以包括使徽章易于理解的图解和指示评估是否仅为启发或者潜在关键事项的着色。例如电池使用高效的应用可以具有指示全电池的绿色图标,而通常使用大量电池的应用可以具有示出空电池的红色图标。
由于服务器151不断收集信息并且改进评估,所以可以在已经高速缓存评估信息的应用集市和/或移动通信设备上更新评估信息。例如服务器151可以向应用集市或者移动通信设备发送指示新评估信息可用的通知。在另一例子中,服务器151可以简单地传输更新的评估信息,从而旧信息被重写。
除了查看设备上的针对在该设备上安装的数据对象的评估之外,也可以希望从web接口查看针对在设备上安装的数据对象的评估。例如用户可以希望使用他的或者她的PC以探查针对在他的或者她的设备上安装的应用的评估。如讨论的那样,在一个实施例中,移动通信设备101向服务器151传输用于它已经安装的数据对象的应用数据。由于服务器151可以存储哪些应用当前安装于设备101上,所以服务器可以生成显示针对那些应用的评估的用户接口。例如服务器151可以生成和传输如下web接口,该web接口允许用户查看在设备上安装的所有应用的列表、查看针对每个安装的应用的评估并且探查哪些安装的应用与特定评估值匹配(例如可以访问我的位置的所有应用)。为了防止透露私人信息,服务器151可以要求用户使用认证证书来登录以便查看针对在他的或者她的设备上的应用的评估。另外,企业管理员可以希望从中央管理控制台查看针对设备组的评估。
在一个实施例中,服务器151生成如下web接口,该web接口允许用户查看针对在多个设备上安装的应用的评估。例如web接口可以允许用户探查在与某个评估字段匹配的设备组上安装的所有应用(例如文件共享应用)、查看针对设备组的风险评级评估、查看用于在部署上安装的应用的所有能力并且确定哪些设备和哪些应用引起某些能力和风险暴露。用户可以通过使用服务器151以生成用于设备组的安全性、隐私和电池风险评级的总集合来开始、然后点击评级以查看对该风险评级最有贡献的应用的列表。用户然后可以查看哪些设备具有给定的应用。在另一例子中,用户可以通过使用服务器151以生成用于在组上安装的应用的所有能力的列表来开始、然后点击给定的能力以查看在组上安装的具有该能力的所有应用。用户从此可以进一步探查组中的哪些设备具有安装的给定的应用。在一个实施例中,服务器151以API的形式暴露针对设备组的评估用于由外部服务、比如管理控制台使用。例如服务器151可以经由HTTP API向集中式安全性报告系统暴露用于设备组的风险评级。
在移动通信设备上,经常以应用可以不利地影响设备的电池寿命并且可以引起网络使用过多费用这样的方式限制电池和网络数据。本公开内容的一个实施例涉及使用评估让用户了解应用的网络或者电池使用量并且在滥用应用的情况下提醒用户。在设备上的软件从服务器151取回包含用于应用的电池和网络使用量特性的评估并且向用户显示评估。如上文描述的那样,请求来自服务器151的评估信息的设备可以包括用于应用的应用数据。可以针对用户使用的特定设备、通过设备在取回评估时发送设备数据或者通过发送将评估请求与先前传输的设备数据关联的认证数据来定制评估。例如评估可以指示应用将可能让用户的机型的电话的电池寿命减少5%或者1小时;而具有不同电池寿命特性的不同机型电话可以接收相同应用让电话的电池寿命减少10%或者3小时这样的评估。评估显示可以在安装应用之前、期间或者之后作为设备应用集市的部分或者作为用户接口对话而出现。
另外,在用户安装多个应用之后,可以希望用户基于应用在设备上的实际行为来理解哪些应用对网络使用量或者电池寿命最有贡献。在一个实施例中,设备汇集用于应用的电池和网络使用量的行为数据并且允许用户从设备上的接口查看实际行为数据。例如接口可以允许用户查看特定应用的电池和网络使用量以及查看网络和电池使用最高应用,以便标识哪些应用对网络超额(overage)或者短电池寿命有贡献。在一个实施例中,移动通信设备101向服务器151报告用于在设备上安装的应用的行为数据并且允许用户经由服务器生成的web接口查看实际行为数据。本领域普通技术人员将理解,也可以监视并且向用户示出移动应用的其它特性。
由于单个应用可以引起关于电池寿命、网络使用量或者其它有限资源的显著问题,所以可以希望在应用行为不合需要时通知用户。在一个实施例中,移动通信设备101监视在设备上安装的应用的网络和电池使用量并且在应用超过合乎需要的限制时通知设备的用户。例如用户可以设置用于应用可以在他或者她被通知时传输和接收多少数据的阈值。在另一例子中,在设备确定应用将不利地影响用户的电池寿命或者电话账单时通知用户。如果用户通常在将电话插电之前使用它持续20小时并且在设备上的应用将估计的电池寿命减少至少于20小时,则可能的是用户将用完电池。提醒用户有他或者她可以采取的用于避免用完电池的动作、即卸载或者以别的方式停用电池使用高的应用然后可以是重要的。
在一个实施例中,为了避免在用户的设备上的应用超过用户的数据计划,设备101或者服务器151预测设备的将来数据使用量并且收集关于设备的数据计划的信息。为了收集关于设备的数据计划的信息,设备101或者服务器151连接到网络运营商的服务器以确定数据计划信息、比如每个记账周期的数据分配、它们的记账周期是什么以及已经在当前记账周期期间使用多少数据。向网络运营商的服务器的通信可以用多种方式、比如经由HTTP API或者SMS消息接发出现。如果在设备上的软件使用SMS消息接发以取回用户的数据计划信息,则软件可以自动消耗网络运营商的服务器发送的响应消息以便防止通信在用户的收件箱中显现。为了预测将来数据使用量,服务器151可以分析用于在设备上安装的应用的典型数据使用量和在该设备上的实际数据使用量。如果新安装应用,则可以使用典型数据使用量,而对于已经在设备上数月的应用,则可以使用实际数据使用量。如果在设备101上的应用在如下速率使用网络数据,该速率将截至记账周期结束超过设备的数据计划分配,则在设备上的软件显示指示可能过多费用的提醒。提醒也可以显示对数据使用量最有贡献的应用并且给予用户以卸载或者重新配置应用。设备101可以向服务器151报告提醒,该服务器也可以发送指示有可能数据过多的通知(例如经由电子邮件)。在设备101或者服务器151上的软件可以显示相对于设备的数据分配对当前预测数据使用量的指示,从而用户可以相应地调整他的或者她的应用使用量模式。例如如果用户担心超过他的或者她的数据计划,则他或者她可以在参与视频聊天之前检查当前预测数据使用量是什么。
由于在设备上安装的应用可以对设备的风险暴露具有显著影响,所以可以希望用户或者管理员设置用于希望在设备或者设备组上安装什么应用的策略。下文是对如何可以在一个或者多个移动通信设备上实施保护策略的讨论。在一个实施例中,策略包括黑名单和白名单。黑名单是被显式地拒绝在移动通信设备上运行的应用或者评估判据集合,而白名单是显式地被允许在移动通信设备上运行的应用或者评估判据集合。例如策略可以仅允许在白名单上的应用或者仅允许未在黑名单上的应用。在一个实施例中,显式应用条目具有比评估判据条目更高的优先级。例如策略可以指定列入黑名单的某些能力(例如向因特网发送设备的位置)、但是指定列入白名单的某些应用。在这一情况下,向因特网发送位置的所有应用除非它们显式地在白名单上则可以被阻止,因为在白名单上的显式应用有比在黑名单上的评估判据更高的优先级。本领域技术人员将理解可以实施多种策略方案而未脱离本公开内容的范围。
用户可以针对他们在他们的移动设备上的应用类型具有个别偏好。一些用户例如可以对隐私问题敏感,而其它问题可以想要优化他们的电池寿命。为了允许用户利用应用评估以获得对他们可以使用或者考虑使用的应用的更大洞察,本公开内容的一个实施例涉及在移动通信设备上的允许用户基于用于应用的评估判据设置策略的软件,该软件阻止超过不合需要性阈值的应用。在用户尝试安装应用时,软件请求来自服务器151的针对应用的评估并且从服务器接收评估。
例如如果用户尝试安装具有向因特网发送位置信息的能力的应用、但是具有用于不允许可以向因特网发送他的或者她的位置的任何应用的策略,则在移动通信设备上的软件将阻止安装。在另一例子中,用户可以在相对标度(例如,0到10)上个别设置隐私、安全性和电池寿命策略阈值。在用户安装应用时,在设备上的软件取回针对应用的评估并且比较应用的隐私、安全性和电池额定值与策略阈值并且如果应用超过配置的策略则提醒用户。用户可以想要简单地被告警不合需要性而不是阻止安装不合需要的应用。
在一个实施例中,用户无论如何可以忽略提醒并且选择接受应用。在一个实施例中,设备显示如下用户接口,该用户接口指示应用对于用户不合需要。例如移动设备可以显示对在应用集市中查看的用于可能下载的应用是否满足用户的合乎需要性判据的指示。在另一例子中,在设备上的软件可以允许用户查看未满足合乎需要性判据的所有应用。如果用户改变他的或者她的判据并且想要查看现在在给予新判据时不合需要的应用,则这样的接口可以有用。
负责多个移动通信设备的IT管理员、父母、网络运营者或者其他人士可以希望在多个移动通信设备上设置策略而无对所有设备的物理访问。在一个实施例中,服务器151允许用户或者管理员设置用于设备或者设备组的策略。在设备101尝试安装应用时,设备向服务器151发送针对应用的评估的请求。基于在服务器151上配置的策略,评估包含对是否允许或者不允许应用的指示并且也可以包含用于为何评估不允许的应用为不允许的策略判据。在一个例子中,在服务器151上的策略经由web接口可配置。
在一个实施例中,服务器151允许按照评估判据以及在每个应用的基础上配置策略。例如管理员可以使用服务器151以阻止在某个类别、比如社交联网应用中的所有应用或者访问某些能力、比如用于从设备传输文件或者其它敏感数据的能力的所有应用。在例子中,管理员可以希望通过创建白名单来仅允许特定应用、阻止未在白名单上的所有应用。在又一例子中,管理员可以允许除了在黑名单上的特定应用之外的所有应用,因为这些特定应用已知为不合需要。由于可以预计算在策略之下允许或者拒绝的应用集合,所以本公开内容的一个实施例涉及服务器151生成策略定义集合并且向一个或者多个移动通信设备101传输策略定义。例如如果设备组具有用于仅允许在白名单上的应用的策略,则服务器151可以向移动设备传输用于列入白名单的应用的标识信息的列表,从而设备无需每当它遇到应用都为了评估而联系服务器。
在使用抽象概念、比如应用归类和能力来配置策略时,可以希望用户或者管理员看见如果将进行配置改变则将允许/拒绝什么应用或者将是否允许/拒绝特定应用。在一个实施例中,在移动通信设备101或者服务器151上的策略配置用户接口包括用于查看将作为配置改变的部分而阻止或者允许的应用的接口。如果在移动通信设备101上显示配置改变接口,则设备可以向服务器151发送针对数据的请求以填充接口。可以希望示出在配置改变生效之后允许或者阻止的所有应用或者仅示出允许或者阻止的应用在当前配置与新配置之间的差异。由于配置改变所影响的应用数目可以很大,所以接口可以显示摘要信息并且允许用户搜寻特定应用以确定配置改变是否影响该应用以及配置改变是否将造成允许或者阻止该应用。在一个实施例中,显示配置改变的影响的接口指示是否将阻止任何流行应用。例如可以基于服务器151或者按照应用在管理的设备组中的盛行度确定的总分布数据来确定应用流行度。在一个实施例中,改变结果接口仅显示对在管理的组中的至少一个设备上当前安装的应用有影响的改变。
为了防止策略系统干扰移动通信设备的可接受使用量,本公开内容的一个实施例涉及服务器151维持可接受应用的集合并且允许用户或者IT管理员容易向白名单添加那些集合,该白名单自动包括对可接受应用的集合的改变。例如服务器151可以维持流行应用的总列表或者按照应用类别的流行应用的列表。在策略配置接口中,服务器可以呈现一种用于在策略的白名单中包括所有流行应用或者仅具体类别(例如游戏、社交网络)中的流行应用的方式。在一个实施例中,这样的动态列表策略有比在黑名单和白名单上的评估判据条目更高的优先级、但是有比显式应用条目更低的优先级。在另一例子中,服务器151可以维持具有高信任的应用的列表。在策略配置接口中,服务器可以呈现一种在策略的白名单中包括所有高信任应用的方式。无论何时更新高信任列表,具有高信任的应用在进行策略评估时有效视为列入白名单。
由于移动设备部署可以已经具有设备管理服务器或者服务就位,所以可以希望服务器151向实际执行策略实行的设备管理器服务器供应数据。在一个实施例中,服务器151与设备管理服务器对接以在设备管理服务器上配置应用策略。例如设备管理服务器可以支持可配置应用黑名单和白名单。如果用户在服务器151上设置配置以仅允许在白名单上或者与某个评估判据匹配的应用,则服务器151生成待列入白名单的应用的列表并且用设备管理服务器支持的格式和协议向设备管理服务器传输应用列表。类似地,如果用户在服务器151上配置黑名单,则服务器生成在黑名单上的应用的列表并且配置设备管理服务器以实行黑名单。在一个实施例中,服务器能够配置多个设备管理服务器。例如如果组织支持多个移动设备操作系统并且使用不同移动设备管理服务器,则管理员可以在服务器151上配置跨平台策略(例如阻止所有文件共享应用)。服务器151然后可以标识其评估与策略匹配的跨越多个平台的所有应用并且在设备管理服务器上配置适当应用策略。由于每个设备管理服务器可以仅支持服务器151支持的移动设备平台的子集,所以服务器151仅向设备管理服务器传输与在设备管理服务器支持的操作系统上运行的数据对象对应的策略信息。例如如果设备管理服务器仅支持Blackberry设备,则服务器151可以仅用关于Blackberry应用的信息配置设备管理服务器的黑名单和/或白名单。
在一个实施例中,服务器151或者移动通信设备101可以执行策略顺应性检查。例如如果服务器执行顺应性检查,则在服务器151上存储任何顺应性设置,从而在移动通信设备101上执行的任何配置造成向服务器传输该配置。在设备请求来自服务器151的针对应用的评估时,服务器在评估中包括对策略是否允许或者不允许应用的指示。在另一例子中,如果移动通信设备101执行顺应性检查,则在移动通信设备101上存储任何顺应性设置,从而在服务器151上执行的任何配置造成向设备传输该配置。在设备接收针对应用的评估时,它比较评估与策略配置以确定是否允许应用。
在一个实施例中,策略管理与服务器耦合的防恶意软件系统集成,从而服务器151提供的用于应用的签名和评估使设备101能够阻止违反策略的数据对象。例如在设备101请求来自服务器151的评估时,如果应用视为恶意或者它违反策略,则服务器的评估指示应用不合需要。在任一情况下,产生的评估可以指示关于为何发现应用为恶意或者违反策略的进一步信息。在另一例子中,服务器151可以向移动通信设备101抢先地传输用于恶意或者违反策略的应用的签名,从而设备可以识别数据对象是否合乎需要或者不合需要而无需联系服务器151。
如果设备101已经安装违反在设备或者服务器151上就位的保护策略的应用或者已经更新针对应用的评估以使它违反保护策略,则可以希望设备或者其它系统采取纠正动作。在一个实施例中,如果设备已经安装违反用于该设备的保护策略的应用,则服务器或者在设备上的软件可以制定待出现的纠正动作。根据是否在设备151或者服务器101确定策略顺应性,设备或者服务器可以确定将采取什么纠正动作。
例如如果用户安装应用并且从服务器151接收的评估指示应用可接受,但是在将来的某一点,服务器确定应用不可接受,则服务器151向设备传输如下更新的评估,该评估包括设备将采取的纠正动作。在另一例子中,如果用户在设备上安装应用并且设备从服务器151接收指示应用可接受的评估,但是在设备上的软件收集表明应用违反策略(例如应用尝试获取用户的位置)的行为数据,则设备可以采取预配置的纠正动作、比如去除应用。设备也可以向服务器151传输这一行为数据并且指示策略违规。本领域技术人员将理解,使用行为数据以实行策略可以在如下多种情形中保护移动通信设备:该多种情形比如在利用应用中的弱点时、在应用仅在设备子集上行为不合需要(例如针对特定公司的雇员的有目标的攻击)时或者在应用仅在时间段之后行为不合需要(即定时炸弹)时。
在检测到设备违反策略时,多种纠正动作是可能的,例如任何违规应用可以让它们的进程结束、可以被卸载或者从访问某些系统功能(例如因特网、私人数据)中隔离或者可以被限制访问某些网络(例如仅被允许访问Wi-Fi而不是蜂窝网络)。也可以希望在设备脱离顺应性之时从访问敏感资源、比如公司电子邮件或者VPN服务器中隔离整个设备以防止信息泄漏。其它纠正动作可以包括在提交于2008年10月21日并且完全结合于此的第12/225,614号美国专利申请中公开的纠正动作。
如果管理员能够使用服务器151来设置策略,则也可以希望用户使用服务器151以查看策略适用于的设备的顺应性状态。在一个实施例中,服务器151确定移动通信设备组是否顺应应用策略并且哪些应用安装于组中的设备上。例如如果移动通信设备报告它们已经安装的应用并且服务器151包含策略配置,则服务器可以确定哪些设备当前违反管理员设置的策略。为了允许管理员查看顺应性状态,服务器151可以生成如下web接口,该web接口列举是否所有设备有顺应性以及如果任何设备脱离顺应性则有多少设备。接口也可以允许管理员查看脱离顺应性的具体设备、查看哪些应用使设备脱离顺应性并且远程启动纠正动作(例如去除应用)。
在一个实施例中,服务器151呈现单击纠正动作,其中管理员可以点击单个按钮以在管理员管理的组中的所有设备上远程启动纠正动作。例如如果管理员管理100个设备并且设备中的10个设备具有违反策略的应用,则管理员可以点击web接口上的单击纠正按钮,以使服务器向10个脱离顺应性的设备中的每个设备发送去除不合需要的应用的指示而无需任何用户干预。一旦纠正动作完成,每个设备101可向服务器151发送指示它是否成功的指示。在纠正过程期间,服务器151可以生成如下接口,管理员可以通过该接口查看纠正的状态。服务器暴露顺应性状态的其它方法包括服务器151暴露API(例如用于由安全性管理控制台使用)并且服务器151生成可以下载的报告。
在一些情况下,可以希望如果用户或者管理员安装视为不合需要的应用或者如果先前安装的应用基于更新的评估重新视为不合需要,则他或者她接收通知。在一个实施例中,移动通信设备101向服务器151传输关于安装数据对象的信息。如果服务器151基于通用不合需要性特性或者用于用户的特性确定数据对象不合需要,则服务器传输通知。例如如果用户安装被评估为合乎需要的应用,但是在将来的某一点,应用开始表现恶意或者其它不合需要的行为、比如浪费电池,则服务器可以改变它的评估以指示应用不合需要。通知可以采用多种形式、比如在网页上、在PC上或者在移动通信设备上显示的用户接口对话框或者电子邮件、SMS消息。
对于管理多个移动通信设备的IT管理员,即使具体应用在多个平台上可用并且具有多个版本,仍然可以针对应用设置策略。例如IT管理员管理成批运行不同操作系统的移动通信设备并不罕见。成批移动通信设备可以包括iPhone、BlackBerry设备和Android设备。然而如果某个应用已知为在所有三个设备操作系统上不合需要、比如可以透露私人信息的社交联网应用,则IT管理员无论平台如何都可以阻止安装应用的所有版本。然而如果应用可以在一个平台上、但是未在其它平台上共享敏感信息,则IT管理员可以允许仅在未共享敏感信息的平台上安装应用。如上文讨论的那样,也可以希望IT管理员同时关于应用的所有版本进行策略判决而不是必须维持将应用的多个版本视为单独判决的策略。由于有很频繁更新的一些应用,所以如果管理员不能将特定应用的所有版本视为一个策略判决则管理应用策略将很快变成很困难的任务。
由于应用可以在更新之间急剧地改变,所以希望管理员了解任何如下改变,这些改变可以影响管理员对是否允许应用的判决。本公开内容的一个实施例涉及服务器151在存在于黑名单或者白名单上的应用显著改变它的能力或者特性的情况下发送通知。例如如果在管理员的白名单上的应用的新版本具有用于从用户的设备传输文件的能力而先前版本没有,则服务器151可以向管理员发送指示改变的电子邮件或者文字消息。在服务器151上的策略管理接口也可以基于改变的特性显示可以需要关注的应用的列表。
为了简化配置,本公开内容的一个实施例涉及在移动通信设备101或者服务器151上的软件可以提供解决常见使用情况的默认策略。例如用户可以能够选择他们关注电池寿命和位置隐私、但是他们未关注网络使用量和电话号码隐私。通过选择这样的关注,设备或者服务器自动配置用于不合需要的应用的策略和阈值。在一个实施例中,服务器151或者设备101包含用于顺应规章的预设策略。例如可以要求金融业或者保健业工作者具有特定应用策略集合就位以防止透露敏感信息。由于在这些规章之下允许或者拒绝的应用集合可以随时间改变,所以服务器151可以自动更新实行规章的具体策略判决而无需管理员具体配置他们。为了允许检查和审核,服务器151可以生成它用来顺应规章的策略判决列表并且可以在策略判决将改变时通知管理员。如果管理员拒绝某些策略判决,则他或者她可以推翻服务器151设置的默认策略。
由于可以希望简化策略配置过程,所以本公开内容的一个实施例涉及服务器151或者移动通信设备101向用户或者管理员呈现系列问题,对问题的回答用来自动设置策略。例如在用户首次在他的或者她的设备上设置应用策略软件时,软件可以询问用户是否具有无限数据计划、用户是否想要允许服务访问设备的位置以及用户是否想要阻止可以用来在设备上监视的所有工具。基于对问题的回答,设备可以设置是否阻止高数据使用量的应用、是否在高数据使用量的应用的情况下提醒用户、是否阻止向因特网发送用户的位置的应用以及是否阻止侦察应用的策略。在这一初始设置之后,用户可以希望调节策略判决,而其他用户可以接受自动配置的策略。
由于滥用应用可以对无线网络具有大量负面影响,所以本公开内容的一个实施例涉及提供关于潜在滥用应用的“及早告警”信息。在一个实施例中,服务器151可以使用信息、比如行为数据和可用于它的其它数据,以便产生对应用是否具有可以对移动网络有害的网络访问特性的评估。例如接收或者传输大量数据、发送大数目的SMS消息或者打开大数目的持久连接的应用可以不利地影响移动网络的性能。在评估应用以确定它是否对移动网络潜在地有害之后,服务器151存储评估。在一个实施例中,服务器151在标识潜在有害应用之后通知管理员。例如通知可以是以包含关于潜在有害数据对象的信息的电子邮件或者文字消息这一形式。
在一个实施例中,服务器151生成如下web接口,该web接口显示已经评估为对移动网络潜在地有害的应用。web接口可以被设计用于支持评审工作流程,从而管理员可以进一步分析潜在地有害应用。在检查应用之后,管理员在一些情况下可以想要采取纠正动作,而在其它情况下,管理员可以不想采取纠正动作。如果管理员选择不采取动作,则应用除非它的行为显著改变从而触发服务器151标识应用用于重新评审而不会视为潜在地有害。为了防止用于给定的应用的多个数据对象被重复地标识为潜在地有害,如果管理员选择忽略应用,则也将忽略该应用的所有版本,因为服务器151可以确定多个数据对象是否属于相同应用或者其它分组。
如果管理员了解潜在地有害应用,那么如果应用安装于更多设备上,则他或者她可以采取抢先措施以避免严重问题。在一个实施例中,服务器151生成如下web接口,该web接口允许管理员采取用于视为有害的应用的纠正动作。多种纠正动作是可能的。例如服务器151可以呈现如下接口,该接口允许网络管理员与应用的公布者通信并且完成针对有害行为的化解。服务器151可以从集市数据提取公布者的电子邮件地址,并且允许网络管理员经由服务器151向公布者发送的、服务器的web接口键入消息。在服务器151发送电子邮件时,特殊地设置在传出电子邮件中的回复地址,从而在公布者做出响应时,服务器关联响应与初始消息并且在web接口中公布响应用于管理员查看并且潜在地继续对话。在一个实施例中,服务器151生成如下web接口,该web接口允许管理员配置在设备组上安装的安全性软件。例如管理员可以希望配置安全软件以阻止潜在地有害应用或者隔离应用,从而它不能经由蜂窝网络通信。如果管理员希望阻止应用,则服务器151可以使用多种机制、比如这里讨论的机制以阻止应用安装于设备上或者如果应用已经安装于设备上则去除它。由于服务器151可以标识与相同应用对应的多个数据对象,所以如果管理员阻止应用,则用于应用的所有数据对象视为被阻止。如果在后续版本中修复潜在地有害的应用,则服务器151可以允许管理员指定应用的待阻止的版本范围。
由于可以希望防止下载不合需要的应用,所以本公开内容的一个实施例涉及服务器151生成网络基础结构配置数据。例如服务器151可以存储列入黑名单的数据对象的集合并且能够生成防入侵系统或者HTTP代理规则集合。规则可以尝试匹配移动设备使用的标识符以从应用集市下载数据对象、或者在跨越网络传输不合需要的数据对象时标识它们的内容。
在一个实施例中,服务器151生成用于阻止与不合需要的应用关联的网络业务的网络基础结构配置数据。通过服务器151使用用于不合需要的应用的行为数据以表征与应用关联的网络通信并且生成阻止相似网络业务(例如去往相同IP地址、子网或者主机名的业务)的规则,服务器151生成防止与不合需要的应用关联的网络通信的网络基础结构配置规则。为了防止阻止合法业务,服务器151可以分析不合需要的应用的网络业务相对于合乎需要的应用有多么独特并且仅阻止不合需要的应用特有的网络业务。例如如果应用与两个服务器通信,一个服务器是多种合法应用使用的公知服务器,而另一服务器是仅这一应用与之通信的未知服务器,则服务器151将视未知服务器为不合需要的应用所特有。
在确定待阻止的适当网络业务之后,服务器151生成用于阻止不合需要的应用的网络业务的防火墙或者其它网络配置规则。例如如果恶意应用使用特定服务器以偷偷从人们的电话筛选敏感数据,则用于应用的行为数据可以指示用来传输敏感数据的IP地址、端口和协议。在管理员希望阻止恶意应用的用于窃取数据的能力时,他或者她可以看见应用与之通信的服务器的列表和服务器151知道的多少其它应用通常与该服务器通信。管理员然后具有用于选择阻止哪些服务器的能力。在选择待阻止的服务器之后,服务器151生成阻止网络业务的规则。在一个实施例中,服务器151使配置数据、比如入侵检测和防止系统规则可用于经由web接口下载。在一个实施例中,服务器151被配置用于与网络基础结构管理系统直接连接以部署配置数据。
由于管理员可以主要关注特定网络,所以本公开内容的一个实施例涉及服务器151产生用于标识潜在地有害应用的聚合评估和运营者专属评估二者并且生成包含二者的用户接口。例如如果应用仅在连接到特定类型的移动网络的设备上运行时行为不当,则聚合行为数据可以在正常限度内;然而用于特定网络的行为数据可以有害。网络管理员可以想要查看应用在他或者她监管的网络类型上的行为。由于各个移动网络可以将不同行为视为滥用,所以在服务器151上的用户可以配置用于考虑对网络有害的应用的判据。
在上文和全文的描述中,阐述许多具体细节以便提供对公开内容的透彻理解。然而本领域普通技术人员将清楚,无这些具体细节也可以实现公开内容。在其它实例中,以框图形式示出公知结构和设备以有助于说明。对优选实施例的描述并非旨在于使所附权利要的范围限于此。另外,在这里公开的方法中,公开各种步骤,这些步骤举例说明公开内容的功能中的一些功能。将理解这些步骤仅为示例而并非为了以任何方式限制。可以设想其它步骤和功能而未脱离本公开内容。
Claims (20)
1.一种用于服务器计算机评估数据对象的方法,包括:
在所述服务器计算机接收数据,所述数据标识移动通信设备能够访问的所述数据对象的至少部分;
确定用于数据对象的定义信息是否对应于所述数据,所述定义信息存储于所述服务器能够访问的数据存储库中,所述数据存储库存储针对所述定义信息的对应评估;
如果定义信息对应于所述数据,则所述服务器提供与所述定义信息对应的所述评估。
2.根据权利要求1所述的方法,还包括:
在所述服务器计算机接收数据之前,确定在所述移动通信设备的本地存储库中存储的定义信息是否对应于所述数据,所述本地存储库存储针对所述定义信息的对应评估;并且
如果在所述本地存储库中的定义信息未对应于所述数据,则在所述服务器从所述移动通信设备接收所述数据的至少部分。
3.根据权利要求1所述的方法,还包括:
如果所述数据未对应于在所述数据存储库中存储的定义信息,则所述服务器分析所述数据的至少部分以确定评估;并且
在所述数据存储库中存储所述评估。
4.根据权利要求1所述的方法,还包括:
如果所述数据未对应于在所述数据存储库中存储的定义信息,则所述服务器分析所述数据的至少部分以确定评估;
所述服务器请求涉及所述移动通信设备能够访问的所述数据对象的附加数据;
所述服务器分析所述附加数据的至少部分以确定评估;并且
在所述数据存储库中存储所述评估。
5.一种用于评估数据对象的方法,包括:
移动通信设备确定在本地存储库中的定义信息是否对应于所述移动通信设备能够访问的数据对象;
如果在所述本地存储库中的所述定义信息未对应于所述数据对象,则在服务器计算机接收涉及所述数据对象的数据;
所述服务器计算机确定用于数据对象的定义信息是否对应于所接收的数据,所述定义信息存储于所述服务器能够访问的数据存储库中,所述数据存储库存储针对所述定义信息的对应评估;并且
如果定义信息对应于所述所接收的数据,则所述服务器传输与所述定义信息对应的所述评估。
6.根据权利要求5所述的方法,还包括:
如果所述定义信息未对应于所述所接收的数据,则所述服务器使用所述所接收的数据来确定针对所述数据对象的评估。
7.根据权利要求5所述的方法,还包括:
所述服务器请求涉及所述移动通信设备能够访问的所述数据对象的附加数据;并且
分析所述附加数据。
8.一种用于汇集关于至少一个移动通信设备能够访问的一个或者多个数据对象的数据的方法,所述方法包括:
在服务器从多个移动通信设备中的第一移动通信设备接收数据,所述服务器被配置用于认证所述第一移动通信设备,所述数据标识所述第一移动通信设备能够访问的数据对象,所述服务器还被配置用于使用所述数据的至少部分以提供所述数据对象的评估;并且
在所述服务器能够访问的数据存储库上存储所述数据的至少部分,从而所存储的数据与所述第一移动通信设备关联。
9.根据权利要求8所述的方法,还包括:
所述服务器认证所述第一移动通信设备。
10.根据权利要求8所述的方法,还包括:
在服务器从所述多个移动通信设备中的第二移动通信设备接收数据,所述服务器被配置用于认证所述第二移动通信设备,所述数据标识所述第二移动通信设备能够访问的数据对象,所述服务器还被配置用于使用所述数据的至少部分以提供所述数据对象的评估;并且
在所述服务器能够访问的数据存储库上存储所述数据的至少部分,从而所述所存储的数据与所述第二移动通信设备关联。
11.一种用于汇集关于至少一个移动通信设备能够访问的一个或者多个数据对象的数据的方法,所述方法包括:
服务器向第一移动通信设备传输针对在所述第一移动通信设备上驻留的数据的请求;
所述服务器从所述第一移动通信设备接收数据的至少部分;
如果所述服务器未从所述第一移动通信设备接收数据的至少部分,则所述服务器向第二移动通信设备传输针对在所述第二移动通信设备上驻留的数据的请求;并且
所述服务器存储来自所述第一或者第二移动通信设备的所接收的数据部分用于使用所述所接收的数据部分来提供评估这样的目的。
12.一种用于汇集关于一个或者多个移动通信设备的数据的方法,所述方法包括:
服务器向第一移动通信设备传输针对在所述第一移动通信设备上驻留的数据的第一请求;
所述服务器从所述第一移动通信设备接收数据的至少第一部分;
所述服务器向第二移动通信设备传输针对在所述第二移动通信设备上驻留的数据的第二请求;
所述服务器从所述第二移动通信设备接收数据的至少第二部分;并且
服务器存储来自所述第一移动通信设备的所接收的数据的第一部分和来自所述第二移动通信设备的数据的第二部分用于使用所接收的数据部分来提供评估这样的目的。
13.一种用于服务器提供数据对象的评估的方法,所述方法包括:
在所述服务器从多个移动通信设备接收涉及所述数据对象的数据,所述数据由已经访问所述数据对象的所述多个移动通信设备生成;
所述服务器处理从所述多个移动通信设备接收的所述数据以确定针对所述数据对象的评估;并且
提供针对所述数据对象的所述评估。
14.根据权利要求13所述的方法,其中所述数据由已经执行所述数据对象的所述多个移动通信设备生成。
15.根据权利要求13所述的方法,其中所述评估选自于由电池使用量信息、存储器使用量信息、CPU使用量信息、应用程序接口API使用量信息、网络使用量信息、隐私信息、数据使用量信息和位置查询信息构成的组。
16.一种用于服务器提供数据对象的评估的方法,所述方法包括:
在所述服务器从多个移动通信设备接收用于所述数据对象的应用数据;
所述服务器处理所接收的应用数据以确定针对所述数据对象的评估;并且
提供针对所述数据对象的所述评估。
17.根据权利要求16所述的方法,还包括:
在处理之前,在所述服务器接收用于已经访问所述数据对象的所述多个移动通信设备中的至少一个移动通信设备的设备数据;
其中处理包括处理所接收的设备数据以确定评估。
18.一种用于服务器提供数据对象的评估的方法,所述方法包括:
在所述服务器从多个移动通信设备接收涉及所述数据对象的数据,所述数据由已经访问所述数据对象的所述多个移动通信设备生成;
所述服务器处理从所述多个移动通信设备接收的所述数据以确定针对所述数据对象的评估;
所述服务器从具有类型的计算设备接收针对所述评估的请求;并且
向所述计算设备提供针对所述数据对象的所述评估,所述评估基于所述计算设备的所述类型。
19.一种系统,包括:
服务器,被配置用于从多个移动通信设备接收涉及数据对象的数据,所述服务器被配置用于基于所述数据确定所述数据对象的评估,所述服务器还被配置用于提供所述评估,所述评估包括所述多个移动通信设备中的至少一个移动通信设备访问所述数据对象的结果。
20.根据权利要求19所述的系统,其中所述服务器还被配置用于基于所述评估动态限制所述多个移动通信设备中的至少一个移动通信设备对所述数据对象的访问。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/868,672 | 2010-08-25 | ||
| US12/868,669 | 2010-08-25 | ||
| US12/868,676 | 2010-08-25 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1185174A true HK1185174A (zh) | 2014-02-07 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9860263B2 (en) | System and method for assessing data objects on mobile communications devices | |
| CN103180862B (zh) | 用于服务器耦合的恶意软件防止的系统和方法 | |
| US9344431B2 (en) | System and method for assessing an application based on data from multiple devices | |
| US9294500B2 (en) | System and method for creating and applying categorization-based policy to secure a mobile communications device from access to certain data objects | |
| US9367680B2 (en) | System and method for mobile communication device application advisement | |
| US8984628B2 (en) | System and method for adverse mobile application identification | |
| US9235704B2 (en) | System and method for a scanning API | |
| US9563749B2 (en) | Comparing applications and assessing differences | |
| HK1185174A (zh) | 用於服务器耦合的恶意软件防止的系统和方法 |