统一扫描引擎的制作方法

文档序号:6533434阅读:108来源:国知局
统一扫描引擎的制作方法
【专利摘要】扫描引擎接收执行对计算环境的至少一部分的特定扫描的请求。扫描引擎标识可用的语言解释器集中的特定语言解释器以供执行特定扫描中使用,并使用特定语言解释器执行特定扫描。扫描引擎返回特定扫描的结果。在一些实现中,扫描引擎是在实现扫描引擎与资产管理系统之间的通信的代理上实现的。
【专利说明】统一扫描引擎

【技术领域】
[0001] 本公开一般地涉及计算安全的领域,更具体地涉及安全扫描的领域。

【背景技术】
[0002] 考虑到计算机网络在实体内和实体间通信和事务中扮演的关键角色,现代组织越 来越多地关注维护他们的计算环境的可靠性和安全性。网络管理员、政府、安全咨询和黑客 们已经使用了各种工具来测试目标网络的漏洞,诸如举例而言是否网络上的任何计算机都 可以无需授权而远程地访问和控制。一些网络安全工具可以测试可能入侵的网络路径。从 测试点可以使用诸如traceroute和ping的简单命令来手动地映射网络拓扑,并粗略地判 断网络上什么网络地址是"活的"和哪些计算机是"醒着的"(即,判断哪些计算机是开着并 响应网络分组的)。可以使用诸如端口扫描器的工具来测试目标网络上的个别目标计算机 以判断什么网络端口是打开的。如果发现了打开的端口,那么这些端口可提供可能入侵的 接入,并潜在地表示可以被恶意黑客利用的弱点。可以在计算环境中采用各种工具,从而导 致运行各种不同的测试和返回各种不同的数据。在一些情形中,管理员和安全分析者可以 通过从不相关的工具所返回的数据来尝试合成各种结果和赋予结果意义、生成报告,等等。

【专利附图】

【附图说明】
[0003] 图1是根据至少一个实施例的包括多个扫描引擎的示例计算系统的简化示意图;
[0004] 图2是根据至少一个实施例的包括示例资产管理系统和示例扫描引擎的的示例 计算系统的简化框图;
[0005] 图3A-3B是根据至少一个实施例的基于代理的扫描引擎的示例实现的简化框图;
[0006] 图4A-4E是示出根据至少一个实施例的示例资产管理系统和示例扫描引擎的示 例操作的简化框图;
[0007] 图5A-5G是示出根据至少一个实施例的示例资产管理系统和示例扫描引擎的示 例操作的简化框图;
[0008] 图6A-6B是示出根据至少一个实施例的用于扫描计算环境的各部分的示例技术 的简化流程图。
[0009] 各个附图中相同的附图标记和指派指示相同的元素。

