移动设备恶意软件的预安装检测系统和方法与流程

文档序号:11142314阅读:725来源:国知局
移动设备恶意软件的预安装检测系统和方法与制造工艺

保护移动设备免受恶意软件侵扰是移动设备安全的组成部分。为此,安全软件开发者不断寻求各种办法来改进移动设备反恶意软件系统的速度、效率和功效。许多反恶意软件系统通过扫描文件以查找已知的恶意软件签名来检测恶意软件。如果反恶意软件系统检测到文件内的代码与已知的恶意软件签名相匹配,则反恶意软件系统可执行多种安全操作,诸如隔离或删除该文件。不幸的是,此时恶意软件文件可能已经损害了移动设备的安全。当通过应用商店客户端(如GOOGLE PLAY客户端或IOS APP STORE客户端)下载了恶意软件时可能尤其如此。例如,智能电话上的传统反恶意软件系统可能会等到应用商店客户端已将应用程序下载并安装在智能电话上之后再扫描应用程序。安装和扫描之间的这个时间窗口不管多么小,都可能足以让恶意软件损害智能电话的安全。

因此,需要一种更高效而且更有效的机制来在移动设备上进行恶意软件的预安装检测。



技术实现要素:

如将在下文更详细地描述,本公开描述了用于在移动设备上进行恶意软件的预安装检测的各种系统和方法。例如,在移动设备上进行恶意软件预安装检测的方法可包括:拦截在移动计算设备上安装应用程序的应用程序安装代理的一个或多个通信。该方法可进一步包括:基于拦截到的所述一个或多个通信,识别应用程序安装代理已至少部分地下载的应用程序。该方法还可包括:响应于识别到应用程序,在应用程序被安装在移动计算设备上之前,扫描应用程序以查找恶意软件。该方法可额外包括:基于所述扫描来确定应用程序包含恶意软件。该方法可进一步包括:响应于确定应用程序包含恶意软件来执行安全操作。

在一些实施例中,监控代理可启动应用程序安装代理,使得监控代理能够拦截来自应用程序安装代理的通信。在这些实施例中,在启动应用程序安装代理之后,监控代理可执行上述的拦截步骤和识别步骤。

在至少一个实施例中,拦截应用程序安装代理的所述一个或多个通信可包括:拦截来自应用程序安装代理的从远程服务器下载应用程序的请求。在一些例子中,拦截应用程序安装代理的所述一个或多个通信可包括:拦截应用程序安装代理的在移动计算设备上安装应用程序的请求。在这些例子中,识别应用程序可包括:基于在移动计算设备上安装应用程序的请求,识别应用程序的文件路径。在一些实施例中,识别应用程序可进一步包括:将文件路径提供给执行扫描步骤的扫描代理。

在各种例子中,扫描应用程序可包括:在应用程序正在下载时和/或在应用程序已完全下载之后扫描应用程序。在至少一个例子中,执行安全操作可包括阻止应用程序的安装。

在一个实施例中,用于实现上述方法的系统可包括存储在存储器中的拦截模块,该拦截模块拦截在移动计算设备上安装应用程序的应用程序安装代理的一个或多个通信。该系统可进一步包括存储在存储器中的识别模块,该识别模块基于拦截到的所述一个或多个通信,识别应用程序安装代理已至少部分地下载的应用程序。该系统还可包括存储在存储器中的扫描模块,该扫描模块在应用程序被安装在移动计算设备上之前扫描应用程序。该系统可额外包括存储在存储器中的确定模块,该确定模块基于所述扫描来确定应用程序包含恶意软件。该系统可进一步包括存储在存储器中的安全模块,该安全模块响应于确定应用程序包含恶意软件来执行安全操作。此外,该系统可包括执行拦截模块、识别模块、扫描模块、确定模块和安全模块的至少一个物理处理器。

在一些例子中,可将上述方法编码为非暂态计算机可读介质上的计算机可读指令。例如,计算机可读介质可包括一个或多个计算机可执行指令,所述指令在由移动计算设备的至少一个处理器执行时,可使移动计算设备拦截在移动计算设备上安装应用程序的应用程序安装代理的一个或多个通信。所述一个或多个计算机可执行指令可进一步使移动计算设备基于拦截到的所述一个或多个通信来识别应用程序安装代理已至少部分地下载的应用程序。所述一个或多个计算机可执行指令还可使移动计算设备在应用程序被安装在移动计算设备上之前扫描应用程序以查找恶意软件。所述一个或多个计算机可执行指令可额外使移动计算设备基于所述扫描来确定应用程序包含恶意软件。所述一个或多个计算机可执行指令可进一步使移动计算设备响应于确定应用程序包含恶意软件来执行安全操作。

