支持攻击检测和缓解的数据中心架构的制作方法

文档序号:18850959发布日期:2019-10-13 00:53阅读:152来源:国知局
支持攻击检测和缓解的数据中心架构的制作方法

云服务正在快速增长——云服务的市场预计在相对不久的将来将达到几千亿美元。云服务被托管在数据中心或数据中心组上,其中数据中心包括支持计算、联网和存储服务的众多计算设备和网络基础设施设备。然而,数据中心中的设备和被托管在这些设备中的服务不幸地越来越成为网络攻击的目标。数据中心已经成为网络攻击者的目标,这至少有两个原因:1)数据中心或数据中心的网络可能拥有数千到数万种不同的服务,因此攻击数据中心可能导致严重的、有时是惊人的附带损害;2)除了托管恶意软件,窃取机密数据,中断竞争对手服务、以及在地下经济中销售受损的虚拟机(VM)之外,攻击者还可以利用数据中心中的受损的设备来发起出站攻击。具体地,已知攻击者使用在数据中心设备中执行的VM来部署僵尸(bot)网络,利用工具包,检测漏洞,发送垃圾邮件,向其它站点发起拒绝服务攻击(DoS),等等。

传统上,已经采用各种方法来检测对数据中心的基础设施的攻击。例如,为了检测传入攻击,数据中心运营商通过以下方式采用了深度防御方案:1)在网络层部署商业硬件设备(例如,防火墙、入侵检测系统(IDS)、分布式DoS(DDoS)保护设备等);以及2)在主机级部署专有软件(例如,基于主机的IDS、反恶意软件)。上述硬件设备分析入站业务以防止各种攻击,例如传输控制协议(TCP)SYN洪泛攻击、TCP空攻击、用户数据报协议(UDP)洪泛攻击和UDP片段滥用。为了阻止不想要的业务,数据中心运营商利用缓解机制,诸如访问控制列表(ACL)、黑名单和白名单、速率限制器和/或用于深度分组检查(DPI)的擦除器的业务重定向(例如,恶意软件检测)的组合。其它硬件设备(诸如负载平衡器)通过丢弃目的地为阻止的端口和IP地址的业务来帮助检测。为了防止应用级攻击,租户(例如,由主机服务器或数据中心中的VM托管的计算机可执行应用)通常安装用于在其相应VM上的攻击检测的基于端主机的解决方案。这些软件解决方案定期下载最新的威胁签名,并且扫描在VM中执行的应用程序以进行妥协。诊断信息(诸如日志和反恶意软件事件)通常也会被记录用于事后分析。

为了防止出站攻击,主机服务器中的管理程序层被配置成防止在出站业务中欺骗源地址(例如,源因特网协议(IP)地址),并且通常还被配置成限制(cap)每个在主机服务器中实例化的VM的出站带宽。类似地,访问控制规则可以被设置为速率极限或者阻止VM不支持使用的端口。最后,(相对昂贵的)硬件设备可以被配置成缓解出站异常,类似于上述防止入站异常。

尽管这些方法中的很多方法与数据中心防御(诸如端主机过滤和管理程序控制)相关,但硬件设备不适合以云规模部署(例如,在数据中心或者彼此通信的多个数据中心上),这至少有三个原因。首先,上述硬件设备引入不利的成本与容量之间的折衷。具体地,这些硬件设备每个设备成本可以在几十万美元到几百万美元之间的任何地方,但是每个硬件设备可以处理的数据量相对有限。已经发现这些硬件设备在网络层和应用层DDoS攻击下都会发生故障。因此,为了处理流经和跨越数据中心的业务量,以及处理日益增长的高容量DoS攻击,使用上述硬件设备将招致大量成本。此外,这些设备必须以冗余方式部署,这进一步增加了采购成本和运营成本。

第二,硬件设备相对不灵活。这是因为设备运行专有软件,从而限制了运营商可以如何配置它们以处理日益增加的网络攻击的多样性。假设缺乏丰富的编程接口,运营商被迫规定和管理大量策略本身以用于控制业务(例如,以不同的时间粒度等设置用于不同的协议、端口、群集虚拟IP地址(VIP)的阈值)。此外,硬件设备对越来越复杂的攻击(诸如零日攻击)的有效性有限。最后,硬件设备可能无法与操作系统(OS)固件和构建保持同步,这会冒着减少其针对攻击的有效性的风险。

第三,附带损坏可以与这样的硬件设备相关联。由于很多攻击可能在几十秒到几分钟内上升,检测异常或攻击的延迟风险会使目标VM以及数据中心的基础设施(例如,防火墙、负载平衡器和核心链路)过载,这可能对共同托管的承租人造成附带损害。此外,如果硬件设备不能快速标识攻击何时消失,则可能错误地阻止合法业务。因此,假设很多安全解决方案应用业务分析和平滑技术来减少攻击检测的假阳性,这样的解决方案可能无法足够快地行动以避免附带损害。



技术实现要素:

以下是本文中更详细描述的主题的简要概述。本发明内容不旨在限制权利要求的范围。

本文中描述的是被配置成检测关于数据中心的攻击的系统。系统包括至少一个处理器和至少一个存储器,其中存储器包括由至少一个处理器执行的攻击检测系统。攻击检测系统包括控制部件,其中控制部件包括接收业务流数据的接收器部件,业务流数据指示在时间窗口上在1)数据中心中的第一计算设备或由数据中心托管的第一服务与2)第二计算设备或第二服务之间传输的业务的特征。控制部件还包括基于业务流数据来标识入站攻击或出站攻击的业务分析器部件。入站攻击是来自第二计算设备或第二服务的对第一计算设备或第一服务的攻击,出站攻击是来自第一计算设备或第一服务的对第二计算设备或第二服务的攻击。

附图说明

图1示出了示例性数据中心架构。

图2是示出示例性数据中心架构的功能框图,其中分布式“中介(shim)”层促进标识入站数据中心攻击和出站数据中心攻击。

图3是被配置成生成业务流的相应业务概要的示例性部件的功能框图。

图4是促进聚合业务流概要并且基于聚合的业务流概要来标识入站攻击或出站攻击的示例性部件的功能框图。

图5是描绘数据中心中的中介层的一部分的操作的功能框图。

图6是示出可以基于通过数据中心的业务流的聚合的概要来执行的分析的流程图。

图7是示例性异常和/或攻击检测系统的功能框图。

图8是促进在VM/主机级别标识数据中心上的入站攻击和出站攻击的示例性部件的功能框图。

