用于检测服务器上漏洞的系统和方法
背景技术
世界各地的组织面临安全事故的风险越来越高,这些事故可能对其业务运营和声誉造成严重后果。例如,攻击者入侵组织网络导致数据泄露,可能会引发该组织收入和客户减少、声誉受损以及许多其他潜在问题。作为第一层防御,重要的是确保可从公共互联网直接访问的设备(如服务器)得到正确配置和保护。如果组织未能保护其外部(即面向互联网的)网络基础架构,该基础架构可能会为任何攻击者提供一个轻松的进入点,从而渗透组织的内部网络并进一步访问和危害其他内部设备。作为攻击组织的侦察阶段的一部分,攻击者可能对该组织的外部基础设施执行软件漏洞评估。攻击者然后可以利用发现的任何漏洞来利用易受攻击的设备,对组织的内部网络发起攻击并访问敏感数据。
不幸的是,对于拥有许多服务器的组织来说,确保组织部署的每个面向公众的服务器上执行的每个服务都是最新的和安全的可能是一项困难的任务。检测服务器漏洞的传统方法可能会耗费大量资源或并不准确。因此,本公开识别并解决了对用于检测服务器上漏洞的系统和方法的需求。
发明内容
如将在下文更详细地描述的,本公开描述了用于检测服务器上漏洞的各种系统和方法。
在一个示例中,一个用于检测服务器上漏洞的计算机实现的方法可包括(i)向服务器集发送请求集,以获取关于可能在所述服务器集中的每个服务器上执行的服务集的信息,(ii)响应于所述请求集,从所述服务器集接收包括关于所述服务集的信息的消息集,其中所述消息集使用多种不同格式来传输关于所述服务集内不同服务的信息,(iii)通过分析所述消息集来创建至少一个试探法,所述试探法能够从一个消息中自动提取在发送所述消息的服务器上执行的所述服务集内的服务的标识符,(iv)通过试探法从所述消息中提取在发送所述消息的所述服务器上执行的所述服务的所述标识符,以及(v)基于所述服务的所述标识符确定所述服务促成发送所述消息的所述服务器上的漏洞。
在一些示例中,所述计算机实现的方法还可包括响应于确定所述服务促成所述漏洞而执行安全操作。在一个示例中,执行所述安全操作可包括修补所述服务器上的所述漏洞。
在一些示例中,所述计算机实现的方法还可包括通过以下方式计算拥有所述服务器的组织的漏洞分数:(i)识别包括拥有所述服务器的所述组织所拥有的服务器组成的附加服务器集,(ii)通过所述试探法从发送自所述附加服务器集内的每个服务器的至少一个附加消息中提取在发送所述附加消息的所述附加服务器集内的所述服务器上执行的至少一个附加服务的至少一个附加标识符来识别服务集,(iii)通过为所述服务集中的每个服务确定由所述服务促成的漏洞的漏洞分数来生成漏洞分数集,以及(iv)基于在所述组织所拥有的所述服务器上执行的所述服务集的所述漏洞分数集来计算所述组织的所述漏洞分数。在一个实施方案中,所述的计算机实现的方法还可包括:为所述组织创建时间漏洞度量,所述时间漏洞度量包括所述组织的漏洞分数和所述组织的至少一个先前漏洞分数;随后针对至少一个附加组织的至少一个时间漏洞度量,对所述组织的所述时间漏洞度量进行排序。
在一个实施方案中,基于所述服务的所述标识符确定所述服务促成发送所述消息的所述服务器上的所述漏洞可包括:从外部资源检索所述服务集的漏洞数据,以及使用所述标识符在所述漏洞数据中定位所述服务。在一些示例中,创建所述试探法可包括:识别用于传输所述信息的所述多个不同格式内的一个格式子集,其中所述格式子集包括相似格式;为所述格式子集生成一个签名,所述签名匹配使用所述格式子集内的至少一种格式格式化的信息;以及根据所述签名创建所述试探法。在一个实施方案中,所述签名可包括在所述消息内定位所述服务的所述标识符的正则表达式。
在一个实施方案中,一种用于实施上述方法的系统可包括:(i)存储在存储器中的发送模块,其向服务器集发送请求集,以获取关于可能在所述服务器集中的每个服务器上执行的服务集的信息;(ii)存储在存储器中的接收模块,其响应于所述请求集,从所述服务器集接收包括关于所述服务集的信息的一个消息集,其中所述消息集使用多种不同格式来传输关于所述服务集内不同服务的信息;(iii)存储在存储器中的创建模块,其通过分析所述消息集来创建至少一个试探法,所述试探法能够从消息中自动提取在发送所述消息的服务器上执行的所述服务集内的服务的标识符;(iv)存储在存储器中的提取模块,其通过所述试探法从所述消息中提取在发送所述消息的所述服务器上执行的所述服务的所述标识符;(v)存储在存储器中的确定模块,其基于所述服务的所述标识符确定所述服务促成发送所述消息的所述服务器上的漏洞;以及(vi)至少一个物理处理器,所述至少一个物理处理器被配置为执行发送模块、所述接收模块、所述创建模块、所述提取模块和所述确定模块。
在一些示例中,可将上述方法编码为非暂态计算机可读介质上的计算机可读指令。例如,一种计算机可读介质可包括一个或多个计算机可执行指令,所述计算机可执行指令在由计算设备的至少一个处理器执行时,可使所述计算设备:(i)向服务器集发送请求集,以获取关于可能在所述服务器集中的每个服务器上执行的服务集的信息;(ii)响应于所述请求集,从所述服务器集接收包括关于所述服务集的信息的消息集,其中所述消息集使用多种不同格式来传输关于所述服务集内不同服务的信息;(iii)通过分析所述消息集来创建至少一个试探法,所述试探法能够从消息中自动提取在发送所述消息的服务器上执行的所述服务集内的服务的标识符;(iv)通过所述试探法从所述消息中提取在发送所述消息的所述服务器上执行的所述服务的所述标识符;以及(v)基于所述服务的所述标识符确定所述服务促成发送所述消息的所述服务器上的漏洞。
来自上述实施方案中的任何一者的特征可根据本文所述的一般原理彼此结合使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施方案、特征和优点。
附图说明
附图示出了多个示例性实施方案并且作为说明书的一部分。这些附图结合下面的描述展示并且说明本公开的各种原理。
图1为用于检测服务器上漏洞的示例性系统的框图。
图2为用于检测服务器上漏洞的附加示例性系统的框图。
图3为用于检测服务器上漏洞的示例性方法的流程图。
图4是用于检测服务器上漏洞的附加示例性计算系统的框图。
图5是能够实现本文描述和/或示出的实施方案中的一个或多个的示例性计算系统的框图。
图6是能够实现本文描述和/或示出的实施方案中的一个或多个的示例性计算网络的框图。
在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案易受各种修改和替代形式的影响,但在附图中以举例的方式示出了特定实施方案并且将在本文详细描述。然而,本文所述的示例性实施方案并非旨在限于所公开的特定形式。相反,本发明涵盖落入所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开整体涉及用于检测服务器上漏洞的系统和方法。如下文将更详细解释的,通过扫描服务器的服务信息,然后创建自定义试探法来自动解析服务信息,本文所述的系统和方法能够高效和准确地确定哪些服务在哪些服务器上运行。通过创建自定义试探法来自动解析服务信息,本文所述的系统和方法可以有效地分析大量以不同格式发送服务信息的服务,这些服务信息不能全部由同一试探法解析。通过以这种方式收集服务信息,本文所述的系统和方法能够提高服务器和/或组织计算漏洞分数的准确性和效率,从而使服务器和/或组织的所有者能够修补发现的任何漏洞,并降低针对这些漏洞的有效攻击的概率。此外,本文描述的系统和方法可以通过以更高的准确度检测潜在的漏洞来改善计算设备的功能,从而降低计算设备受到损害的可能性。这些系统和方法还可以通过为组织创建准确的漏洞度量来改进基于试探法的计算机安全和/或企业层面安全。
下面将参考图1、图2和图4提供对用于检测服务器上漏洞的示例性系统的详细描述。还将结合图3提供对应计算机实现的方法的详细描述。另外,将分别结合图5和图6提供能够实现本文描述的实施方案中的一个或多个的示例性计算系统和网络架构的详细描述。
图1为用于检测服务器上漏洞的示例性系统100的框图。如该图所示,示例性系统100可以包括用于执行一个或多个任务的一个或多个模块102。例如,如下文将更详细解释的,示例系统100可包括一个发送模块104,该发送模块104向服务器集发送请求集,以获取关于可能在该服务器集中的每个服务器上执行的服务集的信息。示例系统100还可以包括接收模块106,其响应于该请求集,从该服务器集接收包括关于该服务集的信息的消息集,其中该消息集使用多种不同格式来传输关于该服务集内不同服务的信息。示例系统100还可包括创建模块108,创建模块108通过分析该消息集来创建至少一个试探法,该试探法能够从消息中自动提取在发送该消息的服务器上执行的服务集内的服务的标识符。示例系统100还可包括提取模块110,提取模块110通过试探法从消息中提取在发送该消息的服务器上执行的服务的标识符。示例系统100还可以包括确定模块112,确定模块112基于该服务的标识符确定该服务促成发送该消息的服务器上的漏洞。尽管被示为独立元件,但图1中的模块102中的一个或多个模块可以表示单个模块或应用程序的一部分。
在某些实施方案中,图1中的模块102中的一个或多个可以表示一个或多个软件应用程序或程序,该一个或多个软件应用程序或程序在被计算设备执行时,可使计算设备执行一个或多个任务。例如并且如下文将更详细描述的,模块102中的一个或多个模块可以表示存储在一个或多个计算设备上并且被配置为在该一个或多个计算设备上运行的模块,该一个或多个计算设备诸如图2中示出的设备(例如,计算设备202和/或服务器206)。图1中的模块102中的一个或多个还可以表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。
如图1所示,示例性系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器140可以存储、加载和/或维护模块102中的一个或多个。存储器140的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓存、以上各项中的一个或多个的变型或组合、和/或任何其他合适的存储存储器。
如图1所示,示例性系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解译和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中的模块102中的一个或多个。除此之外或另选地,物理处理器130可以执行模块102中的一个或多个模块以便于检测服务器上漏洞。物理处理器130的示例包括但不限于微处理器、微控制器、中央处理单元(CPU)、实现软核处理器的现场可编程门阵列(FPGA)、专用集成电路(ASIC)、以上各项中的一个或多个的各部分、以上各项中的一个或多个的变型或组合、和/或任何其他合适的物理处理器。
图1中的示例性系统100可以用多种方式来实现。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可包括经由网络204与服务器206通信的计算设备202。在一个示例中,模块102的功能的全部或一部分功能可以由计算设备202、服务器206和/或任何其他合适的计算系统执行。如下文将更详细描述的,图1的模块102中的一个或多个在通过计算设备202的至少一个处理器和/或通过服务器206执行时,使计算设备202和/或服务器206能够检测服务器上的漏洞。例如,如下文将更详细描述的,发送模块104可向服务器集205发送一请求集208,以获取关于可能在服务器集205中的每个服务器206上执行的服务集210的信息。接下来,接收模块106可响应于请求集208从服务器集205接收包括关于服务集210的信息的消息集214,其中消息集214使用多种不同格式来传输关于服务集210内不同服务的信息。在接收到消息集214之后,创建模块108可通过分析消息集214来创建至少一个试探法218,试探法218能够从消息216中自动提取在发送消息216的服务器206上执行的服务集210内的服务212的标识符220。接下来,提取模块110可通过试探法218从消息216中提取在发送消息216的服务器206上执行的服务212的标识符220。最后,确定模块112可以基于服务212的标识符220确定服务212促成发送消息216的服务器206上的漏洞222。
计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。在一些实施方案中,计算设备202可以是被配置为计算漏洞分数的服务器。计算设备202的附加示例包括但不限于被配置为运行某些软件应用程序和/或提供各种安全、web、存储和/或数据库服务的膝上型电脑、平板电脑、台式电脑、安全服务器、应用服务器、web服务器、存储服务器、数据库服务器和/或任何其他合适的计算设备。尽管在图2中被示出为单个实体,但是计算设备202可以包括和/或表示彼此协同工作和/或操作的多个服务器。
服务器206通常代表能够执行一种或多种服务的任何类型或形式的计算设备。在一些实施方案中,服务器206可以是连接到互联网的面向公众的web服务器。服务器206的附加示例包括但不限于,被配置为运行某些软件应用程序和/或提供各种安全、web、存储和/或数据库服务的安全服务器、应用服务器、web服务器、存储服务器和/或数据库服务器。
网络204通常表示能够促进通信或数据传输的任何介质或架构。在一个实施方案中,网络204可促进计算设备202与服务器206之间的通信。在该示例中,网络204可以使用无线和/或有线连接来促进通信或数据传输。网络204的示例包括但不限于:内联网、广域网(WAN)、局域网(LAN)、个域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、以上各项中的一个或多个的各部分、以上各项中的一个或多个的变型或组合、和/或任何其他合适的网络。
请求集208通常表示发送至服务器的任何类型或形式的通信。服务212通常表示能够在服务器上执行的任何脚本、应用程序、程序和/或其他软件。服务集210通常表示一个或多个服务的任何列表。消息216通常表示由服务器发送的任何类型或形式的通信。消息集214通常表示一条或多条消息的任意组。试探法218通常表示能够识别信息主体内的一条或多条特定信息的任何算法。标识符220通常表示服务的任何类型或形式的标识符。漏洞222通常表示计算设备、在计算设备上执行的服务和/或计算设备和服务的组合的任何使得计算设备容易受到攻击的特性。
图3为用于检测服务器上漏洞的示例性计算机实现的方法300的流程图。图3中所示的步骤可以由任何合适的计算机可执行代码和/或计算系统执行,该计算系统包括图1中的系统100、图2中的系统200、和/或以上各项中的一个或多个的变型或组合。在一个示例中,图3中所示的步骤中的每一个都可以表示算法,其结构包括多个子步骤和/或由多个子步骤表示,该多个子步骤的示例将在下面更详细地提供。
如图3所示,在步骤302,本文所述的一个或多个系统可向服务器集发送请求集,以获取关于可能在该服务器集中的每个服务器上执行的服务集的信息。例如,作为图2中计算设备202的一部分,发送模块104可向服务器集205发送请求集208,以获取关于可能在服务器集205中的每个服务器206上执行的服务集210的信息。
如本文所用,术语“请求”通常指发送到服务器的任何通信。在一些实施方案中,请求可以被设计成从服务器引出关于可能在服务器上执行的一个或多个服务的信息。在一些示例中,请求可以被寻址到特定的端口和/或服务。在一个实施方案中,请求可以作为端口扫描的一部分来发送,查询服务器上的多个端口,以确定这些端口的状态(例如,打开、过滤或关闭)和/或在服务器上执行的且经由这些端口接收流量的服务。请求的示例包括但不限于超文本传输协议请求、文件传输协议请求、简单消息传输协议请求、传输控制协议包、用户数据报协议包和/或互联网控制消息协议包。
如本文所用,术语“服务”通常指在计算设备上运行的任何脚本、代码、程序、应用和/或其他软件。服务的示例可包括但不限于操作系统、数据库应用、邮件应用、文件传输应用、文件存储应用、虚拟机应用和/或网络托管应用。
发送模块104可在各种上下文中发送该请求集。例如,发送模块104可向特定服务器上的端口集发送请求集。在另一个例子中,发送模块104可向由同一组织操作服务器集上的端口集发送请求集。附加地或另选地,发送模块104可向由不同组织操作的几个服务器集发送请求。在一个示例中,发送模块104可向端口21、22、25、80、110、143、993和/或995发送消息。
在步骤304,响应于该请求集,本文所述的一个或多个系统可以从该服务器集接收包括关于该服务集的信息的消息集,其中该消息集使用多种不同格式来传输关于该服务集内不同服务的信息。例如,作为图2中计算设备202的一部分,接收模块106可响应于请求集208,从服务器集205接收包括关于服务集210的信息的消息集214,其中消息集214使用多种不同格式来传输关于服务集210内不同服务的信息。
如本文所用,术语“消息”通常指由服务器发送的任何通信。在一些实施方案中,服务器可以响应于对其的请求来发送消息。在一个示例中,消息可以是超文本传输协议响应。在一些示例中,消息可包括关于在服务器上执行的一个或多个服务的信息,例如用来标识在服务器上执行的服务的名称和/或版本的服务标记。
如本文所用,术语“格式”通常指数据呈现和/或传输的任何方式。在一些实施方案中,服务器可以发送对于名称、版本和/或关于不同服务的其他信息具有不同排布结构的消息。例如,服务可以以“名称(版本)/(子版本)”的格式发送信息,而另一个服务可以以“名称版本附加信息”的格式发送信息。
接收模块106可以在各种上下文中接收该消息集。例如,接收模块106可接收响应于单个服务器的端口扫描而发送的消息。在其他示例中,接收模块106可接收响应于多个服务器的端口扫描而发送的消息。
在步骤306,本文所述的一个或多个系统可通过分析该消息集来创建至少一个试探法,该试探法能够从消息中自动提取在发送该消息的服务器上执行的该服务集内的服务的标识符。例如,创建模块108可作为图2中计算设备202的一部分,通过分析该消息集来创建至少一个试探法218,该试探法218能够从消息216中自动提取在发送消息216的服务器206上执行的服务集210内的服务212的标识符220。
如本文所用,术语“试探法”通常指从其他信息中导出信息的任何方法。在一些实施方案中,试探法可以在包含关于服务的信息的消息内定位该服务的一种或多种类型的标识符。例如,试探法可以解析消息的内容,以提取服务的名称和/或版本。在另一个例子中,试探法可以向解析器提供关于如何解析消息的指令。例如,试探法可包括正则表达式,解析器可以使用该正则表达式来解析消息。
如本文所用,术语“标识符”通常指对服务的任何描述。在一些实施方案中,服务的标识符可包括服务的名称。附加地或另选地,服务的标识符可包括服务的版本名称和/或编号。在一些示例中,服务的标识符可包括服务的发布者、服务的类型和/或关于服务的附加信息。
创建模块108可以以多种方式创建试探法。在一些实施方案中,创建模块108可创建多个试探法来从多种不同的消息格式中提取信息。在一些示例中,创建模块108可识别用于传输信息的多种不同格式内的格式子集,其中格式子集内的格式具有彼此相似的格式。例如,创建模块108可使用诸如Levenshtein距离的字符串相似度测量法来计算消息之间的相似度,然后可将字符串距离低于预定距离阈值的消息分成一组。
在一些实施方案中,创建模块108可为格式子集生成签名,该签名与使用格式子集内的至少一种格式进行格式化的信息相匹配。在一个实施方案中,创建模块108可以使用字符串对齐库来生成正则表达式,该正则表达式与以相似格式子集内的格式呈现的信息相匹配。例如,创建模块108可使用设计用来创建序列比对的FRAK库和/或生物信息学库来生成与相似格式的给定子集中的至少一种格式相匹配的正则表达式。
在一个示例中,创建模块108可以从消息内容中导出字符串,然后使用Smith-Waterman算法对每对字符串执行局部序列比对,以便为每一个字符串构建系统发生树。在该示例中,创建模块108随后可使用非加权组平均法(UPGMA)组合系统发生树,以形成单个系统发生树,并遍历所得系统发生树以构建正则表达式。在该示例中,创建模块108可使用UPGMA距离函数来比较服务器和服务所展示的协议标记的相似性。创建模块108随后可利用这种相似性以半自动方式从彼此相似的标记中生成标记签名。在一些示例中,本文所述的系统可存储生成的标记签名,然后可使用先前生成的标记签名来容易和有效地识别服务器和/或服务。
在一个实施方案中,创建模块108可从签名创建试探法。在一些实施方案中,创建模块108可使分析员能够查看自动生成的正则表达式和/或标记正则表达式中特定信息片段(例如服务名称和/或版本)所处的位置。
在步骤308,本文所述的一个或多个系统可通过试探法从消息中提取在发送该消息的服务器上执行的服务的标识符。例如,提取模块110可作为图2中计算设备202的一部分,通过试探法218从消息216中提取在发送消息216的服务器206上执行的服务212的标识符220。
提取模块110可在各种上下文中从消息中提取标识符。例如,提取模块110可使用通过分析消息创建的试探法来从该消息中提取标识符。在另一个例子中,提取模块110可使用先前通过分析相似消息而创建并存储的试探法来从该消息中提取标识符。在一些实施方案中,提取模块110可从消息中提取服务的多个标识符。在一些示例中,提取模块110可从消息中提取服务的名称、发布者和/或版本。在一个示例中,提取模块110可使用正则表达式来提取位于消息中特定预期位置的信息。例如,提取模块110可将正则表达式“(?<servicename>\w+)v.(?<versionnum>\d{1,2}.\d{1,2})\((?<publisher>\w+)\)?”应用到消息“Email Server v.1.12(AppPublisher)”中,以从该消息中提取名称“Email Server”、发布者“AppPublisher”和/或版本“1.12”。
在一个实施方案中,提取模块110可从接收模块106和/或创建模块108接收消息,从该消息中提取元组格式的数据,该元组包含发送该消息的服务器的互联网协议(IP)地址、服务通信所在的端口号和/或服务器响应于关于该服务的信息的请求而发送的服务标记。在一些示例中,提取模块110可接收元组列表,该元组列表表示关于在多个服务器上执行的各种服务的信息。
在步骤310,本文所述的一个或多个系统可基于服务的标识符确定该服务促成发送该消息的服务器上的漏洞。例如,作为图2中计算设备202的一部分,确定模块112可基于服务212的标识符220确定服务212促成发送消息216的服务器206上的漏洞222。
如本文所用,术语“漏洞”通常指计算设备、服务和/或一个或多个服务和/或计算设备之间的交互的任何使得攻击者能够在具有漏洞的计算设备上执行恶意操作的特征。在一些示例中,漏洞可允许攻击者访问受保护的数据,更改受保护的配置和/或代码,和/或执行未经授权的用户通常不被允许的其他操作。漏洞的示例可以包括但不限于代码注入、结构化查询语言注入、信息泄漏、跨站脚本、跨站请求伪造和/或权限提升。
确定模块112可以多种方式确定服务促成漏洞。在一个实施方案中,确定模块112可基于服务的标识符,通过从外部资源检索该服务集的漏洞数据,并使用标识符在漏洞数据中定位该服务,由此确定该服务促成发送该消息的服务器上的漏洞。例如,确定模块112可从公开可用的漏洞数据库查询所有现有和已报告的软件漏洞以及受影响的供应商、名称和/或版本号的列表。在该示例中,确定模块112然后可将易受攻击的服务列表与在服务器上执行的服务列表进行匹配,以识别易受攻击的服务器。在另一个实施方案中,确定模块112可创建在服务器上识别出的服务的名称、版本和/或供应商的列表,并可查询漏洞数据库以确定这些特定服务是否已知具有漏洞。
在一些示例中,本文所述的系统可响应于确定该服务促成漏洞而执行安全操作。在一个实施方案中,安全操作可包括修补服务器上的漏洞,例如通过重新配置、修补和/或更新促成漏洞的服务。在另一个例子中,本文所述的系统可向该服务器的管理员通知该漏洞。在一些实施方案中,本文所述的系统可计算包括漏洞的漏洞分数,并且可将漏洞分数通知服务器的管理员。
在一些示例中,本文所述的系统可为拥有该服务器组织计算漏洞分数,方法是通过识别该组织所拥有的服务器集,识别在这些服务上执行的服务集,为该服务集生成漏洞分数集,并基于在该组织所拥有的服务器上执行的服务集的漏洞分数集来计算该组织的漏洞分数。在一个实施方案中,如图4所示,本文所述的系统可经由网络404评估服务器集402。在一些示例中,网络404可包括局域网、远程网络(即云网络)和/或互联网。
在一个实施方案中,本文所述的系统可包括在服务器402上执行端口扫描的端口扫描器406。端口扫描器406可包括能够向服务器上的各种端口发送消息和/或数据包并能够评估来自服务器的响应以确定使用这些端口的端口和/或服务的状态的任何类型的应用。在该示例中,本文所述的系统可包括漏洞发现系统416,漏洞发现系统416可包括标记解析器408,标记解析器408使用试探法生成器410生成和/或存储的一个或多个试探法来自动解析服务标记。在一些示例中,漏洞发现系统416还可包括漏洞数据库解析器411,漏洞数据库解析器411查询和/或解析来自漏洞数据库412的结果。在一些实施方案中,漏洞数据库412可以是不由本文所述系统的管理员拥有和/或操作的外部数据库。在其他实施方案中,本文所述的系统可包括漏洞数据库412。在一个示例中,漏洞数据库解析器411和/或标记解析器408可向服务匹配器414发送结果,服务匹配器414可将在服务器402上找到的服务与漏洞数据库412中列出的具有一个或多个漏洞的服务进行匹配。
在一些实施方案中,本文所述的系统还可包括风险评分系统426。在一个实施方案中,风险评分系统426可包括严重性评估418,严重性评估418可从服务匹配器414接收服务漏洞信息和/或从漏洞数据库解析器411接收漏洞风险评分信息。在一个实施方案中,严重性评估418可计算在服务器402上运行的服务上发现的漏洞的漏洞分数,以便计算服务器402的初步漏洞度量。
在一个实施方案中,风险评分系统426可包括附加评估,例如可利用性评估420、感染评估422和/或企业评估424。在一些示例中,可利用性评估420可查询利用数据库430,以获得关于可能影响服务器402的利用的信息。在一些实施方案中,利用数据库430可以是外部资源,而在其他实施方案中,本文所述的系统可包括利用数据库430。在一些示例中,感染评估422可查询一个或多个安全数据源432,以获得关于可能影响服务器402的感染的信息。在一些实施方案中,安全数据源432可包括外部资源,而在其他实施方案中,本文所述的系统可包括安全数据源432。附加地或另选地,企业评估424可查询IP地址映射434,以获得关于哪个服务器402由哪个组织拥有的信息。在一些实施方案中,IP地址映射434可以是外部资源,而在其他实施方案中,本文所述的系统可包括IP地址映射434。在一些示例中,所有服务器402可由同一组织拥有,而在其他示例中,本文所述的系统可同时分析由多个组织拥有的服务器。
在一些实施方案中,严重性评估418、可利用性评估420、感染评估422和/或企业评估424都可向风险评分和基准模块428发送信息,风险评分和基准模块428可为操作服务器402内的服务器的一个或多个组织生成企业级漏洞评估436。在一些实施方案中,企业级漏洞评估436可包括组织的整体漏洞度量,该整体漏洞度量基于促成该组织所操作的面向公众的服务器上的漏洞的服务和/或与这些漏洞相关的利用和/或感染的风险和/或严重性。在一个实施方案中,企业级漏洞评估436可包括由消息协议、应用程序类型和/或其他特征划分的不同类别中的若干度量和/或汇总各类别度量的总体度量。例如,企业级漏洞评估436可包括组织在超文本传输协议应用和/或服务器、安全套接字层应用和/或服务器、和/或简单邮件传输协议应用和/或服务器的每一类别中的A-F的分数。
在一些实施方案中,风险评分和基准模块428可使用加权公式来生成企业级漏洞评估436,该加权公式利用了来自几个类别的众多特征。类别的示例可包括但不限于端口和/或IP特征、常见漏洞和披露(CVE)特征、常见漏洞评分系统(CVSS)特征和/或时间特征。端口和/或IP特征的示例可包括但不限于,每个未打补丁主机的易受攻击的IP地址计数、每个未打补丁主机的易受攻击的端口计数、每个未打补丁主机的每个IP地址的平均易受攻击端口、每个已打补丁主机的已打补丁IP地址计数、每个已打补丁主机的已打补丁端口计数和/或每个已打补丁主机的每个IP地址的平均已打补丁端口。CVE特征的示例可包括但不限于,每个未打补丁主机的每个端口的平均CVE、每个未打补丁主机的每个IP地址的平均CVE、每个已打补丁主机的已打补丁CVE计数、每个未打补丁主机的CVE计数、每个已打补丁主机的每个端口的平均已打补丁CVE和/或每个已打补丁主机的每个IP地址的平均已打补丁CVE。CVSS相关特征的示例可包括但不限于,每个已打补丁主机的平均CVE CVSS分数、每个已打补丁主机的最低CVE·CVSS分数、每个已打补丁主机的最高CVE·CVSS分数、每个未打补丁主机的平均CVE CVSS分数、每个未打补丁主机的最低CVE CVSS分数和/或每个未打补丁主机的最高CVE CVSS分数。时间特征的示例可包括但不限于每个已打补丁主机的平均易受攻击窗口、每个已打补丁主机的最大易受攻击窗口、每个已打补丁主机的平均CVE年龄、每个已打补丁主机的最小CVE年龄、每个已打补丁主机的最大CVE年龄、每个未打补丁主机的平均CVE年龄、每个未打补丁主机的最小CVE年龄和/或每个未打补丁主机的最大CVE年龄。如本文所用,术语“主机”通常指任何类型的服务器和/或计算设备。
在一些示例中,本文所述的系统可计算组织的加权平均风险分数,方法是对于评估中使用的每个特征,将该特征的组织排名(例如,每个服务器的易受攻击端口的平均数量、未打补丁漏洞的平均年龄(以周为单位)和/或每个服务器的平均CVSS分数)乘以分配给该特征的预定权重,然后将所有特征的所得值相加求得总值并将该总值除以用于获得整体易受攻击性分数的特征集的大小。在一些实施方案中,本文所述的系统可以规则的间隔,例如每周一次、每月一次和/或每季度一次,为同一服务器集和/或组织创建漏洞度量,例如加权平均风险分数。在一个实施方案中,本文所述的系统可组合和/或比较在不同时间创建的漏洞度量。
在一个实施方案中,本文所述的系统可为组织创建时间漏洞度量,该度量包括组织的漏洞分数和组织的至少一个先前漏洞分数,和/或可根据至少一个附加组织的至少一个时间漏洞度量对该组织的时间漏洞度量进行排名。在一些实施方案中,本文所述的系统可通过将组织的历史漏洞度量与类似组织的历史漏洞度量进行比较来创建时间对等档案。在一些示例中,本文所述的系统可创建正在进行的时间对等档案,该档案根据组织的所有先前漏洞度量,定期地将组织的新漏洞度量与其对等组织的新漏洞度量进行比较。在一些实施方案中,时间对等简档可通过包括构成组织的整体安全度量的各种单独特征的分数(例如给定时间易受攻击的端口和/或IP地址数量)来实现可调整的粒度级别。
如结合以上方法300所解释的,本文所述的系统和方法可扫描外部(即面向互联网的)机器上运行的服务和/或应用,检索这些服务中的每一个的握手标记,从标记中提取信息以精确识别生成标记的软件应用,提取关于从公开可用的软件漏洞数据库收集的所有现有和已报告的软件漏洞的信息,并找到在被扫描机器上运行的软件应用和软件漏洞数据库之间的交集。在一些示例中,本文所述的系统和方法可在没有组织的合作的情况下执行组织的服务器和/或其他设备的由外向内评估。在一些实施方案中,本文描述的系统和方法可基于一系列不同类别中的加权特征来生成漏洞分数,并且可跟踪组织随时间的安全状况和/或将组织的安全状况与组织同行的安全状况进行比较。通过自动扫描面向公众的服务器以获取服务并解析服务标记,并从漏洞数据库中检索信息,本文所述的系统和方法可有效地执行大规模漏洞评估。在一些示例中,组织可使用由本文所述的系统和方法创建的漏洞评估来修补漏洞、改善安全状况、创建网络保险风险评估和/或确定将漏洞修复的资源定向到何处。
图5为能够实现本文描述和/或示出的实施方案中的一个或多个的示例性计算系统510的框图。例如,计算系统510的全部或一部分可单独地或与其他元件结合来执行本文所述的步骤中的一个或多个步骤(诸如图3中所示的步骤中的一个或多个步骤)和/或作为用于执行其的装置。计算系统510的全部或一部分也可执行本文描述和/或示出的任何其他步骤、方法或过程和/或作为用于执行这些步骤、方法或过程的装置。
计算系统510广义地表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统510的示例包括但不限于:工作站、膝上型计算机、客户端终端、服务器、分布式计算系统、手持设备或任何其他计算系统或设备。在其最基本的配置中,计算系统510可以包括至少一个处理器514和系统存储器516。
处理器514通常表示能够处理数据或解译和执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施方案中,处理器514可以接收来自软件应用程序或模块的指令。这些指令可以使处理器514执行本文描述和/或示出的示例性实施方案中的一个或多个的功能。
系统存储器516通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器516的示例包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。虽然并不是必需的,但在某些实施方案中,计算系统510可以包括易失性存储器单元(诸如系统存储器516)和非易失性存储设备(诸如主存储设备532,如下文详细地描述的)两者。在一个示例中,图1的模块102中的一个或多个可以被加载到系统存储器516中。
在一些示例中,系统存储器516可以存储和/或加载操作系统540以供处理器514执行。在一个示例中,操作系统540可以包括和/或表示管理计算机硬件和软件资源和/或向计算系统510上的计算机程序和/或应用程序提供公共服务的软件。操作系统640的示例包括但不限于LINUX、JUNOS、MICROSOFT WINDOWS、WINDOWS MOBILE、MAC OS、APPLE IOS、UNIX、GOOGLE CHROME OS、GOOGLE ANDROID、SOLARIS,以上各项中的一个或多个的变型,和/或任何其他合适的操作系统。
在某些实施方案中,除了处理器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。
如图5所示,计算系统510也可以包括至少一个显示设备524,该显示设备经由显示适配器526联接到I/O控制器520。显示设备524通常表示能够以可视的方式显示由显示适配器526转发的信息的任何类型或形式的设备。类似地,显示适配器526通常表示被配置为转发来自通信基础结构512(或来自帧缓冲器,如本领域中已知的)的图形、文本和其他数据以在显示设备524上显示的任何类型或形式的设备。
如图5所示,示例性计算系统510还可包括经由输入接口530而联接到I/O控制器520的至少一个输入设备528。输入设备528通常表示能够向示例性计算系统510提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备528的示例包括但不限于:键盘、指向设备、语音识别设备、以上各项中的一个或多个的变型或组合、和/或任何其他输入设备。
除此之外或另选地,示例性计算系统510可包括附加I/O设备。例如,示例性计算系统510可以包括I/O设备536。在该示例中,I/O设备536可包括和/或表示促进与计算系统510的人机交互的用户界面。I/O设备536的示例包括但不限于:计算机鼠标、键盘、监视器、打印机、调制解调器、相机、扫描仪、麦克风、触摸屏设备、以上各项中的一个或多个的变型或组合、和/或任何其他I/O设备。
通信接口522广义地表示能够促进示例性计算系统510与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方案中,通信接口522可以促进计算系统510与包括附加计算系统的专用或公共网络之间的通信。通信接口522的示例包括而不限于:有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施方案中,通信接口522可以经由与网络诸如互联网的直接链路来提供与远程服务器的直接连接。通信接口522也可以通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接地提供此类连接。
在某些实施方案中,通信接口522还可以表示主机适配器,该主机适配器被配置为经由外部总线或通信信道来促进计算系统510与一个或多个附加网络或存储设备之间的通信。主机适配器的示例包括但不限于:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口522还可以允许计算系统510参与分布式或远程计算。例如,通信接口522可以接收来自远程设备的指令或将指令发送到远程设备以供执行。
在一些示例中,系统存储器516可以存储和/或加载网络通信程序538以供处理器514执行。在一个示例中,网络通信程序538可以包括和/或表示使计算系统510能够与另一计算系统(图5中未示出)建立网络连接542和/或通过通信接口522与其他计算系统通信的软件。在该示例中,网络通信程序538可以引导经由网络连接542发送到另一个计算系统的输出流量的流。除此之外或另选地,网络通信程序538可以结合处理器514引导对经由网络连接542从另一计算系统所接收的输入流量的处理。
尽管未在图5中以这种方式示出,但网络通信程序538可以替代地存储和/或加载在通信接口522中。例如,网络通信程序538可以包括和/或表示由结合在通信接口522中的处理器和/或专用集成电路(ASIC)执行的软件和/或固件的至少一部分。
如图5所示,示例性计算系统510还可以包括主存储设备532和经由存储接口534联接到通信基础结构512的备份存储设备533。存储设备532和533通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备532和533可以是磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口534通常表示用于在存储设备532和533与计算系统510的其他部件之间传输数据的任何类型或形式的接口或设备。
在某些实施方案中,存储设备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可能够使用例如web浏览器或其他客户端软件来访问服务器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的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可经由互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可通过web浏览器或其他远程接口进行访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施方案中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算系统(例如,服务器)以促进本文所述功能中的一个或多个的多租户应用。例如,本文所述软件模块中的一个或多个软件模块可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述模块中的一个或多个模块还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施方案,图1中的示例性系统100的全部或一部分可在虚拟环境内实现。例如,本文所述模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常指由虚拟机管理器(例如,虚拟机监控程序)从计算硬件中抽象出来的任何操作系统环境。除此之外或另选地,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,术语“虚拟化层”通常指覆盖操作系统环境和/或从操作系统环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件系统过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作系统的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件系统和/或注册表内的位置的调用重定向至虚拟化层内的位置。
在一些示例中,图1中的示例性系统100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些示例中,移动计算环境可具有一个或多个区别特征,包括例如对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征(例如,由全球定位系统、陀螺仪、加速度计等提供的)位置和移动数据、限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用程序商店的应用程序)等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
此外,图1中的示例性系统100的全部或一部分可表示一个或多个信息管理系统的部分,与一个或多个信息管理系统交互,使用由一个或多个信息管理系统产生的数据和/或产生被一个或多个信息管理系统使用的数据。如本文所用,术语“信息管理”可指数据的保护、组织和/或存储。信息管理系统的示例可包括但不限于:存储系统、备份系统、存档系统、复制系统、高可用性系统、数据搜索系统、虚拟化系统等。
在一些实施方案中,图1中的示例性系统100的全部或一部分可表示一个或多个信息安全系统的部分,产生受一个或多个信息安全系统保护的数据和/或与一个或多个信息安全系统通信。如本文所用,术语“信息安全”可指对受保护数据的访问的控制。信息安全系统的示例可包括而不限于:提供受管理的安全服务的系统、数据丢失防护系统、身份认证系统、访问控制系统、加密系统、策略遵循系统、入侵检测与防护系统、电子发现系统等等。
根据一些示例,图1中的示例性系统100的全部或一部分可表示一个或多个端点安全系统的部分、与一个或多个端点安全系统通信和/或受一个或多个端点安全系统保护。如本文所用,术语“端点安全”可指保护端点系统免遭未经授权和/或非法使用、访问和/或控制。端点保护系统的示例可包括而不限于:反恶意软件系统、用户认证系统、加密系统、保密系统、垃圾邮件过滤服务,等等。
本文描述和/或例示的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不一定需要按例示或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可省略本文描述或示出的步骤中的一个或多个步骤,或除了所公开的那些步骤之外还包括附加步骤。
虽然本文已经在全功能计算系统的上下文中描述和/或示出了各种实施方案,但这些示例性实施方案中的一个或多个实施方案可作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读介质的特定类型。本文所公开的实施方案也可使用执行某些任务的软件模块来实现。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施方案中的一个或多个实施方案。
此外,本文所述的模块中的一个或多个模块可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文描述的模块中的一个或多个可以接收要变换的服务标记数据、通过用试探法解析服务标记数据来变换服务标记数据、将变换结果输出到漏洞列表、使用变换结果来识别服务器中的漏洞、以及将变换结果存储到存储器。除此之外或另选地,本文所述模块中的一个或多个模块可以通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方案的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明实质和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。
除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或部件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“……中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。