来自上述实施例中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施例、特征和优点。

附图说明

附图示出了多个示例性实施例并且为说明书的一部分。这些附图结合下面的描述展示并且说明本发明的各种原理。

图1是用于在移动设备上进行恶意软件预安装检测的示例性系统的框图。

图2是用于在移动设备上进行恶意软件预安装检测的另一示例性系统的框图。

图3是用于在移动设备上进行恶意软件预安装检测的示例性方法的流程图。

图4是用于在智能电话上进行恶意软件预安装检测的示例性系统的框图。

图5是能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算系统的框图。

图6是能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算网络的框图。

在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施例易受各种修改和替代形式的影响,但在附图中以举例的方式示出了特定实施例并且将在本文详细描述。然而,本文所述的示例性实施例并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。

具体实施方式

本公开整体涉及用于在移动设备上进行恶意软件预安装检测的系统和方法。如将在下文更详细地说明,本文所述的系统和方法可拦截应用程序安装代理的通信,以便在恶意软件被安装在移动计算设备上之前检测恶意软件。具体地讲,通过拦截来自应用程序安装代理的下载应用程序和/或安装应用程序的请求、扫描应用程序以查找恶意软件、然后阻止应用程序的安装,本文中的系统和方法可帮助反恶意软件开发者创建强大的主动式反恶意软件系统。

下文将参照图1、图2和图4,提供用于在移动设备上进行恶意软件预安装检测的示例性系统的详细描述。还将结合图3提供对应计算机实现的方法的详细描述。此外,将分别结合图5和图6提供能够实现本文所述实施例中的一者或多者的示例性计算系统和网络体系结构的详细描述。

图1是用于在移动设备上进行恶意软件预安装检测的示例性系统100的框图。如该图所示,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,以及如将在下文更详细地说明,示例性系统100可包括拦截模块104,该模块拦截在移动计算设备上安装应用程序的应用程序安装代理的一个或多个通信。示例性系统100还可包括识别模块106,该模块基于拦截到的所述一个或多个通信来识别应用程序安装代理已至少部分地下载的应用程序。示例性系统100可进一步包括扫描模块108,该模块响应于识别到应用程序,在应用程序被安装在移动计算设备上之前扫描应用程序以查找恶意软件。示例性系统100可额外包括确定模块110,该模块基于所述扫描来确定应用程序包含恶意软件。示例性系统100还可包括安全模块112,该模块响应于确定应用程序包含恶意软件来执行安全操作。尽管被示为独立元件,但图1中的模块102中的一者或多者可表示单个模块或应用程序的部分。

在某些实施例中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,所述软件应用程序或程序在被计算设备执行时,可使计算设备执行一个或多个任务。例如,以及如将在下文更详细地描述,模块102中的一者或多者可表示被存储在一个或多个计算设备上并且被配置为在一个或多个计算设备上运行的软件模块,所述计算设备诸如为图2中示出的设备(如,移动计算设备202和/或服务器206)、图4中的智能电话402、图5中的计算系统510和/或图6中的示例性网络体系结构600的部分。图1中的模块102中的一者或多者还可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。

如图1所示,示例性系统100还可包括一个或多个数据库,诸如恶意软件签名数据库120。在一个例子中,恶意软件签名数据库120可被配置为存储多种已知的恶意软件签名。在该例子中,反恶意软件系统可扫描移动计算设备上的文件,以检测与在恶意软件签名数据库120中发现的恶意软件签名类似的恶意软件签名。这样,反恶意软件系统(如,图4中的反恶意软件系统412)可利用恶意软件签名数据库120来检测移动计算设备上的恶意软件。

恶意软件签名数据库120可表示单个数据库或计算设备的部分或者多个数据库或计算设备。例如,恶意软件签名数据库120可表示图2中的服务器206的一部分、图4中的智能电话402、图5中的计算系统510、和/或图6中的示例性网络体系结构600的部分。作为另外一种选择,图1中的恶意软件签名数据库120可表示能够被计算设备访问的一个或多个物理上独立的设备,诸如图2中的服务器206、图4中的智能电话402、图5中的计算系统510,和/或图6中的示例性网络体系结构600的部分。

图1中的示例性系统100可用多种方式来实现。例如,示例性系统100的全部或一部分可表示图2中的示例性系统200的部分。如图2所示,系统200可包括经由网络204与服务器206通信的移动计算设备202。在一个例子中,移动计算设备202可用模块102中的一者或多者进行编程和/或可存储恶意软件签名数据库120中的数据的全部或一部分。除此之外或作为另外一种选择,服务器206可用模块102中的一者或多者进行编程和/或可存储恶意软件签名数据库120中的数据的全部或一部分。