图9是示出用于通过使用数据中心中的商用服务器来检测入站攻击和出站攻击的示例性方法的流程图。

图10是示出用于标识数据中心中的入站攻击或出站攻击的示例性方法的流程图。

图11是示出用于标识数据中心上的不同类型的攻击的示例性方法的流程图。

图12是示例性计算系统。

具体实施方式

现在参考附图来描述与检测数据中心中的异常和/或攻击有关的各种技术,其中相同的附图标记用于指代相同的元件。在下面的描述中,为了解释的目的,阐述了很多具体细节以便提供对一个或多个方面的透彻理解。然而,应当理解,这些方面可以在没有这些具体细节的情况下实践。在其它实例中,以框图形式示出了公知的结构和设备,以便于描述一个或多个方面。此外,应当理解,被描述为由某些系统部件执行的功能可以由多个部件来执行。类似地,例如,部件可以被配置成执行被描述为由多个部件执行的功能。

此外,术语“或”意图表示包括性的“或”而不是排他性的“或”。也就是说,除非另有说明或者从上下文清楚可见,否则短语“X使用A或B”意图表示任何自然的包括性排列。也就是说,短语“X使用A或B”通过以下任何实例来满足:X使用A;X使用B;或X使用A和B二者。此外,除非另有说明或从上下文清楚可见指向单数形式,否则本申请和所附权利要求中使用的冠词“一个(a)”和“一个(an)”通常应当被解释为表示“一个或多个”。

此外,如本文中使用的,术语“部件”和“系统”旨在包括配置有计算机可执行指令的计算机可读数据存储装置,这些计算机可执行指令在由处理器执行时引起某些功能被执行。计算机可执行指令可以包括例程、函数等。还应当理解,部件或系统可以位于单个设备上或分布在多个设备上。此外,如本文中使用的,术语“示例性”旨在表示用作某事物的图示或示例,而不旨在指示偏好。

本文中描述了可以用于检测和缓解对由一个或多个数据中心托管的基础设施或服务的入站攻击和出站攻击的各种数据中心架构。如本文中将描述的,异常和/或攻击检测系统(本文中称为攻击检测系统)可以通过使用商用服务器至少部分地在数据中心中实现。商用服务器通常被配置成生成通过至少一个数据中心的入站业务流和出站业务流的概要。业务流是从源地址传输到目标地址的数据分组序列,其中源地址和/或目标地址可以是因特网协议(IP)地址、虚拟IP地址(VIP)地址等。在示例中,业务流可以被标识为五元组:[源IP地址,源端口,协议,目的地IP地址,目的地端口]。入站业务流是被定向到数据中心中的设备/主机或由数据中心托管的服务的业务流(例如,目标地址表示数据中心中的设备或由数据中心托管的服务)。出站业务流是从数据中心中的设备或由数据中心托管的服务被定向到数据中心外部的计算设备的业务流(例如,目标地址表示在数据中心外部的计算设备)。

在第一示例性实施例中,攻击检测系统可以作为分布式“中介”层至少部分地被并入数据中心架构中,该分布式“中介”层位于行进通过数据中心的业务流中(例如,位于“带内”)。在这样的实施例中,当这样的业务流行进通过数据中心时,中介层能够访问通过数据中心的相应业务流中的数据分组。例如,多个商用服务器可以被配置成用作相应的软件负载平衡器(SLB)。在另一示例中,中介层可以被实例化为对预先存在的功能的附加——例如,中介层可以被实例化为对现有SLB的添加。此外,商用服务器还可以被配置成生成由SLB处理的业务流的相应概要。在非限制性示例中,中介层的功能可以分布在商用服务器中实例化的虚拟机(VM)上。

由中介层生成的业务概要可以指示入站业务流和出站业务流的各种特征。这些业务概要可以被传输给计算系统,使得能够接收来自多个商用服务器的业务概要。集中式系统可以聚合从中介层接收的业务概要,并且可以基于聚合的业务概要来检测入站攻击和出站攻击。例如,集中式系统可以以多个时间粒度(例如,三十秒、一分钟、五分钟、十分钟)分析聚合的业务流概要。另外,当攻击(例如,入站攻击或出站攻击)被集中式系统标识出时,集中式系统可以引起至少一个缓解策略被部署以缓解攻击。示例性缓解策略包括阻止来自已经被标识为入站攻击的源的IP地址的业务,阻止来自被认为发起出站攻击的数据中心中的主机服务器的业务,阻止主机VM访问特定端口,等等。

在另一示例性架构中,攻击检测系统可以被感知为与通过数据中心的业务流正交的子系统(例如,攻击检测系统被完全“带外”放置)。在这样的示例性架构中,在数据中心架构中的一个或多个点处,业务流可以被复用,使得攻击检测系统可以访问经过数据中心的业务流的相应副本,例如使用端口镜像功能将来自交换机/路由器的业务的副本发送给带外攻击检测系统。在这样的架构中,攻击检测系统可以使用被配置成标识入站攻击和出站攻击的商用服务器来实现。例如,商用服务器可以被配置成接收在相应的业务流中的数据分组。商用服务器可以包括在其上实例化的至少一个VM,其中在VM中执行的应用(例如,检测应用)被配置成以可配置的采样速率对业务流中的数据进行采样。例如,检测应用可以被配置成检测特定事件(例如,在多个时间粒度上),诸如TCP SYN/UDP洪泛、DNS反射等。

更具体地,VM可以在商用服务器上被实例化,并且检测器应用可以在VM中被实例化。采样应用还可以在VM中被实例化,并且采样速率可以针对采样应用进行配置。检测器应用还可以被提供有回调统一资源标识符(URI)。当检测器应用检测到正在进行的攻击时,检测器应用可以调用对回调URI的回调。在示例性实施例中,回调可以以受攻击的被托管服务定义的方式来规定缓解策略。例如,回调可以为访问控制、业务流的速率极限设置规则或者将异常业务重定向到洗涤器设备以进行深入分析。在这样的架构中,可以基于正被分析的业务流量来缩放被分配给攻击检测的计算资源。例如,额外的VM(即,向外扩展)可以随着业务量增加而被实例化,并且在业务量减少时VM可以被置于待机或退役(即,向内收缩)。同样,随着由VM分析的业务量增加,被分配给VM的计算资源可以增加(即,按比例放大),并且随着由VM分析的业务量减少,被分配给VM的计算资源可以减少(即,按比例缩小)。

