CN103354931B - 用于查找反恶意软件元数据的系统和方法 - Google Patents

用于查找反恶意软件元数据的系统和方法 Download PDF

Info

Publication number
CN103354931B
CN103354931B CN201280007727.1A CN201280007727A CN103354931B CN 103354931 B CN103354931 B CN 103354931B CN 201280007727 A CN201280007727 A CN 201280007727A CN 103354931 B CN103354931 B CN 103354931B
Authority
CN
China
Prior art keywords
perform
client
malware
perform object
module
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
CN201280007727.1A
Other languages
English (en)
Other versions
CN103354931A (zh
Inventor
W·E·曹贝乐
S·萨迪士
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 CN103354931A publication Critical patent/CN103354931A/zh
Application granted granted Critical
Publication of CN103354931B publication Critical patent/CN103354931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/564Static detection by virus signature recognition

Abstract

一种用于查找反恶意软件元数据的计算机实施的方法可以包括在执行之前识别用于恶意软件的待扫描的多个可执行对象。该计算机实施的方法还可以包括对于该多个可执行对象中的每个可执行对象来评估该可执行对象的执行迫切性。该计算机实施的方法可以进一步包括基于这些评估来排列对应于该多个可执行对象的反恶意软件元数据的检索次序的优先级。该计算机实施的方法可以另外包括基于该检索次序来检索对应于该多个可执行对象中的一个可执行对象的反恶意软件元数据。本文还披露了各种其他方法、系统以及计算机可读介质。

Description

用于查找反恶意软件元数据的系统和方法
发明背景
反病毒和反间谍软件解决方案通常使用常规的基于扫描的技术来识别终端设备上的病毒、蠕虫、特洛伊木马、间谍软件以及其他恶意软件。典型的反病毒和反间谍软件解决方案可以通过检查已知威胁的特征(例如,反恶意软件签名)的文件来检测这些威胁。一旦它检测到威胁,解决方案就可以修复文件,通常是删除或隔离该文件。
随着恶意软件威胁的数量增加,识别这些威胁的签名数据库的容量也在增加。然而,由于增加了磁盘占用,较大的反恶意软件签名数据库在客户端装置上可能是不受欢迎的。服务器侧查找可以缓解与本地存储反恶意软件签名相关的问题,但在允许启动应用程序之前的等待反恶意软件签名的同时,可能会延迟对应用程序的访问。因此,本披露发现需要附加的并且改进的用于查找反恶意软件签名的系统和方法。
发明概述
如以下更详细描述,本披露总体上涉及用于查找反恶意软件元数据的系统和方法。本文描述的系统和方法可以预测何时需要反恶意软件元数据,并且基于这些预测来排列反恶意软件元数据查找的优先级。例如,一种方法可以包括在执行之前识别用于恶意软件的待扫描的多个可执行对象。该方法还可以包括对于该多个可执行对象内的每个可执行对象来评估执行该可执行对象的迫切性。该方法另外可以包括基于这些评估来排列对应于该多个可执行对象的反恶意软件元数据的检索次序的优先级,并基于该检索次序来检索对应于该多个可执行对象内的一个可执行对象的反恶意软件元数据。
本文描述的系统可以从各种源的任何一个中识别该多个可执行对象。例如,这些系统可以使用系统配置信息来识别一组自动启动的可执行对象。该系统配置信息可以指示该组自动启动的可执行对象中的每个自动启动的可执行对象何时可能启动。在这种示例中,识别该组自动启动的可执行对象可以包括识别被配置为在一个操作系统启动过程中启动的至少一个可执行对象。另外或可替代地,识别该组自动启动的可执行对象可以包括识别一项服务、一个驱动器、被配置为在登陆时执行的一个可执行对象、和/或被配置为根据一个任务调度程序执行的一个可执行对象。
在一些示例中,识别该多个可执行对象可以包括识别可能由一个用户启动的一组可执行对象。例如,该组可执行对象可以包括在属于一个用户的台式机上的一个可执行对象和/或在属于该用户的下载文件夹中的一个可执行对象。
本文描述的系统还可以通过识别该多个可执行对象内的一个第一可执行对象、识别表示该第一可执行对象依赖于一个第二可执行对象的依赖关系信息,然后在该多个可执行对象中包括该第二可执行对象来识别该多个可执行对象。另外或可替代地,识别该多个可执行对象可以包括识别该多个可执行对象内的一个第一可执行对象并识别作为该第一可执行对象的扩展部分而执行的一个第二可执行对象。在一些示例中,识别该多个可执行对象可以包括识别为执行而启动的一个可执行对象和/或在执行过程中的一个可执行对象。
评估该可执行对象的执行迫切性可以包括检查该可执行对象在其中被识别的环境。在一些示例中,评估该可执行对象的执行迫切性还可以包括识别该可执行对象的创建时间并利用该创建时间和当前时间的差来单调地增加该可执行对象的即将执行的期望值。
排列该检索次序的优先级可以包括从一个远程计算系统接收用于检索反恶意软件元数据的优先级信息,该反恶意软件元数据与该多个可执行对象内的至少一个可执行对象相关。在一些示例中,本文描述的系统可以及时地检索该反恶意软件元数据以便在试图启动该可执行对象之前扫描该可执行对象。在不同示例中,本文描述的系统可以从一个远程存储系统检索一个反恶意软件签名。
上述实施例中任意一个的多个特征可以根据本文描述的一般原则相互结合来使用。这些以及其他实施例、特征和优点将在结合附图和权利要求阅读以下详细描述时得到更充分地理解。
附图简要说明
附图展示了很多示例性实施例并且是说明书的一部分。这些附图与以下说明共同展示和解释本披露的各种原理。
图1是一种用于查找反恶意软件元数据的示例性系统的框图。
图2是一种用于查找反恶意软件元数据的示例性系统的框图。
图3是一种用于查找反恶意软件元数据的示例性方法的流程图。
图4是可执行文件的一个示例性依赖关系图的框图。
图5是一种用于查找反恶意软件元数据的示例性系统的框图。
图6是一个示例性计算系统的框图,该计算系统能够实施本文描述和/或展示的这些实施例中的一个或多个。
图7是一个示例性计算网络的框图,该计算网络能够实施本文描述和/或展示的这些实施例中的一个或多个。
贯穿这些附图,相同的参考字符和描述表示相似的但未必等同的元素。尽管本文描述的示例性实施例易于受到各种修改形式和替代形式的影响,但具体的实施例已经通过示例在附图中示出并在本文进行详细描述。然而,本文描述的示例性实施例不用于限制到所披露的具体形式。相反,本披露覆盖落在所附权利要求范围之内的所有修改形式、等同形式和替代形式。
示例性实施方案的详细说明
如以下将要更详细描述的,本披露总体上涉及查找反恶意软件元数据的系统和方法。本文描述的系统和方法可以预测何时需要反恶意软件元数据以及基于这种预测来排列反恶意软件元数据的查找的优先级。通过排列反恶意软件元数据的查找的优先级,这些系统和方法可以允许反恶意软件系统来检索反恶意软件元数据,并由启动这些可执行文件的用户利用减少的已知等待时间在启动之前扫描这些可执行文件。
以下将参考图1、图2和图4提供用于查找反恶意软件元数据的示例性系统的详细描述。相应的计算机实施的方法的详细描述也将结合图3来提供。用于可执行文件的示例性依赖关系图的详细描述将结合图4来提供。另外,能够实施本文所描述实施例中的一个或多个的示例性计算系统和网络架构的详细描述将分别结合图6和图7来提供。
图1是查找反恶意软件元数据的示例性系统100的框图。如此图中所示,示例性系统100可包括用于执行一项或多项任务的一个或多个模块102。例如,如以下更为详细解释的,示例性系统100可以包括识别模块104,该模块被编程用于在执行之前识别用于恶意软件的待扫描的多个可执行对象。示例性系统100还可以包括预测模块106,该模块被编程用于针对该多个可执行对象内的每一个可执行对象来评估该可执行对象的执行迫切性。示例性系统100可以另外包括优先化模块108,该模块被编程用于基于这些评估来排列对应于该多个可执行对象的反恶意软件元数据的检索次序的优先级。
另外,如以下更为详细描述的,示例性系统100可以包括检索模块110,该模块被编程用于基于该检索次序检索对应于该多个可执行对象内的一个可执行对象的反恶意软件元数据。尽管展示为独立的元素,但图1模块102中的一个或多个可以代表一个单一模块或应用程序的多个部分。
在某些实施例中,图2中模块102中的一个或多个可以代表一个或多个软件应用程序或程序集,当由计算装置执行时,它们可以使该计算装置执行一项或多项任务。例如,如以下更为详细描述的,模块102中的一个或多个可以代表存储并被配置为允许在一个或多个计算装置上运行的软件模块,这些计算装置例如是图2中所示的装置(例如,计算系统202和/或反恶意软件服务器206)、图6中的计算系统610、和/或图7中的示例性网络架构700的多个部分。图1中模块102中的一个或多个还可以代表被配置为执行一项或多项任务的一个或多个专用计算机的所有部分或多个部分。
图1中的示例性系统100可以采用各种方式进行部署。例如,示例性系统100的所有或一部分可以代表图2中所示的示例性系统200的多个部分。如图2中所示,系统200可以包括通过网络204与反恶意软件服务器206进行通信的计算系统202。在一个实施例中,如以下更为详细描述的,计算系统202可以包括识别模块104、预测模块106、优先化模块108以及检索模块110。
识别模块104可以被编程以便在执行之前识别用于恶意软件的待扫描的可执行对象210。预测模块106可以被编程以便评估可执行对象210的每一个的执行迫切性。优先化模块108可以被编程以便基于这些评估排列对应于可执行对象210的反恶意软件元数据的检索次序212的优先级。检索模块110可以被编程以便基于该检索次序来检索对应于该多个可执行对象内的一个可执行对象的反恶意软件元数据(例如,存储在反恶意软件服务器206上的反恶意软件签名214(1-n)中的一个或多个)。
计算系统202通常代表能够读取计算机可执行指令的任意类型或形式的计算装置。计算系统202的示例包括但不限于膝上计算机、台式机、服务器、移动电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、以上装置的一个或多个的组合、图6中示例性计算系统610、或任意其他适合的计算装置。
反恶意软件服务器206通常代表能够响应于查找意图来提供反恶意软件元数据的任意类型或形式的计算装置。反恶意软件服务器206的示例包括但不限于被配置用于提供各种数据库服务和/或运行某些软件应用程序的应用程序服务器和数据库。
网络204通常代表能够协助通信或数据传输的任意介质或架构。网络204的示例包括但不限于内部网、广域网(WAN)、局域网(LAN)、个人区域网络(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,GSM网络)、图7中的示例性网络架构700、或类似网络。网络204可以利用无线或有线连接协助通信或数据传输。在一个实施例中,网络204可以协助计算系统202和反恶意软件服务器206之间的通信。
图3是用于查找反恶意软件元数据的示例性计算机实施的方法300的流程图。图3中所示的步骤可以由任意适合的计算机可执行代码和/或计算系统来执行。在一些实施例中,图3中所示的步骤可以由图1中的系统100和/或图2中的系统200的组件中的一个或多个来执行。
如图3所示,在步骤302,本文所描述系统的一个或多个可以在执行之前识别用于恶意软件的待扫描的多个可执行对象。例如,在步骤302,识别模块104可以作为图2中计算系统202的一部分识别可执行对象210。
如本文所用,短语“可执行对象”可以指代任意的可执行指令集。可执行文件的示例包括便携式可执行文件、本机可执行文件、库文件(例如,动态链接库和动态共享对象)、在解释器内执行的位元码文件、和/或脚本文件。
识别模块104可以在任意适合环境中识别该多个可执行对象。例如,该多个可执行对象可以驻留在被配置用于扫描的一个系统上和/或在允许每个可执行对象执行和/或被载入以便执行之前验证该系统上的该可执行对象。在一些示例中,可以配置该系统扫描用于恶意软件的每个可执行对象。另外或可替代地,可以配置该系统以便确认每个可执行对象的恶意软件的有效性和/或不存在。例如,可以配置该系统从而检查反白名单、反已知恶意软件变种、和/或用于社区信誉评分的每个可执行对象。
识别模块104可以识别各种源的任意一个的多个可执行文件。在一些示例中,识别模块104可以使用系统配置信息来识别一组自动启动的可执行对象。该系统配置信息可以指示该组自动启动的可执行对象中的每一个自动启动的可执行对象何时可能启动。该系统配置信息可以根据绝对时间、相对于当前时间的时间、相对于一个或多个事件的时间,以相对于一个或多个事件(包括相对于一个或多个可执行对象的执行)的次序来指示每个自动启动的可执行对象何时可能启动。
在一些示例中,识别该组自动启动的可执行对象可以包括识别被配置为在操作系统启动过程中启动的至少一个可执行对象。例如,识别模块104可以从微软视窗预读软件(MICROSOFTWINDOWSPREFETCH)和/或微软视窗超级预读软件(MICROSOFTWINDOWSSUPERFETCH)获取数据以识别被配置为在启动过程中启动的一个或多个可执行对象和/或识别其他通用的应用程序。另外或可替代地,识别模块104可以从BootExecute注册表信息中获取数据。例如,识别模块104可以从以下位置中任意一个或全部获取数据:
●HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\BootExecute
●HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\SetupExecute
●HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\Execute
识别模块104还作为识别该组自动启动的可执行对象的一部分而识别一项服务。例如,识别模块104可以识别被配置自动启动的一个注册的服务。另外或可替代地,识别模块104可以识别驱动器。例如,识别模块104可以从以下位置获取数据:
●HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
在一些示例中,识别模块104可以识别视窗套接口(winsock)提供商和/或分层服务提供商。另外或可替代地,识别模块104可以识别被配置为在登录时就执行的可执行对象。例如,识别模块104可以从登录配置设置中获取数据。例如,识别模块104可以从以下位置中的任意一个或所有获取数据:
●C:\Users\[user]\AppData\Local\Microsoft\WindowsSidebar\Settings.ini
●HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
●HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit
●HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
●HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
●C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup
●C:\Users\[user]\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup
●HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\Load
●HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
●HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
●HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\StartupPrograms
●HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\AppSetup
●HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts\Logon
●HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts\Logon
●HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell
●HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell
●HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\GinaDLL
●HKEY_LOCAL_MACHINE\SOFIWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Taskman
●HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify
识别模块104还可以识别被配置为根据一个任务调度程序而执行的可执行对象。在此示例中,识别模块104可以从该任务调度程序的配置文件中获取数据以识别该可执行对象。
在一些示例中,识别模块104可以识别被配置为自动载入的可执行对象和/或代替和/或同时作为另一个可执行对象而执行的可执行对象。例如,识别模块104可以识别镜像劫持配置,该配置使得可执行文件代替另一个可执行文件而执行(例如,调试器被配置用于载入一个可执行文件,而不是直接执行该可执行文件)。另外或可替代地,识别模块104可以识别一个组件注入配置,该配置使得库与一个或多个应用程序一起自动载入。例如,识别模块104可以从以下位置之一或两者中获取数据:
●HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Windows\Appinit_Dlls
●HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions
作为识别多个可执行对象的一部分,识别模块104还可以识别可能由用户启动的一组可执行对象。例如,识别模块104可以识别在属于该用户的一个台式机上的可执行对象。另外或可替代地,识别模块104可以识别在属于该用户的下载文件夹(例如,被配置作为从远程源下载的文件的默认目标位置的文件夹)中的一个可执行对象。在一些示例中,识别模块104可以识别应用程序启动菜单内的一系列可执行对象(例如,一系列当前启动的应用程序)。另外或可替代地,识别模块104可以检查一个或多个用户接口元件的状态以识别该可执行对象。例如,识别模块104可以识别用户当前突出显示的和/或放入鼠标和/或键盘焦点的可执行对象的链接。另外或可替代地,识别模块104可以识别已打开窗口内的可执行对象,该窗口呈现可执行对象的目录的内容。
在一些示例中,识别模块104可以通过识别一个或多个可执行对象(识别的可执行对象依靠该一个或多个可执行对象而执行)来扩展多个可执行对象。例如,识别模块104可以识别多个可执行对象内的第一可执行对象,识别指示该第一可执行对象依赖第二可执行对象的依赖信息,然后在多个可执行对象中包括该第二可执行对象。例如,识别模块104可以检查该第一可执行对象内的导入表,并当在该导入表中引用时识别该第二可执行对象。图4是可执行文件的示例性依赖关系图的框图400。如图4所示,可执行文件402可以在可执行文件404之前请求执行,而可执行文件404可以在可执行文件406之前请求执行(例如,作为启动过程的一部分)。可执行文件406可以依赖于可执行文件408(例如,可执行文件406的导入表中引用的库)。因此,识别模块104可以将可执行文件402、404和406识别为开机自启动过程的一部分。然后识别模块104可以识别可执行文件408,因为可执行文件406依赖于可执行文件408。在一些示例中,识别模块104还可以汇集和/或建立多个可执行对象(例如,如图4中所示)之间的依赖关系信息。例如,识别模块104可以向预测模块106提供依赖关系信息。
在一些示例中,识别模块104可以通过识别一个或多个可执行对象(这些可执行对象作为已识别的可执行对象的扩展而操作)来扩展多个可执行对象。例如,识别模块104可以识别多个可执行对象内的第一可执行对象,并识别作为该第一可执行对象的扩展而操作的第二可执行对象。例如,第一可执行对象可以包括浏览器,而第二可执行对象可以包括该浏览器的扩展部分。另外或可替代地,该第一可执行对象可以包括微软视窗资源管理器(MICROSOFTWINDOWSEXPLORER),而第二可执行对象可以包括界面扩展程序。例如,识别模块104可以从以下位置的任意一个或全部获取数据:
●HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Protocols\Filter
●HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
●HKEY_CURRENT_USER\Software\Classes\*\ShellEx\ContextMenuHandlers
●HKEY_LOCAL_MACHINE\Software\Classes\*\ShellEx\PropertySheetHandlers
●HKEY_LOCAL_MACHINE\Software\Classes\Directory\Shellex\CopyHookHandlers
●HKEY_CURRENT_USER\Software\Classes\Folder\ShellEx\DragDropHandlers
●HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
识别模块104还可以识别正在执行的和/或执行之后的一个或多个可执行对象。例如,识别模块104可以识别将要执行而启动的可执行对象和/或正在执行的可执行对象。在一些示例中,识别模块104可以监控应用程序的执行模式以识别频繁执行的可执行对象和/或可能将以某些次序和/或根据某些模式执行的可执行对象。
图5展示了用于查找反恶意软件元数据的示例性系统500。以图5为例,识别模块104可以识别图4的可执行文件(例如,利用系统配置信息510)。
返回到图3,在步骤304本文描述的系统中的一个或多个可以针对多个可执行对象中的每个可执行对象来评估该可执行对象的执行迫切性。例如,在步骤304,预测模块106可以作为图2中计算系统202的一部分来评估可执行对象210中每一个的执行迫切性。以图5作为附加示例,在步骤304,预测模块106可以评估多个可执行对象内的每一个可执行对象的执行迫切性。
预测模块106可以采用各种方式来评估可执行对象的执行迫切性。例如,预测模块106可以评估可执行对象将在预先确定的时间内执行的概率。例如,预测模块106可以评估可执行对象将在检索该可执行对象的反恶意软件元数据和/或扫描具有反恶意软件元数据的可执行对象的时间内执行的概率。另外或可替代地,预测模块106可以评估该可执行对象是否最有可能是下一个要执行的可执行对象。在一些示例中,预测模块106可以结合可执行对象的重要性来评估该可执行对象的执行迫切性一例如,及时执行可执行对象对用户的体验是如何重要(例如,区分在非交互后台任务上提供核心功能和/或用户接口元件的可执行对象的优先次序),多少可执行对象依赖于该可执行对象等等。
预测模块106可以利用各种信息来评估可执行对象的执行迫切性。例如,预测模块106可以使用识别模块104收集的信息,这些信息包括该可执行文件在其中被识别的环境。例如,预测模块106可以确定如果开机自启动过程正在进行中和/或开机自启动依赖关系信息指示该可执行对象将很快执行,则该可执行对象的执行就即将发生。另外或可替代地,预测模块106可以确定如果一个操作系统将要载入服务和/或驱动器并且该可执行对象包括注册的服务和/或被配置为自动载入的驱动器,则该可执行对象的执行就即将发生。在一些示例中,预测模块106可以确定如果一台当前的台式机显示了该可执行对象的链接,则该可执行对象的执行就最有可能即将发生。预测模块106还可以确定如果预测模块106已经确定依赖于该可执行对象的另一个可执行对象的执行即将发生,则该可执行对象的执行就即将来临。
在一些示例中,预测模块106可以识别该可执行对象的创建时间。然后预测模块106可以利用该创建时间和当前时间的差而单调地增加该可执行对象的即将执行的期望值。例如,预测模块106可以减少旧的可执行对象的迫切等级和/或增加新的可执行对象的迫切等级。
预测模块106可以利用各种度量标准、数据结构和/或算法来评估可执行对象的执行迫切性。例如,预测模块106可以为可执行对象产生迫切等级和/或分数。另外或可替代地,预测模块106可以创建包括可执行对象的依赖关系图。通常,预测模块106可以使用至少部分地对多个可执行对象进行排序的任意算法。在一些示例中,预测模块106可以使用硬编码的和/或显式配置的权重和/或产生迫切等级的算法的输入。例如,可以将预测模块106配置为在启动过程中给启动过程依赖信息较大的权重。再如,可以将预测模块106配置为相比于指示可执行对象的预定执行时间的任务调度程序的配置给台式机上的可执行对象的存在更小的权重。另外或可替代地,可以将预测模块106配置为基于过去的经验来自动地调整权重和/或算法的输入。例如,尽管由算法所识别的表示执行即将进行的一个输入,如果预测模块106未能预测可执行对象的执行,则预测模块106可以增加该输入的权重。
以图4为例,预测模块106可以创建依赖关系图400以指示在启动过程中可执行对象的执行的可能次序。例如,可执行文件410和412都可以只在可执行文件406之后执行。可执行文件414可以只在可执行文件410之后执行并且还可以依赖于可执行文件416和418。可执行文件420可以只在可执行文件414和412之后执行。同样,可执行文件422可以只在可执行文件412之后执行。可执行文件424、426和428可以代表可执行文件420的插件程序。
返回到图3,在步骤306,本文所描述系统的一个或多个可以基于评估来排列反恶意软件元数据(对应于多个可执行对象)的检索次序的优先次序。例如,在步骤306,优先化模块108可以作为图2中计算系统202的一部分为对应于可执行对象210的反恶意软件签名214(1)-(n)中的一个或多个创建检索次序212。以图5作为附加示例,在步骤306,优先化模块108可以排列反恶意软件服务器506(对应于队列520内的图4的可执行文件)的反恶意软件元数据的检索次序的优先级。
如本文所用,短语“反恶意软件元数据”可以指代用于确定一个可执行对象是否包括和/或造成恶意软件威胁的任意数据。因此,“对应于”可执行对象的反恶意软件元数据可以指代用于确定该可执行对象是否包括和/或造成恶意软件威胁的反恶意软件元数据。通常,“反恶意软件元数据”可以指代反恶意软件可在扫描、验证和/或检查一个文件过程中使用的任意数据。例如,反恶意软件元数据可以包括反恶意软件签名。如本文所用,短语“反恶意软件签名”可以指代恶意软件变种、家庭和/或血缘的任意指纹、散列和/或任意其他表示形式或识别特征。反恶意软件元数据的另一个示例可以包括白名单签名。白名单签名可以包括任意已知良好文件的指纹、散列、和/或任意其他表示形式或识别特征。反恶意软件元数据的附加示例可以包括文件的信誉信息。
如本文所用,术语“信誉信息”通常指代表达特定社区在可执行文件、软件发行人、和/或文件源(例如网络域名或下载链接)的置信性或合法性方面的意见(例如,安全软件发行人的用户基础)的信息。信誉信息的示例包括但不限于信誉评分(其中例如,高信誉评分通常表示文件、软件发行人或文件源在社区中得到信任,而低信誉评分通常表示文件、软件发行人或文件源在社区中不受信任)、流行率信息(例如,识别社区内的用户装置的数量或百分率的信息,该信息包括(1)具体文件的实例,(2)具体软件发行人所提供的文件,和/或(3)从具体文件源获取的文件,例如网络域名)、或可用于识别社区对文件、软件发行人和/或文件源的置信性或合法性的意见的任意其他信息。
优先化模块108可以采用任意适合的方式来排列检索次序的优先级。例如,优先化模块108可以使用预测模块106产生的任意评分、等级和/或依赖关系图来确定检索次序。在一些示例中,优先化模块108可以排列检索次序的优先级以便使在检索反恶意软件元数据的同时由于延迟一个或多个可执行文件的执行而导致的预计等待时间最小化。
在一些示例中,优先化模块108可以不断地修正检索次序。例如,如果用于MICROSOFTWINWORD的反恶意软件元数据查找超期并且用户比MINESWEEPER更频繁地访问MICROSOFTWINWORD,优先化模块108可以使MICROSOFTWINWORD的查找优先于MINESWEEPER。
以图5为例,优先化模块108可以基于预测模块106产生的依赖关系图400来创建和/或修改队列520。例如,优先化模块108可以将可执行文件402置于队列520之前,因为可执行文件402位于依赖关系图400的根部。同样,优先化模块108可以将可执行文件404置于队列520之后,因为可执行文件404在依赖关系图400中位于可执行文件402之后。优先化模块108可以将可执行文件408和406置于依赖关系图400之后,因为可执行文件406在可执行文件404之后,但依赖于可执行文件408。在一些示例中,可执行文件420和422可以代表交互式可执行对象(例如,提供用户接口的可执行对象)。因此,优先化模块108可以将可执行性文件412和422置于队列520内的可执行文件410之前,以便遵循加载交互式可执行对象的最短路径。然后优先化模块108可以将可执行文件418、416、414、420、424、426和428置于队列520中以便在依赖关系图400中完成其他路径。
在一些示例中,优先化模块108还可以从远程计算系统接收优先级信息以便检索涉及多个可执行对象中至少一个可执行对象的反恶意软件元数据。例如,模块102的实例可以运行在其他客户端系统上,以便收集与可执行文件依赖关系、可执行文件启动模式以及用户可执行文件首选项相关的数据。这些其他客户端系统可以将收集到的数据贡献给中央服务器,该中央服务器接着可以汇集该数据并分发该数据以供运行在各种客户端系统上的优先化模块108的不同实例的使用。
返回到图3,在步骤308,本文所描述系统中的一个或多个可以基于检索次序来检索对应于多个可执行对象内的一个可执行对象的反恶意软件元数据。例如,在步骤308,作为图2的计算系统202的一部分,检索模块110可以基于检索次序212检索对应于可执行对象210的反恶意软件签名214(1)-(n)中的至少一个。以图5作为附加示例,在步骤308,检索模块110可以基于队列520从反恶意软件服务器506检索反恶意软件元数据。
在一些示例中,检索模块110可以及时地检索反恶意软件元数据以便在可执行对象试图启动之前扫描该可执行对象。以图5为例,在检索反恶意软件元数据之后,检索模块110可以将反恶意软件元数据存储在反恶意软件签名高速缓存530中。然后反恶意软件系统540可以检测启动一个可执行文件的意图。反恶意软件系统540可以简单地利用反恶意软件签名高速缓存530的反恶意软件元数据来扫描该可执行文件,而不是从反恶意软件服务器506检索所需要的反恶意软件元数据。在一些示例中,检索模块110可以从远程存储系统检索反恶意软件元数据(例如,反恶意软件签名)。例如,反恶意软件服务器506可以包括云存储服务,云存储服务存储对应于多个可执行对象的反恶意软件元数据。因此,与从反恶意软件签名高速缓存530检索反恶意软件元数据相反的是,在执行一个可执行对象之前直接从反恶意软件服务器506检索反恶意软件元数据可能导致不希望的等待时间。在步骤308,方法300可以终止。
在一些示例中,本文所描述的系统还可以利用反恶意软件元数据对可执行对象执行反恶意软件扫描。如果反恶意软件扫描指示可执行对象是安全的,那么本文描述的系统可以启动该可执行对象,或者如果扫描指示该可执行对象不安全,那么阻止该可执行对象的执行。
通过排列反恶意软件元数据的查找的优先级,本文描述的系统和方法可以允许反恶意软件系统检索反恶意软件元数据并由启动可执行文件的用户在启动之前以减少的已知等待时间来扫描该可执行文件。
图6是能够实施本文描述和/或展示的实施例中的一个或多个的示例性计算系统610的框图。计算系统610广义上代表能够执行计算机可读指令的任意单一或多处理器计算装置或系统。计算系统610的示例包括但不限于工作站、膝上计算机、客户侧终端、服务器、分布式计算系统、手持式装置或任意其他计算系统或装置。在其最基本的配置中,计算系统610可以包括至少一个处理器614和一个系统内存616。
处理器614总体上代表能够处理数据或解释并执行多个指令的任何类型或形式的处理单元。在某些实施例中,处理器614可以从软件应用程序或模块中接收指令。这些指令可以使处理器614执行本文所描述和/或展示的这些示例性实施例中的一个或多个的功能。例如,处理器614可以单独地或与其他元件相结合来执行和/或作为一种手段来执行本文描述的识别、使用、评估、增加、优先化、接收、和/或检索步骤中的一个或多个。处理器614还可以执行和/或作为一种手段来执行本文描述和/或展示的任何其他步骤、方法、或过程。
系统内存616总体上代表能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储装置或介质。系统内存616的多个示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其他适当的存储装置。尽管未作要求,在某些实施例中计算系统610可以既包括易失性内存单元(例如,像系统内存616)又包括非易失性存储装置(例如,像以下详细描述的主存储装置632)。在一个示例中,图1模块102中的一个或多个可以载入到系统内存616中。
在某些实施例中,除了处理器614和系统内存616外,示例性计算系统610还可以包括一个或多个组件或元件。例如,如图6所示,计算系统610可以包括内存控制器618、输入/输出(I/O)控制器620、以及通信接口622,它们中的每一个可以通过通信基础设施612相互连接。通信基础设施612总体上代表能够帮助在计算装置的一个或多个组件之间进行通信的任意类型或形式的基础设施。通信基础设施612的实例包括但不限于通信总线(例如ISA、PCI、PCIe、或类似总线)和网络。
内存控制器618总体上代表在计算系统610的一个或多个组件之间操作内存或数据或者控制通信的任意类型或形式的装置。例如,在某些实施例中,内存控制器618可以通过通信基础设施612控制处理器614、系统内存616以及I/O控制器620之间的通信。在某些实施例中,内存控制器618可以独立地或与其他元件相结合地执行和/或作为一种手段执行本文描述和/或展示的多个步骤或特征中的一个或多个,例如识别、使用、评估、增加、优先化、接收、和/或检索。
I/O控制器620总体上代表能够协调和/或控制计算装置的输入和输出功能的任何类型或形式的模块。例如,在某些实施例中,I/O控制器620可以控制或协助计算系统610的一个或多个元件之间的数据的传输,这些元件例如是处理器614、系统内存616、通信接口622、显示适配器626、输入接口630以及存储接口634。例如I/O控制器620可以单独地或与其他元件相结合来执行和/或作为一种手段来执行本文描述的识别、使用、评估、增加、优先化、接收、和/或检索步骤中的一个或多个。I/O控制器620还可用于执行和/或作为一种手段用于执行本披露中提出的其他步骤和特征。
通信接口622广义上代表能够协助示例性计算系统610与一个或多个附加装置之间进行通信的任何类型或形式的通信装置或适配器。例如,在某些实施例中,通信接口622可以协助计算系统610与包括多个附加的计算系统的私有或公共网络之间的通信。通信接口622的示例包括而不限于有线网络接口(例如网络接口卡)、无线网络接口(例如无线网络接口卡)、调制解调器、以及任何其他适当的接口。在至少一个实施例中,通信接口622可通过到网络(如互联网)的直接链接提供到远程服务器的直接连接。通信接口622还可以间接地提供这种连接,例如通过局域网(如以太网)、个人局域网、电话或缆线网、蜂窝电话连接、卫星数据连接、或任何其他适当的连接。
在某些实施例中,通信接口622还可以代表主机适配器,该主机适配器被配置为用于通过外部总线或通信信道协助计算系统610与一个或多个附加网络或存储装置之间的通信。主机适配器的实例包括但不限于SCSI主机适配器、USB主机适配器、IEEE1394主机适配器、SATA和eSATA主机适配器、ATA和PATA主机适配器、光纤通道接口适配器、以太网适配器等。通信接口622还可以允许计算系统610参与分布式计算或远程计算。例如,通信接口622可以从远程装置接收指令或向远程装置发送指令用于执行。在某些实施例中,通信接口622可以独立地或与其他元件相结合地执行和/或作为一种手段执行在此描述的识别、使用、评估、增加、优先化、接收、和/或检索步骤中的一个或多个。通信接口622还可以用于执行和/或作为一种手段用于执行本披露中提出的其他步骤和特征。
如图6所示,计算系统610还可以包括通过显示适配器626连接至通信基础设施612的至少一个显示装置624。显示装置624总体上代表能够可视地呈现显示适配器626所转发的显示信息的任意类型或形式的装置。类似地,显示适配器626总体上代表任意类型或形式的装置,这些装置被配置用于从通信基础设施612(或从本领域已知的帧缓冲器)转发图形、文本以及其他数据以便显示在显示装置624上。
如图6所示,示例性计算系统610还可以包括通过输入接口630连接至通信基础设施612的至少一个输入装置628。输入装置628总体上代表能够向示例性计算系统610提供计算机或人员生成的输入的任意类型或形式的输入装置。输入装置628的实例包括但不限于键盘、指向装置、语音识别装置或任意其他输入装置。在至少一个实施例中,输入装置628可以独立地或结合其他元件执行和/或作为一种手段执行本文描述的识别、使用、评估、增加、优先化、接收、和/或检索步骤中的一个或多个。输入装置628还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特征。
如图6所示,示例性计算系统610还包括通过存储接口634连接至通信基础设施612的一个主存储装置632和一个备份存储装置633。存储装置632和633总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。例如,存储装置632与633可以是磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器、或者类似装置。存储接口634总体上代表用于在存储装置632和633以及计算系统610的其他组件之间传输数据的任意类型或形式的接口或装置。
在某些实施例中,存储装置632和633可以被配置为用于读取自和/或写入到可移动存储单元,该可移动存储单元被配置为用于存储计算机软件、数据、或其他计算机可读信息。适合的可移动存储单元的示例包括但不限于软盘、磁带、光盘、闪存装置等等。存储装置632和633还可以包括其他类似的结构或装置,以允许计算机软件、数据或其他计算机可读指令下载到计算系统610中。例如,存储装置632和633可以被配置用于读或写软件、数据或其他计算机可读信息。存储装置632和633还可以作为计算系统610的一部分或可以是通过其他接口系统访问的一个分离的装置。
在某些实施例中,存储装置632和633可以用于例如独立地或结合其他元件执行和/或作为一种手段执行本文披露的识别、使用、评估、增加、优先化、接收、和/或检索步骤中的一个或多个。存储装置632和633还可以用于执行和/或作为一种手段用于执行本披露提出的其他步骤和特征。
很多其他装置或子系统可以连接至计算系统610。相反地,为了实施在此描述和/或展示的实施例,不需要图6中所示的所有组件和装置。以上提到的这些装置和子系统还能够以不同于图6中所示的方式进行相互连接。计算系统610还可以使用任何数量的软件、固件、和/或硬件的配置。例如,本文披露的示例性实施例中的一个或多个可以被编码为一种计算机可读介质上的计算机程序(还称为计算机软件、软件应用程序、计算机可读指令、或计算机控制逻辑)。短语“计算机可读介质”总体上是指能够存储或携带计算机可读指令的任何形式的装置、载体、或介质。计算机可读介质的示例包括但不限于传输型介质,如载波,以及物理介质,如磁性存储介质(例如,硬盘驱动器和软盘驱动器)、光存储介质(例如,CD-ROM或DVD-ROM)、电子存储介质(例如,固态驱动器和闪存介质)、以及其他分布式系统。
包含计算机程序的计算机可读介质可以载入到计算系统610中。存储在计算机可读介质上的所有或部分计算机程序然后可以存储在系统内存616和/或存储装置632和633的不同部分上。当由处理器614执行时,载入到计算系统610中的计算机程序可以使处理器614执行和/或作为一种手段执行在此描述和/或展示的示例性实施例中的一个或多个的功能。另外或可替代地,本文描述和/或展示的示例性实施例中的一个或多个可以在固件和/或硬件中实施。例如计算系统610可被配置用作一种专用集成电路(ASIC),它被适配为用于实施在此所披露的这些示例性实施例中的一个或多个。
图7是示例性网络架构700的框图,在该网络架构中客户端系统710、720和730以及服务器740和745可以连接至网络750。客户端系统710、720和730通常代表任意类型或形式的计算装置或系统,例如图6中的示例性计算系统610。在一个实例中,客户系统710可以包括图1的系统100。
类似地,服务器740和745总体上代表被配置用于提供不同的数据库服务和/或运行某种软件应用程序的计算装置或系统,例如应用程序服务器或数据库服务器。网络750总体上代表任何电信或计算机网络,例如它包括:内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。
如图7所示,一个或多个存储装置760(1)-(N)可以直接附接至服务器740。类似地,一个或多个存储装置770(1)-(N)可以直接附接至服务器745。存储装置760(1)-(N)和存储装置770(1)-(N)总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。在某些实施例中,存储装置760(1)-(N)和存储装置770(1)-(N)可代表被配置用于使用不同协议(例如NFS、SMB、或CIFS)与服务器740和745进行通信的网络附联存储(NAS)装置。
服务器740和745还可以连接至存储区域网络(SAN)结构780。SAN结构780总体上代表能够协助多个存储装置之间通信的任意类型或形式的计算机网络或体系结构。SAN结构780可以协助服务器740和745与多个存储装置790(1)-(N)和/或一个智能存储器阵列795之间的通信。SAN结构780还可以通过网络750以及服务器740和745协助客户端系统710、720和730与存储装置790(1)-(N)和/或智能存储器阵列795之间的通信,其方式为装置790(1)-(N)和阵列795对客户端系统710、720和730呈现为本地附接的装置。与存储装置760(1)-(N)和存储装置770(1)-(N)一样,存储装置790(1)-(N)和存储阵列795总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。
在某些实施例中,参考图6的示例性计算系统610,通信接口(例如,图6中的通信接口622)可用于在每一个客户端系统710、720和730以及网络750之间提供连接性。客户端系统710、720和730能够利用例如网络浏览器或其他客户端软件来访问服务器740和745上的信息。这种软件可以允许客户端系统710、720和730访问由服务器740、服务器745、存储装置760(1)-(N)、存储装置770(1)-(N)、存储装置790(1)-(N)或智能存储器阵列795管理的数据。尽管图7描绘了使用网络(例如互联网)交换数据,但在此描述和/或展示的实施例不限于互联网或任意具体的基于网络的环境。
在至少一个实施例中,在此披露的示例性实施例中的一个或多个的全部或一部分可被编码为一种计算机程序并且由服务器740、服务器745、存储装置760(1)-(N)、存储装置770(1)-(N)、存储装置790(1)-(N)、智能存储阵列795、或它们中的任意组合加载并执行。在此披露的多个示例性实施例的一个或多个的全部或一部分还可以被编码为计算机程序,存储在服务器740中,由服务器745运行,并在网络750上分发给客户端系统710、720和730。因此,网络体系架构700可以独立地或与其他元件相结合地执行和/或作为一种手段执行本文描述和/或展示的多个步骤或特征中的一个或多个,例如识别、使用、评估、增加、优先化、接收和/或检索步骤中的一个或多个。网络体系结构700还可以用于执行和/或作为一种手段来执行本披露中提出的其他步骤和特征。
如以上所述,计算系统610和/或网络架构700的一个或多个组件可以单独地或与其他元件相结合地执行和/或作为一种手段来执行查找反恶意软件元数据的示例性方法的一个或多个步骤。
虽然以上披露利用多个具体的框图、流程图、以及示例来阐述不同的实施例,但本文描述和/或展示的每个框图部件、流程图步骤、操作、和/或组件都可以单独地和/或共同地使用大量硬件、软件、或者固件(或者它们的任何组合)配置来实施。另外,在其他部件之中所包括的任何组件的披露都应该看作本质上是示例性的,因为可以实施许多其他的体系结构来达到同样的功能。
在一些示例中,图1中示例性系统100的全部或一部分可以代表云计算或基于网络的环境的多个部分。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过网络浏览器或其他的远程接口进行访问。本文描述的不同功能可以通过远程桌面环境或任何其他的基于云的计算环境来提供。
本文描述和/或展示的过程参数以及步骤的顺序仅仅是以举例的方式给出并且可以根据需要来更改。例如,虽然本文展示和/或描述的这些步骤可以按照一个具体的顺序来示出或讨论,但这些步骤并非必须按照所展示或者所讨论的顺序来执行。本文描述和/或展示的不同的示例性方法还可以省略在此说明或展示的一个或者多个步骤或者还可以包括除所披露的那些之外的额外步骤。
虽然不同的实施例在此已经在全功能性计算系统的背景下进行了描述和/或展示,这些示例性实施例中的一个或者多个能够以多种形式作为一个程序产品来分发,而无论实际用于进行该分发的计算机可读介质的具体形式如何。本文披露的这些实施例还可以通过使用执行一些特定任务的软件模块来实施。这些软件模块可以包括脚本、批文件、或者其他可执行文件,它们可以存储在一种计算机可读的存储介质上或者在一种计算系统中。在一些实施例中,这些软件模块可以将一个计算系统配置用于实施在此披露的一个或者多个示例性实施例。
另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、和/或物理装置的表示从一种形式转换到另一种形式。例如本文描述的模块的一个或多个可以将反恶意软件系统转换为低等待时间的反恶意软件系统。
已经提供了以上描述用于使本领域的其他普通技术人员能够最好地使用在此披露的这些示例性实施例的不同方面。这种示例性描述不用于穷举或者限制在所披露的任何准确的形式上。许多修改与变化形式都是可能的而不背离本披露的精神与范围。应该认为在此披露的这些实施例在所有方面都是展示性的而非限制性的。应该参照所附权利要求及其等效物来确定本披露的范围。
除非另外说明,如在本说明书与权利要求中所使用的,术语“一种”或“一个”将被解释为“至少一个”的意思。此外,为便于使用,如在本说明书以及权利要求中所使用的文字“包含”和“具有”是可以互换的并且具有与文字“包括”相同的含义。

Claims (14)

1.一种用于查找服务器侧反恶意软件元数据的计算机实施的方法,该方法的至少一部分由包括至少一个处理器的一个计算装置来执行,该方法包括:
在第一计算系统上识别多个客户端侧可执行对象,其中该多个客户端侧可执行对象在执行之前要被针对恶意软件扫描,使得等待在扫描恶意软件中要使用的服务器侧反恶意软件签名能够导致对该多个客户端侧可执行对象的访问延迟;
通过对于该多个客户端侧可执行对象中的每个客户端侧可执行对象,评估该客户端侧可执行对象的执行迫切性,来预测何时将需要该服务器侧反恶意软件;
在远离该第一计算系统的第二计算系统上,识别该服务器侧反恶意软件元数据,该服务器侧反恶意软件元数据对应于该多个客户端侧可执行对象内的每一个客户端侧可执行对象;
基于这些评估,排列对应于该多个客户端侧可执行对象的服务器侧反恶意软件元数据的检索次序的优先级;
在任何试图启动该多个客户端侧可执行对象中的相对应的客户端侧可执行对象之前,基于该检索次序,从该第二计算系统中检索该服务器侧反恶意软件元数据;
在试图启动该相对应的客户端侧可执行对象时,将检索的反恶意软件元数据存储在客户端侧反恶意软件签名高速缓存中以便可用,使得由于该服务器侧反恶意软件元数据的检索导致的访问延迟被减少。
2.如权利要求1所述的计算机实施的方法,其中识别该多个客户端侧可执行对象包括利用系统配置信息来识别一组自动启动的客户端侧可执行对象,该系统配置信息指示该组自动启动的客户端侧可执行对象中的每个自动启动的客户端侧可执行对象何时可能启动。
3.如权利要求2所述的计算机实施的方法,其中识别该组自动启动的客户端侧可执行对象包括识别在一次操作系统启动过程中启动的至少一个客户端侧可执行对象。
4.如权利要求2所述的计算机实施的方法,其中识别该组自动启动的客户端侧可执行对象包括识别以下内容中的至少一个:
一项服务;
一个驱动器;
被配置为在登录时执行的一个客户端侧可执行对象;
被配置为根据一个任务调度程序而执行的一个客户端侧可执行对象。
5.如权利要求1所述的计算机实施的方法,其中识别该多个客户端侧可执行对象包括识别可能由一个用户启动的一组客户端侧可执行对象。
6.如权利要求5所述的计算机实施的方法,其中识别可能由该用户启动的该组客户端侧可执行对象包括识别以下内容中的至少一个:
在属于该用户的一个台式机上的一个可执行对象;
在属于该用户的一个下载文件夹中的一个可执行对象。
7.如权利要求1所述的计算机实施的方法,其中识别该多个客户端侧可执行对象包括:
识别该多个客户端侧可执行对象内的一个第一客户端侧可执行对象;
识别依赖关系信息,该依赖关系信息指示该第一客户端侧可执行对象依赖于一个第二客户端侧可执行对象;
在该多个客户端侧可执行对象中包括该第二客户端侧可执行对象。
8.如权利要求1所述的计算机实施的方法,其中识别该多个客户端侧可执行对象包括:
识别该多个客户端侧可执行对象中的一个第一客户端侧可执行对象;
识别作为该第一客户端侧可执行对象的扩展部分而操作的一个第二客户端侧可执行对象。
9.如权利要求1所述的计算机实施的方法,其中评估该客户端侧可执行对象的执行迫切性包括:
识别该客户端侧可执行对象的一个创建时间;
利用该创建时间和当前时间的差而单调地增加该客户端侧可执行对象的即将执行的期望值。
10.如权利要求1所述的计算机实施的方法,其中检索该服务器侧反恶意软件元数据包括从一个远程存储系统检索一个反恶意软件签名。
11.一种用于查找服务器侧反恶意软件元数据的系统,该系统包括:
一个识别模块,该识别模块被编程用于:
在第一计算系统上识别多个客户端侧可执行对象,其中该多个客户端侧可执行对象在执行之前要被针对恶意软件扫描,使得等待在扫描恶意软件中要使用的服务器侧反恶意软件签名能够导致对该多个客户端侧可执行对象的访问延迟;
在远离该第一计算系统的第二计算系统上,识别该服务器侧反恶意软件元数据,该服务器侧反恶意软件元数据对应于该多个客户端侧可执行对象内的每一个客户端侧可执行对象;
一个预测模块,该预测模块被编程用于对于该多个客户端侧可执行对象中的每个客户端侧可执行对象,通过评估该客户端侧可执行对象的执行迫切性来预测何时将需要该服务器侧反恶意软件;
一个优先化模块,该优先化模块被编程用于基于这些评估来排列对应于该多个客户端侧可执行对象的服务器侧反恶意软件元数据的检索次序的优先级;
一个检索模块,该检索模块被编程用于在任何试图启动该多个客户端侧可执行对象内的相对应的客户端侧可执行对象之前,基于该检索次序,从该第二计算系统中检索至少一个服务器侧反恶意软件元数据;
一个存储模块,该存储模块被编程用于在试图启动该相对应的客户端侧可执行对象时,将检索的反恶意软件元数据存储在客户端侧反恶意软件签名高速缓存中以便可用,使得由于该服务器侧反恶意软件元数据的检索导致的访问延迟被减少;
至少一个硬件处理器,该处理器被配置用于执行该识别模块、该预测模块、该优先化模块、以及该检索模块。
12.如权利要求11所述的系统,其中该识别模块被编程用于利用系统配置信息来识别该多个客户端侧可执行对象以识别一组自动启动的客户端侧可执行对象,该系统配置信息指示该组自动启动的客户端侧可执行对象中的每个自动启动的客户端侧可执行对象何时可能启动。
13.如权利要求12所述的系统,其中该识别模块被编程用于通过识别以下内容中的至少一个来识别该组自动启动的客户端侧可执行对象:
一项服务;
一个驱动器;
被配置为在登录时执行的一个客户端侧可执行对象;
被配置为根据一个任务调度程序而执行的一个客户端侧可执行对象。
14.如权利要求11所述的系统,其中该识别模块被编程用于通过识别可能由一个用户启动的一组客户端侧可执行对象来识别该多个客户端侧可执行对象。
CN201280007727.1A 2011-03-15 2012-03-14 用于查找反恶意软件元数据的系统和方法 Active CN103354931B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/048,380 US8667592B2 (en) 2011-03-15 2011-03-15 Systems and methods for looking up anti-malware metadata
US13/048380 2011-03-15
PCT/US2012/029101 WO2012125744A1 (en) 2011-03-15 2012-03-14 Systems and methods for looking up anti-malware metadata

Publications (2)

Publication Number Publication Date
CN103354931A CN103354931A (zh) 2013-10-16
CN103354931B true CN103354931B (zh) 2016-06-08

Family

ID=45922818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280007727.1A Active CN103354931B (zh) 2011-03-15 2012-03-14 用于查找反恶意软件元数据的系统和方法

Country Status (5)

Country Link
US (1) US8667592B2 (zh)
EP (1) EP2686803B1 (zh)
JP (1) JP5976020B2 (zh)
CN (1) CN103354931B (zh)
WO (1) WO2012125744A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013063474A1 (en) 2011-10-28 2013-05-02 Scargo, Inc. Security policy deployment and enforcement system for the detection and control of polymorphic and targeted malware
US10162693B1 (en) 2012-10-18 2018-12-25 Sprint Communications Company L.P. Evaluation of mobile device state and performance metrics for diagnosis and troubleshooting of performance issues
CN102982278B (zh) * 2012-10-31 2015-09-16 北京奇虎科技有限公司 一种扫描文件的方法、装置和系统
CN102970283B (zh) * 2012-10-31 2015-08-12 北京奇虎科技有限公司 文件扫描系统
US9386463B1 (en) * 2012-11-19 2016-07-05 Sprint Communications Company L.P. Application risk analysis
WO2014142986A1 (en) * 2013-03-15 2014-09-18 Mcafee, Inc. Server-assisted anti-malware client
US9311480B2 (en) 2013-03-15 2016-04-12 Mcafee, Inc. Server-assisted anti-malware client
US9143519B2 (en) 2013-03-15 2015-09-22 Mcafee, Inc. Remote malware remediation
US9154466B2 (en) * 2013-12-23 2015-10-06 Symantec Corporation Systems and methods for introducing variation in sub-system output signals to prevent device fingerprinting
US9405904B1 (en) * 2013-12-23 2016-08-02 Symantec Corporation Systems and methods for providing security for synchronized files
US9141431B1 (en) * 2014-10-07 2015-09-22 AO Kaspersky Lab System and method for prioritizing on access scan and on demand scan tasks
US10404697B1 (en) 2015-12-28 2019-09-03 Symantec Corporation Systems and methods for using vehicles as information sources for knowledge-based authentication
US10326733B2 (en) 2015-12-30 2019-06-18 Symantec Corporation Systems and methods for facilitating single sign-on for multiple devices
CN106934283A (zh) * 2015-12-31 2017-07-07 中兴通讯股份有限公司 一种实现文件送检的方法和装置
JP2019505943A (ja) 2016-02-23 2019-02-28 カーボン ブラック, インコーポレイテッド サイバーセキュリティシステムおよび技術
US10375114B1 (en) 2016-06-27 2019-08-06 Symantec Corporation Systems and methods for enforcing access-control policies
US10462184B1 (en) 2016-06-28 2019-10-29 Symantec Corporation Systems and methods for enforcing access-control policies in an arbitrary physical space
US10469457B1 (en) 2016-09-26 2019-11-05 Symantec Corporation Systems and methods for securely sharing cloud-service credentials within a network of computing devices
US10812981B1 (en) 2017-03-22 2020-10-20 NortonLifeLock, Inc. Systems and methods for certifying geolocation coordinates of computing devices
US11347865B2 (en) * 2019-03-29 2022-05-31 Blackberry Limited Determining security risks in binary software code
US11093612B2 (en) * 2019-10-17 2021-08-17 International Business Machines Corporation Maintaining system security

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101167063A (zh) * 2005-03-28 2008-04-23 Duaxes株式会社 通信控制装置及通信控制系统
CN101495969A (zh) * 2005-05-05 2009-07-29 思科埃恩波特系统有限公司 识别电子消息中的威胁
US7620633B1 (en) * 2005-11-14 2009-11-17 Adobe Systems Incorporated Methods and apparatus for prioritizing and sorting metadata to be displayed

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1809599A (en) * 1997-12-11 1999-06-28 Digits Corp. Object code analysis and remediation system and method
US6230288B1 (en) 1998-10-29 2001-05-08 Network Associates, Inc. Method of treating whitespace during virus detection
US8789051B2 (en) * 2004-11-18 2014-07-22 Hamilton Sundstrand Corporation Operating system and architecture for embedded system
US7673341B2 (en) * 2004-12-15 2010-03-02 Microsoft Corporation System and method of efficiently identifying and removing active malware from a computer
US7752667B2 (en) 2004-12-28 2010-07-06 Lenovo (Singapore) Pte Ltd. Rapid virus scan using file signature created during file write
US7844700B2 (en) * 2005-03-31 2010-11-30 Microsoft Corporation Latency free scanning of malware at a network transit point
US9235703B2 (en) * 2005-09-30 2016-01-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virus scanning in a computer system
US20070118906A1 (en) * 2005-11-04 2007-05-24 Tarique Mustafa System and method for deprioritizing and presenting data
US8510827B1 (en) * 2006-05-18 2013-08-13 Vmware, Inc. Taint tracking mechanism for computer security
US8561189B2 (en) * 2006-06-23 2013-10-15 Battelle Memorial Institute Method and apparatus for distributed intrusion protection system for ultra high bandwidth networks
US8141153B1 (en) * 2008-03-25 2012-03-20 Symantec Corporation Method and apparatus for detecting executable software in an alternate data stream
CN101316273B (zh) * 2008-05-12 2012-08-22 华中科技大学 一种分布式安全存储系统
US8312467B2 (en) * 2008-05-13 2012-11-13 Oracle America, Inc. Method and system for concurrently executing an application
US9237166B2 (en) * 2008-05-13 2016-01-12 Rpx Corporation Internet search engine preventing virus exchange
US8245296B2 (en) * 2008-05-23 2012-08-14 Verizon Patent And Licensing Inc. Malware detection device
US8959108B2 (en) * 2008-06-18 2015-02-17 Zeitera, Llc Distributed and tiered architecture for content search and content monitoring
US20100199350A1 (en) * 2009-02-04 2010-08-05 Mark David Lilibridge Federated Scanning of Multiple Computers
US8468345B2 (en) * 2009-11-16 2013-06-18 Microsoft Corporation Containerless data for trustworthy computing and data services
US8510728B2 (en) * 2010-06-30 2013-08-13 International Business Machines Corporation Dynamic determination of application server runtime classloading
AU2011293160B2 (en) * 2010-08-26 2015-04-09 Verisign, Inc. Method and system for automatic detection and analysis of malware
US10574630B2 (en) * 2011-02-15 2020-02-25 Webroot Inc. Methods and apparatus for malware threat research

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101167063A (zh) * 2005-03-28 2008-04-23 Duaxes株式会社 通信控制装置及通信控制系统
CN101495969A (zh) * 2005-05-05 2009-07-29 思科埃恩波特系统有限公司 识别电子消息中的威胁
US7620633B1 (en) * 2005-11-14 2009-11-17 Adobe Systems Incorporated Methods and apparatus for prioritizing and sorting metadata to be displayed

Also Published As

Publication number Publication date
WO2012125744A1 (en) 2012-09-20
EP2686803A1 (en) 2014-01-22
JP5976020B2 (ja) 2016-08-23
US20120240229A1 (en) 2012-09-20
JP2014508363A (ja) 2014-04-03
CN103354931A (zh) 2013-10-16
US8667592B2 (en) 2014-03-04
EP2686803B1 (en) 2018-12-05

Similar Documents

Publication Publication Date Title
CN103354931B (zh) 用于查找反恶意软件元数据的系统和方法
JP5978383B2 (ja) 非反復的マルウェアスキャンを実施するためにプロパティテーブルを使用するためのシステム及び方法
JP5816198B2 (ja) 関連コンピューティングシステム間でコンピューティングオペレーションの結果を共有するためのシステムおよび方法
CN101777062B (zh) 场境感知的实时计算机保护系统和方法
US8225406B1 (en) Systems and methods for using reputation data to detect shared-object-based security threats
US8108536B1 (en) Systems and methods for determining the trustworthiness of a server in a streaming environment
US8782792B1 (en) Systems and methods for detecting malware on mobile platforms
CN102792307B (zh) 在虚拟环境中提供网络访问控制的系统和方法
US8806625B1 (en) Systems and methods for performing security scans
EP2893481B1 (en) Systems and methods for detecting illegitimate applications
EP2998902B1 (en) Method and apparatus for processing file
US20130227692A1 (en) System and method for optimization of antivirus processing of disk files
US8490861B1 (en) Systems and methods for providing security information about quick response codes
US11916937B2 (en) System and method for information gain for malware detection
CN115562992A (zh) 一种文件检测方法、装置、电子设备及存储介质
US9135442B1 (en) Methods and systems for detecting obfuscated executables
US10089469B1 (en) Systems and methods for whitelisting file clusters in connection with trusted software packages
JP2011186823A (ja) ウイルスチェックシステム、ウイルスチェック装置、及び、プログラム
US8706745B1 (en) Systems and methods for determining a file set
JP5619851B2 (ja) パターンマッチングエンジン及びこれを備えた端末装置並びにその方法
US8839374B1 (en) Systems and methods for identifying security risks in downloads
US8352438B1 (en) Systems and methods for contextual evaluation of files for use in file restoration
US8364705B1 (en) Methods and systems for determining a file set
US11514162B1 (en) System and method for differential malware scanner

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200102

Address after: California, USA

Patentee after: CA,INC.

Address before: California, USA

Patentee before: Symantec Corporation