在一个实施例中,图1的模块102中的一者或多者在被移动计算设备202的至少一个处理器和/或服务器206执行时,使移动计算设备202和/或服务器206能够在恶意软件被安装在移动计算设备202上之前扫描和检测恶意软件。例如,以及如将在下文更详细地描述,拦截模块104可拦截在移动计算设备202上安装应用程序的应用程序安装代理210的一个或多个通信。然后,识别模块106可基于拦截到的所述一个或多个通信来识别应用程序安装代理210已至少部分地下载的应用程序208。响应于识别模块106识别到应用程序208,在应用程序208被安装在移动计算设备202上之前,扫描模块108可扫描应用程序208以查找恶意软件。然后,确定模块110可基于对应用程序208的扫描来确定应用程序208包含恶意软件。最后,安全模块112可响应于确定应用程序208包含恶意软件来执行安全操作。

移动计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。移动计算设备202的例子包括但不限于:笔记本电脑、平板电脑、移动电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备(如,智能手表、智能眼镜等)、游戏机、这些设备中一者或多者的组合、图4中的智能电话402、图5中的示例性计算系统510、或任何其他合适的计算设备。

服务器206通常表示能够托管应用程序并且向安装在移动设备上的应用商店客户端提供应用程序的任何类型或形式的计算设备。例如,服务器206可以是GOOGLE PLAY服务的一部分,并且可允许配置有GOOGLE PLAY客户端的智能电话下载GOOGLE PLAY应用程序。服务器206的例子包括但不限于被配置为提供各种数据库服务和/或运行某些软件应用程序的应用程序服务器和数据库服务器。

网络204通常表示能够促进通信或数据传输的任何介质或体系结构。网络204的例子包括但不限于:内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、互联网、电力线通信网(PLC)、蜂窝网络(如,全球移动通信系统(GSM)网络)、图4中的示例性网络404、图6中的示例性网络体系结构600等等。网络204可使用无线或有线连接来促进通信或数据传输。在一个实施例中,网络204可促进移动计算设备202与服务器206之间的通信。

图3是用于在移动设备上进行恶意软件预安装检测的示例性计算机实现的方法300的流程图。图3中示出的步骤可通过任何合适的计算机可执行代码和/或计算系统来执行。在一些实施例中,图3中所示的步骤可由图1中的系统100、图2中的系统200、图4中的智能电话402、图5中的计算系统510和/或图6中的示例性网络体系结构600的部分的组件中的一者或多者执行。

如图3所示,在步骤302处,本文所述系统中的一者或多者可拦截在移动计算设备上安装应用程序的应用程序安装代理的一个或多个通信。例如,拦截模块104可作为图2中的移动计算设备202的一部分,拦截应用程序安装代理210的一个或多个通信。

如本文所用,术语“通信”通常是指进程、应用程序、软件模块和/或程序发出或收到的任何类型或形式的输入/输出。此外,术语“通信”通常可指两个软件模块之间任何类型或形式的交互,诸如经由应用程序编程接口(API)调用或经由其他通信协议(FTP、HTTPS等)交换的通信。在一些例子中,通信可包括应用程序进程从存储设备读取数据或向存储设备写入数据的尝试。例如,应用程序安装代理可调用系统API来将应用程序存储和/或安装在智能存储设备上。通信可包括任何其他合适的交互、输入/输出和/或任何类型的软件发出和/或收到的数据。

可经由通信来发送多种信息和/或数据。例如,可将可执行文件或脚本从应用商店服务器发送到智能电话上的应用商店客户端。在另一个例子中,应用程序安装代理可通过向API发送特定参数来调用远程服务器上的API。可经由通信发送的数据的例子可包括但不限于:任何类型或形式的应用程序文件(如,Android包文件(APK)或iPhone应用程序档案(IPA))、可执行档、脚本、库、API参数、协议参数、数据库文件、压缩文件、输入/输出数据、或任何其他合适类型或形式的数据。

两个软件模块(诸如应用程序安装代理和远程服务器上的API)之间的通信可经由多种协议来发送。例如,应用程序安装代理和远程服务器可经由超文本传输协议(HTTP)或文件传输协议(FTP)进行通信。在一些例子中,相同系统内的进程可经由系统特定协议进行通信。例如,ANDROID设备上的应用程序可经由多种ANDROID特定协议和参数(诸如“意图”声明)来彼此通信以及与其他系统进程通信。