现在参考图1,示出了示例性(部分)数据中心架构100。应当理解,数据中心架构100是示例性的,并且可以设想其它拓扑变体,诸如平面网络和/或Clos拓扑,并且其它拓扑变体旨在落入所附权利要求的范围内。数据中心架构100包括多个机架安装式服务器102-106。机架安装式服务器102-106可以为数据中心的客户托管应用,其中这样的应用可以包括视频流传输应用、数据库处理应用、音频流传输应用等等。

数据中心架构100还包括多个架顶式(ToR)交换机108-114。相应的多个机架安装式服务器可以被连接(或双/多宿主)到ToR交换机108-114中的每个ToR交换机。例如,如图所示,多个机架安装式服务器102-106被连接到ToR交换机108。架构100还包括主聚合交换机116和备份聚合交换机118,其中ToR交换机108-114中的每个ToR交换机被连接到主聚合交换机116和备份聚合交换机118(用于冗余)。实际上,数据中心包括若干对主和备份聚合交换机,并且每对冗余聚合交换机聚合来自若干(例如,几十个)ToR交换机的业务。架构100可以包括连接到主聚合交换机116的第一对冗余负载平衡器(LB)120-122和连接到备份聚合交换机118的第二对冗余负载平衡器124-126。负载平衡器120-126可以执行静态互联网协议(IP)地址(例如,通过域名系统(DNS)暴露给客户端)与处理用户请求的机架安装式服务器102-106的动态IP地址之间的映射。

架构100还包括主接入路由器128和备用接入路由器130。主聚合交换机116、备用聚合交换机118、主接入路由器128和备用接入路由器130可以形成冗余组。在具有架构100的数据中心中,设备和链路的冗余组可以用于屏蔽网络故障。聚合交换机116-118将(从ToR交换机108-114聚合的)业务转发给接入路由器128-130。架构100还包括主核心路由器132和备用核心路由器134,其中每个核心路由器都被连接到接入路由器128和130二者。主接入路由器128、备用接入路由器130、主核心路由器132和备用核心路由器134形成另一冗余组。接入路由器128-130路由例如从高达几千个机架安装式服务器(例如,机架安装式服务器102-106)聚合的业务,并且将业务路由到核心路由器132-134。核心路由器132和134连接到数据中心网络的其余部分(例如,其它数据中心)和因特网136。

在示例性实施例中,多个服务器102-106可以被划分成虚拟局域网(VLAN)以限制开销并且隔离在数据中心网络中托管的不同应用。在数据中心拓扑的每层(ToR交换机108-114的子集可能例外),冗余(例如,一对一冗余)可以在网络拓扑中构建以缓解故障。此外,除了路由器和交换机,架构100还可以包括其它网络设备,诸如IDS、DDoS保护设备、防火墙等。

如本文中将更详细地描述的,数据中心架构100还包括异常和/或攻击检测系统138(本文中称为攻击检测系统138),其被配置成在行进通过数据中心的业务流中检测攻击(入站和/或出站)。业务流是指共享源地址和目标地址的数据分组序列,其中源地址表示生成数据分组的计算设备或服务,并且目标地址表示要接收数据分组的计算设备或服务。在示例中,业务流可以被标识为五元组:[源IP地址,源端口,协议,目的地IP地址,目的地端口]。出站攻击是指要由数据中心输出给数据中心外部的计算设备的业务流中的攻击(例如,源地址表示数据中心中的计算设备或由数据中心中的计算设备托管的服务)。入站攻击是指由数据中心接收(例如,被定向到数据中心中的计算设备或由数据中心托管的服务)的业务流中的攻击。在示例中,入站攻击可以来自数据中心外部的计算设备。在另一示例中,入站攻击可以来自数据中心内的另一计算设备或服务。因此,攻击检测系统138可以标识数据中心内攻击(例如,由数据中心中的第一计算设备或第一服务发起的并且指向数据中心中的第二计算设备或第二服务的攻击)。

攻击检测系统138可以使用商用服务器来实现,同时促进近实时攻击和/或异常检测。攻击检测系统138在图1中被示出为与数据中心架构100的其他部分脱离——攻击检测系统138以这一方式描绘,这是因为包括攻击检测系统138的各种不同的数据中心架构被设想到。例如,在示例性实施例中,攻击检测系统138可以至少部分地被实现为置于业务流(例如,“带内”)中的分布式“中介”层,其中分布式中介层被配置成生成通过数据中心的业务流的概要。在另一示例中,攻击检测系统138可以至少部分地被实现为数据中心中的子系统,其中业务流在数据中心中的一个或多个点处被复用并且被提供给攻击检测系统138。在这样的实现方式中,攻击检测系统138可以检测数据中心上的入站网络攻击和出站网络攻击两者。下面示出的表1、表2和表3示出了攻击检测系统138可以检测的示例性类型的攻击。具体地,表1描述了与攻击类型相对应的示例性攻击类型和模式,表2描述了示例性攻击类型和对应的注释、相关特征和规则检测和/或缓解攻击,以及表3描述了基于网络的攻击的示例性分类。这些表中引用的示例性攻击类型包括但不限于DoS攻击、流速率攻击、端口扫描攻击、网络扫描攻击、强力攻击、垃圾邮件、用户数据报协议(UDP)洪泛、因特网控制消息协议(ICMP)洪泛等。

表1

表2

表3

在操作中,攻击检测系统138接收相应业务流的数据分组,并且分析这些数据分组以标识属于数据中心的特定类型的攻击(包括入站攻击和出站攻击)。更具体地,攻击检测系统138可以接收在入口业务流和出口业务流二者中的数据分组,并且因此可以检测入站攻击和出站攻击。如上所述,攻击检测系统138可以用在很多网络拓扑结构中。例如,攻击检测系统138可以被并入计算容器中作为小规模数据中心,其中不包括核心路由器。现在阐述示出可以实现攻击检测系统138的不同方式的各种示例性数据中心架构。

现在参考图2,示出了示例性数据中心200。数据中心200的架构包括多个服务器计算设备(机架安装式服务器)204-208,其也可以被称为端主机。例如,服务器计算设备204-208可以包括图1所示的机架安装式服务器102-106。服务器计算设备204-208托管租户,其中租户指代利用服务器204-208中的至少一个的资源来向数据中心的客户端和/或端用户提供服务的计算机可执行应用。这样的服务通常包括计算服务和/或存储服务。

数据中心200还包括第二多个服务器计算设备212-216,其中第二多个服务器计算设备212-216可以是商用服务器。在示例性数据中心200中,第二多个服务器计算设备212-216配置有相应的软件负载平衡器(SLB)218-222。如上所述,SLB 218-222可以执行静态(IP)地址-动态IP地址映射,从而分发服务器计算设备204-208的工作负载。

