检测并防止恶意移动应用程序的安装的制作方法

文档序号:6533404阅读:221来源:国知局
检测并防止恶意移动应用程序的安装的制作方法
【专利摘要】一种垫片和后端服务器应用程序的组合,其可以用于识别和阻止恶意应用程序在移动设备上的安装。实际上,垫片应用程序向移动设备的操作系统进行注册以拦截应用程序安装操作。基于对尝试的安装操作进行拦截,所述垫片应用程序识别试图安装的应用程序,生成唯一地识别所述应用程序的键值,并且将所述键值通过网络连接传输至后端服务器。所述后端服务器可以被配置用于爬行互联网以识别恶意应用程序,并且编译和维护这样的应用程序的数据库。基于从所述垫片应用程序接收键值,所述后端服务器可以搜索其数据库以定位匹配的应用程序,并且如果找到所述匹配的应用程序,则利用所述应用程序的状态(例如,恶意或非恶意)向移动设备做出响应。所述垫片应用程序可以利用该信息来允许或阻止所述应用程序的安装。
【专利说明】检测并防止恶意移动应用程序的安装
[0001] 相关文件的交叉应用
[0002] 本申请与由
【发明者】Sude印Das等人于2011年10月17日递交的名称为System andMethodforWhitelistingApplicationsinaMobileNetworkEnvironment的 共同待决并且共同受让的美国专利申请序列号13/275, 293相关,其具有代理人案号为 04796-1106的,所述申请被视作本申请的一部分,并且其全部内容由此以引用的方式被并 入本文。

【技术领域】
[0003] 本公开概括而言涉及计算机安全领域。更具体地,但非限制性地,本公开涉及在不 加重移动设备的有限的存储器和处理资源的负担的情况下防止在移动设备上对恶意应用 程序的安装的系统、方法和计算机程序产品。

【背景技术】
[0004] 恶意软件(malware)是用于描述使计算机系统受感染并且可以具有不同影响程 度的恶意软件的广义的术语。例如,恶意软件的影响范围可以从令人厌烦和不想要的广告 软件和间谍软件到可以使计算机系统实际上失去作用的计算机病毒、蠕虫和特洛伊木马。 尽管对于个人计算机用户而言恶意软件的危害通常是公知的,但是移动设备的用户通常更 少地意识到对于移动设备也存在类似的威胁。事实上,随着移动设备的用途和功能的增加, 在移动设备上感染不想要的恶意软件的威胁也在增加。
[0005] 尽管常见的做法是,在个人计算机上使用某种类型的防病毒应用程序(术语防病 毒指各种各样的防恶意软件的软件)来检测和移除恶意软件并且修复它的影响,但移动设 备的性质(例如,存储器限制、处理限制、电池寿命等)为类似的防病毒应用程序的实现提 出了一定的障碍。例如,在个人计算机上执行的典型防病毒应用程序包括恶意软件签名数 据库,其表示已知的恶意软件,系统文件可以与所述恶意软件签名数据库进行比较以检测 恶意软件。尽管由恶意软件签名数据库消耗的存储器在个人计算机的存储器资源的环境中 是可接受的,但是在移动设备的相对更小的存储器资源的环境中却不理想。此外,因为恶意 软件创建者不断地引入新的并且独特形式的恶意软件,所以必须定期对防病毒应用程序进 行更新以包括用于识别新形式的恶意软件的签名。因此,防病毒软件供应商例行发布定义 文件作为对其防病毒应用程序的更新。这些更新的定义文件通常经由互联网从防病毒软件 供应商处获取。这时又一次,尽管用于获取更新的定义文件的带宽在个人计算机的环境中 是可接受的,但是移动带宽是有限的而且很昂贵,数据供应商一般实施数据限额并且向超 过所述限额的用户收费。同样,用于针对签名数据库来扫描系统文件的处理要求在个人计 算机的环境中是可接受的,但对于移动设备却不理想。

【专利附图】

【附图说明】
[0006] 为了提供对本公开以及其特征和优点的更全面的理解,结合附图对下文的说明书 进行了参考,其中,相同的附图标记代表相同的部件。在附图中:
[0007] 图1是示出了根据一个实施例的网络架构的框图;
[0008] 图2是示出了根据一个实施例的可以在其上安装软件的设备的框图;
[0009] 图3是示出了根据一个实施例的检测并防止恶意应用程序安装到移动设备上的 过程的流程图;
[0010] 图4是示出了根据一个实施例的检测并防止恶意应用程序安装到移动设备上的 网络架构的框图;以及
[0011] 图5是示出了根据一个实施例的后端服务器识别应用程序的状态并将该状态传 送至移动设备的过程的流程图。