如本文所用,短语“应用程序安装代理”通常是指安装在移动计算设备上的任何类型或形式的应用商店客户端,该应用商店客户端被配置为从远程服务器(如GOOGLE PLAY客户端或IOS APP STORE客户端)下载应用程序并将应用程序安装到移动计算设备。例如,应用程序安装代理可包括允许智能电话用户从应用商店搜索并下载应用程序的客户端侧智能电话应用。应用程序安装代理可包括任何其他合适的服务、应用和/或软件模块,所述服务、应用和/或软件模块通常自动执行应用程序下载进程和在移动设备上安装应用程序的进程。

应用程序安装代理可被配置为从托管应用程序的远程服务器下载并安装多种应用程序和文件(如Android APK或IOS IPA)。此外,应用程序安装代理可被配置为经由多种协议(如上所讨论)跨多种网络和网络配置来与远程服务器通信。例如,应用程序安装代理可被配置为经由互联网、蜂窝网络或任何其他合适类型的网络来下载并安装应用程序。

拦截模块104可用多种方式拦截应用程序安装代理210的一个或多个通信。例如,拦截模块104可拦截来自应用程序安装代理210的从服务器206下载应用程序208的请求。在一些实施例中,拦截模块104可拦截应用程序安装代理210的在移动计算设备202上安装应用程序208的请求。例如,在Android设备上,拦截模块104可通过拦截从应用程序安装代理210发出的“意图”声明来拦截安装应用程序208的请求。

在各种实施例中,拦截模块104可以是监控代理(诸如图4中的监控代理414)的一部分。在这些实施例中,监控代理可启动应用程序安装代理210,使得监控代理能够拦截来自应用程序安装代理210的通信。例如,作为智能电话上的反恶意软件系统的一部分的监控代理可针对安装在智能电话上的应用商店客户端启动和设置权限。诸如此类的配置可使监控代理能够执行各种监控任务,诸如钩住应用程序安装代理210的输入/输出。在至少一个实施例中,监控代理可被配置为中断和重定向启动应用程序安装代理210的尝试。例如,当智能电话用户尝试启动应用商店客户端时,监控代理可中断所述启动尝试,然后将应用商店客户端重新启动为监控代理可监控的进程。

如图3所示,在步骤304处,本文所述系统中的一者或多者可基于拦截到的所述一个或多个通信来识别应用程序安装代理已至少部分地下载的应用程序。例如,识别模块106可,作为图2中的移动计算设备202的一部分,基于拦截模块104拦截到的所述一个或多个通信来识别应用程序208。此外,应用程序安装代理210可能已至少部分地下载了应用程序208。

如本文所用,术语“应用程序”通常是指任何类型或形式的可执行文件和/或进程。例如,应用程序可包括APK或IPA文件。应用程序可以为任意大小。例如,应用程序可以大至100兆字节或小至数千字节。在一些例子中,应用程序可包括一个或多个文件,所述文件可在移动计算设备202上以多种配置安装。在一些例子中,应用程序可包括能够在移动计算设备202的系统和应用程序层安装的文件。

识别模块106可用多种方式识别应用程序208。例如,识别模块106可在应用程序安装代理210正从服务器206下载应用程序208的时候识别应用程序208。在一些实施例中,识别模块106可在应用程序安装代理210请求在移动计算设备202上安装应用程序208之后识别应用程序208。在至少一个例子中,识别模块106可通过基于应用程序安装代理210的在移动计算设备202上安装应用程序208的请求来识别应用程序208的文件路径,从而识别应用程序208。在各种实施例中,然后识别模块106可将应用程序208的文件路径发送给执行扫描步骤的扫描代理(如,图2中的扫描模块108或图4中的扫描代理416)。在这些实施例中,扫描代理可使用应用程序208的文件路径来定位和扫描应用程序208。

在各种实施例中,识别模块106可以是监控代理的一部分。在这些实施例中,监控代理可启动应用程序安装代理210,以使得监控代理能够识别应用程序安装代理210已至少部分地下载的应用程序。例如,监控代理可在启动应用程序安装代理210时设置权限,以允许监控代理识别应用程序安装代理210的下载和/或安装应用程序208的尝试。

识别模块106可在应用程序208被安装之前的任何合适的时间识别应用程序208。例如,识别模块106可在应用程序安装代理210正下载应用程序208的时候识别应用程序208。在另一个例子中,识别模块106可在应用程序安装代理210已完全下载应用程序208之后识别应用程序208。

如图3所示,在步骤306处,本文所述系统中的一者或多者可响应于识别到应用程序,在应用程序被安装在移动计算设备上之前扫描应用程序以查找恶意软件。例如,扫描模块108可作为图2中的移动计算设备202的一部分来扫描应用程序208以查找恶意软件。此外,扫描模块108可在应用程序安装代理210在移动计算设备202上安装应用程序208之前扫描应用程序208。