数据中心200还包括分布式中介层224,其被配置成监测流经数据中心的业务。中介层224包括分别在多个服务器212-216上执行的多个监测器部件226-230。因此,可以确定中介层224可以访问由SLB 218-222接收的数据分组,并且因此被定位在每个入口和出口数据分组的流路径中。虽然中介层224被示出为分布在共同托管SLB的商用服务器上,但是应当理解中介层224可以位于数据中心200中的其它位置。例如,中介层224可以被并入ToR交换机、聚合交换机、路由器等中。中介层224的操作将在本文中更详细地描述。

数据中心200还包括多个核心路由器234-238。例如,核心路由器234-238可以包括图1中所参考的核心路由器132和134。安全模块240可以可选地被包括在数据中心200中,其中安全模块240被配置成监测例如流经核心路由器238的业务。安全模块240可以是第三方安全系统。在示例性实施例中,安全模块240可以是被配置成针对特定类型的异常监测业务流的第三方硬件设备。

控制器部件242可以与中介层224通信,使得控制器部件242接收分别由在第二多个服务器212-216上执行的监测器部件226-230的实例输出的数据。控制器部件242可以可选地从数据中心200中的其它设备/应用接收指示业务流特征的数据。例如,控制器部件242可以从被托管在第一多个服务器204-208上的应用接收业务分析数据(例如,其中应用配置有客户定义的业务分析程序)。控制器部件242还可以从中介层224接收业务流概要,其中业务流概要将在下面更详细地描述。此外,控制器部件242可以接收由SLB 218-222生成的业务分析数据。另外,控制器部件242可以从核心路由器234-238接收网络流数据。最后,控制器部件242可以接收指示由安全模块240检测到的事故的数据。

至少基于从中介层224接收的数据(以及可选地从数据中心200中的其它设备/应用接收的数据),控制器部件242可以标识入站网络攻击和/或出站网络攻击。此外,响应于标识出入站网络攻击和/或出站网络攻击,控制器部件242可以引起缓解策略被执行,其中缓解策略缓解可能由所标识的网络攻击造成的损害。根据示例,控制器部件242可以标识表现出异常业务流模式的相应服务(由第一多个服务器204-208托管)的虚拟IP(VIP)地址(例如,VIP,其中服务由第一多个服务器204-208中的至少一个服务器来托管)。然后,控制器部件242可以引起缓解策略被部署,例如将数据传输给分别由VIP地址表示的服务(例如,以允许服务对速率进行速率调节)。在另一示例中,控制器部件242可以引起具有特定IP地址的计算设备被列入黑名单。

中介层224的操作现在被更详细地描述。如前所述,第二多个(商用)服务器212-216可以分别配置有SLB 218-222。第二多个服务器212-216还实例化分布式中介层224。更具体地,第二多个服务器212-216包括相应的监测器部件226-230,在一个示例中,相应的监测器部件226-230可以在被实例化在第二多个服务器212-216上的相应VM中执行。中介层224可以被配置成以可配置的采样速率对数据分组进行采样,解析每个采样的数据分组的报头,并且(可选地)解析每个采样的数据分组的净荷。例如,中介层224可以被配置成对每个数据分组进行采样。在另一示例性实施例中,SLB 218-222可以解析数据分组的报头,并且可以将解析的报头信息传递给中介层224。中介层224可以生成每个采样数据分组的(紧凑)表示,以跟踪流内特征(例如,在业务流中发送的TCP SYN分组的数量,以检测SYN洪泛攻击),以及流间特征(例如,到端口1433的不同流的数目,以检测旨在利用主机服务器204-208之一中的已知易损性的攻击)。当中介层224被配置成解析数据分组的净荷时,深度分组检查(DPI)框架可以被用于将净荷与恶意软件签名相匹配或者进行事后分析。

如图所示,中介层224可以在具有商用服务器212-216的分布式设置中实现或部署,其中商用服务器212-216还被配置成运行网络功能的软件实现,诸如SLB 218-222。在这样的示例中,例如,SLB 218还可以作为相应的复用器,该相应的复用器对其执行VIP到DIP映射的传入分组进行分流,并且可以将数据分组传递给中介层224用于监测和业务流跟踪。因此,例如,监测器部件226可以接收由SLB 218看到的每个数据分组。监测器部件228和230可以类似地动作,使得通过数据中心100的业务流的聚合视图可以由控制器部件242近实时地(例如,在各种时间粒度上)构建。

如上所述,应当理解,中介层224可以在数据中心200中的其它位置实现。例如,中介层224可以在第一多个服务器计算设备204-208上的VM中实例化。在另一示例中,中介层224可以与现有网络齿轮(诸如交换机或路由器或其组合)一起部署。

在又一示例性实施例中,向外扩展层可以原位部署,而不是实现如图2所示的中介层224,在网络交换机和路由器的入口/出口处静态地部署,或者当怀疑正在进行的网络攻击时动态地部署(例如,通过从运行中介层224的VM反弹业务)。在又一示例性实施例中,中介层可以被带外部署,其中通过在交换机和/或路由器处的端口镜像来分流业务。

现在参考图3,示出了可以在商用服务器(例如,商用服务器212-216中的一个)中执行的示例性监测器部件300(例如,监测器部件226-230中的一个)的功能框图。例如,监测器部件300可以在商用服务器212-216之一上实例化的VM中执行。监测器部件300包括构建器部件302和流特征分析器部件304。如前所述,监测器部件300接收多个数据分组,这些数据分组可以是多个业务流(入口业务流和/或出口业务流)的各部分。对于接收的每个数据分组,构建器部件302可以构建数据分组的表示。可以使用任何合适的数据结构来生成表示,诸如草图(例如,计数最小草图、k阵列草图、可逆草图)。在另一示例中,构建器部件302可以利用位图来分别表示数据分组。

流特征分析器部件304可以接收由构建器部件302构建的数据分组的表示,并且可以基于这样的表示来生成业务流的概要。如上所述,可能在多个时间粒度处,概要可以指示流间业务特征和流内业务特征。流特征分析器部件304可以在从构建器部件302接收到表示时更新业务流概要。流特征分析器部件304可以被编程为将业务流概要推送给控制器部件242(例如,周期性地、当检测到特定事件时等)。在另一示例中,流特征分析器部件304可以响应于从控制器部件242接收请求而传输业务流概要。响应于传输业务流概要,流特征分析器部件304可以冲刷至少部分的业务流概要,并且可以基于来自构建器部件302的数据分组表示来构建新的概要。然而,应当理解,在一些实施例中,可以对某些业务流给予特别注意,其中业务流概要被更精细地生成,被保留与其它业务流的概要相比更长的时间段等。这允许积极地监测特定业务流以检测攻击。