【具体实施方式】
[0012] 概述
[0013]下面的示例实施例描述了一种方法,并且该方法包括:拦截用于在移动设备上安 装应用程序的请求,生成唯一地识别该应用程序的键值;并且通过网络连接将该键值发送 至服务器应用程序。该方法进一步包括:通过网络连接接收指示应用程序的状态的响应并 且当该状态指示应用程序为恶意时阻止对该应用程序的安装。在进一步的实施例中,拦截 用于在移动设备上安装应用程序的请求的动作包括:将垫片应用程序注册作为移动设备上 的后台服务。在更加具体的实施例中,将垫片应用程序注册作为移动设备上的后台服务的 动作包括:注册垫片应用程序以拦截应用程序编程接口(其用于启动应用程序在移动设备 上的安装)的调用。该方法可以通过利用移动设备的处理器来执行。
[0014] 在另一个示例实施例中,描述了包括通过网络连接从移动设备接收应用程序标识 符的方法。该方法还包括:利用应用程序标识符来确定来自记录的数据库(其包括多个已 分析的应用程序)的应用程序的状态。该方法进一步包括:将应用程序的状态通过网络连 接发送至移动设备。在进一步的实施例中,应用程序标识符包括:唯一地识别应用程序的键 值和与应用程序相关联的元数据。在其它实施例中,利用应用程序标识符来确定应用程序 的状态的动作包括:搜索数据库以确定数据库中是否存在与键值匹配的记录。在更加具体 的实施例中,当确定数据库中不存在与键值匹配的记录时,利用元数据的动作来暗示来自 数据库中的记录的应用程序的状态。
[0015] 示例实施例
[0016]下面更加详细描述的多个实施例提供了用于识别恶意应用程序并阻止它们在移 动设备上安装的系统和技术。在一个实施例中,垫片应用程序安装在移动设备上,该垫片应 用程序向设备的操作系统注册以拦截移动应用程序安装操作。基于在移动设备上拦截到尝 试的安装操作,垫片应用程序可以识别安装操作所应用的移动应用程序,生成唯一地识别 该移动应用程序的键值,并将该键值传输至后端服务器。后端服务器可以被配置用于爬行 互联网以搜索移动应用程序,分析所识别的应用程序以检测恶意应用程序,并且编译并维 护已识别的应用程序的数据库及其状态。基于从垫片应用程序接收到键值,后端服务器可 以搜索数据库以定位匹配的应用程序,并且利用应用程序的状态来响应移动设备。垫片应 用程序可以利用该信息来允许或阻止移动应用程序的安装。
[0017]参考图1,示出了根据一个实施例的网络架构100。如图所示,提供了多个网络 102。在当前网络架构100的环境中,网络102每一个都可以采用以下的任何形式,包括但 不限于,局域网(LAN)、无线网络或诸如因特网之类的广域网(WAN)。
[0018] 与网络102相耦合的是能够通过网络102进行通信的数据服务器计算机104。同 样与网络102和数据服务器计算机104相耦合的是多个移动设备106。数据服务器计算机 104可以包括台式计算机、膝上型计算机、手持计算机、计算机的任何部件、和/或任何其它 类型的逻辑。移动设备106可以包括移动电话、智能电话、电子书阅读器、平板计算机、个人 数字助理(PDA)、和/或能够在网络架构100内启动声音、音频、视频、媒体或数据交换的其 它类似的移动设备。为了有助于网络102之间的通信,在网络102之间可选地耦合至少一 个网关或路由器108。
[0019] 现在参考图2,以框图的形式示出了结合一个实施例使用的示例处理设备200。处 理设备200可以作为网关或路由器108、移动设备106,或者服务器计算机104服务。示例 处理设备200包括系统单元210,该系统单元210可以可选地连接到输入设备260 (例如,键 盘、鼠标、触屏等)和显示器270。程序存储设备(PSD) 280 (有时称为硬盘或计算机可读介 质)包括在系统单元210中。同样包括在系统单元210中的是网络接口 240,其用于经由 网络与其它计算和公司基础设备(未示出)进行通信。网络接口 240可以包括在系统单元 210内或者可以在系统单元210的外部。无论在哪种情况下,系统单元210都可以通信地耦 合至网络接口 240。程序存储设备280表示任何形式的非易失性存储装置,包括但不限于, 所有形式的光学存储器和磁存储器,包括固态存储器,包括可移除介质,并且可以包括在系 统单元210内或在系统单元210的外部。程序存储设备280可以用于存储用于控制系统单 元210的软件或由处理设备200使用的数据,或者二者。
[0020] 系统单元210可以被编程用于执行根据本公开的方法。系统单元210包 括处理器单元(PU) 220、输入输出(I/O)接口 250和存储器230。处理器单元220 可以包括任何可编程控制器设备,包括:例如,主机处理器、来自Intel公司的 IntelAlom?、Core' Pentium85和Celeron?处理器家族中的一个或多个成员、或者 来自ARM的Cortex和ARM处理器家族中的设备。(INTEL、INTELATOM、CORE、PENTIUM和 CELERON是Intel公司的注册商标。CORTEX是ARM有限公司的注册商标。ARM是ARM有限 公司的注册商标)。存储器230可以包括一个或多个存储器模块并且包括随机存取存储器 (RAM)、只读存储器(ROM)、可编程只读存储器(PR0M)、可编程读写存储器和固态存储器。PU 220还可以包括一些内部存储器,包括例如,高速缓冲存储器。
[0021] 处理设备200可以具有驻留其上的任何期望的操作系统。可以使用任何期望的编 程语言来实现实施例,并且其可以被实现为一个或多个可执行程序或模块,所述一个或多 个可执行程序或模块可以链接到可执行例程的外部库,所述可执行例程的外部库可以由操 作系统的供应商或适合的库例程的任何其它期望的供应商来供应。正如本文所使用的,术 语"计算机系统"或"所述计算机系统"可以指单个计算机,一起工作以执行被描述为在计 算机系统上或由计算机系统执行的功能的多个计算机。用于配置处理设备200以执行所公 开的实施例的程序指令可以被提供为存储在任何类型的非暂时性计算机可读介质上,或者 可以从服务器104下载到程序存储设备280上。
[0022] 现在参考图3,过程300示出了根据一个实施例的通过其可以检测并防止恶意应 用程序安装到移动设备106上的示例过程流程。在步骤305中,可以在移动设备106处接 收移动应用程序设置文件。正如本文所使用的,"移动应用程序设置文件"指启动在移动设 备106上对应用程序的安装的计算机程序代码。术语"应用程序"和"移动应用程序"可交 替地用于指运行(或能够运行)在移动设备上并且为移动设备用户提供特定功能的应用程 序软件。移动应用程序在数量上实际无限制并且可以根据其提供的功能来进行分类。这样 的移动应用程序的示例包括生产率应用程序(例如,日历、电子邮件和联系人应用程序)、 网页浏览器应用程序、社交网络应用程序、银行业务应用程序、基于GPS的导航应用程序、 电子阅读器应用程序、音乐应用程序、视频游戏应用程序等。通常,应用程序设置文件可以 在用户的请求下在移动设备106处接收。例如,移动设备106的用户可以从在线应用程序 存储库下载应用程序。在线应用程序存储库可以与移动设备106的操作系统的供应商相关 联(例如,Apple?APPStore、Google?AndroidMarket、rim?AppWorld等),或者可 以由独立的第三方(例如,AmazonRAppStore等)来维护。(APPLE是Apple公司的注册 商标。GOOGLE是Google公司的注册商标。RIM是ResearchinMotionLimited公司的注 册商标。AMAZON是AmazonTechnologies公司的注册商标)。尽管应用程序安装文件可以 在用户的请求下在移动设备106处接收,但应用程序设置文件还可以在用户不知道的情况 下被接收。例如,恶意应用程序可以包括使该应用程序能够在移动设备106的用户不知道 的情况下在移动设备106之间传播的代码。
[0023]在步骤310中,作为应用程序设置文件的执行的结果,启动了在移动设备106上应 用程序的安装。通常,基于在移动设备106处接收到应用程序设置文件,应用程序安装将自 动启动。例如,当从在线应用程序存储库下载应用程序时,基于接收到启动应用程序安装, 应用程序设置文件通常将自动执行。尽管应用程序的安装可以自动启动,但应用程序的安 装还可以在特定时间或基于移动设备106上的特定事件的出现而启动。与对应用程序设置 文件的接收相似,应用程序的安装还可以在移动设备的用户不知道的情况下发生。作为安 装过程的一部分,安装请求可以被发送到移动设备106的操作系统。
[0024] 在步骤315中,安装请求被拦截。在一个实施例中,垫片应用程序可以作为移动设 备106上的后台服务运行并注册以接收安装请求。一旦安装,被引导至操作系统的后续安 装请求可以首先被传递到垫片应用程序。然后,垫片应用程序可以识别与被拦截的安装请 求相关联的移动应用程序。
[0025] 在步骤320中,垫片应用程序可以生成唯一地识别与所拦截的安装请求相关联的 移动应用程序的键值。在一个实施例中,可以通过计算移动应用程序设置文件或其某个部 分的哈希(例如,哈希值、哈希码、校验和等)来生成键值。例如,可以通过将哈希算法(例 如,MD5、SHA-I等)应用到应用程序设置文件或其某个部分来计算哈希值。正如在本领域 中所公知的,这样的哈希算法用于将大数据集(例如,包含在应用程序设置文件中的数据) 映射到更小的数据集,所述更小的数据集可以用于识别大数据集的元素。通常,移动应用程 序设置文件被发布作为对移动应用程序的内容进行打包的存档文件。因此,移动应用程序 设置文件或该设置文件的某些预定内容的哈希可以用于唯一地识别该移动应用程序。
[0026] 在步骤325中,垫片应用程序可以编译与应用程序相关联的元数据。这样的元数 据可以包括与应用程序相关联的任何识别信息。例如,垫片应用程序可以编译应用程序名 称、开发该应用程序的软件公司、用于对应用程序进行数字签名的签名等。在一个实施例 中,元数据可以位于在应用程序设置文件中识别的一个或多个预定义的位置。因此,垫片应 用程序可以简单地从这些预定义的位置检索数据以编译元数据。
[0027] 在步骤330中,垫片应用程序将键值和元数据(统称为应用程序标识符)传输至 后端服务器。正如下面将更详细描述的,基于移动设备的连接属性,可以使用多种不同的协 议将应用程序标识符从移动设备106传输至后端服务器。从/在后端服务器上执行的应 用程序可以被配置用于找出移动应用程序(例如,通过爬行因特网以搜索移动应用程序) 和/或接收移动应用程序(例如,通过从移动设备、移动应用程序供应商等接收移动应用程 序),并且访问状态和/或确定移动应用程序的信誉度分数。例如,后端服务器应用程序,或 者更简单地"服务器应用程序",可以对提供一个或多个移动应用程序的独立网站中的或在 线应用程序存储库中的移动应用程序进行检测,正如上面描述的。基于检测到移动应用程 序,服务器应用程序可以下载该移动应用程序并且执行行为分析,其目的是可以识别移动 应用程序的特征并且最终确定该移动应用程序的状态是恶意的还是良性的。可以由服务器 应用程序编译这些记录并且将其保持在数据库中。
[0028] 在相关的于2011年10月17日提交的美国申请序列号NO. 13/275,293( "293申 请")中对服务器应用程序的功能进行更加详细地描述,其全部内容先前以引用的方式在 此并入本文。在"293申请"中参考信誉引擎(被引用为"信誉引擎20")并且参考服务器 (被引用为"服务器17"和"白名单服务器17")来对本申请的服务器应用程序的至少一些 潜在的功能进行了描述。这些功能可以以任何适合的方式合并或集成。在某些情况下,月艮 务器应用程序可以执行"信誉引擎20"、"服务器17"和"白名单服务器17"的所有功能、和 /或与如下活动相关联的任何活动:查找和/或接收移动应用程序、评估移动应用程序的状 态、将状态和/或信誉度分数存储在数据库中、识别数据库中的应用程序、以及向移动设备 提供响应,所述响应指示所识别的应用程序的信誉度分数或状态。可替代地,这些功能可以 以任何适合的布置逻辑地分开并且由分立的硬件和/或软件执行(例如,在实现中,服务器 应用程序包括在相同或独立的硬件设备上运行的多个分立的部件,以执行不同的功能)。
[0029] 服务器应用程序可以利用从移动设备106接收的包含在应用程序标识符中的信 息来识别数据库中的匹配的应用程序。在一个实施例中,服务器应用程序可以存储对该应 用程序的分析的结果连同与应用程序相关联的键值值(例如,由垫片应用程序应用的用于 生成键值的相同哈希算法的结果)。因此,基于接收到键值,服务器应用程序可以利用该键 值来识别数据库中相对应的移动应用程序。
[0030] 在步骤335中,在移动设备106处从服务器应用程序接收响应。在一个实施例中, 来自服务器应用程序的响应可以指定与移动应用程序相关联的信誉度分数,并且可以基于 对移动应用程序的服务器应用程序的分析。在另一实施例中,该响应可以简单地识别移动 应用程序是恶意的还是良性的。
[0031] 在步骤340中,移动设备可以利用来自服务器应用程序的响应来确定与所拦截的 安装请求相关联的移动应用程序是否为恶意。基于从服务器应用程序所接收的响应的类 型,操作340可以涉及将所接收的信誉度分数与预定义的信誉度分数阈值进行比较以确定 移动应用程序是否为恶意,或者可以简单地涉及接受移动应用程序的服务器应用程序是恶 意或良性的指示。
[0032] 如果在步骤340中确定移动应用程序被确定为不是恶意的,则可以在345中允许 移动应用程序的安装。然而,如果在步骤340中确定移动应用程序是恶意的,则在步骤350 中可以阻止其安装。因为垫片应用程序不涉及对恶意软件签名和白名单签名的存储,或者 对应用程序文件与这样的签名的比较,所以通过将存储器和处理要求(例如,恶意签名和 白名单签名的存储和比较所需的)传输至远程后端服务器,所描述的实施例允许移动设备 106上的具有"薄"存在的计算机代码来检测并且阻止恶意应用程序的安装。
[0033] 现在参考图4,框图示出了根据一个实施例的可以检测并且防止恶意应用程序安 装在移动设备上的网络架构。在所描述的实施例中,移动设备106连接401至网络102,并 且后端服务器104A连接402至网络102。尽管移动设备106和后端服务器104A被示出为 连接至网络102,但这不是要暗示有必要将这些设备直接连接或使用常见的通信协议来通 信。如所示出的,移动设备106包括应用程序层106A、操作系统层106B,以及硬件层106C。 这些层执行专门的任务,并相互合作以便向移动设备106的用户提供特定功能。
[0034] 在所描述的实施例中,用于被标记为"AppB"的移动应用程序的应用程序设置文 件405驻留在移动设备106的应用程序层106A中。如上面所描述的,在用户的请求(例如, 通过从在线应用程序存储库下载"AppB")下或在设备的用户不知道的情况下,可以在移动 设备106处接收应用程序设置文件405。在特定的实施例中,其中移动设备106应用安卓操 作系统,应用程序设置文件405可以被实现为安卓包(.apk)文件。应用程序设置文件405 通常是包含用于"AppB"的所有程序代码的存档文件,并且用于在移动设备106上启动对 "AppB"的安装。对移动应用程序的安装可以与移动设备106的操作系统相协调。正如在 本领域中所公知的,应用程序编程接口(API)(例如,API410、411和412)可以提供应用程 序层106A与操作系统层106B之间的接口。因此,基于对应用程序设置文件405的执行,可 以调用310被用于启动在移动设备106上对应用程序的安装的特定API410。继续上面的 示例,如果移动设备106应用安卓操作系统,则API410可以被实现为指定安装动作的执行 的意图对象。正如由本领域的技术人员所公知的,意图对象是提供对要执行的操作的描述 的数据结构。
[0035] 垫片应用程序415可以是在应用程序层106A内作为移动设备106上的后台服务 连续地运行的应用程序。垫片应用程序415可以通过注册以拦截应用程序安装操作(例 如,API调用310)来实现本文所描述的一些或全部功能。例如,垫片应用程序415可以向 移动设备106的操作系统注册,以接收指向一个或多个指定的API的调用。在一个实施例 中,一个或多个指定的API与用于启动新的应用程序安装或用于启动对现有应用程序的更 新版本的安装的API相对应。这样,垫片应用程序415可以注册,以接收API410的调用但 可以忽视与应用程序的安装或更新无关的API411和412的调用。在应用安卓操作系统的 移动设备106的环境中,垫片应用程序415可以注册,以接收具有活动行为的任何意图对 象,所述活动行为与新应用程序的安装或现有应用程序的更新版本相关。结果,在垫片应用 程序415安装在移动设备106上后,对API410的调用可以引起指向315垫片应用程序415 的安装操作。基于接收到拦截的安装操作,垫片应用程序415可以识别与该安装操作相关 联的移动应用程序(即,AppB)。通常,可以直接根据所拦截的安装操作识别出移动应用程 序。例如,在应用安卓操作系统的移动设备106的环境中,与所拦截的安装操作相关联的移 动应用程序可以在意图对象内被指定为执行活动行为的数据。
[0036] -旦将AppB识别为与安装操作相关联的移动应用程序,则垫片应用程序415可 以生成唯一地识别AppB的键值。在一个实施例中,该键值可以通过计算应用程序设置文 件405或设置文件405的一些预定部分的哈希值来生成。哈希值可以通过应用允许唯一地 识别应用程序的任何公知的哈希函数(例如,MD5、SHA-1等)来计算。在一个实施例中,如 果应用程序设置文件405为安卓包(.apk)文件,则哈希函数可以被应用至.apk文件本身 或.apk文件的部分(例如,内部的classes,dex文件)以便将移动应用程序唯一地识别作 为AppB。在一个实施例中,垫片应用程序415可以提供计算机代码来生成键值(例如,通 过在设置文件405或其部分上执行哈希函数)。在另一实施例中,垫片应用程序415可以利 用另一应用程序或者操作系统的服务来生成键值。
[0037] 垫片应用程序415可以附加地编译与移动应用程序相关联的元数据。例如,垫片 应用程序可以确定应用程序的名称、开发该应用程序的软件公司、用于对应用程序进行数 字签名的签名,和/或可以提供关于该应用程序的信息的任何其它元数据。在一个实施例 中,可以从应用程序设置文件405的某个预定义的部分来检索所述元数据。因此,垫片应用 程序415可以简单地提取存储在设置文件405的这些预定义的部分中的数据。然后,可以 将键值和元数据(统称为应用程序标识符)打包并传输至后端服务器104A。在一个实施例 中,在将应用程序标识符传送至后端服务器104A之前,使用公知的密码技术来对应用程序 标识符进行加密。
[0038] -旦应用程序标识符准备好被传送至后端服务器104A(S卩,服务器应用程序),则 垫片应用程序415可以确定被用于将信息传输至后端服务器104A的通信协议。基于移动设 备的连接属性,多种协议可以用于将应用程序标识符传送至后端服务器104A。在一个实施 例中,如果移动设备106连接至因特网,则应用程序标识符可以经由英特网连接被传送至 后端服务器104A。在另一实施例中,可以使用电话专用的通信信道将应用程序标识符传送 至后端服务器104A。例如,可以经由到预定义的电话号码的短消息服务(SMS)消息来将应 用程序标识符传送至后端服务器104A。还可以通过启动移动设备106与预定义的电话号码 之间的通信,使用双音多频信令或交互式语音响应(IVR)消息来传送应用程序标识符。在 一个实施例中,预定义的电话号码可以是由安全厂商(例如,垫片应用程序415的供应商) 提供的免税的电话号码。在进一步的实施例中,应用程序标识符可以与具有到后端服务器 104A的首选连接的另一设备进行通信,并且所述应用程序标识符可以从该设备被发送至后 端服务器104A。例如,移动设备106可以不具有到后端服务器104A的可用的连接但可以连 接至具有因特网连接的膝上型计算机。在这样的情况下,应用程序标识符可以被传输至膝 上型计算机,以进一步经由膝上型计算机的因特网连接传输至后端服务器104A。
[0039] 在一个实施例中,可以基于默认优先级来确定适当的通信协议。例如,当因特网连 接可用时,可以优选经由因特网来将应用程序标识符传送至后端服务器104A。因此,经由因 特网传送可以具有最高的优先级。这样,垫片应用程序415可以通过从最高优先级协议开 始的优先级列表来进行,并且可以选择可用的第一个通信协议。在一个实施例中,优先级列 表可以由移动设备106的用户来配置。
[0040] 垫片应用程序415可以附加地确定应用程序标识符应被传送至的适当的后端服 务器104A。尽管图4示出了单个后端服务器104A,但通常存在多个可用的后端服务器。在 一个实施例中,可以基于移动设备的地理位置(例如,基于移动设备的GPS位置)来确定适 当的后端服务器104A。在另一实施例中,一个或多个后端服务器104A可以专用于特定的移 动设备106。因此,移动设备106的类型可以确定适当的后端服务器104A。在另一实施例 中,可以基于垫片应用程序415的级别来确定后端服务器104A。例如,与标准版本的垫片 应用程序415相比,高级版本的垫片应用程序415可以与后端服务器104A的更大的池相关 联,使得对于高级版本而言,接收响应可以更快。当垫片应用程序415确定适当的通信协议 和后端服务器104A时,应用程序标识符可以在425中被路由至移动设备106的适当的网络 接口420,以用于传输至后端服务器104A。
[0041] 在330中,应用程序标识符被传输至后端服务器104A。可以由后端服务器104A利 用应用程序标识符来确定应用程序的状态。如上面关于图3所描述的,在后端服务器104A 上执行的服务器应用程序维持先前所识别和分析的应用程序的数据库430。在示出的实施 例中,数据库430包括应用程序的名称、应用程序的键值(即,与由垫片应用程序415计算 出的键值相匹配的键值)以及应用程序的状态。为清楚起见,示出的数据库430包含有限数 量的字段。然而,数据库430还可以包括属于所分析的应用程序的附加信息。例如,该状态 字段不包含将应用程序识别为恶意或良性的分立状态,相反可以包含与应用程序相关联的 数字信誉度分数。垫片应用程序415可以利用信誉度分数与可配置的信誉阈值进行比较, 以便确定移动应用程序是恶意还是良性的。在一个实施例中,数据库430的附加字段可以 识别有助于应用程序的信誉分数的移动应用程序的属性。
[0042] 在所描述的实施例中,App B与键值值2相对应。由此,响应于接收应用程序标识 符,在后端服务器104A上执行的服务器应用程序可以提取该键值。因为垫片应用程序415 和服务器应用程序利用了相同的函数来计算用于移动应用程序的键值,所以在所接收的应 用程序标识符中的键值也具有值2,与在移动设备106上对App B的尝试安装相对应。服务 器应用程序可以利用键值值来搜索数据库430,以确定App B具有良性的状态。因此,App B不是恶意的,并且对于移动设备106而言安装App B是可接受的。然而,如果应用程序标 识符指示键值值为1,与APP A相对应,则服务器应用程序将确定App A是恶意的,并且不应 该被安装在移动设备上。
[0043] 在335中,指示AppB的状态的响应(通过服务器应用程序)从后端服务器104A 传输至移动设备106。在一个实施例中,可以利用与用于将应用程序标识符传输至后端服 务器104A的协议相同的协议来传送来自服务器应用程序的响应。然而,在替代的实施例 中,可以利用与用于传输应用程序标识符的协议不同的协议来传送来自服务器应用程序的 响应。在一个实施例中,可以对来自服务器应用程序的响应进行加密。因为响应335指示 AppB为良性的,所以在345中垫片应用程序415允许用于API410的调用进行,由此准许 AppB在移动设备106上的安装。当确定应用程序为良性的时,对用于安装操作的调用的拦 截和对后端服务器的询问对于移动设备106的用户而言是透明的,使得呈现给用户的移动 应用程序的安装是以常规方式发生的。当确定应用程序为恶意时,垫片应用程序415可以 警告移动设备106的用户:该应用程序被确定为恶意,并且因此将不进行安装(或者,如果 用户肯定地忽视提供的警告,则进行安装),并且可以协调与恶意应用程序相关联的应用程 序设置文件的删除。因为用于识别并且确定移动应用程序的状态所需的大部分的处理和存 储器需求由在后端服务器104A上执行的应用程序来满足,所以垫片应用程序415仅需要有 限的存储器和处理资源。因此,可以在不加重移动设备106的有限的存储器和处理资源的 负担的情况下,识别出移动应用程序为恶意的并且禁止其安装在移动设备106上。
[0044] 现在参考图5,过程500示出了根据本公开的实施例的示例过程流程,通过所述示 例过程流程后端服务器应用程序识别移动应用程序的状态并且将该状态传送至移动设备。 在步骤505中,服务器应用程序从移动设备106接收应用程序标识符。正如参考图3和图4 所描述的,应用程序标识符包含识别移动应用程序的信息,针对所述信息,用于安装操作的 调用在移动设备106上被拦截。
[0045] 在步骤510中,服务器应用程序从应用程序标识符提取数据。在一个实施例中,应 用程序标识符以加密的形式被传送至服务器应用程序。由此,从应用程序标识符提取数据 可以涉及:对应用程序标识符进行解密,以及从应用程序标识符提取并拦截唯一地识别移 动应用程序的键值和与该移动应用程序相关联的元数据。
[0046] 在步骤515中,服务器应用程序可以利用从应用程序标识符提取的键值来检测数 据库430中匹配的移动应用程序。如上所描述的,服务器应用程序可以搜索因特网以找出 移动应用程序并且维护所识别的移动应用程序的状态的数据库430。在一个实施例中,结合 对应用程序的分析,服务器应用程序可以向移动应用程序的供应商提供证书,指示该应用 程序已经被分析并且可以安全地用于安装。例如,在线应用程序存储库可以显示与移动应 用程序相关联的证书,使得移动设备106的用户可以确定应用程序可以安全地用于安装。 由此,尽管基于从服务器应用程序接收到应用程序是安全的指示,但是对移动应用程序的 安装仍可以依情况而定,如果应用程序拥有这样的证书,则移动设备106的用户在购买该 应用程序之前可以确信该应用程序是安全的并且可以允许其安装。在步骤520中,确定数 据库430中是否存在匹配的键值。
[0047] 如果在数据库430中找到匹配的键值,则在525中服务器应用程序将移动应用程 序的状态发送至移动设备106。如上面所描述的,该状态可以包括将移动应用程序识别为恶 意或良性的的分立指示,或者可以包括信誉度分数,从而由移动设备106将所述信誉度分 数与可配置的信誉阈值进行比较,以便确定安装所述移动应用程序是否安全。被发送至移 动设备106的状态还可以包括附加信息,例如,服务器应用程序将其保持在数据库430中的 应用程序的属性。例如,尽管特定的移动应用程序可以被识别为良性的,但被传输至移动设 备的状态可以附加地指示移动设备106的用户可能希望知道的所述移动应用程序的属性 (例如,应用程序能够进行GPS追踪等)。
[0048] 如果在数据库430中未找到键值匹配,则在530中可以使用从应用程序标识符提 取的元数据来搜索数据库430。所提取的元数据可以提供诸如应用程序的名称、应用程序的 发行商、应用程序的来源(例如,下载应用程序的网站)、用于对应用程序进行签名的数字 签名等之类的信息。尽管在数据库430中不存在用于移动应用程序的直接匹配,但可以利 用元数据来暗示移动应用程序的状态。例如,如果数据库430中出现了关于特定的应用程 序发行商的多个记录并且与该发行商相关联的应用程序的全部或一些关键部分被确定为 恶意的,则可以暗示具有相同的发行商的移动应用程序是恶意的。同样,如果关于移动应用 程序的特定来源的多个记录指示与该来源相关联的这样的应用程序的全部或一些关键部 分是良性的,则可以暗示来自相同来源的移动应用程序是良性的。如果在535中可以基于 从应用程序标识符提取的元数据来暗示移动应用程序的状态,则在525中将该状态发送至 移动设备106。然而,如果在535中从所提取的元数据中不能暗示移动应用程序的状态,则 在540中服务器应用程序可以发送不确定的状态至移动设备。可以由移动设备106以不同 的方式对所述不确定的状态进行处理。在一个实施例中,移动设备106可以允许具有不确 定的状态的移动应用程序的安装进行。在另一实施例中,可以总是阻止对具有不确定的状 态的移动应用程序的安装。在又一实施例中,可以暂停对具有不确定的状态的移动应用程 序的安装,直到可以获得确定的状态。例如,在步骤545中,服务器应用程序可以利用所提 取的元数据(例如,应用程序的来源)来下载移动应用程序。这样,可以将关于与所接收的 应用程序标识符相关联的移动应用程序的记录添加到数据库430中。如果服务器应用程序 能够下载并且分析移动应用程序,则其随后可以向移动设备106发送确定的状态。由此,如 果移动设备106被配置为使具有不确定的状态的移动应用程序的安装暂停,则从服务器应 用程序对确定的状态的接收可以允许移动设备允许或阻止该安装。
[0049] 正如从上面的解释中应该显而易见的,本文公开的实施例示出了在不加重移动设 备的有限的存储器和处理资源的负担的情况下用于识别并且防止恶意应用程序在移动设 备上安装的系统、方法和计算机程序产品。尽管已经针对具有特定的操作系统的移动设备 示出了特定的示例,但所公开的实施例同样适用于所有类型和所有操作系统的移动设备。
[0050] 在上面的描述中,出于解释的目的,阐述了多种具体的细节以便提供对所公开的 实施例的详尽理解。然而,对于本领域的技术人员而言显而易见的是,所公开的实施例可以 在没有这些具体细节的情况下实施。在其它实例中,以框图的形式示出了结构和设备,以便 避免使所公开的实施例难以理解。此外,出于可读性和指导性的目的,主要对本公开中使用 的语言进行了选择,并且可以不对其进行选择来描述或限制本发明的主题,而是依靠所需 的权利要求来确定这样的发明主题。另外,说明书中对"一个实施例"或"实施例"的引用 意味着结合实施例所描述的特定的特征、结构或特性包括在至少一个所公开的实施例中, 并且对"一个实施例"或"实施例"的多次引用不应被理解为必须全部引用同一实施例。还 应理解的是,上面描述的实施例可以相互结合使用并且可以以与所示出的顺序不同的顺序 来执行举例示出的过程步骤。对于本领域的技术人员而言,基于对上面的描述的浏览,许多 其它实施例将是显而易见的。
【权利要求】
1. 一种非暂时性计算机可读介质,其包括存储于其上的计算机可执行指令,用于使处 理器用于: 拦截在移动设备上安装应用程序的请求; 生成唯一地识别所述应用程序的键值; 通过网络连接将所述键值发送至服务器应用程序; 通过所述网络连接接收指示所述应用程序的状态的响应;并且 当所述状态指示所述应用程序为恶意的时阻止所述应用程序在所述移动设备上的安 装。
2. 如权利要求1所述的非暂时性计算机可读介质,其中,用于使所述处理器拦截在移 动设备上安装应用程序的请求的所述指令包括:用于使所述处理器将垫片应用程序注册作 为所述移动设备上的后台服务的指令。
3. 如权利要求2所述的非暂时性计算机可读介质,其中,用于使所述处理器将所述垫 片应用程序注册作为所述移动设备上的后台服务的指令包括:用于注册所述垫片应用程序 以拦截应用程序编程接口的调用的指令,所述应用程序编程接口用于启动在所述移动设备 上对所述应用程序的安装。
4. 如权利要求1所述的非暂时性计算机可读介质,其中,用于使所述处理器生成唯一 地识别所述应用程序的键值的指令包括:用于使所述处理器将哈希算法应用于应用程序设 置文件的指令,所述应用程序设置文件启动了对所述应用程序的安装。
5. 如权利要求1所述的非暂时性计算机可读介质,其进一步包括:用于使所述处理器 在通过网络将所述键值发送至所述服务器应用程序之前对所述键值进行加密的指令。
6. 如权利要求1所述的非暂时性计算机可读介质,其进一步包括:用于使所述处理器 编译与所述应用程序相关联的元数据的指令。
7. 如权利要求6所述的非暂时性计算机可读介质,其中,与所述应用程序相关联的元 数据包括:所述应用程序的发行商、所述应用程序的来源,以及用于对所述应用程序进行签 名的数字签名中的至少一个。
8. 如权利要求6所述的非暂时性计算机可读介质,其进一步包括:用于使所述处理器 通过所述网络连接将所述元数据与所述键值一起发送至所述服务器应用程序的指令。
9. 如权利要求1所述的非暂时性计算机可读介质,其进一步包括:用于使所述处理器 确定通信协议的指令,所述通信协议用于通过所述网络连接将所述键值发送至所述服务器 应用程序。
10. 如权利要求9所述的非暂时性计算机可读介质,其中,用于使所述处理器确定通信 协议的指令包括:用于使所述处理器识别来自优先级列表的通信协议的指令,所述优先级 列表能够由所述移动设备的用户配置。
11. 如权利要求1所述的非暂时性计算机可读介质,其中,用于使所述处理器通过网络 连接来发送所述键值的指令包括:用于使所述处理器通过电话专用的通信信道来传送所述 键值的指令。
12. 如权利要求11所述的非暂时性计算机可读介质,其中,用于使所述处理器通过电 话专用的通信信道来发送所述键值的指令包括:用于使所述处理器将所述键值作为短消息 服务(SMS)消息发送到预定义的电话号码的指令。
13. -种方法,其包括: 利用移动设备中的处理器来拦截在所述移动设备上安装应用程序的请求; 利用所述处理器来生成唯一地识别所述应用程序的键值; 利用所述处理器通过网络连接将所述键值发送至服务器应用程序; 利用所述处理器通过所述网络连接来接收指示所述应用程序的状态的响应;并且 当所述状态指示所述应用程序为恶意的时,利用所述处理器来阻止所述应用程序的安 装。
14. 如权利要求13所述的方法,其中,拦截在所述移动设备上安装应用程序的请求的 动作包括:将垫片应用程序注册作为所述移动设备上的后台服务。
15. 如权利要求14所述的方法,其中,将所述垫片应用程序注册作为所述移动设备上 的后台服务的动作包括:注册所述垫片应用程序以拦截应用程序编程接口的调用,所述应 用程序编程接口被用于启动在所述移动设备上对所述应用程序的安装。
16. -种移动设备,其包括 存储器; 网络接口;以及 能够操作地耦合至所述存储器与所述网络接口的处理器,所述处理器适用于执行存储 在所述存储器中的程序代码用于: 拦截在所述移动设备上安装移动应用程序的请求; 生成唯一地识别所述移动应用程序的键值; 利用所述网络接口将所述键值发送至服务器应用程序; 利用所述网络接口接收指示所述移动应用程序的状态的响应;并且 当所述状态指示所述移动应用程序为恶意的时,阻止在所述移动设备上对所述移动应 用程序的安装。
17. -种用于识别应用程序的状态的方法,包括: 在后端服务器处理器上执行的服务器应用程序处通过网络连接从移动设备接收应用 程序标识符; 通过所述服务器应用程序利用所述应用程序标识符来确定来自记录的数据库的所述 应用程序的状态,所述记录的数据库包括多个已分析的应用程序; 通过所述服务器应用程序通过所述网络连接来将所述应用程序的状态发送至所述移 动设备。
18. 如权利要求17所述的方法,其中,所述应用程序标识符包括:唯一地识别所述应用 程序的键值和与所述应用程序相关联的元数据。
19. 如权利要求18所述的方法,其中,利用所述应用程序标识符来确定所述应用程序 的状态的动作包括:搜索所述数据库以确定所述数据库中是否存在与所述键值相匹配的记 录。
20. 如权利要求19所述的方法,其中,利用所述应用程序标识符来确定所述应用程序 的状态的动作包括:当确定所述数据库中不存在与所述键值相匹配的记录时,利用所述元 数据来暗示来自所述数据库中的记录的应用程序的状态。
21. -种非暂时性计算机可读介质,其包括存储于其上的计算机可执行指令,使处理器 用于: 在后端服务器处理器上执行的服务器应用程序处通过网络连接从移动设备接收应用 程序标识符; 通过所述服务器应用程序利用所述应用程序标识符来确定来自记录的数据库的所述 应用程序的状态,所述记录的数据库包括多个已分析的应用程序; 通过所述服务器应用程序将所述应用程序的状态通过所述网络连接发送至所述移动 设备。
22. 如权利要求21所述的非暂时性计算机可读介质,其中,所述应用程序标识符包括: 唯一地识别所述应用程序的键值和与所述应用程序相关联的元数据。
23. 如权利要求22所述的非暂时性计算机可读介质,其中,利用所述应用程序标识符 来确定所述应用程序的状态的动作包括:搜索所述数据库以确定所述数据库中是否存在与 所述键值相匹配的记录。
24. 如权利要求23所述的非暂时性计算机可读介质,其中,利用所述应用程序标识来 确定所述应用程序的状态的动作包括:当确定所述数据库中不存在与所述键值相匹配的记 录时,利用所述元数据来暗示来自所述数据库中的记录的应用程序的状态。
25. -种后端服务器,其包括: 存储器; 网络接口; 能够操作地耦合至所述存储器和所述网络接口的处理器;以及 由所示处理器执行的服务器应用程序,用于: 通过网络连接从移动设备接收应用程序标识符; 利用所述应用程序标识符来确定来自记录的数据库的应用程序的状态,所述记录的数 据库包括多个已分析的应用程序; 通过所述网络连接将所述应用程序的状态发送至所述移动设备。
【文档编号】G06F21/56GK104246788SQ201380016442
【公开日】2014年12月24日 申请日期:2013年4月17日 优先权日:2012年4月18日
【发明者】S·达斯, J·迪瓦卡尔拉, P·夏尔马 申请人:迈克菲公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1