扫描模块108可使用多种恶意软件扫描方法来扫描应用程序208。恶意软件扫描方法的例子可包括但不限于:字符串扫描方法、通配符方法、错配方法、通用检测方法、书签方法、智能扫描方法、框架检测方法、启发式分析、病毒特异性检测和/或任何其他合适的恶意软件扫描进程。

扫描模块108可用多种方式扫描应用程序208。例如,扫描模块108可在应用程序安装代理210下载应用程序208时扫描应用程序208。在一些实施例中,扫描模块108可在应用程序安装代理210已完全下载应用程序208之后扫描应用程序208。在至少一个例子中,扫描模块108可响应于应用程序安装代理210的安装应用程序208的尝试而扫描应用程序208。在各种实施例中,扫描模块108可在识别模块106识别到应用程序208之后立即扫描应用程序208。

根据一些实施例中,扫描模块108可使用签名匹配方法来扫描应用程序208。在这些实施例中,扫描模块108可扫描应用程序208以查找已知恶意软件签名(诸如存储在恶意软件签名数据库120中的恶意软件签名)的匹配。

如图3所示,在步骤308处,本文所述系统中的一者或多者可基于所述扫描来确定应用程序包含恶意软件。例如,确定模块110可基于对应用程序208的扫描来确定应用程序208包含恶意软件。

如本文所用,术语“恶意软件”通常是指:被配置为通常采取敌意、侵入、不安全、不受欢迎和/或恶意行为的任何类型或形式的代码、脚本、应用程序、软件模块、进程、和/或任何其他类型的计算机可执行指令。例如,恶意软件可包括智能电话上的收集敏感数据或私人数据的间谍软件程序。在另一个例子中,恶意软件可包括恶意计算机病毒,此类病毒尝试通过执行恶意功能(诸如删除文件或破坏系统进程)来中断计算机操作。恶意软件的一般例子可包括但不限于:计算机病毒、勒索软件、蠕虫、木马、隐蔽软件、键盘记录器、拨号器、间谍软件、广告软件、流氓安全软件、恶意浏览器辅助对象(BHO)、和/或任何合适类型或形式的恶意软件。

确定模块110可用多种方式确定应用程序208包含恶意软件。例如,如果应用程序208内的任何代码与已知的恶意软件签名(诸如存储在恶意软件签名数据库120中的恶意软件签名)类似或匹配,则确定模块110可确定应用程序208包含恶意软件。在一些实施例中,如果应用程序208的至少一个计算机可执行指令与恶意软件签名匹配,则确定模块110可确定应用程序208包含恶意软件。在一些例子中,确定模块110可确定应用程序208就其本身而言为恶意软件程序。在至少一个例子中,如果应用程序208的任何部分被怀疑是恶意软件,则确定模块110可确定应用程序208包含恶意软件,而不管应用程序208的该部分是否为恶意软件。例如,确定模块110可使用启发式算法来做出应用程序208包含恶意软件的知情“猜测”或确定。确定模块110可用任何其他合适的方式确定应用程序208包含恶意软件。

如图3所示,在步骤310处,本文所述系统中的一者或多者可响应于确定应用程序包含恶意软件来执行安全操作。例如,安全模块112可作为移动计算设备202的一部分来执行安全操作。

如本文所用,术语“安全操作”在结合本公开使用时通常是指为改善移动计算设备的安全而由软件模块(诸如安全模块112)采取的任何步骤。例如,反恶意软件系统可通过在确定文件包含恶意软件之后尝试隔离该文件来执行安全操作。安全操作的例子可包括但不限于:创建安全日志、隔离或删除包含恶意软件的文件、向移动设备的用户发送关于在设备上检测到恶意软件的通知、阻止恶意软件的安装、和/或尝试改进移动设备安全的任何其他合适的步骤或操作。

安全模块112可在确定模块110确定应用程序208包含恶意软件时执行多种安全操作。例如,安全模块112可隔离或删除应用程序208。在另一个例子中,安全模块112可警告移动计算设备202的用户应用程序208包含恶意软件。在一些实施例中,安全模块112可在安全日志中存储关于应用程序208的信息。在各种实施例中,安全模块112可执行安全操作的组合。例如,安全模块112可隔离应用程序208,然后通知移动计算设备202的用户应用程序208包含恶意软件。

在至少一个例子中,安全模块112可阻止应用程序208的安装。例如,安全模块112可阻止应用程序安装代理210的在移动计算设备202上安装应用程序208的尝试。在另一个例子中,安全模块112可甚至防止应用程序安装代理210尝试安装应用程序208。