现在参考图4,示出了当数据中心架构200包括中介层224时控制器部件242的功能框图。控制器部件242包括接收由中介层224输出的业务流概要的接收器部件402。如前所述,业务流概要可以指示在时间的一个或多个窗口上在VIP地址与外部IP地址之间传输的业务量、在VIP地址与外部IP地址之间传输的通信类型(例如,用于执行通信的协议)等。控制器部件242还包括业务分析器部件404,该业务分析器部件404基于业务流概要来标识入站攻击和/或出站攻击。更具体地,代替隔离地处理每个业务流以检测攻击和异常,控制器部件242可以表示驻留在商用VM/服务器上的可扩展攻击检测服务,其将由中介层224提供的业务概要相关和聚合。由业务分析器部件404执行的分析可以在三个阶段中执行:1)业务分析器部件404可以执行规则检查以将业务流元数据(例如,端口、IP地址、协议)与白名单(例如,展示大的突发业务的合法客户业务)和/或黑名单(例如,垃圾邮件发送者、恶意业务的经纪人/协助者列表等)相匹配。然后,业务分析器部件404可以采取适当的动作来阻止或削弱被认为包括相应攻击的业务流。另外,对于从中介层224接收的每个业务摘要(例如,通过推送或拉取),内部流状态可以被更新以保持跟踪潜在的恶意业务流(例如,用于SYN、UDP洪泛、ICMP业务、和RDP/VNC/SSH连接的前k个VIP)。状态可以以分布式方式(例如,在存储器密钥-值储存库中)维持,与包括中介层224的处理元件共同定位,或者与逻辑中央控制器部件242组合。最后,业务分析器部件404可以对业务状态使用各种变化检测算法(例如,动态时间扭曲、ARMA、EWMA),例如以检测一段时间上的业务尖峰。这些算法的输出被存储在业务量变化估计表中,其可以用于标识攻击数据中心网络和/或其托管的租户的异常网络流。

图5是例如图2所示的服务器计算设备212的功能框图。如上所述,服务器计算设备212包括SLB 218,SLB 218可以具有相应的SLB复用器502。服务器计算设备212可以包括至少一个网络接口卡504,该网络接口卡504经由通信链路从例如交换机或路由器接收数据分组。由网络接口卡504接收的数据分组被提供给SLB复用器(MUX)502,其执行报头解析506。解析的报头可以被提供给服务器计算设备212上的中介层224中的监测器部件(例如,监测器部件226),其中中介层224可以生成用于至少一个业务流的业务概要表示508。SLB MUX 502还可以从在数据分组(例如,510)中标识的VIP中标识直接IP地址。框512表示由中介层224获取的测量数据的动作,其例如周期性地与控制器部件242同步。例如,同步可以作为推送功能或响应于从控制器部件242接收到请求而发生(作为拉取)。如图5所示,SLB MUX 502和业务概要表示508的生成可以存在于在服务器计算设备212上实例化的一个或多个VM的内核空间中。同步512可以发生在用户空间中,使得同步可编程。

图6示出了当攻击检测系统138至少部分地通过中介层224实现时,控制器部件242可以执行的动作流程。如图所示,最初,控制器部件242可以从中介层224接收业务概要更新。然后,控制器部件242在602执行规则检查。规则检查602被执行以将流元数据(诸如,端口IP地址、协议等)与白名单和/或黑名单相匹配。在示例性实施例中,黑名单可以是或包括已知对应于网络钓鱼、访问控制列表(ACL)或TDS的IP地址的列表,如框604所示。随后,在606,更新流表。流表表示每个业务概要的内部流状态。这导致以不同的时间粒度生成业务表,如框608所示。在框610,控制器部件242通过“影响”来生成前k个VIP的列表,其中影响指示被VIP标识为被攻击或发起攻击的设备和/或服务。影响度量可以被定义为以下中的至少一个:1)分组数、字节数(对于DDoS);2)可能具有低业务量的连接数(用于端口/网络扫描、蠕虫RDP、强力攻击);3)TCP标志(用于空扫描、RST异常);4)端口和业务量组合(用于DNS重定向、垃圾邮件);5)端口和连接数(对于恶意软件)。前k个视图可以通过不同时间粒度的业务表生成。例如,多个时空粒度可以使用分层聚合(例如,分组/16子网和多个时间窗口)来表示。例如,前k个视图可以被构建以通过在最后一分钟的影响来指示前k个VIP地址,通过在过去五分钟内的影响来指示前k个VIP地址,以及通过在过去十分钟内的影响来指示前k个VIP地址。这允许检测最后60秒中的瞬时瞬态尖峰和随着时间持续的持续异常(例如,基于近期业务的时间平滑的估计)两者。在612,变化检测算法可以在上面引用的业务表上执行。这允许检测在一段时间内的业务尖峰。变化检测算法的输出被存储在业务变化估计表614中,其可以用于标识攻击数据中心网络和/或其托管的租户的异常网络流(异常检测616)。

现在转到图7,示出了攻击检测系统138在被实现为数据中心架构100中的子系统时的示例性描述。再次,攻击检测系统138可以至少部分地通过使用多个商用服务器702-704来实现。服务器702-704中的每个服务器可以具有在其上实例化的相应多个VM。然而,应当理解,服务器702-704中的一个或多个服务器可以具有在其上实例化的零个VM或在其上实例化的单个VM。因此,在该示例中,第一服务器702具有在其上实例化的第一多个VM 706-708,并且第N服务器具有在其上实例化的第N多个VM 710-712。如将在本文中描述的,每个VM可以具有在其中执行的相应分析器部件,其中分析器部件被配置成被动地收集正在进行的业务(例如,经由采样),经由检测模块分析业务,并且防止通过控制器部件242被配置的未授权业务。

简要地转到图8,示出了分析器部件800的功能框图。当分析器部件800在服务器上直接执行而没有虚拟化时,该图特别与实例相关。然而,这里描述的各方面也可以与在VM 706-712之一中执行的客户操作系统的内核相关。分析器部件800的功能可以在内核空间802与用户空间804之间被分割。在内核空间802中,采样器806可以对从业务流分流的数据分组进行采样。采样速率可以根据需要被配置。出于性能和效率的目的,采样在内核空间802中进行。分组缓冲器808缓冲采样的数据分组,并且解复用器表810被用于进一步复用采样的数据分组。