【具体实施方式】
[0010] 概览
[0011] 一般来说,本说明书中所描述的主题的一个方面可以在包括接收执行至少对计算 环境的一部分的特定扫描的请求、以及标识在用于执行特定扫描的扫描引擎上可用的语言 解释器集中的特定语言解释器的动作的方法中体现。扫描引擎可用来使用特定的语言解释 器执行特定扫描,且可以返回该特定扫描的结果。
[0012] 本说明书中所描述的主题的另一个一般方面可以体现在包括至少一个处理器设 备、至少一个存储器元件和扫描引擎的系统中。当由至少一个处理器设备执行时,扫描引擎 可以调适为:接收执行至少对计算环境的一部分的特定扫描的请求、标识在用于执行特定 扫描的扫描引擎上可用的语言解释器集中的特定语言解释器、使用特定的语言解释器执行 特定扫描和返回特定扫描的结果。
[0013] 这些和其它实施例可以各自可选地包括以下特征中的一个或多个。特定扫描可以 包括在包括多个扫描的特定扫描集中。可以接收扫描引擎的执行特定扫描集中的至少一个 其它扫描的请求,且可以标识可用语言解释器集中的一语言解释器以供扫描引擎在其它扫 描中使用。其它扫描可以由扫描引擎使用为供扫描引擎在其它扫描中使用而标识出的语言 解释器来执行,且可以返回其它扫描的结果。特定语言解释器可以不同于为供扫描引擎在 其它扫描中使用而标识出的语言解释器。扫描引擎可以在由扫描引擎执行的特定扫描集中 的扫描中利用少于全部的可用语言解释器集。至少一个其它扫描引擎可以用来执行特定扫 描集中的扫描。扫描引擎可以是多个扫描引擎中的特定扫描引擎。多个扫描引擎可以包括 基于网络的和基于主机的扫描引擎二者。多个扫描引擎中的每一个扫描引擎都可以调适为 从特定资产管理系统接收扫描请求和向该特定资产管理系统报告扫描结果。多个扫描引擎 中的每一个扫描引擎都可以通过相应的代理与特定资产管理系统通信。可以将扫描引擎包 括为代理的插件。代理可以包括至少应该其它可插入式的工具。每一个相应的代理都可以 是标准化代理的实例。
[0014] 而且,这些和其它实施例也可以各自可选地包括以下特征中的一个或多个。可以 将附加的语言解释器添加到语言解释器集中。请求可以包括可由扫描引擎执行以执行特定 扫描的扫描脚本。特定语言解释器可以基于请求来标识。接收执行特定扫描的请求可以将 特定语言解释器解锁。
[0015] 特征的一些或全部可以是计算机实现的方法或进一步包括在用于执行所描述的 此功能的相应系统或其它设备中。结合下面的附图和描述阐述了本公开的这些和其它特 征、方面和实现的细节。通过描述、附图和权利要求,本公开的其它特征、目的和优点将变得 显而易见。
[0016] 示例实施例
[0017] 图1是示出包括资产管理系统105和多个计算设备的计算环境100的示例实现的 简化框图,这些计算设备包括用户计算设备110、115、120、125以及包括服务计算环境内的 各种服务、数据、应用程序和其它资源的设备的其它主机设备(例如,130、135、140)。计算 环境100可以附加地包括调适为根据多个扫描脚本的一个或多个执行多个测试、探测、访 问尝试和其它扫描的多个扫描引擎150、155、160、165、170,其中每一个扫描脚本都调适为 尝试获得关于计算环境100的各种元件的属性、它相应的主机设备(例如,11〇、115、120、 125、130、135、140)、由设备主存的应用和服务、和计算环境100中的网络(例如145),以及 个别网络元件(诸如路由器、交换机、防火墙等)的信息。而且,在一些实现中,扫描引擎 150、155、160、165、170可以扫描系统组件以附加地获得描述使用计算环境100的各种用户 /人员的属性以及用户/人员的行为倾向性的信息。由扫描引擎150、155、160、165、170通 过对计算环境的各种扫描所生成、发现和/或收集的数据可以结合计算环境1〇〇、或计算环 境的特定部分或元件的安全相关评估来集聚、合成和另外地处理。
[0018] 在一些实现中,示例资产管理系统105可以至少部分地将由扫描引擎150、155、 160、165、170执行的扫描的控制以及从扫描获得的扫描结果数据的处理集中化。在许多传 统系统中,可以彼此独立地提供多个不同的扫描实用程序,每一个扫描工具调适为提供特 定类型的扫描服务,诸如扫描特定类型的子系统或设备、扫描以求特定属性等等。然而,在 一些实例中,多维度扫描可以涉及对多个不同服务和设备的测试和扫描并涉及调用多个不 同的扫描实用程序。在典型系统中,每一个扫描实用程序独立于其它扫描实用程序扫描它 的特定计算环境子集,在一些情形中执行冗余检查、扫描或冗余地扫描特定设备或服务。附 加地,每一个独立的扫描实用程序返回它自己的结果数据集,并且有一多维度扫描(例如, 涉及多个不同扫描和扫描实用程序的扫描项目)产生多个独立结果集的一对应集。合成包 括潜在冗余的或不一致的结果的各种结果集以及赋予各种结果集意义可以涉及人类管理 员在各种扫描结果中筛选和过滤以生成结论、产生报告和从扫描导出意义,以及其它困难 和低效。在一些情形中,根据至少一些此处所描述的原理实现的支持管理系统和扫描引擎 克服这些缺陷以及其它此处未显式地描述的缺陷。
[0019] 包括在计算环境100中的端点或用户设备、网络元件、主机设备和其它计算设备 可以通过一个或多个网络(例如145)与其它设备通信和/或促进其它设备之间的通信。弱 点和威胁可以从设备在计算环境内部和外部的计算事务和通信中的参与而具体化。系统中 各种弱点的存在可以为计算环境100被利用弱点的威胁伤害打开方便之门,威胁包括计算 机病毒、受损的数据、未授权的系统、数据或网络接入、数据盗窃、蠕虫、恶意、攻击和其它危 险。这样的弱点和威胁可以对一个或多个设备、子网或计算环境本身造成风险。附加地,将 计算环境管控于其下的各种策略可以附加地强制计算环境与一个或多个策略的特定顺应。 有效地和准确地扫描计算环境100中的设备和网络可有助于确保各种安全标准和策略得 到维系,以及整个计算环境100和它的组成元件的安全和健康得到维护。
[0020] 一般而言,包括示例计算环境100中的计算设备(例如,105、110、115、120、125、 130、135、140等)的"服务器"、"客户端"、"计算设备"、"网络元件"、"主机"和"系统"可以 包括可操作来接收、发送、处理、存储或管理与计算环境100相关联的数据和信息的电子计 算设备。如在此文档中使用的,术语"计算机"、"处理器"、"处理器设备"或"处理设备"旨在 涵盖任何合适的处理设备。例如,示为计算环境100中的单个设备的元件可用多个设备实 现,诸如包括多个服务器计算机的服务器池。而且,计算设备的任何、全部或一些可调适成 执行任何操作系统,包括 Linux、UNIX、Microsoft Windows、Apple OS、Apple iOS、Google Android、Windows Server等,以及虚拟机可调适成将特定操作系统的执行虚拟化,包括定 制和专有的操作系统。
[0021] 而且,服务器、客户端、网络元件、系统和计算设备(例如,105、110、115、120、125、 130、135、140等)可以各自包括一个或多个处理器、计算机可读存储器和一个或多个接口, 及其它特征和硬件。服务器可以包括任何合适的软件组件或模块,或者能够主存和/或服 务软件应用程序和服务的计算设备(例如,资产管理系统105、扫描引擎150、155、160、165、 170和其它服务、应用程序以及包括分布式的、企业的或基于云的软件应用程序、数据和服 务的其它程序。例如,服务器可以配置为通过与其它服务和设备合作或者依赖于其它服务 和设备或由其使用,主存、服务或者以其他方式管理数据结构、模型、数据集、软件服务和应 用程序。在一些实例中,服务器、系统、子系统或者计算设备可以实现为可以主存在公共计 算系统、服务器、服务器池或云计算环境上,并共享包括共享的存储器、处理器和接口的计 算资源的一些设备的某一组合。
[0022] 用户、端点或客户端计算设备(例如,110、115、120、125等)可以包括传统的和移 动的计算设备,包括个人计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、特 征电话、手持式视频游戏控制台、台式计算机、启用因特网的电视和其它设计成与人类用户 接口并能够通过一个或多个网络(例如145)与其它设备通信的设备。用户计算设备和一 般而言的计算设备(例如,105、110、115、120、125、130、135、140等)的属性可以依设备宽泛 地变化,包括相应的操作系统和经加载、安装、执行、操作或以其他方式可由每一个设备访 问的软件程序的集合。例如,计算设备可以运行、执行、已经安装了或者以其他方式包括各 种程序集,包括操作系统、应用程序、插件、小程序、虚拟机、机器图像、驱动器、可执行文件 和其它能够由相应的设备运行、执行或以其他方式使用的基于软件的程序的各种组合。
[0023] -些计算设备还可以包括至少一个图形显示设备以及允许用户查看应用程序和 系统100中提供的其它程序的图形用户接口并与之交互的用户接口,包括与主存在计算设 备中的应用程序交互的程序的用户接口和图形表示以及与资产管理系统105或一个或多 个扫描引擎150、155、160、165、170相关联的图形用户接口。此外,尽管用户计算设备(例 如,110、115、120、125等)可按由一个用户使用来描述,但本公开构想许多用户可使用一个 计算机或者一个用户可使用多个计算机。
[0024] 尽管图1被描述为包含多个元件或与多个元件相关联,但并非图1的计算环境100 中示出的所有元件都可在本公开的每一个替换性实现中使用。附加地,结合图1的示例描 述的元件的一个或多个可位于计算环境100外部,而在其它实例中,某些元件以及其它在 所示的实现中没有描述的元件可包括在其它经描述的元件的一个或多个中或作为其一部 分。而且,图1中示出的某些元件可与其它组件组合,以及用于此处所描述的那些目的之外 的替换性或附加的目的。
[0025] 图2是示出包括与多个代理(例如,210、215)协作地操作的示例资产管理系统 205的示例系统的简化框图200,这些代理装备有调适为基于从资产管理系统205接收的指 令和请求执行基于主机的(例如,在扫描引擎225的情形中)或者基于网络的(例如,在扫 描引擎220的情形中)扫描的扫描引擎(例如,220、225)。扫描结果可以从使用基于网络 和主机的扫描引擎(例如,分别为220、225)的扫描而生成并发送给资产管理系统205以供 集中式的管理、分析和处理。在一些情形中,资产管理系统205可以组织涉及由多个不同的 扫描引擎(包括基于网络和主机的扫描引擎二者)进行的许多扫描(即,扫描集)的扫描, 并可以基于在扫描集的一个或多个部分期间接收的扫描结果而调适由扫描引擎所使用的 扫描脚本。而且,使用一个或多个不同的扫描引擎而获得或生成的结果数据可以集中地报 告给资产管理系统以供由资产管理系统进行集聚、合成和分析。
[0026] 示例资产管理系统205可以包括用来执行在一些实现中包括在资产管理系统205 的一个或多个组件中的功能的一个或多个处理器设备255和存储器元件258。例如,在资产 管理系统205的一个示例实现中,可以提供扫描控制器260、资产储存库管理器265和策略 管理员270。例如,不例扫描控制器260可以包括用于与一个或多个扫描引擎(例如,220、 225)接口并管理由扫描引擎执行的扫描集和个别扫描的功能。在一些实例中,策略(例 如275)可以与计算环境的一个或多个组件相关联,诸如整个环境、网络、一个或多个子网、 一个或多个设备、一个或多个应用程序、一个或多个用户,等等。这样的策略可以包括以用 户为中心的策略(例如,针对用户使用计算环境的设备和网络而应用)、以设备为中心的策 略(例如,针对计算环境中的特定设备而应用)、组织专用的策略(例如,由管控特定组织 的计算环境中的使用和配置的组织设置的策略)、和监管策略(例如,由设置在由实体管控 的特定上下文中所使用的计算系统的系统要求和方针的行业、政府或其它实体设置的策略 (例如,Sarbanes-Oxley系统顺应策略、支付卡行业(PCI)策略、健康保险便利和责任法案 (HIPAA)策略,等等)),以及其它示例。扫描控制器260可以调适为生成特定扫描,包括涉及 在一些情形中由多个不同的扫描引擎(例如,220、225)执行的扫描序列的扫描集,从而解 决与特定策略(例如275)的顺应性或特定策略(例如275)的方针。各种扫描脚本278可 以使用扫描控制器260来生成和维护以供在执行结合一个或多个策略274的扫描中使用。
[0027] 扫描脚本278可以由扫描控制器260推送给一个或多个特定扫描引擎220、225,以 供扫描引擎在执行相对应的扫描任务中使用。扫描脚本278可以包括可执行指令,该指令 在由扫描引擎读取或执行时标识特定扫描目标、将执行的扫描以及在一些实例中将由扫描 引擎在执行扫描任务中使用的计算语言的类型。执行扫描脚本可以导致扫描引擎执行一个 或多个扫描任务(例如,利用一个或多个语言解释器)。在一些实例中,扫描可以涉及来自 计算环境中的特定设备或应用程序的数据的集合。扫描可以包括访问目标计算设备或应用 程序的特定资源的尝试(从目标的角度而言经授权的或未经授权的)。扫描可以包括监视 计算环境中的特定设备或应用程序对发送到计算设备或应用程序的特定刺激或数据的响 应。实际上,扫描可以包括由扫描引擎生成将作为输入提供给、传达给或者以其他方式发送 给扫描目标的数据,扫描引擎还监视扫描目标对所发送的数据的响应。由扫描引擎发送的 这样的数据可以基于从扫描控制器260接收的、以计算语言编写的特定扫描脚本278,在该 特定扫描脚本278中数据要在扫描内生成和发送。而且,从目标返回的数据可以使用扫描 引擎的一个或多个语言解释器解释以生成描述目标的响应和扫描的其它结果的扫描结果 数据。
[0028] 扫描控制器260还可以与扫描引擎(例如,210、215)接口以获得从由扫描引擎执 行的扫描任务返回的扫描结果数据。而且,在一些实现中,扫描引擎260可以根据扫描的特 定目标(例如,衡量与扫描所基于的特定安全策略的顺应性,等等)来组织和集聚扫描结果 数据(例如280)。而且,扫描控制器260可以处理扫描结果数据以判断已经从扫描获得了 所要的信息或者判断特定类型的扫描没有成功地获得特定扫描或扫描集想要的特定信息, 诸如用来判断与扫描所基于的特定安全策略的顺应性所需要的信息,以及其它示例。在这 样的实例中,扫描控制器260可以通过未到期即取消扫描、用另一个扫描脚本替换扫描脚 本、将补充扫描脚本发送给扫描引擎、调用另一个扫描引擎上的另一个扫描、以及其它示例 来调适扫描来控制扫描的进度,以及其它示例。
[0029] 除了基于从之前的或者进行中的扫描获得的扫描结果调适扫描之外,扫描控制器 260也可以标识调适为执行特定扫描的特定扫描引擎。例如,扫描控制器260可以判断一个 或多个基于主机的扫描引擎(例如225)应当用于特定扫描。又例如,扫描控制器260可以 判断应当使用一个或多个基于网络的扫描引擎(例如220)。在基于网络的扫描引擎的情形 中,扫描控制器260可附加地判断特定的基于网络的扫描引擎是否能够与特定的远程扫描 目标(例如,计算设备230、240、245、250)通信和由此扫描该特定的远程扫描目标。这样的 判断可以包括判断特定的扫描引擎是否与扫描目标在同一网络上或者以其他方式能够与 远程扫描目标接口。例如,在一些实现中,扫描控制器260可以从扫描目标到扫描引擎的映 射(即,标识哪些扫描控制器能够与哪些扫描目标通信)标识特定的基于网络的扫描引擎 被调适为与扫描目标通信。如果扫描控制器260还判断经映射的扫描引擎能够执行对扫描 目标的特定所需扫描,则扫描控制器260可以向扫描引擎(例如220)转发扫描脚本(例如 278)以供扫描引擎在通过一个或多个网络(例如145)对扫描目标(例如,计算设备240) 进行扫描中使用。
[0030] 在一些实例中,扫描引擎到扫描目标的映射可以结合对计算环境中的系统资产建 立目录的资产储存库282来维护。系统资产可以包括网络、应用程序和其它程序、计算环境 中的个别设备或子系统、标识为使用计算环境的特定用户或人员,等等。资产储存库282还 可以对各种系统资产的经标识的属性建立目录,以例如有助于对系统实体的弱点的标识。 包括在资产储存库282中的信息也可以由扫描控制器260访问以通知如何对特定扫描目标 (即,将扫描的系统资产)执行特定扫描、扫描哪些扫描目标、调用哪些扫描引擎以扫描特 定扫描目标、要考虑的扫描目标的属性等等。附加地,扫描特定的系统资产可以导致系统资 产的附加信息和属性的发现。可以由例如在与扫描控制器260通信中操作的资产储存库管 理器265将这样的信息添加到或者替换掉在资产储存库中编档的相应的系统资产的其它 信息,以及其它示例实现。在一些实现中,资产储存库管理器265可以包括用于构建、更新 和以其他方式维护包括描述计算环境中发现的系统资产的记录的资产储存库282的功能。
[0031] 除了扫描控制器260和资产储存库管理器265之外,资产管理系统205还可以包 括可以用来定义并向在资产储存库282中标识和编目录的系统资产应用安全策略的策略 管理员270。安全策略275的库可以用策略管理员270来维护和访问。在一些实现中,安全 策略275可包括标准安全策略(例如,一般地可跨计算环境应用)以及环境专有的安全策 略。实际上,在一些示例中,策略管理员270可以包括允许管理员用户为他们相应的计算环 境定义和生成新的、定制的安全策略的功能。而且,策略管理器270可以根据用户输入的关 联或者自动化的关联(例如,基于规则的策略分配基于在资产储存库282中记录的相应的 系统资产的属性)关联哪些策略275应用到哪些系统实体。这样的关联也可以由扫描控制 器260考虑以表示计算环境的将在对应于特定策略275的实施或审计的扫描或扫描集中扫 描的部分(例如,特定扫描目标设备、特定子网等等)。
[0032] 从扫描收集的信息(例如,由资产管理系统205所控制的扫描引擎220、225)可以 用来对特定系统资产实施特定安全策略。例如,策略管理器270和/或资产储存库管理器 265可以用来与部署在计算环境中的各种安全工具(例如285)接口。安全工具285可以远 程于系统资产(例如240、245、240)而部署,从而允许策略实施远程于目标并代表目标(例 如,由一个或多个安全工具285进行的安全实施动作的目标)而发生,允许在无需策略(或 实施工具)被推送给目标自己的情况下进行安全实施。这在例如从受监视的网络移进和移 出的移动设备,以及诸如移动设备、客人设备的未管理设备,以及不包括代理或其它能够实 施重要的安全策略的本地安全工具的其他设备的安全实施中可以是有用的。例如,这样的 安全工具285可以包括防火墙、web网关、邮件网关、主机入侵保护(HIP)工具、网络入侵保 护(NIP)工具、反恶意软件工具、数据丢失保护(DLP)工具、系统弱点管理器、系统策略顺应 性管理器、资产关键性工具、入侵检测系统(IDS)、入侵保护系统(IPS)和/或安全信息管 理(SM)工具,以及其它示例。然而,本地安全实施也是可能的,例如通过在目标设备上运 行、加载或以其他方式直接接口并向资产管理系统205提供用于在目标设备上直接实施策 略的接口的代理(例如215)或其它工具。
[0033] 转向图3A-3B,示出了根据至少一些实施例的示例统一扫描引擎部署的简化框图 300a-b。例如,如图3A中示出的特定示例实现中所示,代理305a示为主存在主机设备310 上,该代理促进与资产管理系统205的通信。在此特定示例中,代理305a可以包括许可可 插入式工具和系统包括在代理305a上并从代理305a调用以在与资产管理系统205的通信 中利用代理305a的"槽"(例如,315、320)或接口。例如,在代理305a的特定示例中,HIP 模块(例如325)连接到或者"插入"到代理305a上,从而允许HIP工具325由资产管理系 统205通过代理305a控制和/或通信。附加的可插入式组件、工具或者"插件"也可以包 括在代理305a上,实际上单个代理(例如305a)可以包括多个可插入式组件(在此示例中 诸如反病毒组件(AV) 328a以及其它)。
[0034] 而且,统一扫描引擎模块(例如330)可以插入到调适为与资产管理系统205通信 和接口的代理305a上。统一扫描引擎330可以调适为提供各种不同的扫描功能以用于使 用资产管理系统205指导的扫描中。例如,在图3A的特定示例中,统一扫描引擎330是调 适为结合扫描远程扫描目标执行外部扫描任务的基于网络的扫描引擎。基于网络的扫描引 擎(例如330)可以通过例如模拟目标之外的设备、网络或其他系统资产并监视扫描目标对 所模拟的外部系统资产的响应来提供扫描目标的外部视图(例如,从包括恶意设备、应用 程序和用户的其它系统资产的角度)。可以使用基于网络的扫描引擎发现的属性可以包括 设备的开放端口、可利用的web接口、IP地址、MAC地址、主机名、netbios、操作系统、硬件 档案、所主存的应用程序和服务,以及设备的其它属性。因此,基于网络的统一扫描引擎330 还可以调适为通过一个或多个网络与主机设备(即,潜在的扫描目标)通信,该主机设备位 于主存可插入式统一扫描引擎330包括于其上的代理305a的主机设备310的远程。
[0035] 统一扫描引擎330还可以包括计算机语言解释器(例如,335、340、345)库,其中每 一个语言解释器向统一扫描引擎330提供根据各种不同的计算语言与各种不同类型的目 标通信、向其发送测试分组和以其他方式扫描的能力。在一些实例中,两个不同扫描之间的 差异可以是数据在扫描引擎和它的目标之间通信所用的计算语言。例如,由两个不同类型 的扫描引擎执行的基本扫描任务可以基本相似,其中引擎之间的核心差异是在扫描任务中 使用的计算语言。通过包括语言翻译器的扩展库,统一扫描引擎330基于它将要运行的扫 描可利用在统一扫描引擎中提供的基本扫描功能结合一个或多个激活的语言解释器,来将 特定扫描指令(例如,扫描脚本)转换成能进一步用所激活的语言之一接收和翻译来自目 标的响应的语言专用扫描。作为示例,数据库语言解释器340可以调适为将扫描指令变换 成特定目标数据库或数据库管理系统可以理解的计算语言(例如,结构化查询语言(SQL)、 XQuery语言(XQL)、EJB查询语言(EJBQL)以及其它)的数据、自变量、分组和其它通信。通 过使用适当的语言解释器(例如340),目标数据库系统可以由此理解扫描引擎330发送的 "ping"和其它传输、处理它们并响应它们,由此(很有希望地)向扫描引擎330揭示目标数 据库系统的特定属性(包括弱点)。以此方式,可以提供单个扫描引擎330,该单个扫描引 擎330可以在一些情形中使用在统一扫描引擎330上可用的可用语言解释器(例如,335、 340、345)库的任一个执行各种各样专门化的扫描。而且应理解,随着新目标和扫描被标识 和/或变得可用,可以扩展语言解释器库,由此允许每一个统一扫描引擎的功能可扩展。
[0036] 尽管在图3A的特定示例中统一扫描引擎330被示为是为与特定代理(例如305a) 的操作而调适的可插入式扫描引擎模块且该代理调适为接受这样的模块,应理解,在其它 实现中可以提供独立于代理或其它工具的统一扫描引擎。实际上,在其它示例中,统一扫描 引擎可以包括允许扫描引擎无需代理就从资产管理系统接收扫描请求和向资产管理系统 传达扫描结果的附加功能。然而,实现基于代理的办法可以在一些实例中引进好处,诸如提 供标准化的平台以供多个不同的工具和引擎(例如,HIP模块325a、AV模块328a、统一扫描 引擎330等)用于与至少部分地集中化的资产管理系统(例如205)接口。实际上,标准化 的代理平台(例如,代理305a)可以用来实现计算环境中的各种主机上的工具的各种不同 的配置和组合。例如,在一些示例中,基于主机的统一扫描引擎可以作为同一代理305a上 在基于网络的扫描引擎330的附加或替代实现。
[0037] 实际上,转向图3B,示出了包括也调适为配备有包括示例统一扫描引擎组件(例 如355)的多个可插入式组件的标准化资产管理系统代理305a的第二实例的示例。然而, 在图3B的示例中,替代接受调适为扫描(多个)远程目标的基于网络的扫描引擎,统一的 基于主机的扫描引擎355在代理305b上被示出,其被调适为在本地和内部(即,提供目标 (即,基于主机的扫描引擎自己的主机360)的内部视图)扫描特定设备或系统。在一些 实例中,基于主机的统一扫描引擎和基于网络的统一扫描引擎两者都可以在同一主机上的 同一代理上提供(例如,提供基于网络的扫描和基于网络的扫描引擎自己的主机的扫描), 或者可以在标准化代理305a、305b上提供第三类型的统一扫描引擎,从而将基于网络和基 于主机的扫描功能两者结合同一扫描引擎组件上的语言解释器(例如,335、340、345)库合 并,由此提供能够潜在地执行任何扫描(例如,基于从资产管理系统205接收的扫描脚本) 的统一扫描引擎。
[0038] 统一扫描引擎(例如355)拥有基于主机的扫描的能力可包括用于访问、查询和测 试也由相应的主机(例如360)主存或使用但尝试从外部渗透或暴露主机的属性的基于网 络的扫描引擎不可访问的各种内部资源的功能。例如,基于主机的扫描引擎可以用来扫描 密码和其它内部数据(例如,为了保证他们的加密),诸如主机的地址信息、服务、注册表设 置、netbios名和其它属性。类似基于网络的统一扫描引擎(例如330),基于主机的扫描引 擎也能够利用它的基于主机的数据挖掘、数据访问和其它数据扫描功能结合可用语言解释 器库中的一个或多个语言解释器(例如,335、340、345),来执行各种各样的扫描。这样的扫 描可以导致基于主机的扫描引擎与各种不同数据结构(例如,内部数据库)、工具、程序和 其它主存在本地主机(例如360)上的资源通信并收集描述这些资源的信息。在一些实现 中,语言解释器的公共库可以用来提供基于网络和基于主机的统一扫描引擎。可以将语言 解释器提供为包括诸如Foundstone评估脚本语言(FASL),扫描警告脚本语言(SASL),Web 评估脚本语言(WASL),外壳脚本,开放式弱点评估语言(OVAL),网络评估脚本语言(NASL), Python、Perl、JavaScript、Ruby、Lua、Java、C++的调适,或任何其它扩展有与远程目标计 算机上的开放网络服务通信或访问该服务的能力或者扩展有询问本地目标计算机的能力 的计算机语言,以及其它示例的语言。
[0039] 在结束扫描(或执行了扫描的特定任务)和生成扫描的扫描结果之际,统一的基 于主机的扫描引擎355也可以与资产管理系统205接口并将扫描结果传达给资产管理系 统205。附加地,如同统一的基于网络的扫描引擎(例如330),统一的基于主机的扫描引擎 355也可以与资产理系统205接口以获得扫描请求、扫描脚本和来自管理特定计算环境的 扫描的资产管理系统205的其它指导。实际上,在一些实现中,统一的基于主机的扫描引擎 355可以调适为插入(例如,使用插头320b)标准化代理平台的代理实例(例如,305b)以 提供这个与相对应的资产管理系统205的接口。在这样的实现中,标准化代理的实例(例 如,305a、305b)可以加载或者安装到各种不同的主机之上,包括不同类型、操作系统和配置 的主机,以提供用于允许至少部分地集中式的资产管理系统205指导计算环境上的安全相 关扫描和安全策略实施的统一平台。实际上,如图3A和3B的示例中所示,标准化代理的两 个实例可以包括在两个不同的主机310、360上并提供以两个不同的插件集,包括两种不同 类型的统一扫描引擎(例如,基于网络的和基于主机的),其各自利用允许每一个统一扫描 引擎动态地和柔性地执行各种各样不同的扫描的可扩展语言解释器库,从而简化资产管理 系统的扫描控制(例如,因为资产管理系统只需要理论地标识基于主机的或者基于网络的 统一扫描引擎的实例,包括扫描解释器(例如,335、340、345)库),以及其它不例。
[0040] 转向图4A-4E的示例,示出了例示示例操作的简化框图400a_e,这些示例操作包 括涉及扫描包括计算设备430、435、450和网络145的特定计算环境的示例资产管理系统 205和多个基于代理的扫描引擎(例如,代理405、420、425上的扫描引擎415、440、445)。在 此特定示例中,资产管理系统205标识将对包括计算环境中的一个或多个设备的计算环境 的一部分执行的特定扫描(或者多个扫描的集)。资产管理系统205可以标识将基于用户 的请求、根据自动的扫描调度、自动地根据用于计算环境的一个或多个安全策略等而执行 的扫描。在此特定示例中,将执行的特定扫描尝试从一个或多个基于网络的扫描获得计算 环境的所需信息集(例如,使用主存在扫描引擎主机410上的基于网络的扫描引擎415)。 因此,资产管理系统205可以通过向扫描引擎主机410和安装在扫描引擎主机405上的代 理405发送扫描请求455来开始扫描。扫描请求可以通过诸如标准化代理(例如,安装在 主机410、430、435的每一个上)的代理405传达给基于网络的扫描引擎415。
[0041] 继续之前的示例并转向图4B,网络扫描460可以由基于网络的扫描引擎415(例 如,通过网络145)响应于从资产管理系统205接收的扫描请求455而进行。在一些实例中, 基于网络的扫描引擎415可扫描计算环境中的单个设备,在其它实例(诸如图4B的示例) 中,网络扫描引擎415可以根据从资产管理系统205接收的扫描请求执行对计算环境中的 多个不同设备(例如,430、435、450)的多个扫描。数据可以由基于网络的扫描引擎415通 过扫描460而截取、通信、访问或以其他方式取回。而且,如图4C中所示,由基于网络的扫 描引擎415从对主机430、435、450的扫描获得的信息和数据可以传达给(例如,在465处) 资产管理系统205用于使用资产管理系统205处理和/或报告。
[0042] 除了基于网络的扫描之外,资产管理系统205可以判断特定扫描或扫描集(例如, 结合特定安全策略的审计)包括对计算环境的特定部分的基于网络的和基于主机的扫描 二者(如果可能的话)。例如,如图4D的示例中所示,除了(和/或响应于)基于网络的扫 描460,资产管理系统205可以将扫描请求470发送给经判断为相对应的基于主机的扫描或 扫描任务的目标的设备(例如。430、435)的特定的基于主机的扫描引擎440、445。这样的 扫描请求470可以通过主存在扫描目标430、435上的相应代理420、425发送给基于主机的 扫描引擎440、445。相应的代理420、425可以是在扫描主机410中使用的同一标准化代理 (例如405)的实例。在一些实例中,不是计算环境中的所有设备都会使代理或代码引擎安 装在设备(例如,系统450)上,尽管设备对计算环境的整体安全档案和特定扫描集的目标 有兴趣。在一些实例中,资产管理系统205可受限为使扫描只在"受管理"的设备(即,包括 与资产管理系统205通信的代理的设备)上执行。在其它实例中,资产管理系统205可标 识特定设备是未管理的(即,不包括代理)并导致代理和/或扫描引擎加载到设备上以便 完成对设备的基于主机的扫描。例如,在一些实现中,可解散的或者另外地暂时的代理或扫 描引擎可以部署在标识为未管理的设备(例如450)上以执行主机设备的内部扫描。在一 些实例中,可执行附加的基于网络的扫描(例如460)以尝试从不拥有基于主机的扫描引擎 的扫描目标提取信息。在其它实例中,资产管理系统205可判断只有一些受管理的设备将 被扫描,继续以只扫描那些其上有基于主机的扫描引擎(无论是基于代理的或者另外的) 可用的设备或选择扫描相关设备的一些其它子集。
[0043] 响应于扫描请求470,基于主机的扫描引擎440、445可以根据扫描脚本或包括在 资产管理系统205的扫描请求470中的其它扫描指令来ping、检查、挑战、测试它们相应的 主机(例如,430、435)的内部资源或以其他方式与之通信。而且,通过对主机430、435的 基于主机的扫描获得的扫描结果475、480可以各自被传达给资产管理系统205,如图4E中 所示。在图4A-4E的示例中,完成了多个扫描,包括基于网络的和基于主机的扫描、对各种 设备的扫描和一些实例中不同类型的扫描,包括利用不同计算语言的扫描。这样的扫描集 的相干策略可以通过使用至少部分地集中化的资产管理系统205来产生和指导,且扫描集 (例如,460、470)的结果(例如,465、475、480)可以被共同地传达给资产管理系统205以被 集聚和集中地处理从而确定扫描集的结果和结论。
[0044] 而且,冗余的、过于包含性的或者不与扫描的特定目标一致(并潜在地,使计算环 境过度增负的资源)的其它扫描可以由资产管理系统205通过它的扫描管理来管理并保持 到最小。例如,在一些实现中,当向资产管理系统205返回扫描结果(例如,465、475、480) 时,扫描结果可以通知资产管理系统205关于扫描的进度,并在一些情形中导致资产管理 系统205添加、改变、跳过或以其他方式修改原始计划的扫描或扫描集。例如,来自对计算 环境中的一个或多个主机的基于网络的扫描的扫描结果可影响(例如,触发、添加、取消、 修改)相同或其它远程主机的另一基于网络的扫描。来自基于网络的扫描的扫描结果也可 以用来影响(例如,触发、添加、取消、修改)由资产管理系统205管理的相关的(例如,在 同一扫描集中)基于主机的扫描,以及其它示例。类似地,一个或多个基于主机的扫描的扫 描结果可以由资产管理系统205考虑以导致由资产管理系统205管理的其它基于主机的和 /或基于网络的扫描的变化。这样的由资产管理系统205进行的管理可以另外扫描决策树 和其它包括在扫描引擎和由扫描引擎处理的扫描脚本中的逻辑,从而允许扫描引擎自己响 应于由扫描引擎在特定扫描的执行期间或之前检测的某些结果或输出而采取某些行动。
[0045] 转向图5A-5G的示例,示出了例示资产管理系统205和基于代理的扫描引擎的其 它实现的进一步示例操作的简化框图500a_g。例如,如上所述,在一些实现中,统一扫描引 擎(例如,330、355a、355b)可以用来结合标准化代理(例如,305a、305b、305c)执行计算环 境的特定扫描,如由资产管理系统205管理的。如图5A的示例中所示,统一扫描引擎可以 包括基于网络的(例如330)和基于主机的(例如355a、355b)扫描引擎二者。而且,每一 个统一扫描引擎可以包括可用的语言解释器(例如505a-c、510a-c、515a_c)库以用于基于 扫描的特定目标(例如,设备360、520、525等)定制使用扫描引擎可执行的特定扫描任务。 语言解释器可以包括用于解释计算语言的特定类型的逻辑以理解和执行用相应的计算语 言写的、产生输出、接收输入、或以其他方式使用的扫描脚本。
[0046] 作为示例,如图5A中所示,资产管理系统205可以生成或标识首先尝试通过基于 主机的扫描获得的关于特定扫描目标的特定所需信息的特定扫描或扫描集。在其它实例 中,扫描可以从基于网络的扫描开始,至少部分同步地执行基于网络的和基于主机的扫描 的组合,只利用基于主机的扫描、只利用基于网络的扫描、以及其它示例扫描集。然而,在图 5A的特定示例中,资产管理系统205可以标识代理305b、305c安装在三个扫描目标(例如, 360、520、525)的两个(例如,360、520)上,并通过与代理305b、305c的通信进一步判断基 于主机的统一扫描引擎355a、355b被包括在代理305b、305c上且基于主机的扫描在扫描目 标360、520上可用。在一些实例中,对主机设备360、520上的扫描引擎355a、355b的标识 可以从引擎到主机的映射、资产储存库、或由资产管理系统205维护或以其他方式可用的 其它数据结构而确定。
[0047] 资产管理系统205可以根据特定扫描集将扫描请求530发送给扫描引擎355a、 355b。扫描请求的内容可以包括特定扫描脚本或其它指令,包括根据基于主机的扫描引擎 的主机设备(例如,360、520)的特定属性配置的脚本和指令。例如,扫描请求530可以定制 成或基于记录在例如资产管理系统可访问的资产储存库中的主机设备的已知属性。在其它 实例中,可以将基本相同的扫描请求发送给每一个基于主机的扫描引擎355a、355b (例如, 通过相应的代理305b、350c)以对每一个目标执行基本相同的扫描。而且,在接收相应的扫 描请求之际,基于主机的扫描引擎355a、355b可以解释请求,包括标识包括在请求中的相 应扫描脚本,并基于所请求的扫描的本质激活对应于将在所请求的扫描中使用的一种或多 种计算语言的一个或多个语言解释器(例如,505b- c、510b-c、515b-c)。在一些实例中,相 应的语言解释器(例如,505b-c、510b-c、515b-c)可以在扫描请求(例如530)自身中标识。
[0048] 转向图5B,在一个特定示例中,基于主机的扫描引擎355a、355b的每一个都可以 基于由资产管理系统205在扫描请求中请求的一个或多个扫描激活两个语言解释器510b、 510c和515b、515c。在图5A-5G的示例的表示中,激活的语言解释器被示为有阴影(例 如,51013、510〇、51513、515(3),而不活动的语言解释器被示为无阴影(例如,505 &-(3、510&、 515a)。在一些实现中,当语言计算器不活动时它是锁住的,只有一个来自资产管理系统205 的扫描请求(或所包括的扫描脚本)能够(暂时地)将语言解释器解锁以供扫描引擎在相 对应的扫描期间使用。在这样的实例中,扫描引擎可另外地不能够激活、访问和使用包括在 它自己的语言解释器库中的语言解释器。例如,这可以在保护对体现在扫描或扫描脚本中 的特定的经许可的、专有的或其它功能的访问、限制开发者修改资产管理系统205以利用 统一扫描引擎来复制(未经授权)特定的经许可的或专有的扫描的能力以及其它示例中有 用。
[0049] 在适当的语言解释器(例如,51013、510(:、51513、515(3)被激活的情况下,基于主机 的统一扫描引擎355a、355b可以对它们相应的主机360、520执行所请求的扫描(例如, 535、540)以标识所扫描主机的各种资源的信息和数据。然后所发现的数据和信息可以包括 在由每一个基于主机的扫描引擎355a、355b发送给资产管理系统205的扫描结果(例如, 545、550)中,如图5C的示例中所示。在此特定示例中,资产管理系统205可以检查由扫描引 擎355a、355b返回的扫描结果545、550以判断扫描是否成功地获得了扫描所旨在获取的信 息。如果成功地获得了信息(例如,提供了对关于计算环境的一个或多个资源或设备的安 全状态的某些问题的答案),那么资产管理系统205可以结束扫描。然而,如果扫描在获得 所需信息中有一定缺陷,则可以由资产管理系统205发起附加的扫描以尝试获得信息。例 如,在图5A-5C的不例中,没有代理或基于主机的扫描引擎对扫描目标525的基于主机的扫 描可用,由此导致关于从扫描结果525获得的信息的缺陷。附加地或替换地,扫描535、540 也可已经无法从扫描(或扫描集)获得所有所需的信息。因此,可以请求附加的扫描,或者 可以触发扫描集中的条件化扫描以补充扫描集中的其它扫描的结果,这些扫描包括基于资 产管理系统对扫描结果545、550的分析的基于网络的扫描,如图OT-5G的示例中所示。
[0050] 转向图的示例,可以将一个或多个附加的扫描请求555发送给由标准化代理 305a上的扫描引擎主机350所主存的基于网络的统一扫描引擎220。如在之前的示例中, 扫描请求555可以包括指导扫描引擎220基于例如各种扫描目标的属性、将要扫描的信息 的类型、之前的扫描结果(例如,545、550)等等来执行计算环境的特定扫描的信息。扫描请 求555的内容可以由资产管理系统205判断以便优化对计算环境的扫描中定为目标的部分 的扫描,同时努力获得全面的和令人满意的扫描结果集。例如,在图的特定示例中,资产 管理系统205可以判断应当尝试附加的基于网络的扫描以补充在基于主机的扫描545、550 中获得的信息。转向图5E和5F的示例,作为示例,可以由资产管理系统205确定各自采用 不同的语言解释器集的两个不同类型的扫描以供扫描主机520、525和用户端点主机360。 因此,为了执行对主机设备520、525的基于网络的扫描,基于网络的扫描引擎220的第一语 言解释器505a可以基于扫描请求555中所请求的扫描从语言解释器库中标识(并激活)。 通过使用激活的语言解释器505a,基于网络的统一扫描引擎220可以根据在扫描请求555 中接收的扫描脚本或其它扫描指令执行对定为目标的主机设备520、525的相应扫描560。
[0051] 而且,如图5F中所示,可以使用相同的基于网络的扫描引擎220但采用与在对主 机设备520、525的扫描560中使用的语言解释器不同的语言解释器(例如,515a)而执行不 同类型的扫描565。响应于对主机设备360、520、525的基于网络的扫描560、565或者在此 期间,可以例如使用在扫描中采用的相应的语言解释器(例如,505a、515a)来收集信息以 生成扫描结果570以供转发给资产管理系统205,如图5G中所示。资产管理系统205可以 处理从基于网络的扫描560获得的扫描结果和基于主机的扫描535、540的扫描结果545、 550,以生成例如结合审计计算环境的特定安全策略而执行的扫描集的内聚的扫描结果集。 例如,至少系统的部分可以由支付卡行业(PCI)安全策略管控,且对策略的审计(在数个策 略类别中)可以通过使用可以运行来审计各种系统资产与适用的PCI策略的顺应性的多个 扫描之集合(包括基于主机的扫描和基于网络的扫描两者)来完成,以及其它不例。
[0052] 应理解,结合图1-5G描述和例示的示例是仅为了说明本公开中所讲述的各种概 念的目的而提供的非限制性示例。例如,可以采用不同于以上描述的示例技术、系统和工具 但无论如何应用至少一些本公开中所处理的原理的技术、操作和系统和组件架构。例如,在 实践中,计算环境可以包括成百到上千的不同类型和配置的组合的各种潜在的扫描目标。 相对应多样的扫描阵列可以由至少部分地集中化的资产管理系统开发和维护以供各种扫 描引擎在扫描计算环境的全部或一部分(包括甚至计算环境的单个组件)中使用。给定此 多样性,采用有统一扫描引擎架构的扫描引擎来实现执行计算环境所需的多种多样扫描中 的灵活性是有利的。尽管有这样的(和其它的)优点,应理解,资产管理系统可以利用仅传 统的扫描引擎、仅统一扫描引擎、或传统的扫描引擎和统一扫描引擎的混合、以及经由代理 或其它解决方案与资产管理系统接口的扫描引擎来管理扫描。附加地,应理解,多种多样语 言解释器可以结合统一扫描引擎的语言解释器库使用,并包括结合本公开的附图和别处所 提到的简化和有限的语言解释器集之外的语言解释器。
[0053] 转向图6A-6B,示出了例示关于扫描计算环境中的主机和其它资源的示例技术的 简化流程图600a-c。例如,在图6A的示例中,包括一个或多个扫描的特定扫描集可以例如 由资产管理系统标识605。特定扫描集的一个或多个扫描可以是对特定计算环境的全部或 部分的扫描,包括对计算环境中的一个或多个特定计算设备的扫描。能够执行特定扫描集 的扫描的多个扫描引擎中的一个或多个扫描引擎可以被标识610。拥有执行相应的扫描和 访问将要扫描的计算环境的特定部分中的特定扫描目标的资源二者的功能的扫描引擎可 以被标识610。多个扫描引擎可以包括基于主机的扫描和基于网络的扫描二者。扫描请求 可以从例如资产管理系统发送615给经标识的一个或多个扫描引擎,该经标识的一个或多 个扫描引擎请求一个或多个扫描引擎中的特定扫描引擎执行扫描集中的相应的一个或多 个扫描。扫描引擎可以执行扫描并将扫描结果返回给例如至少部分地集中化的资产管理系 统,以及其它示例。
[0054] 转向图6B,扫描的执行可以包括使用扫描引擎,诸如基于网络的或基于主机的统 一扫描引擎。扫描请求可以由多个扫描引擎中的特定扫描引擎(例如,由管理扫描集的资 产管理系统标识(例如,在610))接收625以执行扫描集中的一个或多个扫描。扫描引擎 上的多个语言解释器中的一个或多个语言解释器可以被标识630以供执行所请求的扫描。 语言解释器可以根据或基于所接收(在625)的扫描请求而标识。通过使用经标识的语言 解释器,扫描引擎可以执行635所请求的扫描并向例如资产管理系统返回640结果。扫描 集中的附加扫描也可以由扫描引擎(或多个中的其它扫描引擎)请求和执行,包括利用多 个语言解释器中的不同语言解释器的扫描和响应于所接收(例如,在640)的扫描集中的其 它扫描的扫描结果而请求的扫描,以及其它示例。
[0055] 尽管以某些实现和一般相关联的方法描述了本公开,但这些实现的更改和替换应 对本领域技术人员是显而易见的。例如,此处所描述的动作可以是以不同于所描述的次序 执行的并仍然达到所需结果。作为一个示例,附图中描绘的过程不必要求所示的特定次序、 或顺序次序来达到所需结果。所示出的系统和工具可以类似地采用替换性的架构、组件和 模块来达到类似的结果和功能。例如,在某些实现中,多任务并行处理和基于云的解决方案 可能是有利的。在一个替换性系统或工具中,简化的移动通信设备的无线认证功能可以用 在可移动存储设备(诸如便携式硬盘驱动器、拇指型驱动器等)等之上。在这样的实例中, 可移动存储设备可以没有用户接口但拥有无线访问功能(诸如蓝牙)以用于在近程网络上 连接到协作的计算设备,并将认证数据在近程网络上共享给协作的计算设备以向一个或多 个协作计算设备认证无线、便携式存储设备的持有者,从而允许用户既获得通过无线存储 设备对协作计算设备的访问、又使用经认证协作的计算设备访问、消耗和修改存储在硬盘 驱动器上的数据。其它系统和工具也可以使用本公开的原理。附加地,可以支持多样的用 户接口布局和功能。其它变化也在权利要求的范围之内。
[0056] 本说明书中所描述的主题和操作的各实施例可以以数字电子电路、或以包括本说 明书中所公开的结构和其结构等效方案的计算机软件、固件或硬件、或以它们中的一个或 多个的组合来实现。本说明书中所描述的主题的各实施例可以实现为一个或多个计算机程 序,即一个或多个编码于计算机存储介质之上用于由数据处理装置执行或控制数据处理装 置的操作的计算机程序指令模块。替换性地或附加地,程序指令可以在人工生成的传播信 号上编码,传播信号例如用于编码信息以传输到合适的接收器装置供数据处理装置执行而 生成的机器生成的电子、光学或电磁信号。计算机存储介质可以是或被包括于,计算机可读 存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多 个的组合。此外,尽管计算机存储介质本身不是传播信号,但计算机存储介质可以是用人工 生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质还可以是(或被包 括于)一个或多个独立的物理组件或介质(例如,多个CD、盘或其它存储设备),包括分布 式软件环境或云计算环境。
[0057] 网络--包括核心和包括无线接入网络的接入网络--可以包括一个或多个网 络元件。网络元件可以涵盖各种类型的路由器、交换机、网关、桥、负载平衡器、防火墙、服务 器、在线服务节点、代理、处理器、模块或任何其它合适的可操作来在网络环境中交换信息 的设备、组件、元件或对象。网络元件可包括适合的处理器、存储器元件、硬件和/或软件以 支持(或以其他方式执行)与使用处理器用于过滤管理功能相关联的活动,如此处略述的。 而且,网络元件可包括任何合适的便于其操作的组件、模块、接口或对象。这可包括允许数 据或信息的有效交换的适合的算法和通信协议。
[0058] 本说明书中所描述的各操作可以实现为由数据处理装置在存储在一个或多个计 算机可读存储设备上的或从其它源接收的数据上执行的操作。术语"数据处理装置"、"处理 器"、"处理设备"和"计算设备"可以涵盖用于处理数据的各种装置、设备和机器,作为示例 包括可编程处理器、计算机、片上系统、或前述多个、或前述的组合。装置可以包括通用或专 用逻辑电路,例如中央处理单元(CPU)、处理器刀片、专用集成电路(ASIC)或场可编程门阵 列(FPGA)以及其它合适的选项。尽管将一些处理器和计算设备描述和/或例示为单个处 理器,但根据所关联的服务器的特定需求可使用多个处理器。对单个处理器的引用旨在在 适用时包括多个处理器。一般地,处理器执行指令和操纵数据来执行某些操作。除了硬件 之外,装置也可以包括为所述计算机程序创造执行环境的代码,例如构成处理器固件、协议 栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合 的代码。装置和执行环境可以实施各种不同的计算模型基础架构,诸如web服务、分布式计 算和网格计算基础架构。
[0059] 计算机程序(也称为程序、软件、软件应用程序、脚本、模块、(软件)工具、(软件) 程序或代码)可以以任何形式的编程语言,包括编译或解释语言、声明性或过程化语言撰 写,并能以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或其它适于在 计算环境中使用的单元。例如,计算机程序可包括计算机可读执行、固件、连线的或编程的 硬件、或其在当被运行时至少执行此处所描述的过程和操作的有形介质上的任何组合。计 算机程序可以但不需要相对应于文件系统中的文件。程序可以保存在保持其它程序或数据 的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、在专用于所述程序 的单个文件中、或者多个协调的文件中(例如存储一个或多个模块、子程序或代码部分的 文件)。计算机程序可被部署为在一个计算机或位于一个站上或跨多个站分布并由通信网 络互连的多个计算机上执行。
[0060] 程序可以实现为通过各种对象、方法或其它过程实现各种特征和功能的个别模 块,或替代地可按需包括多个子模块、第三方服务、组件、库等等。相反,各种组件的特征和 功能可以按需组合进单个组件。在某些情形中,程序和软件系统可以实现为复合主存的应 用程序。例如,复合应用程序的部分可实现为Enterprise Java Beans (EJB)或者设计时的 组件可有生成不同平台的运行时实现的能力,平台诸如Java 2平台企业版本(J2EE)、高级 企业应用编程(ABAP)对象或Microsoft. Net以及其它。附加地,应用程序可以标识经由网 络(例如,通过因特网)访问和执行的基于web的应用程序。而且,一个或多个与特定主存 的应用程序或服务相关联的过程可以远程地被存储、引用或执行。例如,特定主存的应用程 序或服务的一部分可与被远程调用的应用程序相关联,而主存的应用程序的另一部分可以 是捆绑了以供在远程客户端处理的接口对象或代理。而且,所主存的应用程序和软件服务 的任一或全部可以是另一软件模块或企业应用程序(未示出)的孩子或子模块而不偏离本 公开的范围。更且,所主存的应用程序的部分可以由直接在主存应用程序的服务器上以及 远程地在客户端工作的用户执行。
[0061] 本说明书中所描述的过程和逻辑流可以由一个或多个可编程处理器执行,处理器 通过在输入数据上操作和生成输出而执行一个或多个计算机程序以执行动作。过程和逻辑 流还可以通过专用逻辑电路,例如FPGA (现场可编程门阵列)或ASIC (专用集成电路)来 执行,并且装置也可以被实现为专用逻辑线路。
[0062] 适于计算机程序的执行的处理器包括,作为示例,通用和专用微处理器二者以及 任何种类的数字计算机的任意一个或多个处理器。一般地,处理器接收来自只读存储器或 随机存取存储器或二者的指令和数据。计算机的基本元件是用于根据指令执行动作的处 理器和用于存储指令和数据的一个或多个存储器设备。一般地,计算机还会包括一个或多 个大容量存储设备,例如,磁性、磁光盘、或光盘,或被操作地耦合以接收来自该一个或多个 大容量存储设备的数据或将数据传送到该一个或多个大容量存储设备以供存储数据,或两 者。然而计算机不需要有这样的设备。而且,计算机可以嵌入在另一设备中,例如,仅举数 例,移动电话、个人数字助理(PDA)、平板计算机、移动音频或视频播放器、游戏控制台、全球 定位系统(GPS)接收器、或便携存储设备(例如通用串行总线(USB)闪盘)。适于存储计 算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括,作 为示例,半导体存储器设备,例如EPROM、EEPR0M和闪存设备;磁盘,例如内置硬盘或可移动 盘;磁光盘;以及⑶ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或被合并 到专用逻辑电路中。
[0063] 为了提供与用户的交互,在本说明书中描述的主题的实施例可以在有显示设备例 如阴极射线管(CRT)或液晶显示器(LCD)监视器)用于向用户显示信息以及用户能借此向 计算机提供输入的键盘和定点设备例如,鼠标或追踪球的计算机上实现。其他类型的设备 也能被用以提供与用户的交互;例如,向用户提供的反馈可以是任何形式的传感反馈,例如 视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入能以任何形式接收,包括声音、语音 或触觉输入。而且,计算机可以通过向设备发送文档和从设备接收文档来与用户交互,设备 包括由用户使用的远程设备。
[0064] 本说明书中所描述的主题的实施例可以在包括后端组件(例如,作为数据服务 器)的计算系统中实现、或可在包括中间件组件(例如,应用程序服务器)的计算系统中实 现、或可在包括前端组件(例如,具有用户通过其可以与本声明书中所描述的主题的实现 交互的图形用户界面或Web浏览器的客户计算机)的计算系统中实现、或可在包括这样的 后端、中间软件层或前端组件的任意组合的计算系统中实现。系统的组件可以通过数字数 据通信的任何形式或介质(例如,通信网络)相互连接。通信网络的示例包括任何内部或外 部的网络、众网络、子网或其可操作来便于系统中的各种计算组件之间的通信的组合。网络 可以在网络地址之间通信例如因特网协议(IP)分组、帧中继(FR)帧、异步传输模式(ATM) 单元、语言、视频、数据和其它合适的信息。网络也可包括一个或多个局域网(LAN)、无线电 接入网络(RAN)、城域网(MAN)、广域网(WAN)、因特网的全部或部分、对等网络(例如,自组 织对等网络)和/或任何其它在一个或多个地点的通信系统或众系统。
[0065] 计算系统可以包括客户端和服务器。客户端和服务器一般互相远程并通常通过通 信网络交互。客户端和服务器的关系通过运行在相应的计算机上并互相具有客户端-服务 器关系的计算机程序来提升。在一些实施例中,服务器向客户端设备传输(例如,为了向与 客户端设备交互的用户显示数据和接收用户输入的目的)数据(例如,HTML页面)。在客 户端设备生成的数据(例如,用户交互的结果)可以在服务器上从客户端设备接收。
[0066] 尽管本说明书包含许多具体实现细节,但这些不应被解释为任何发明或任何将被 声明的内容的范围的限制,而是特定于特定发明的特定实施例的特征的描述。本说明书中 在独立实施例的上下文中所描述的某些特征也可以组合在单个实施例中实现。相反,在单 个实施例的上下文中所描述的各种特征也可以在多个实施例中独立地或在任何合适的子 组合中实现。而且,尽管以上可以将特征描述为在某些组合中操作或甚至初始声明为如此, 来自所声明的组合的一个或多个特征也可以在一些情形下从组合中删去,且所声明的组合 可以被导向子组合或子组合的变体。
[0067] 类似地,尽管各操作在图中以特定次序描绘,这不应被理解为要求以所示的特定 次序或以顺序次序来执行这样的操作、或执行所有示出的操作以达到所要求的结果。在某 些情形下,多任务和并行处理可以是有利的。而且,以上描述的各实施例中各种系统组件的 独立不应被理解为在所有实施例中要求这样的独立,且应理解所描述的程序组件和系统可 以基本整合进单个软件产品或封装进多个软件产品。
[0068] 因此,描述了所述主题的特定实施例。其它实施例也在权利要求的范围之内。在 一些情形中,权利要求中所述的动作可以以不同的次序执行而仍达到所需要的结果。另外, 附图中描绘的过程不必要求所示的特定次序、或顺序次序来达到所需要的结果。
【权利要求】
1. 一种方法,所述方法包括: 接收执行对计算环境的至少一部分的特定扫描的请求; 标识扫描引擎上的可用语言解释器集中的特定语言解释器以供执行所述特定扫描使 用; 使用所述扫描引擎执行所述使用所述特定语言解释器的特定扫描;以及 返回所述特定扫描的结果。
2. 如权利要求1所述的方法,其特征在于,所述特定扫描包括在包括多个扫描的特定 扫描集中,所述方法还包括: 接收所述扫描请求执行所述特定扫描集中的至少一个其它扫描的请求; 标识所述可用的语言解释器集中供所述扫描引擎在所述其它扫描中使用的语言解释 器; 使用所述扫描引擎执行所述其它扫描,所述其它扫描使用供所述扫描引擎在所述其它 扫描中使用的经标识的语言解释器;以及 返回所述其它扫描的结果。
3. 如权利要求2所述的方法,其特征在于,所述特定语言解释器不同于所述供所述扫 描引擎在所述其它扫描中使用的经标识的语言解释器。
4. 如权利要求3所述的方法,其特征在于,所述扫描引擎在由所述扫描引擎执行的特 定扫描集中的扫描中利用少于全部的所述可用语言解释器集。
5. 如权利要求2所述的方法,其特征在于,使用至少一个其它扫描引擎来执行所述特 定扫描集中的扫描。
6. 如权利要求1所述的方法,其特征在于,所述扫描引擎是多个扫描引擎中的特定扫 描引擎。
7. 如权利要求5所述的方法,其特征在于,所述多个扫描引擎包括基于网络的和基于 主机的扫描引擎二者。
8. 如权利要求5所述的方法,其特征在于,所述多个扫描引擎中的每一个扫描引擎调 适为从特定资产管理系统接收扫描请求和向特定资产管理系统报告扫描结果。
9. 如权利要求7所述的方法,其特征在于,所述多个扫描引擎中的每一个扫描引擎通 过相应的代理与所述特定资产管理系统通信。
10. 如权利要求8所述的方法,其特征在于,所述扫描引擎被包括为所述代理的插件。
11. 如权利要求9所述的方法,其特征在于,所述代理包括至少一个其它可插入式工 具。
12. 如权利要求8所述的方法,其特征在于,每一个相应的代理是标准化代理的实例。
13. 如权利要求1所述的方法,其特征在于,还包括向所述语言解释器集添加附加的语 言解释器。
14. 如权利要求1所述的方法,其特征在于,所述请求包括可由所述扫描引擎执行以执 行所述特定扫描的扫描脚本。
15. 如权利要求1所述的方法,其特征在于,所述特定语言解释器是基于所述请求而标 识的。
16. 如权利要求15所述的方法,其特征在于,接收执行所述特定扫描的所述请求将所 述特定语言解释器解锁。
17. -种编码在非瞬态介质中的逻辑,包括供执行的代码,所述代码在由处理器执行时 可用于执行操作,所述操作包括: 接收执行对计算环境的至少一部分的特定扫描的请求; 标识扫描引擎上的可用语言解释器集中的特定语言解释器以供执行所述特定扫描使 用; 使用所述扫描引擎执行所述使用所述特定语言解释器的特定扫描;以及 返回所述特定扫描的结果。
18. -种系统,包括: 至少一个处理器设备; 至少一个存储器元件;以及 扫描引擎,其在由所述至少一个处理器设备执行时调适成: 接收执行对计算环境的至少一部分的特定扫描的请求; 标识可用语言解释器集中的特定语言解释器以供执行所述特定扫描使用; 执行所述使用所述特定语言解释器的特定扫描;以及 返回所述特定扫描的结果。
19. 如权利要求18所述的系统,其特征在于,进一步包括资产管理系统服务器,其被调 适为: 向所述扫描引擎发送扫描请求,其中所述扫描引擎是多个扫描引擎之一;以及 处理从所述多个扫描引擎接收的扫描结果。
20. 如权利要求19所述的系统,其特征在于,进一步包括代理,所述代理包括所述扫描 引擎并便于所述扫描引擎和所述资产管理系统服务器之间的通信。
【文档编号】G06F21/12GK104221024SQ201380017011
【公开日】2014年12月17日 申请日期:2013年4月10日 优先权日:2012年4月10日
【发明者】R·T·纳卡瓦塔斯, J·M·哈贾德四世, S·斯克瑞克 申请人:迈克菲股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1