如上文所简要提及,可将方法300并入智能电话上存储的反恶意软件系统中。图4中的系统400是反恶意软件系统412的示例性图示,该反恶意软件系统配置有模块102中的全部并且存储在智能电话402上。在该图示中,反恶意软件系统412包括监控代理414和扫描代理416。当智能电话402的用户尝试启动应用商店客户端410时,监控代理414可对所述尝试进行重定向,并且将应用商店客户端410启动为监控代理414可监控的进程。如此,监控代理414也许能够拦截应用商店客户端410发出和/或收到的通信,诸如下载并安装音乐应用程序408的尝试。

在该图示中,监控代理414可钩住应用商店客户端410的输入/输出进程,并且因此检测到应用商店客户端410正在经由网络404从应用商店服务器406下载音乐应用程序408。监控代理414可识别音乐应用程序408的文件路径并将该文件路径提供给扫描代理416,然后指示扫描代理416扫描音乐应用程序408。在该例子中,扫描代理416可以是恶意软件扫描模块,该模块被配置为使用文件路径来定位文件并且然后通过使用签名匹配扫描方法来确定文件是否包含恶意软件。

然后,扫描代理416可(在音乐应用程序408正下载时或在音乐应用程序408已完全下载后)扫描音乐应用程序408,并且可确定音乐应用程序408包含恶意软件。此时,扫描代理416可通知反恶意软件系统412应用程序408包含恶意软件。反恶意软件系统412可作为响应阻止应用商店客户端410安装音乐应用程序408的任何尝试。反恶意软件系统412还可在安全日志中报告该事件,然后通知智能电话402的用户音乐应用程序408包含恶意软件。

如上文结合图3中的方法300所述,应用商店客户端可能由于在应用程序经过恶意软件扫描之前在移动设备上安装应用程序而损害移动设备的安全。虽然一些解决方案可能尝试通过在安装后立即扫描应用程序来解决该问题,但是这些解决方案未能解决一个潜在的严重问题:即恶意软件即使只安装了很短时间,也可能严重损害移动设备的安全。

本公开可通过在应用程序被安装在移动设备上之前扫描应用程序以查找恶意软件来克服该问题。具体地讲,通过钩住应用商店客户端的输入/输出、识别应用程序、然后扫描应用程序以查找恶意软件,本文所述的系统和方法可在恶意软件被安装在移动设备上之前检测恶意软件,从而防止许多潜在的严重安全问题。

图5为能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算系统510的框图。例如,计算系统510的全部或一部分可执行和/或作为一种装置用于单独地或与其他元件结合来执行本文所述的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。计算系统510的全部或一部分也可执行和/或作为一种装置用于执行本文描述和/或示出的任何其他步骤、方法或过程。

计算系统510在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统510的例子包括但不限于:工作站、笔记本电脑、客户端侧终端、服务器、分布式计算系统、手持式设备或任何其他计算系统或设备。在其最基本的配置中,计算系统510可包括至少一个处理器514和系统存储器516。

处理器514通常表示能够处理数据或解译和执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施例中,处理器514可接收来自软件应用程序或模块的指令。这些指令可使处理器514执行本文描述和/或示出的一个或多个示例性实施例的功能。

系统存储器516通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器516的例子包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他适用的存储器设备。尽管不是必需的,但在某些实施例中,计算系统510可包括易失性存储器单元(诸如系统存储器516)和非易失性存储设备(诸如,主要存储设备532,如下详述)两者。在一个例子中,图1的模块102中的一者或多者可加载到系统存储器516中。

在某些实施例中,除处理器514和系统存储器516之外,示例性计算系统510还可包括一个或多个组件或元件。例如,如图5所示,计算系统510可包括存储器控制器518、输入/输出(I/O)控制器520和通信接口522,它们中的每一者都可通过通信基础结构512互连。通信基础结构512通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础结构。通信基础结构512的例子包括但不限于:通信总线(诸如工业标准体系结构(ISA))、外围组件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。

存储器控制器518通常表示能够处理存储器或数据或者控制计算系统510的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储器控制器518可通过通信基础结构512来控制处理器514、系统存储器516和I/O控制器520之间的通信。

I/O控制器520通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施例中,I/O控制器520可控制或促进计算系统510的一个或多个元件之间的数据传输,所述元件诸如处理器514、系统存储器516、通信接口522、显示适配器526、输入接口530和存储接口534。

通信接口522在广义上表示能够促进示例性计算系统510与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口522可促进计算系统510与包括附加计算系统的专用或公共网络之间的通信。通信接口522的例子包括但不限于:有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施例中,通信接口522可通过与网络(诸如互联网)的直接链接来提供与远程服务器的直接连接。通信接口522还可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。