用户空间804包括检测器模块,其中检测器模块可以包括重击(heavy hitter)检测器812和超扩展器检测器814。超星检测器814可以可选地将数据输出给深度分组检测(DPI)模块816。

分析器部件800的作用是被动地收集正在进行的业务,使用检测器模块812和814/816分析业务,并且防止由控制器部件242配置的未授权业务。对于在攻击检测系统138中的分析器部件800的每个实例化,控制器部件242可以实例化检测器812和814(例如,用于TCP、SYN/UDP洪泛的重击检测器812、用于DNS反射的超扩展器检测器814),附接采样器806(例如,基于流、基于分组、采样和保持),并且设置其可配置的采样速率,提供回调URI,然后在适当的VM上安装分析器部件800。

当检测器模块之一检测到正在进行的攻击时,检测器模块调用对所提供的URI的回调。然后,回调决定以特定于应用的方式来规定缓解策略。例如,它可以为访问控制、速率极限设置规则或者将异常业务重定向到洗涤器设备以进行深入分析。设置缓解器实例与检测器类似——应用规定一个缓解器动作(例如,重定向、擦洗、镜像、允许、拒绝),并且规定流(通过标准5元组或<VIP,协议/端口>对)以及回调URI。

内核空间802与用户空间804之间的功能分离允许多级攻击检测和缓解(例如,来自发送TCP SYN攻击的源IP的业务可以被转发给DIP模块816用于深度分组检查)。在同一VM实例上共同定位检测器和缓解器的直觉是它减少了业务重定向的关键开销,这可能是重要的,并且利用高速缓存来存储分组内容。此外,该方法避免了管理分析器部件的不同类型的实例的控制器开销。

假设VM实例中有限的计算和存储器容量,关键问题是用于标识和规定关于异常流的动作的粒度密钥。虽然使用5元组流标识符允许以定义的粒度规定检测和缓解的灵活性,但是使用这样的标识符冒着如下风险:高的资源开销、在聚合级别(例如VIP)丢失攻击或者将相关攻击作为独立的攻击。在传统的云情形中,由于业务流可以由VIP逻辑地划分,所以业务流可以使用<VIP,协议>对来寻址。这允许在分析器部件800的每个实例处有效地管理大量流的状态,并且可以为VIP设计进一步的定制的攻击检测解决方案。

返回图7,在这样的架构中,控制器部件242针对每个定义的测量间隔收集跨分析器部件800的实例的负载信息。如果需要,控制器部件242计算跨现有VM的业务分布的新分配,并且可以根据负载在VM实例中放大/缩小。在另一示例中,控制器部件242可以基于负载向VM分配附加资源或者从VM解分配资源。最后,控制器部件242可以安装路由规则以重定向业务。

控制器部件242包括接收器部件402和业务分析器部件404,其可以如上所述地工作。控制器部件242还可以包括缩放器部件714,该缩放器部件714可以用于缩小/放大VM,或者向VM提供额外的资源或从VM中移除资源。例如,在云环境中,去往分析器部件800的实例的业务模式可能由于现有流的更高的业务速率(例如,基于量的攻击)或新流的建立(例如,由于租户部署)而快速增加。因此,期望避免分析器部件800的实例的过载,这是因为过载可能危及攻击检测和缓解的准确性和有效性。为了解决这个问题,控制器部件242(例如,缩放器部件714)可以监测分析器部件800的每个实例处的负载,并且可以在现有和可能新实例化的VM上动态地重新分配业务。当实现该功能时,用于测量负载的度量可以被选择,用于跨实例重新分配业务的机制或过程被选择,并且关于从过载的实例到新的/现有的实例的流状态的转移的决定被确定。

在示例性实施例中,CPU可以被选择为VM负载度量,这是因为CPU利用率可以强烈地绑定或者与业务速率相关。CPU使用可以被建模为不同异常检测/缓解算法的业务量的函数,以设置最大负载阈值和最小负载阈值。

为了重新分布业务,二进制包装问题可以被公式化成,其通过业务速率将前k个<VIP协议>对作为来自过载的VM的输入,并且使用向其它VM分配业务的第一拟合减少算法同时最小化迁移的业务。如果问题不可行,则可以分配新的分析器部件实例,使得没有单个实例过载。对于缩小,负载低于最小阈值的所有VM将成为待机或关闭的候选。被选择要停止操作的VM停止接受新的流并且一旦传入业务停止则转变到非活动状态。可以注意到,可以应用其它的业务重新分配和自动缩放方法。

最后,很多攻击检测/缓解任务是状态无关的。例如,为了检测到VIP的业务的重击,仅需要跟踪在最近的时间间隔中的业务量。这简化了业务重新分配,因为不需要转移潜在的大的转换流的测量状态。对于那些需要转换状态的测量任务,可以添加业务分布算法的约束,以避免移动其业务。

为了重新分配业务,控制器部件242可以改变在上游交换机和/或路由器处的路由条目以重定向业务。为了在搅动期间快速地将服务转换到稳定状态,控制器部件242可以维持处于活动模式VM的备用资源池并且可以立即得到负载。

图9至图11示出了与检测数据中心中的异常和/或攻击相关的示例性方法。虽然方法被示出和描述为按序列执行的一系列动作,但是应当理解和意识到,方法不受序列的顺序的限制。例如,一些动作可以以与本文中描述的顺序不同的顺序发生。此外,一个行为可以与另一行为同时发生。此外,在一些情况下,并不需要所有动作来实现本文中描述的方法。

此外,本文中描述的动作可以是可以由一个或多个处理器实现和/或存储在计算机可读介质上的计算机可执行指令。计算机可执行指令可以包括例程、子例程、程序、执行的线程等。此外,方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上等。

现在参考图9,示出了促进检测数据中心中的入站攻击和出站攻击的示例性方法900。方法900开始于902,并且在904,接收入口业务流的第一多个数据分组,其中入口业务流被传输给数据中心中的第一计算设备或由数据中心托管的第一服务。入口业务流可以从第二计算设备或第二服务来传输。第二计算设备或第二服务可以在数据中心内部或在数据中心外部。在906,响应于接收到第一多个数据分组,处理第一多个数据分组以促进标识入站攻击,其中入站攻击是来自第二计算设备或第二服务的对第一计算设备或第一服务的攻击。在908,当入站攻击被标识时,生成指示入站攻击已被标识的第一信号。在示例性实施例中,入站攻击可由出站攻击引起。因此,方法900旨在覆盖以下二者:1)入口流和出口流的并发分析以标识入站攻击和出站攻击;以及2)入站攻击和出站攻击之间的因果关系。例如,数据中心中的VM可以参与出站攻击,并且目标可以通过入站攻击进行报复。因此,因果分析可以可选地在909执行,其中因果分析可以包括搜索以标识入站攻击的原因。

