CN106133743B - 用于优化预安装应用程序的扫描的***和方法 - Google Patents

用于优化预安装应用程序的扫描的***和方法 Download PDF

Info

Publication number
CN106133743B
CN106133743B CN201580008487.0A CN201580008487A CN106133743B CN 106133743 B CN106133743 B CN 106133743B CN 201580008487 A CN201580008487 A CN 201580008487A CN 106133743 B CN106133743 B CN 106133743B
Authority
CN
China
Prior art keywords
application program
assessment
system image
scanning
fingerprint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580008487.0A
Other languages
English (en)
Other versions
CN106133743A (zh
Inventor
毛军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CA Inc
Original Assignee
Symantec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of CN106133743A publication Critical patent/CN106133743A/zh
Application granted granted Critical
Publication of CN106133743B publication Critical patent/CN106133743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Quality & Reliability (AREA)
  • Collating Specific Patterns (AREA)
  • Facsimiles In General (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种用于优化预安装应用程序的扫描的计算机实现的方法,所述方法可包括:(1)在客户端设备上识别须经基于扫描的评估的多个应用程序;(2)确定所述多个应用程序已经由所述客户端设备的***镜像而预安装在所述客户端设备上;(3)生成表示所述***镜像的指纹;以及(4)通过将表示所述***镜像的所述指纹发送到评估服务器,并且作为响应,接收对所述***镜像的评估,来完成对所述多个应用程序的所述基于扫描的评估。还公开了各种其他方法、***和计算机可读介质。

Description

用于优化预安装应用程序的扫描的***和方法
技术领域
本公开总体上涉及用于优化预安装应用程序的扫描的***和方法。
背景技术
消费者和企业面临越来越多的恶意软件,这些恶意软件威胁到他们的计算设备的稳定性和性能,以及他们的数据的安全性。具有恶意动机的计算机程序员已创建并不断创建病毒、特洛伊木马、蠕虫和其他程序(统称为“恶意软件”)以试图损害计算设备。为了逃避检测,恶意程序员可能会将恶意软件注入合法程序内或其间。
很多安全软件公司尝试通过为客户定期创建和部署恶意软件签名(例如,唯一地识别恶意软件的散列函数)来打击恶意软件。然而,执行基于签名的安全评估可能消耗大量计算资源,尤其是在移动计算设备的情况下,其中网络资源和其他计算资源可能供应有限。另外,许多计算***,包括移动计算设备,可能随附有若干预安装的应用程序,从而给移动计算设备和为安装在移动计算设备上的应用程序提供安全评估的安全服务器两者带来计算负担。
因此,本公开识别并解决了对用于优化预安装应用程序的扫描的另外且改善的***和方法的需求。
发明内容
如将在下文更详细地描述,本公开描述了用于通过以下方式来优化预安装应用程序的扫描的各种***和方法:对***镜像执行单个查找以检索对该***镜像的评估,而不是对该***镜像中所包含的每个预安装应用程序执行单独的查找。
在一个例子中,用于优化预安装应用程序的扫描的计算机实现的方法可包括:(1)在客户端设备上识别须经基于扫描的评估的多个应用程序;(2)确定所述多个应用程序已经由所述客户端设备的***镜像而预安装在所述客户端设备上;(3)生成表示所述***镜像的指纹,以及(4)通过将表示所述***镜像的指纹发送到评估服务器,并且作为响应,接收对所述***镜像的评估,来完成对所述多个应用程序的基于扫描的评估。
在一些例子中,所述基于扫描的评估可包括:(1)对所述多个应用程序内的应用程序是否包括恶意软件的评估;和/或(2)对所述多个应用程序内的应用程序的性能评估。在一些实施例中,所述基于扫描的评估可包括基于分配给所述客户端设备上的应用程序的权限而对所述多个应用程序内的应用程序的评估,所述权限使得所述应用程序能够访问所述客户端设备的特征。在一些例子中,仅发布者可被允许修改所述多个应用程序内的任何应用程序。
在一些实施例中,所述方法还可包括:(1)在所述客户端设备上识别须经至少一个基于扫描的评估的单独应用程序;(2)确定所述单独应用程序未经由所述客户端设备的***镜像预安装在所述客户端设备上;(3)基于确定所述单独应用程序未经由所述客户端设备的***镜像预安装在所述客户端设备上,生成表示所述单独应用程序而不表示任何其他应用程序的单独指纹,以及(4)通过将表示所述单独应用程序的单独指纹发送到所述评估服务器,并且作为响应,接收对所述单独应用程序的评估,来完成对所述单独应用程序的基于扫描的评估。
在一些例子中,(1)对所述***镜像的评估可包括对所述多个应用程序内的单独应用程序的评估,并且(2)对所述单独应用程序的评估可指示所述单独应用程序须经补救措施。在这些例子中,所述方法还可包括执行所述补救措施。除此之外或作为另外一种选择,在这些例子中,所述方法还可包括:(1)基于对所述单独应用程序的评估,确定将表示所述***镜像的指纹发送到所述评估服务器将不足以完成对所述多个应用程序的后续基于扫描的评估;以及(2)通过响应于确定将表示所述***镜像的指纹发送到所述评估服务器将不足以完成后续基于扫描的评估,将所述多个应用程序内的每个应用程序的单独指纹发送到所述评估服务器,来完成对所述多个应用程序的后续基于扫描的评估。
在一些实施例中,生成表示所述***镜像的指纹可包括将所述多个应用程序内的每个应用程序的单独指纹相组合。除此之外或作为另外一种选择,生成表示所述***镜像的指纹可包括使用所述***镜像内所包含的用于验证所述***镜像的公用密钥作为用于生成所述指纹的输入。在一些例子中,生成表示所述***镜像的指纹可包括基于所述***镜像的版本和所述***镜像的构建号来生成所述指纹。
在一个实施例中,用于实现上述方法的***可包括:(1)识别模块,其存储在存储器中,在客户端设备上识别须经基于扫描的评估的多个应用程序;(2)确定模块,其存储在存储器中,确定所述多个应用程序已经由所述客户端设备的***镜像而预安装在所述客户端设备上;(3)生成模块,其存储在存储器中,生成表示所述***镜像的指纹;(4)完成模块,其存储在存储器中,通过将表示所述***镜像的指纹发送到评估服务器,并且作为响应,接收对所述***镜像的评估,来完成对所述多个应用程序的基于扫描的评估;以及(5)至少一个物理处理器,其执行所述识别模块、所述确定模块、所述生成模块和所述完成模块。
在一些例子中,上述方法可被编码为非暂态计算机可读介质上的计算机可读指令。例如,计算机可读介质可包括一个或多个计算机可执行指令,所述计算机可执行指令在由计算设备的至少一个处理器执行时,可使所述计算设备:(1)在客户端设备上识别须经基于扫描的评估的多个应用程序;(2)确定所述多个应用程序已经由所述客户端设备的***镜像而预安装在所述客户端设备上;(3)生成表示所述***镜像的指纹,以及(4)通过将表示所述***镜像的指纹发送到评估服务器,并且作为响应,接收对所述***镜像的评估,来完成对所述多个应用程序的基于扫描的评估。
来自上述实施例中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施例、特征和优点。
附图说明
附图示出了多个示例性实施例并且为说明书的一部分。这些附图结合下面的描述展示并且说明本发明的各种原理。
图1为用于优化预安装应用程序的扫描的示例性***的框图。
图2为用于优化预安装应用程序的扫描的另外示例性***的框图。
图3为用于优化预安装应用程序的扫描的示例性方法的流程图。
图4为用于优化预安装应用程序的扫描的另外示例性***的框图。
图5为能够实施本文描述和/或示出的实施例中的一者或多者的示例性计算***的框图。
图6为能够实施本文描述和/或示出的实施例中的一者或多者的示例性计算网络的框图。
在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施例易受各种修改和替代形式的影响,但在附图中以举例的方式示出了特定实施例并且将在本文详细描述。然而,本文所述的示例性实施例并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开总体上涉及用于优化预安装应用程序的扫描的***和方法。如将在下文更详细地说明,通过对***镜像执行单个查找以检索对所述***镜像的评估,而不是对所述***镜像中所包含的每个预安装应用程序执行单独的查找,本文所述的***和方法可减少具有预安装应用程序的计算设备和提供对安装在所述计算设备上的应用程序的安全评估的安全服务器两者上的计算负担。
下面将参考图1、图2和图4提供对用于优化预安装应用程序的扫描的示例性***的详细描述。也将结合图3提供相应计算机实现的方法的详细描述。此外,将分别结合图5和图6提供能够实现本文所述实施例中的一者或多者的示例性计算***和网络体系结构的详细描述。
图1为用于优化预安装应用程序的扫描的示例性***100的框图。如该图所示,示例性***100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如将在下文更详细地说明,示例性***100可包括:(1)识别模块104,其存储在存储器中,在客户端设备上识别须经基于扫描的评估的多个应用程序;(2)确定模块106,其存储在存储器中,确定所述多个应用程序已经由所述客户端设备的***镜像而预安装在所述客户端设备上;(3)生成模块108,其存储在存储器中,生成表示所述***镜像的指纹;以及(4)完成模块110,其存储在存储器中,通过将表示所述***镜像的指纹发送到评估服务器,并且作为响应,接收对所述***镜像的评估,来完成对所述多个应用程序的所述基于扫描的评估。尽管例示为独立元件,但图1中的模块102中的一者或多者可表示单个模块或应用程序的部分。
在某些实施例中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,当通过计算设备执行时,所述软件应用程序或程序可使计算设备执行一个或多个任务。例如,并且如将在下文更详细地描述,模块102中的一者或多者可表示存储在一个或多个计算设备上并且被配置为在一个或多个计算设备上运行的软件模块,所述计算设备诸如为图2中示出的设备(例如,计算设备202和/或评估服务器206)、图5中的计算***510、和/或图6中的示例性网络体系结构600的部分。图1中的模块102中的一者或多者也可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。
如图1所示,示例性***100还可包括一个或多个数据库,诸如数据库120。在一个例子中,数据库120可以被配置为存储一个或多个应用程序签名和/或***镜像签名。
数据库120可表示单个数据库或计算设备的组成部分或者多个数据库或计算设备。例如,数据库120可表示图2中的评估服务器206的一部分、图5中的计算***510、和/或图6中的示例性网络体系结构600的部分。作为另外一种选择,图1中的数据库120可表示能够通过计算设备访问的一个或多个物理独立设备,诸如图2中的评估服务器206、图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上的预安装应用程序的扫描。例如,并且如下文将更详细地描述,模块102中的一者或多者可使计算设备202和/或评估服务器206(1)在计算设备202上识别须经基于扫描的评估的多个应用程序212,(2)确定应用程序212已经由计算设备202的***镜像210而预安装在计算设备202上,(3)生成表示***镜像210的指纹214,以及(4)通过将表示***镜像210的指纹214发送到评估服务器206,并且作为响应,接收对***镜像210的评估216,来完成对应用程序212的基于扫描的评估。
计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。计算设备202的例子包括但不限于笔记本电脑、平板电脑、台式机、服务器、移动电话、个人数字助理(PDA)、多媒体播放器、嵌入式***、可穿戴设备(例如,智能手表、智能眼镜等)、游戏机、这些设备中一者或多者的组合、图5中的示例性计算***510,或任何其他合适的计算设备。
评估服务器206通常表示能够基于应用程序和/或***镜像的指纹来提供对应用程序和/或***镜像的评估的任何类型或形式的计算设备。评估服务器206的例子包括但不限于被配置为提供各种数据库服务和/或运行某些软件应用程序的应用程序服务器和数据库服务器。例如,评估服务器206可包括安全服务器。
网络204通常表示能够促进通信或数据传输的任何介质或体系结构。网络204的例子包括但不限于内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、互联网、电力线通信网(PLC)、蜂窝网络(例如,全球移动通信***(GSM)网络)、图6中的示例性网络体系结构600等等。网络204可使用无线或有线连接来促进通信或数据传输。在一个实施例中,网络204可促进计算设备202与评估服务器206之间的通信。
图3为用于优化预安装应用程序的扫描的示例性计算机实现的方法300的流程图。图3中示出的步骤可通过任何合适的计算机可执行代码和/或计算***执行。在一些实施例中,图3中示出的步骤可通过图1中的***100、图2中的***200、图5中的计算***510和/或图6中的示例性网络体系结构600的部分的组件中的一者或多者执行。
如图3所示,在步骤302处,本文所述的***中的一者或多者可在客户端设备上识别须经基于扫描的评估的多个应用程序。例如,识别模块104作为图2中的计算设备202的一部分,可在计算设备202上识别须经基于扫描的评估的应用程序212。
客户端设备可包括可具有预安装应用程序的任何计算设备。例如,客户端设备可包括移动计算设备。移动计算设备的例子包括但不限于移动电话、平板电脑、电子书阅读器、个人数字助理、GPS设备、消息传送设备、智能手表和头戴式计算设备。
如本文所使用,术语“应用程序”可指可以安装在计算设备上和/或可以在计算设备上执行的任何应用程序、程序、模块和/或软件包。如本文所使用,短语“基于扫描的评估”可指对应用程序的可促进收集关于该应用程序的信息和/或确定计算设备上的应用程序的处置的任何评估(例如,是否移除应用程序、是否修改应用程序对计算设备的访问、是否监控应用程序、是否信任应用程序、是否使应用程序保持完整、是否警告用户有关应用程序的情况、是否修改应用程序的设置等)。在一些例子中,基于扫描的评估可分析安装在设备上的应用程序。除此之外或作为另外一种选择,基于扫描的评估可包括生成应用程序的指纹,以及利用该指纹查询评估服务器以作为响应接收对该应用程序的评估。例如,评估服务器可将对先前扫描的和/或分析的应用程序的评估连同该应用程序的对应指纹一起存储。
在一些例子中,基于扫描的评估可包括对所述多个应用程序内的应用程序是否包括恶意软件的评估。如本文所使用,术语“恶意软件”可指任何病毒、蠕虫、特洛伊木马、间谍软件和/或任何其他恶意的、非法的和/或未经授权的软件和/或数据对象。在一些例子中,基于扫描的评估可包括安全评估,诸如入侵防御分析(例如,指示应用程序是否包括可被利用的漏洞)。在一些例子中,基于扫描的评估可包括对所述多个应用程序内的应用程序的性能评估。例如,性能评估可指示应用程序对计算设备的性能具有(或预期具有)哪些影响(例如,应用程序对性能是否有负面影响、减慢计算设备的计算环境、导致误差和/或崩溃等)。在一些例子中,所述基于扫描的评估可包括基于分配给客户端设备上的应用程序的权限而对所述多个应用程序内的所述应用程序的评估,所述权限使得所述应用程序能够访问客户端设备的特征。例如,所述评估可包括对以下各项的确定:应用程序请求哪些权限;应用程序所请求的权限对于应用程序来说是否是必要的和/或适当的;是否确信应用程序具有这些权限;具有这些权限的应用程序可能引发的风险等。
如本文所使用,术语“权限”可指用于访问、使用、操纵和/或查看计算资源和/或能力的任何权限、特权、指定访问权和/或验证。在一些例子中,可由用户在安装应用程序时授予权限(或在一些例子中,如果是预安装的应用程序,则默认授予)。例如,计算设备的平台可被配置为显示应用程序所需要和/或所使用的一个或多个权限以及接收用户将在安装和/或执行应用程序之前向应用程序授予权限这一验证。在一些例子中,计算设备的平台可将移动计算***的能力集合分成访问这些能力的权限集合,并且向每个安装的应用程序授予权限子集。
识别模块104可在任何合适的环境中识别所述多个应用程序。例如,识别模块104可在对计算设备的全面扫描过程中识别所述多个应用程序。在一些例子中,识别模块104可通过识别包括所述多个应用程序的***镜像来识别所述多个应用程序。
作为在一种背景下操作的识别模块104的一个例子,图4示出了用于优化预安装应用程序的扫描的示例性***400。如图4所示,示例性***400可以包括经由网络404与评估服务器406通信的计算设备402。以图4为例,在步骤302处,识别模块104可识别须经安全扫描的应用程序412、414和416(例如,连同也可须经安全扫描的应用程序422、424、426)。
返回图3,在步骤304处,本文所述的***中的一者或多者可确定所述多个应用程序已经由客户端设备的***镜像而预安装在客户端设备上。例如,确定模块106作为图2中的计算设备202的一部分,可确定应用程序212已经由计算设备202的***镜像210而预安装在计算设备202上。
如本文所使用,短语“***镜像”可指可包括预安装应用程序的任何镜像。例如,***镜像可包括只读存储器(ROM)镜像。如本文所使用,短语“只读存储器”可指被设计成并不频繁被修改(或完全不被修改)的任何存储介质。除此之外或作为另外一种选择,***镜像可包括固件。
如本文所使用,短语“预安装应用程序”可指经由***镜像安装的任何应用程序(例如,不是用户单独地选择应用程序来进行安装)。在一些例子中,短语“预安装应用程序”可指通过计算设备的第一最终用户操作而安装在计算设备上的应用程序。除此之外或作为另外一种选择,短语“预安装应用程序”可指***镜像更新中所包括的应用程序。在一些例子中,仅***镜像的发布者可被允许修改***镜像内的任何应用程序(例如,移除、更新和/或改写应用程序)。在一些例子中,***镜像的发布者可包括计算设备的制造商和/或计算设备的制造商的合作伙伴。因此,在一些例子中,***镜像(以及***镜像中所包含的预安装应用程序)可能倾向于值得信任,并且这些预安装应用程序可能倾向于需要较少的个体化扫描操作。
确定模块106可确定所述多个应用程序已以任何合适的方式经由***镜像而预安装在客户端设备上。例如,确定模块106可识别与每个应用程序相关的、指示所述应用程序与该***镜像相对应的标志。除此之外或作为另外一种选择,确定模块106可查询计算设备的平台(例如,经由应用程序编程接口(API))来检索经由***镜像预安装的应用程序的列表。
以图4为例,确定模块106作为计算设备402的一部分,可确定应用程序412、414和416已经由***镜像410而预安装在计算设备402上。
返回图3,在步骤306处,本文所述的***中的一者或多者可生成表示***镜像的指纹。例如,生成模块108作为图2中的计算设备202的一部分,可生成表示***镜像210的指纹214。
如本文所使用,术语“指纹”可指应用程序的任何缩写表示(例如,以其当前版本)。例如,术语“指纹”可指应用到应用程序各个部分的一个或多个散列函数的输出、从应用程序提取的值、应用程序的名称、应用程序的版本号、应用程序的发布者、应用程序中所包含的文件、校验和、应用程序元数据和/或识别应用程序的任何其他类型的应用程序标识符。通常,指纹可包括倾向于单独或组合地识别应用程序的任何信息,包括以上提及的例子中的任一者。可由多种密码散列函数(包括例如MD5和/或SHA256)中的任一个来生成散列值。在一些例子中,术语“指纹”当涉及给定文件时,可指随时间推移而始终表示该应用程序的单一值,并且该单一值不会变化,除非被生成指纹的应用程序的内容发生变化(例如,因更新而引起)。在一些例子中,术语“指纹”可指应用程序的签名。
生成模块108可任何合适的方式生成***镜像的指纹。例如,生成模块108可通过将所述多个应用程序内的每个应用程序的单独指纹相组合来生成***镜像的指纹。例如,生成模块108可为计算设备上的每个应用程序生成指纹,并且将与经由***镜像预安装的应用程序对应的那些指纹组合起来形成***镜像的指纹。除此之外或作为另外一种选择,生成模块108可使用***镜像的公用密钥作为输入来生成表示***镜像的指纹。例如,***镜像可包括用于验证***镜像的公用密钥。因此,该公用密钥也可用于在***镜像已被验证和/或确认的背景下清楚地识别***镜像。在一些例子中,作为对前述可能性的补充和/或替代,生成模块108可至少部分地基于***镜像的版本和***镜像的构建号来生成***镜像的指纹。这样,假如***镜像更新,那么***镜像的指纹可与***镜像的具体版本相对应。
以图4为例,在步骤306处,生成模块108可生成***镜像410的指纹。例如,生成模块108可使用关于***镜像410的元数据来生成指纹。除此之外或作为另外一种选择,生成模块108可基于应用程序412、414和416的指纹来生成***镜像410的指纹。
返回图3,在步骤308处,本文所述的***中的一者或多者可通过将表示***镜像的指纹发送到评估服务器,并且作为响应,接收对***镜像的评估,来完成对所述多个应用程序的基于扫描的评估。例如,完成模块110作为图2中的计算设备202的一部分,可通过将表示***镜像210的指纹214发送到评估服务器206,并且作为响应,接收对***镜像210的评估216,来完成对应用程序212的基于扫描的评估。
评估服务器可包括可响应于接收到应用程序和/或***镜像的指纹来提供对应用程序和/或***镜像的评估的任何类型的指纹查找***。例如,评估服务器可包括和/或具有对将应用程序和/或***镜像的当前评估与应用程序和/或***镜像的指纹相关联的数据库的访问。在一些例子中,评估服务器可为许多(例如,成千上万的)客户端设备提供对应用程序和/或***镜像的应用程序评估。因此,通过减少所需的评估服务器查找次数,本文所述的***和方法可显著地减少评估服务器消耗的计算资源。
对***镜像的评估可包括多种信息中的任何一种。例如,对***镜像的评估可包括对所述多个应用程序内的单独应用程序的评估。在一些例子中,对单独应用程序的评估可指示该单独应用程序须经补救措施。例如,对单独应用程序的评估可指示该单独应用程序包括恶意软件、包括安全漏洞、可能对***性能造成负面影响,和/或具有不适当的权限。在该例中,完成模块110可对单独的应用程序执行补救。例如,完成模块110可移除单独应用程序、停止执行单独应用程序、隔离单独应用程序、警告用户有关单独应用程序的情况、分析计算设备上的单独应用程序所采取的动作和/或从单独应用程序删除权限。
在一些例子中,一旦接收到对***镜像的不良评估(例如,通过接收对***镜像内的单独应用程序的不良评估),完成模块110可停止将***镜像视为单一实体来扫描,并且恢复为单独地处理预安装应用程序。例如,基于对单独应用程序的评估,完成模块110可确定将表示***镜像的指纹发送到评估服务器将不足以完成对所述多个应用程序的后续基于扫描的评估。通过响应于确定将表示***镜像的指纹发送到评估服务器将不足以完成后续基于扫描的评估,完成模块110可随后将所述多个应用程序内的每个应用程序的单独指纹发送到评估服务器,来完成对所述多个应用程序的后续基于扫描的评估。在一些例子中,其他事件可使完成模块110停止将***镜像视为单一实体来扫描,并且恢复为单独地处理预安装应用程序。例如,完成模块110可接收指示***镜像处于被(例如,经由无法发觉的和/或很难观察到的恶意软件变体)损坏的风险中的消息。
在一些例子中,虽然将***镜像视为单一实体来进行扫描,但本文所述的***可单独地处理***镜像外部的应用程序(例如,未由***镜像预安装的应用程序)以便扫描。例如,识别模块104可在客户端设备上识别须经至少一个基于扫描的评估的单独应用程序。确定模块106可确定该单独应用程序未经由客户端设备的***镜像预安装在客户端设备上。基于确定单独应用程序未经由客户端设备的***镜像预安装在客户端设备上,生成模块108可生成表示该单独应用程序而不表示任何其他应用程序的单独指纹。完成模块可随后通过将表示单独应用程序的单独指纹发送到评估服务器,并且作为响应,接收对单独应用程序的评估,来完成对单独应用程序的基于扫描的评估。
以图4作为图3中的步骤308的一个例子,完成模块110作为计算设备402的一部分,可通过将***镜像410的指纹发送到评估服务器406来完成对应用程序412、414和416的基于扫描的评估。评估服务器406可在指纹430内查找***镜像410的指纹以及在评估450中寻找对应的评估。评估服务器406可随后返回对***镜像410的评估。在一个例子中,评估可指示应用程序414包含恶意软件。完成模块110可随后单独地完成对应用程序412、414和416的后续基于扫描的评估(例如,通过将应用程序412、414和416的单独指纹发送至评估服务器406)。在一些例子中,完成模块110还可单独地完成对应用程序422、424和426(例如,它们并不是***镜像410的一部分)的基于扫描的评估。
在一个例子中,本文所述的***可为每个已知的ROM镜像(例如,***镜像)构建唯一的标识符(例如,指纹)。有了此唯一标识符,本文所述的***可对***镜像随附的所有应用程序仅执行一次扫描。如果将云查找作为扫描的一部分来执行,那么云查找可仅执行一次。本文所述的***可监控ROM分发,并且可在检测到问题的情况下推出签名,该签名以ROM镜像和有问题的特定应用程序为目标。除此之外或作为另外一种选择,这些***可使ROM无效并且指示每个客户端设备切换为单独地扫描应用程序。由于大部分ROM可预期为清空的,并且由于预安装应用程序可占据所有应用程序中的很大一部分,因此这些***和方法可节省大量的计算资源。
为了构建ROM镜像的唯一标识符,本文所述的***可识别每个预安装应用程序的散列并基于这些识别出的散列来生成散列。另外,当计算散列时,这些***可包括关于一个或多个核心***文件和/或ROM镜像的版本的信息。除此之外或作为另外一种选择,本文所述的***可通过读取ROM随附的公用密钥并且从该公用密钥、ROM版本和ROM构建号生成唯一标识符,来构建ROM镜像的唯一标识符。该公用密钥还可用于验证ROM更新包。在一些例子中,本文所述的***可通过检测所述设备没有因为自定义ROM而受到损坏(以及/或者,例如被确信没有受到损坏)来构建ROM镜像的唯一标识符。在该例中,这些***可使用设备硬件模型,结合ROM版本和ROM构建号来生成ROM镜像的唯一标识符。
在一些例子中,本文所述的***可有选择地以计算设备模型的特定集合作为***镜像的扫描目标。在一个例子中,如果发现可利用漏洞来改变计算设备底层***的应用程序,则这些***可停止根据ROM镜像的唯一标识符进行扫描。在该例中,这些***可恢复为单独地扫描应用程序。
图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的全部或一部分可表示一个或多个端点安全***的部分,与一个或多个端点安全***通信,并且/或者受一个或多个端点安全***保护。如本文所用,短语“端点安全”可以指保护端点***以避免未授权和/或不合法的使用、访问和/或控制。端点保护***的例子可包括但不限于反恶意软件***、用户认证***、加密***、保密***、垃圾邮件过滤服务,等等。
本文描述和/或示出的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必按示出或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可省略本文描述或示出的步骤中的一者或多者,或除了所公开的那些步骤之外还包括附加步骤。
虽然本文已经在全功能计算***的背景中描述和/或示出了各种实施例,但这些示例性实施例中的一者或多者可作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读介质的特定类型。本文所公开的实施例也可使用执行某些任务的软件模块来实施。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算***中的其他可执行文件。在一些实施例中,这些软件模块可将计算***配置为执行本文所公开的示例性实施例中的一者或多者。
此外,本文所述的模块中的一者或多者可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所述模块中的一者或多者可接收要转换的***镜像的指纹,将该***镜像的指纹转换成对一个或多个预安装应用程序的评估,将转换结果输出到安全***,使用转换结果解决安全问题,以及将转换结果存储到存储设备。除此之外或作为另外一种选择,本文所述模块中的一者或多者可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施例的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施例在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。
除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或组件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“…中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。

Claims (14)

1.一种用于优化预安装应用程序的扫描的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的计算设备来执行,所述方法包括:
在客户端设备上识别须经基于扫描的评估的多个应用程序;
确定所述多个应用程序已经由所述客户端设备的***镜像而预安装在所述客户端设备上;
生成表示所述***镜像的指纹;
通过将表示所述***镜像的所述指纹发送到评估服务器,并且作为响应,接收对所述***镜像的评估,来完成对所述多个应用程序的所述基于扫描的评估;
在客户端设备上识别须经至少一个基于扫描的评估的单独应用程序;
确定所述单独应用程序未经由所述客户端设备的所述***镜像预安装在所述客户端设备上;
基于确定所述单独应用程序未经由所述客户端设备的所述***镜像预安装在所述客户端设备上,生成表示所述单独应用程序而不表示任何其他应用程序的单独指纹;和
通过将表示所述单独应用程序的所述单独指纹发送到所述评估服务器,并且作为响应,接收对所述单独应用程序的评估,来完成对所述单独应用程序的所述基于扫描的评估。
2.根据权利要求1所述的计算机实现的方法,其中所述基于扫描的评估包括以下至少一者:
对所述多个应用程序内的应用程序是否包括恶意软件的评估;
对所述多个应用程序内的应用程序的性能评估。
3.根据权利要求1所述的计算机实现的方法,其中所述基于扫描的评估包括基于分配给所述客户端设备上的应用程序的权限而对所述多个应用程序内的所述应用程序的评估,所述权限使得所述应用程序能够访问所述客户端设备的特征。
4.根据权利要求1所述的计算机实现的方法,其中仅所述***镜像的发布者被允许修改所述多个应用程序内的任何应用程序。
5.根据权利要求1所述的计算机实现的方法,其中:
对所述***镜像的所述评估包括对所述多个应用程序内的单独应用程序的评估;和
对所述单独应用程序的所述评估指示所述单独应用程序须经补救措施。
6.根据权利要求5所述的计算机实现的方法,还包括执行所述补救措施。
7.根据权利要求5所述的计算机实现的方法,还包括:
基于对所述单独应用程序的所述评估,确定将表示所述***镜像的所述指纹发送到所述评估服务器将不足以完成对所述多个应用程序的后续基于扫描的评估;和
通过响应于确定将表示所述***镜像的所述指纹发送到所述评估服务器将不足以完成所述后续基于扫描的评估,将所述多个应用程序内的每个应用程序的单独指纹发送到所述评估服务器,来完成对所述多个应用程序的所述后续基于扫描的评估。
8.根据权利要求1所述的计算机实现的方法,其中生成表示所述***镜像的所述指纹包括将所述多个应用程序内的每个应用程序的单独指纹相组合。
9.根据权利要求1所述的计算机实现的方法,其中生成表示所述***镜像的所述指纹包括使用所述***镜像内所包含的用于验证所述***镜像的公用密钥作为用于生成所述指纹的输入。
10.根据权利要求1所述的计算机实现的方法,其中生成表示所述***镜像的所述指纹包括基于所述***镜像的版本和所述***镜像的构建号来生成所述指纹。
11.一种用于优化预安装应用程序的扫描的***,所述***包括:
存储在存储器中的识别模块,所述识别模块在客户端设备上识别须经基于扫描的评估的多个应用程序以及识别须经至少一个基于扫描的评估的单独应用程序;
存储在存储器中的确定模块,所述确定模块确定所述多个应用程序已经由所述客户端设备的***镜像而预安装在所述客户端设备上以及确定所述单独应用程序未经由所述客户端设备的所述***镜像预安装在所述客户端设备上;
存储在存储器中的生成模块,所述生成模块生成表示所述***镜像的指纹,以及基于确定所述单独应用程序未经由所述客户端设备的所述***镜像预安装在所述客户端设备上,生成表示所述单独应用程序而不表示任何其他应用程序的单独指纹;
存储在存储器中的完成模块,所述完成模块通过将表示所述***镜像的所述指纹发送到评估服务器,并且作为响应,接收对所述***镜像的评估,来完成对所述多个应用程序的所述基于扫描的评估,以及通过将表示所述单独应用程序的所述单独指纹发送到所述评估服务器,并且作为响应,接收对所述单独应用程序的评估,来完成对所述单独应用程序的所述基于扫描的评估;和
至少一个物理处理器,所述物理处理器执行所述识别模块、所述确定模块、所述生成模块和所述完成模块。
12.根据权利要求11所述的***,其中所述基于扫描的评估包括以下至少一者:
对所述多个应用程序内的应用程序是否包括恶意软件的评估;
对所述多个应用程序内的应用程序的性能评估。
13.根据权利要求11所述的***,其中所述基于扫描的评估包括基于分配给所述客户端设备上的应用程序的权限而对所述多个应用程序内的所述应用程序的评估,所述权限使得所述应用程序能够访问所述客户端设备的特征。
14.根据权利要求11所述的***,其中仅所述***镜像的发布者被允许修改所述多个应用程序内的任何应用程序。
CN201580008487.0A 2014-02-26 2015-02-24 用于优化预安装应用程序的扫描的***和方法 Active CN106133743B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/190471 2014-02-26
US14/190,471 US9197662B2 (en) 2014-02-26 2014-02-26 Systems and methods for optimizing scans of pre-installed applications
PCT/US2015/017398 WO2015130715A1 (en) 2014-02-26 2015-02-24 Systems and methods for optimizing scans of pre-installed applications

Publications (2)

Publication Number Publication Date
CN106133743A CN106133743A (zh) 2016-11-16
CN106133743B true CN106133743B (zh) 2019-01-29

Family

ID=52727375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580008487.0A Active CN106133743B (zh) 2014-02-26 2015-02-24 用于优化预安装应用程序的扫描的***和方法

Country Status (5)

Country Link
US (1) US9197662B2 (zh)
EP (1) EP3111364B1 (zh)
JP (1) JP6196393B2 (zh)
CN (1) CN106133743B (zh)
WO (1) WO2015130715A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055602A (zh) * 2016-05-24 2016-10-26 腾讯科技(深圳)有限公司 文件验证方法及装置
US10621333B2 (en) * 2016-08-08 2020-04-14 International Business Machines Corporation Install-time security analysis of mobile applications
CN106778291B (zh) * 2016-11-22 2019-09-17 北京安云世纪科技有限公司 应用程序的隔离方法及隔离装置
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US10411897B2 (en) 2017-02-17 2019-09-10 Factom, Inc. Secret sharing via blockchains
US20180260888A1 (en) * 2017-03-08 2018-09-13 Factom Validating Mortgage Documents
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
US10855713B2 (en) * 2017-04-27 2020-12-01 Microsoft Technology Licensing, Llc Personalized threat protection
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
US10783164B2 (en) 2018-05-18 2020-09-22 Factom, Inc. Import and export in blockchain environments
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US11276056B2 (en) 2018-08-06 2022-03-15 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11328290B2 (en) 2018-08-06 2022-05-10 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
US11593491B2 (en) 2019-10-30 2023-02-28 Rubrik, Inc. Identifying a software vulnerability
US11599643B2 (en) 2019-10-30 2023-03-07 Rubrik, Inc. Facilitating analysis of software vulnerabilities
US11663340B2 (en) * 2019-10-30 2023-05-30 Rubrik, Inc. Managing software vulnerabilities
US11343075B2 (en) 2020-01-17 2022-05-24 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US12008526B2 (en) 2021-03-26 2024-06-11 Inveniam Capital Partners, Inc. Computer system and method for programmatic collateralization services
US12007972B2 (en) 2021-06-19 2024-06-11 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533830B1 (en) * 2009-03-31 2013-09-10 Mcafee, Inc. System, method, and computer program product for mounting an image of a computer system in a pre-boot environment for validating the computer system
CN103500140A (zh) * 2013-09-27 2014-01-08 浪潮电子信息产业股份有限公司 一种快速获知分布式集群节点失效的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172463A (ja) * 2000-12-11 2006-06-29 Ntt Docomo Inc 端末装置及び中継装置
JP4433401B2 (ja) * 2004-12-20 2010-03-17 レノボ シンガポール プライヴェート リミテッド 情報処理システム、プログラム、及び情報処理方法
JP2006350955A (ja) * 2005-06-20 2006-12-28 Advantest Corp 障害検出装置、方法、プログラムおよび記録媒体
US7805409B2 (en) * 2008-02-21 2010-09-28 Oracle America, Inc. Dynamic composition of an execution environment from multiple immutable file system images
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US8161012B1 (en) * 2010-02-05 2012-04-17 Juniper Networks, Inc. File integrity verification using a verified, image-based file system
CN103180862B (zh) * 2010-08-25 2016-03-02 前景公司 用于服务器耦合的恶意软件防止的***和方法
US9143509B2 (en) 2011-05-20 2015-09-22 Microsoft Technology Licensing, Llc Granular assessment of device state
WO2013102119A1 (en) * 2011-12-30 2013-07-04 Perlego Systems, Inc. Anti-virus protection for mobile devices
WO2013142948A1 (en) 2012-03-30 2013-10-03 Irdeto Canada Corporation Method and system for preventing and detecting security threats
US9124419B2 (en) * 2012-05-08 2015-09-01 Discretix Technologies Ltd. Method, device, and system of secure entry and handling of passwords
US20140181975A1 (en) * 2012-11-06 2014-06-26 William Spernow Method to scan a forensic image of a computer system with multiple malicious code detection engines simultaneously from a master control point
US9185128B2 (en) * 2013-08-30 2015-11-10 Bank Of America Corporation Malware analysis methods and systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533830B1 (en) * 2009-03-31 2013-09-10 Mcafee, Inc. System, method, and computer program product for mounting an image of a computer system in a pre-boot environment for validating the computer system
CN103500140A (zh) * 2013-09-27 2014-01-08 浪潮电子信息产业股份有限公司 一种快速获知分布式集群节点失效的方法

Also Published As

Publication number Publication date
JP6196393B2 (ja) 2017-09-13
CN106133743A (zh) 2016-11-16
JP2017511523A (ja) 2017-04-20
EP3111364B1 (en) 2020-01-15
US9197662B2 (en) 2015-11-24
EP3111364A1 (en) 2017-01-04
WO2015130715A1 (en) 2015-09-03
US20150244729A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
CN106133743B (zh) 用于优化预安装应用程序的扫描的***和方法
CN106133741B (zh) 用于响应于检测可疑行为来扫描打包程序的***和方法
JP6789308B2 (ja) トリップワイヤファイルを生成するためのシステム及び方法
CN105453102B (zh) 用于识别已泄漏的私有密钥的***和方法
CN106415584B (zh) 移动设备恶意软件的预安装检测***和方法
CN110383278A (zh) 用于检测恶意计算事件的***和方法
US10887307B1 (en) Systems and methods for identifying users
CN104081713B (zh) 云计算环境中的服务器和客户机的远程信任认证和地理位置
CN105874464B (zh) 用于在子***输出信号中引入变化以防止设备指纹分析的***和方法
CN108701188A (zh) 响应于检测潜在勒索软件以用于修改文件备份的***和方法
CN105683910B (zh) 用于更新只读***映像内的***级服务的***和方法
US9800590B1 (en) Systems and methods for threat detection using a software program update profile
CN104769598B (zh) 用于检测非法应用程序的***和方法
CN108293044A (zh) 用于经由域名服务流量分析来检测恶意软件感染的***和方法
CN106030527B (zh) 将可供下载的应用程序通知用户的***和方法
CN109997138A (zh) 用于检测计算设备上的恶意进程的***和方法
US10169584B1 (en) Systems and methods for identifying non-malicious files on computing devices within organizations
CN108139868A (zh) 用于从高速缓存供应频繁使用的映像片段的***和方法
US9569617B1 (en) Systems and methods for preventing false positive malware identification
US9887979B1 (en) Systems and methods for enabling users to launch applications without entering authentication credentials
US9171152B1 (en) Systems and methods for preventing chronic false positives
US11671422B1 (en) Systems and methods for securing authentication procedures
US11062034B1 (en) Systems and methods for improving application analysis
US10193880B1 (en) Systems and methods for registering user accounts with multi-factor authentication schemes used by online services
US9569619B1 (en) Systems and methods for assessing internet addresses

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200103

Address after: California, USA

Patentee after: CA,INC.

Address before: California, USA

Patentee before: Symantec Corporation

TR01 Transfer of patent right