在某些实施例中,通信接口522还可表示主机适配器,该主机适配器被配置为通过外部总线或通信信道来促进计算系统510与一个或多个附加网络或存储设备之间的通信。主机适配器的例子包括但不限于:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口522还可允许计算系统510参与分布式或远程计算。例如,通信接口522可接收来自远程设备的指令或将指令发送到远程设备以供执行。

如图5所示,计算系统510还可包括至少一个显示设备524,该显示设备通过显示适配器526联接到通信基础结构512。显示设备524通常表示能够以可视方式显示显示适配器526转发的信息的任何类型或形式的设备。类似地,显示适配器526通常表示被配置为转发来自通信基础结构512(或来自帧缓冲器,如本领域所已知)的图形、文本和其他数据以在显示设备524上显示的任何类型或形式的设备。

如图5所示,示例性计算系统510还可包括经由输入接口530联接到通信基础结构512的至少一个输入设备528。输入设备528通常表示能够向示例性计算系统510提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备528的例子包括但不限于:键盘、指示设备、语音识别设备或任何其他输入设备。

如图5所示,示例性计算系统510还可包括主要存储设备532和经由存储接口534联接到通信基础结构512的备份存储设备533。存储设备532和533通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备532和533可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等等。存储接口534通常表示用于在计算系统510的存储设备532和533与其他组件之间传输数据的任何类型或形式的接口或设备。在一个例子中,图1的恶意软件签名数据库120可存储在主要存储设备532中。

在某些实施例中,存储设备532和533可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的例子包括但不限于:软盘、磁带、光盘、闪存存储器设备等。存储设备532和533还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算系统510内的其他类似结构或设备。例如,存储设备532和533可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备532和533还可为计算系统510的一部分,或者可为通过其他接口系统进行访问的独立设备。

可将许多其他设备或子系统连接到计算系统510。相反地,无需图5中示出的所有组件和设备都存在,亦可实践本文描述和/或示出的实施例。上文提及的设备和子系统也可通过不同于图5所示的方式互连。计算系统510也可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施例可被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,短语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的例子包括但不限于:传输型介质(诸如载波)和非暂态型介质(诸如磁存储介质,如硬盘驱动器、磁带驱动器和软盘)、光存储介质(如,光盘(CD)、数字视频盘(DVD)和蓝光光盘)、电子存储介质(如,固态驱动器和闪存介质)和其他分配系统。

可将包含计算机程序的计算机可读介质加载到计算系统510中。然后可将计算机可读介质上存储的全部或部分计算机程序存储在系统存储器516和/或存储设备532和533的各个部分中。当由处理器514执行时,加载到计算系统510中的计算机程序可使处理器514执行和/或作为一种装置用于执行本文描述和/或示出的示例性实施例中的一者或多者的功能。除此之外或作为另外一种选择,可在固件和/或硬件中实现本文描述和/或示出的示例性实施例中的一者或多者。例如,计算系统510可被配置为用于实现本文所公开的示例性实施例中的一者或多者的专用集成电路(ASIC)。

图6为示例性网络体系结构600的框图,其中客户端系统610、620和630以及服务器640和645可联接到网络650。如上文所详述,网络体系结构600的全部或一部分可执行和/或作为一种装置用于单独地或与其他元件结合来执行本文所公开的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。网络体系结构600的全部或一部分也可用于执行和/或作为一种装置用于执行本公开中阐述的其他步骤和特征。

客户端系统610、620和630通常表示任何类型或形式的计算设备或系统,诸如图5中的示例性计算系统510。类似地,服务器640和645通常表示被配置为提供各种数据库服务和/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络650通常表示任何电信或计算机网络,包括例如内联网、WAN、LAN、PAN或因特网。在一个例子中,客户端系统610、620和/或630和/或服务器640和/或645可包括图1的系统100的全部或一部分。

如图6所示,一个或多个存储设备660(1)-(N)可直接附接到服务器640。类似地,一个或多个存储设备670(1)-(N)可直接附接到服务器645。存储设备660(1)-(N)和存储设备670(1)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施例中,存储设备660(1)-(N)和存储设备670(1)-(N)可表示被配置为使用各种协议(诸如网络文件系统(NFS)、服务器消息块(SMB)或通用互联网文件系统(CIFS))与服务器640和645进行通信的网络附接存储(NAS)设备。

服务器640和645也可连接到存储区域网络(SAN)架构680。SAN架构680通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。SAN架构680可促进服务器640和645与多个存储设备690(1)-(N)和/或智能存储阵列695之间的通信。SAN架构680还可通过网络650以及服务器640和645以这样的方式促进客户端系统610、620和630与存储设备690(1)-(N)和/或智能存储阵列695之间的通信:设备690(1)-(N)和阵列695呈现为客户端系统610、620和630的本地附接设备。与存储设备660(1)-(N)和存储设备670(1)-(N)相同,存储设备690(1)-(N)和智能存储阵列695通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。