在910,接收出口业务流的第二多个数据分组,其中将出口业务流从数据中心中的第三计算设备或由数据中心托管的第三服务传输给在数据中心外部的第四计算设备。在912,响应于接收第二多个数据分组,处理第二多个数据分组以促进标识出站攻击,出站攻击是来自第三计算设备或第三服务的对第四计算设备的攻击。在914,当出站攻击被标识时,生成指示出站攻击已被标识的第二信号。

在示例性实施例中,出站攻击可以由入站攻击引起。例如,入站攻击可能危及脆弱的目标。入站攻击可以被标识,但是缓解动作可能无法防止脆弱的目标被“接管”。出站攻击然后可以由脆弱的目标生成,并且出站攻击可以被检测。因此,可选地,在916,可以执行因果分析,其中可以搜索(和标识)出站攻击的原因。方法900在918完成。

现在参考图10,示出了促进利用带内中介层来检测对数据中心的攻击的示例性方法1000。方法1000在1002开始,在1004,接收数据中心中的业务流中的数据分组。源和/或目的地地址可以是例如VIP地址。在1006,生成数据分组的相应表示。可以通过解析在1004接收的数据分组的报头和/或(可选地净荷)来构建表示。在1008,输出指示流间业务特征和流内业务特征的数据。该数据可以被称为业务流概要,其可以指示在时间粒度的范围上的业务流中的数据分组的量。方法1000在1010完成。

现在参考图11,示出了用于处理业务流概要以标识数据中心上的网络攻击的示例性方法1100。方法1100在1102开始,并且在1104,接收业务流概要。在1106,做出关于由业务流概要表示的业务流是去往还是来自于列入黑名单的站点的确定。例如,可以将对应于业务流的源和/或目的地地址与列入黑名单的列表进行比较。如果在1106处确定业务流对应于列入黑名单的地址,则在1108处,可以阻止业务流入或者来自这样的地址。如果在1106处确定业务不对应于列入黑名单的地址,则方法1100进行到1110,在1110更新内部流状态以跟踪潜在的恶意业务流。在1112,将变化检测算法应用于内部流状态,其中算法输出指示在不同时间粒度上的业务尖峰的数据。在1114,将由算法输出的数据存储在业务变化估计表中,并且在1116,基于业务变化估计表来标识异常业务流。对于异常业务流,可以执行缓解步骤,包括速率限制、业务流、阻止业务等。在示例中,如图11所示,在1118处,如果在由算法输出的数据中标识出尖峰,则可以生成警报,并且方法1100可以进行到1108,在1108阻止业务流。类似地,在1120,如果确定一个或多个业务流的量超过预定阈值(即使不展现尖峰特性),则可以生成警报,并且方法1100可以进行到1108,在1108阻止业务流。还构想了其它缓解动作。方法1100在1122完成。

现在阐述各种示例。

示例1:一种由数据中心中的至少一个计算设备执行的方法,所述至少一个计算设备被配置成在所述数据中心中形成中介层的至少部分,所述中介层借助于多个服务器计算设备来例示,所述方法包括:在所述中介层中的所述至少一个计算设备处接收业务流的多个数据分组,所述业务流在以下各项之间传输:所述数据中心中的第一计算设备或由数据中心托管的第一服务;以及第二计算设备或第二服务;响应于接收所述多个数据分组,处理所述多个数据分组以促进标识攻击;以及当标识出所述攻击时,生成指示已经标识出所述攻击的信号。

示例2:根据示例1所述的方法,当所述业务流穿过所述数据中心时,所述中介层位于带内。

示例3:根据示例1或2中任一项所述的方法,其中所述多个服务器计算设备还被配置成执行相应的软件负载平衡器。

示例4:根据示例1至3中任一项所述的方法,其中所述多个服务器计算设备具有在其上例示的相应虚拟机,并且其中在所述至少一个计算设备上例示的至少一个虚拟机执行所述接收、处理和生成动作。

示例5:根据示例1至4中任一项所述的方法,其中对所述多个数据分组的处理包括:生成所述多个数据分组的相应表示;以及基于所述第一多个数据分组生成第一业务概要,所述第一业务概要指示与所述业务流相对应的至少一个流间业务特征或流内业务特征。

示例6:根据示例5所述的方法,其中对所述多个数据分组的处理还包括以下中的至少一项:分别接收多个入口业务流的第一业务概要;聚合所述第一业务概要;以及基于所述第一业务概要的聚合来标识入站攻击;或者分别接收多个出口业务流的第二业务概要;聚合所述第二业务概要;以及基于所述第二业务概要的聚合来标识出站攻击。

示例7:根据示例6所述的方法,其中所述多个数据分组包括相应报头,所述报头包括指示所述第二计算设备的身份的数据,其中标识所述入站攻击或所述出站攻击包括:将所述第二计算设备的身份与标识已知要参与攻击的计算设备的黑名单相比较;以及确定所述第二计算设备被包括在所述黑名单中;以及响应于确定所述第二计算设备被包括在所述黑名单中,阻止来自或去往所述第二计算设备的业务流中的数据。

示例8:根据示例6所述的方法,其中标识所述攻击还包括:标识所述第一服务,所述第一服务是接收入口业务流;响应于标识出所述第一服务,确定由所述第二计算设备在时间窗口上定向到所述第一服务的业务的量;以及至少部分地基于由所述第二计算设备在所述时间窗口上定向到所述第一服务的业务的量来标识所述攻击。

示例9:根据示例1至8中任一项所述的方法,还包括:在接收所述业务流的所述多个数据分组之前,从在所述中介层外部的第三计算设备接收指令,所述指令引起所述至少一个计算设备进行以下操作之一:在其上例示或解除例示虚拟机,其中所述接收动作、处理动作和生成动作在所述虚拟机中执行;向所述虚拟机分配附加资源;或者从所述虚拟机解除分配资源。

示例10:根据示例1至9中任一项所述的方法,其中所述多个数据分组的接收在所述至少一个计算设备上执行的虚拟机处发生,所述虚拟机被配置成以第一可配置采样速率从所述业务流采样所述多个数据分组。

示例11:根据示例1至10中任一项所述的方法,还包括:基于所述处理来标识所述攻击,其中标识所述攻击包括从多个可能的攻击类型中标识所述攻击的类型;以及至少部分地基于所述攻击的类型的标识来执行缓解策略。

示例12:一种被配置成检测关于数据中心的攻击的系统,所述系统包括:至少一个处理器;以及包括由所述至少一个处理器执行的攻击检测系统的至少一个存储器,所述攻击检测系统包括控制部件,所述控制部件包括:接收业务流数据的接收部件,所述业务流数据指示在时间窗口上在以下各项之间传输的业务的特征:所述数据中心中的第一计算设备或由所述数据中心托管的第一服务;以及第二计算设备或第二服务;以及业务分析器部件,其基于所述业务流数据来标识入站攻击或出站攻击,所述入站攻击是来自所述第二计算设备或所述第二服务的对所述第一计算设备或第一服务的攻击,所述出站攻击是来自第一计算设备或第一服务的对第二计算设备或第二服务的攻击。

示例13:根据示例12所述的系统,所述入站攻击或所述出站攻击是数据中心内攻击。

示例14:根据示例12至13中任一项所述的系统,还包括:在数据中心架构中位于所述数据中心的边缘路由器与所述数据中心的主机服务器之间的中介层,所述中介层将业务流数据传输给所述控制器部件。

示例15:根据示例14所述的系统,所述中介层分布在所述数据中心中的多个服务器上。

示例16:根据示例15的系统,所述多个服务器另外被配置成执行相应的多个软件负载平衡器,所述软件负载平衡器被配置成基于流经所述软件负载平衡器的相应流业务量来在多个网络基础设施设备上定向业务。

示例17:根据示例14至16中任一项所述的系统,其中所述中介层包括:构建器部件,所述构建器部件接收在所述第一计算设备或第一服务与所述第二计算设备或第二服务之间的业务流中的多个数据分组,所述构建器部件生成所述多个数据分组的相应表示;以及流特征分析器部件,所述流特征分析器部件接收所述多个数据分组的相应表示,所述流特征分析器部件基于所述多个数据分组的相应表示来计算所述业务流数据。

示例18:根据示例12至17中任一项所述的系统,还包括:执行虚拟机的至少一个计算设备,所述虚拟机被配置成对所述第一计算设备或第一服务与所述第二计算设备或第二服务之间的业务流进行采样,所述虚拟机还被配置成基于所述采样的业务流来将所述业务流数据传输给所述控制器部件。

示例19.根据示例18所述的系统,所述控制器部件还包括自动缩放器部件,所述自动缩放器部件接收所述业务流数据,并且响应于接收到所述业务流数据来执行以下动作中的至少一个:基于所述业务流数据来更新被定向到所述虚拟机的业务路由;基于所述业务流数据来向所述虚拟机分配额外的计算资源;基于所述业务流数据来从所述虚拟机解除分配计算资源;基于所述业务流数据来例示新的虚拟机;或关闭所述虚拟机。

示例20:一种数据中心中的服务器计算设备,所述服务器计算设备执行软件负载平衡器,所述服务器计算设备还被配置成执行多个动作,包括:接收在数据中心中的至少一个计算设备与在所述数据中心外部的计算设备之间的业务流,所述业务流包括多个数据分组;响应于接收到所述业务流,生成所述多个数据分组的相应表示;响应于生成所述多个数据分组的相应表示,计算所述业务流的业务流概要,所述业务流概要指示所述业务流的至少一个特征;聚合多个业务流概要以构建业务流表;确定所述业务流包括攻击,所述攻击是入站或出站攻击之一;确定所述攻击的类型;以及响应于确定所述攻击的类型来执行缓解策略。

现在参考图12,示出了可以根据本文中公开的系统和方法来使用的示例性计算设备1200的高级图示。例如,计算设备1200可以在支持数据中心中的中介层的例示的系统中使用。作为另一示例,计算设备1200可以在支持被配置成检测攻击或异常的子系统的例示的系统中使用。计算设备1200包括执行存储在存储器1204中的指令的至少一个处理器1202。指令可以是例如用于实现被描述为由上述一个或多个部件执行的功能的指令或用于实现上述一个或多个方法的指令。处理器1202可以通过系统总线1206访问存储器1204。除了存储可执行指令之外,存储器1204还可以存储业务概要、分组表示等。

计算设备1200另外包括由处理器1202通过系统总线1206可访问的数据储存库1208。数据储存库1208可以包括可执行指令、业务概要、业务表示等。计算设备1200还包括允许外部设备与计算设备1200通信的输入接口1210。例如,输入接口1210可以用于从外部计算机设备、从用户等接收指令。计算设备1200还包括将计算设备1200与一个或多个外部设备对接的输出接口1212。例如,计算设备1200可以通过输出接口1212显示文本、图像等。

此外,虽然被示出为单个系统,但是应当理解,计算设备1200可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信,并且可以共同地执行被描述为由计算设备1200执行的任务。

本文中描述的各种功能可以在硬件、软件或其任何组合中实现。如果在软件中实现,则可以将这些功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质进行传输。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是可由计算机访问的任何可用存储介质。作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备、或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他介质。本文中使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字通用光盘(DVD)、软盘和蓝光光盘(BD),其中磁盘通常磁性地再现数据,光盘通常光学地再现数据。此外,传播的信号不被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,包括促进将计算机程序从一个地方传送到另一地方的任何介质。例如,连接可以是通信介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或者诸如红外、无线电和微波等无线技术从网站、服务器或其它远程源传输软件,则同轴电缆、光纤电缆、双绞线、DSL或者诸如红外、无线电和微波等无线技术被包括在通信介质的定义中。上述的组合也应当包括在计算机可读介质的范围内。

或者或另外,本文中描述的功能性至少部分地可以由一个或多个硬件逻辑部件执行。例如但不限于,可以使用的说明性类型的硬件逻辑部件包括现场可编程门阵列(FPGA)、程序特定的集成电路(ASIC)、程序特定的标准产品(ASSP)、系统级芯片系统(SOC)、复杂可编程逻辑器件(CPLD)等。

上面描述的内容包括一个或多个实施例的示例。当然,为了描述上述方面的目的,不可能描述上述设备或方法的每个可想到的修改和改变,但是本领域普通技术人员可以认识到,各种方面的很多进一步的修改和置换是可能的。因此,所描述的方面旨在包括落入所附权利要求的精神和范围内的所有这样的改变、修改和变化。此外,在术语“包括(include)”在细节描述或权利要求的程度上使用,这样的术语旨在以与术语“包括(comprising)”当在权利要求中作为过渡性词被采用时所理解的类似的方式是包括性的。

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