在某些实施例中,并参照图5的示例性计算系统510,通信接口(诸如图5中的通信接口522)可用于在每个客户端系统610、620和630与网络650之间提供连接。客户端系统610、620和630可能能够使用例如网页浏览器或其他客户端软件来访问服务器640或645上的信息。此类软件可允许客户端系统610、620和630访问由服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)或智能存储阵列695托管的数据。尽管图6示出了使用网络(诸如互联网)来交换数据,但本文描述和/或示出的实施例并非仅限于互联网或任何特定的基于网络的环境。

在至少一个实施例中,本文所公开的一个或多个示例性实施例中的全部或一部分可被编码为计算机程序并加载到服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)、智能存储阵列695、或它们的任意组合上并加以执行。本文所公开的一个或多个示例性实施例中的全部或一部分也可被编码为计算机程序,存储在服务器640中,由服务器645运行,以及通过网络650分配到客户端系统610、620和630。

如上详述,计算系统510和/或网络体系结构600的一个或多个部件可执行和/或作为一种工具单独或与其他元件结合来执行用于在移动设备上进行恶意软件预安装检测的示例性方法的一个或多个步骤。

虽然上述公开内容使用特定框图、流程图和例子阐述了各种实施例,但每个框图组件、流程图步骤、操作和/或本文描述和/或示出的组件可使用多种硬件、软件或固件(或其任何组合)配置单独和/或共同地实现。此外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同功能。

在一些例子中,图1中的示例性系统100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。

在各种实施例中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算系统(例如,服务器)以促进本文所述功能中的一者或多者的多租户应用。例如,本文所述软件模块中的一者或多者可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述模块中的一者或多者还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。

根据各种实施例,图1中的示例性系统100的全部或一部分可在虚拟环境中实现。例如,本文所述模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,短语“虚拟机”通常指由虚拟机管理器(例如,超级管理程序)从计算硬件中抽象出来的任何操作系统环境。除此之外或作为另外一种选择,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,短语“虚拟化层”通常指覆盖操作系统环境和/或从操作系统环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件系统过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作系统的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件系统和/或注册表内的位置的调用重定向至虚拟化层内的位置。

在一些例子中,图1中的示例性系统100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些例子中,移动计算环境可具有一个或多个显著特征,包括(例如)对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速度计等提供的)位置和移动数据、限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用商店的应用程序),等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。

此外,图1中的示例性系统100的全部或一部分可表示一个或多个信息管理系统的部分,与一个或多个信息管理系统交互,使用由一个或多个信息管理系统产生的数据,并且/或者产生被一个或多个信息管理系统使用的数据。如本文所用,短语“信息管理”可以指数据的保护、组织和/或存储。信息管理系统的例子可包括但不限于:存储系统、备份系统、存档系统、复制系统、高可用性系统、数据搜索系统、虚拟化系统等。

在一些实施例中,图1中的示例性系统100的全部或一部分可表示一个或多个信息安全系统的部分,产生受一个或多个信息安全系统保护的数据,并且/或者与一个或多个信息安全系统通信。如本文所用,短语“信息安全”可以指对受保护数据的访问控制。信息安全系统的例子可包括但不限于:提供受管理的安全服务的系统、数据丢失防护系统、身份认证系统、访问控制系统、加密系统、政策遵循系统、入侵检测与防护系统、电子发现系统等等。

根据一些例子,图1中的示例性系统100的全部或一部分可表示一个或多个端点安全系统的部分,与一个或多个端点安全系统通信,并且/或者受一个或多个端点安全系统保护。如本文所用,短语“端点安全”可以指保护端点系统以避免未授权和/或不合法的使用、访问和/或控制。端点保护系统的例子可包括但不限于:反恶意软件系统、用户认证系统、加密系统、保密系统、垃圾邮件过滤服务,等等。

本文描述和/或示出的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必按示出或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可省略本文描述或示出的步骤中的一者或多者,或除了所公开的那些步骤之外还包括附加步骤。

虽然本文已经在全功能计算系统的背景中描述和/或示出了各种实施例,但这些示例性实施例中的一者或多者可作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读介质的特定类型。本文所公开的实施例也可使用执行某些任务的软件模块来实现。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施例中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施例中的一者或多者。

此外,本文所述的模块中的一者或多者可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所述模块中的一者或多者可通过重新启动应用程序安装代理进程来转换应用程序安装代理进程,使得监控代理能够监控应用程序安装代理进程。除此之外或作为另外一种选择,本文所述模块中的一者或多者可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。

提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施例的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施例在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。

除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或组件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“……中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。

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