筛选服务基础设施接收的数据包的方法和数据包清理系统与流程

文档序号:20838855发布日期:2020-05-22 17:13阅读:215来源:国知局
筛选服务基础设施接收的数据包的方法和数据包清理系统与流程

本技术涉及因特网安全。具体地,公开的数据包清理系统和方法可用于筛选在服务基础设施处接收到的数据包。



背景技术:

数据中心和云基础架构集成了为大量客户端提供相互托管服务的许多服务器。服务基础设施例如可以包括成千上万的服务器和用于数百万客户端的主机服务。数据中心和云服务提供商经常是诸如拒绝服务攻击的攻击的受害者。由多个源之一大量发送的恶意数据包被定向到目标基础架构(即攻击的受害者)。具体地但不限于,经常使用用户数据报协议(udp)发送这些数据包。udp是非常适合交换实时信息的合法协议,包括例如用于使用基础架构上托管的游戏服务器玩游戏。不幸的是,至少部分地因为udp就某种意义而言是无需在udp数据包的源与目的地之间建立并维护连接的无连接协议,恶意源很容易发出其中通常应当标识数据包的源的信息已用伪造信息替换的所谓的“欺骗”udp数据包。以这种方式,基于udp数据包的报头中的伪造源英特网协议(ip)地址,接收到的udp数据包可能看起来是从合法源发送的。恶意用户还可以使用传输控制协议(tcp)发送数据包并且使得服务基础设施损坏。

防火墙可以用来阻止进入服务基础设施中的一些业务。防火墙在网络层级别下操作,网络层是开放系统互连(osi)模型的第3层。它们可以基于应用于接收到的数据包的报头的规则来传递或阻止进入的数据包。防火墙可以例如基于接收到的数据包报头的内容来接受或拒绝接收到的数据包,该内容包括源ip地址、目的地ip地址、协议指示符(例如,指定tcp或udp)、源端口和目的地端口。防火墙可以基于这些参数中的任何一个或这些参数的任何组合来过滤数据包。防火墙非常有用,但是其阻止非法业务的能力有限。例如,防火墙可能会接受包含伪造源ip地址的进入udp数据包,使得udp数据包仅看起来是从合法源发出的。

需要解决的问题是如何快速且有效地发现接收到的数据包是否非法,如它可能已经被恶意源作为攻击的一部分发送。

尽管上面述及的近期发展可以提供益处,但是仍然需要改进。

背景技术部分中讨论的主题不应仅仅因为在背景技术部分中提及而被认为是现有技术。类似地,不应假设在背景技术部分中提到的或与背景技术部分的主题相关的问题先前已在现有技术中被认识到。背景技术部分中的主题仅代表不同的方法。



技术实现要素:

已经基于开发人员对与现有技术相关的缺点的理解来开发本技术的实施方式。

具体地,这样的缺点可以包括:(1)非法数据包的缓慢且低效的发现;和/或(2)缺乏适用于无连接协议的解决方案。

在一方面,本技术的各种实现方式提供了一种用于在服务基础设施处检测非法数据包的方法。该方法包括:

在服务基础设施处接收数据包,数据包包括报头和内容;

相继地将签名集中的每个签名作为掩码应用于内容的预定区域;以及

如果在内容的预定区域与签名集的签名中的一个签名之间存在逐字节匹配,采取与签名中的该一个签名对应的动作,该动作选自:

无条件地向服务基础设施的服务器转发数据包,

无条件地丢弃数据包,

如果正被转发到服务基础设施的服务器的数据包的当前流小于流阈值,则向服务器转发数据包,以及

如果正被转发到服务器的数据包的当前流达到或超过流阈值则丢弃数据包。

在本技术的一些实现方式中,该方法还包括在基础架构的数据库中关于签名集中的每个签名关联特定动作。

在本技术的一些实现方式中,该方法还包括:基于数据包的报头中标识的目的地地址和目的地端口在存储在数据库中的多个签名集中选择签名集,目的地地址指定服务基础设施的服务器,目的地地址和目的地端口一起标识服务基础设施中托管的服务。

在本技术的一些实现方式中,从针对目的地地址和目的地端口的基于目的地的流阈值以及针对签名中的一个签名的基于签名的流阈值中选择流阈值。

在本技术的一些实现方式中,该方法还包括:在服务基础设施处接收连续数据包,该连续数据包包括连续报头和连续内容,该连续报头包含指定服务器的目的地地址;相继地将签名集中的每个签名作为掩码应用于连续内容的预定区域;并且如果内容的预定区域与签名集的签名中的一个签名之间不存在逐字节匹配,则确定签名集中是否存在可用空间。

在本技术的一些实现方式中,该方法还包括:如果签名集中没有可用空间,则将正被转发到服务器的数据包的当前流与通用流阈值进行比较;如果正被转发到服务器的数据包的当前流小于通用流阈值则向服务基础设施的服务器转发连续数据包;以及如果正被转发到服务器的数据包的当前流达到或超过通用流阈值则丢弃连续数据包。

在本技术的一些实现方式中,该方法还包括:如果签名集中存在可用空间,则将与内容的预定区域匹配的新签名插入签名集中;将正被转发到服务器的数据包的当前流与基于目的地的流阈值和基于签名的流阈值中的所选的一个进行比较;如果正被转发到服务器的数据包的当前流小于基于目的地的流阈值和基于签名的流阈值中的所选的一个则转发连续数据包;以及如果正被转发到服务器的数据包的当前流达到或超过基于目的地的流阈值和基于签名的流阈值中的所选的一个,则丢弃连续的数据包。

在本技术的一些实现方式中,该方法还包括针对签名集中的每个签名启动删除定时器;在接收到数据包之后,针对签名集的签名中的提供与内容的预定区域的逐字节匹配的一个签名重新启动删除定时器;以及如果给定的删除定时器到期,则从签名集中删除与给定的删除定时器对应的签名。

在本技术的一些实现方式中,内容的预定区域在内容的开始处;并且每个签名具有允许在单个处理器操作中其作为掩码的应用的最大长度。

在本技术的一些实现方式中,向服务基础设施的服务器转发数据包包括:将数据包转发到路由器;以及在路由器中,使用路由表将数据包路由到服务器或路由到通信地耦接至服务器的保护模块。

在本技术的一些实现方式中,该方法还包括:周期性地搜索签名集中的两个签名的至少一些字节之间的部分匹配;以及响应于检测到部分匹配,用包含形成部分匹配的至少一些字节的新签名替换两个签名。

在其他方面,本技术的各种实现方式提供了一种数据包清理系统,包括:

输入设备,其被配置成接收数据包,该数据包包括报头和内容;

存储器设备,其被配置成存储签名集;以及

处理器,其操作地连接至输入设备和存储器设备,该处理器被配置成:

从输入设备接收数据包,

从存储器设备读取签名集,

相继地将签名集中的每个签名作为掩码应用于内容的预定区域;以及

如果内容的预定区域与签名集的签名中的一个签名之间存在逐字节的匹配,采取与签名中的该一个签名对应的动作,该动作选自:

无条件地向服务基础设施的服务器转发数据包,

无条件地丢弃数据包,

如果正被转发到服务基础设施的服务器的数据包的当前流小于流阈值,则向服务器转发数据包,以及

如果正被转发到服务器的数据包的当前流达到或超过流阈值,则丢弃该数据包。

在其他方面,本技术的各种实现方式提供了一种服务基础设施,包括:

数据库;以及

数据包清理系统,还包括输出设备,数据包清理系统的处理器操作地连接至输出设备,处理器还被配置成:

使输出设备向数据库发送查询以读取签名集,

经由输入设备从数据库接收签名集,以及

使存储器设备存储签名集。

在本技术的一些实现方式中,在数据包清理系统中,处理器还被配置成周期性地搜索签名集中的两个签名的至少一些字节之间的部分匹配;以及响应于检测到部分匹配,用包含形成部分匹配的至少一些字节的新签名替换两个签名。

在其他方面,本技术的各种实现方式提供了一种数据包清理系统,包括:

输入设备,其被配置成接收数据包;

处理器,其操作地连接至输入设备;以及

存储器设备,其操作地连接至处理器,该存储设备被配置成存储签名集并且包括非暂态可执行指令,该非暂态可执行指令在正被执行时使处理器执行用于检测服务基础设施处的非法数据包的方法。

在本说明书的上下文中,除非另有明确规定,否则计算机系统可以指代但不限于“电子设备”、“操作系统”、“系统”、“基于计算机的系统”、“控制器单元”、“监测设备”、“控制设备”以及/或者适合于当前相关任务的其任何组合。

在本说明书的上下文中,除非另有明确规定,否则表述“计算机可读介质”和“存储器”旨在包括任何性质和种类的介质,其非限制性示例包括ram、rom、盘(cd-rom、dvd、软盘、硬盘驱动器等)、usb密钥、闪存卡、固态驱动器和磁带驱动器。仍然在本说明书的上下文中,“一种”计算机可读介质和“该”计算机可读介质不应被解释为是相同的计算机可读介质。相比之下,并且在适当的时候,“一种”计算机可读介质和“该”计算机可读介质也可以被解释为第一计算机可读介质和第二计算机可读介质。

在本说明书的上下文中,除非另有明确规定,否则词语“第一”、“第二”、“第三”等用作形容词仅用于允许区分它们之间相互修饰的名词,而不是为了描述那些名词之间的任何特定关系。

本技术的实现方式各自具有上述目的和/或方面中的至少一个,但不一定具有所有这些目的和/或方面。应当理解,由于试图获得上述目的而导致的本技术的一些方面可能不满足该目的和/或可能满足本文未具体叙述的其他目的。

根据以下描述、附图和所附权利要求书,本技术的实现方式的附加和/或替选特征、方面和优势将变得明显。

附图说明

为了更好地理解本技术及其其他方面和另外的特征,参考以下结合附图使用的描述,在附图中:

图1是示出在根据本技术的实施方式的连续数据包的其内容的变化的数据包的简化图示;

图2是根据本技术的实施方式的服务基础设施的框图;

图3是示出根据本技术的实施方式的用于筛选在服务基础设施处接收到的数据包的方法的高级操作的一般序列图;

图4a至图4i形成示出根据本技术的实施方式的用于筛选在服务基础设施处接收到的数据包的方法的操作的序列图;以及

图5是根据本技术的实施方式的服务基础设施的数据包清理系统的框图。

还应注意,除非本文中另有明确说明,否则附图未按比例绘制。

具体实施方式

本文中引用的示例和条件语言主要旨在帮助读者理解本技术的原理,而不是将其范围限制于这样具体叙述的示例和条件。将理解的是,本领域技术人员可以设计各种布置,这些布置尽管未在本文中明确地描述或示出,但是仍实施了本技术的原理并且包括在本技术的精神和范围内。

此外,为了帮助理解,以下描述可以描述本技术的相对简化的实现方式。如本领域技术人员将理解的,本技术的各种实现方式可以具有更大的复杂性。

在某些情况下,还可以阐述被认为是对本技术进行修改的有用示例。这仅仅是为了帮助理解,并且同样不是为了限定本技术的范围或阐述本技术范围。这些修改不是详尽的列表,并且本领域技术人员可以进行其他修改,但仍然在本技术的范围内。此外,在没有提出修改的示例的情况下,不应当解释为修改是不可能的和/或所描述的是实现本技术的该元件的唯一方式。

此外,本文中叙述本技术的原理、方面和实现方式的所有陈述以及其具体示例旨在包括其结构等同物和功能等同物两者,无论它们当前是已知的还是将来开发的。因此,例如,本领域技术人员应当理解,本文中的任何框图表示体现本技术的原理的说明性电路的概念图。类似地,将理解的是,任何流程图、流图、状态转移图、伪代码等表示可以基本上在计算机可读介质中表示并且因此由计算机或处理器执行的各种过程,无论这样的计算机或处理器是否明确地示出。

可以通过使用专用硬件以及能够与适当的软件相关联地执行软件的硬件来提供附图中示出的各种元件的功能,包括标记为“处理器”的任何功能块。当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或其中的一些可以被共享的多个单独的处理器来提供。在本技术的一些实施方式中,处理器可以是通用处理器,例如中央处理单元(cpu)或专用于特定目的的处理器,例如数字信号处理器(dsp)。此外,术语“处理器”的明确使用不应被解释为排外地指能够执行软件的硬件,并且可以隐含地非限制性地包括专用集成电路(asic)、现场可编程门阵列(fpga)、用于存储软件的只读存储器(rom)、随机存取存储器(ram)和非易失性存储装置。还可以包括传统的和/或定制的其他硬件。

软件模块或被暗示为软件的简单模块在本文中可以表示为流程图要素或指示过程步骤和/或文本描述的执行的其他要素的任何组合。这样的模块可以由明确地或隐含地示出的硬件来执行。此外,应当理解,模块可以包括例如但不限于提供所需能力的计算机程序逻辑、计算机程序指令、软件、堆栈、固件、硬件电路或其组合。

在本技术的一方面,检查在服务基础设施处接收到的数据包的内容。将长度为几个字节的掩码应用于数据包的内容的预定区域的对应数目的字节上。例如,可以将掩码应用于数据包的内容的前两(2)至八(8)个字节。该掩码是签名。它可以是通常在由客户端用于访问合法服务使用的数据包中找到的签名,例如,用于初始化由服务基础设施托管的游戏的游戏会话的命令的签名。替选地,可以是已知攻击的签名。这样的攻击签名经常出现在非法数据包中,因为恶意攻击源经常以重复的方式发出基本相同的数据包。由于将掩码应用于与由服务基础设施托管的应用有关的数据包的内容,因此可以说该技术应用于开放系统互连(osi)模型的应用层(第7层)。

如果应用掩码揭露了数据包的内容带有合法服务的签名,则服务基础设施可以正常对待数据包。如果数据包携带已知攻击的签名,则可以丢弃该数据包。可选地,可以对在其内容中具有给定的重复或恒定部分的数据包进行计数,因为它们可以与先前未知的攻击有关。如果这些数据包的流超过由流阈值限定的每单位时间的最大容量则最终可以识别新签名。

数据库包括各自对应于已知签名的掩码的数目。该数目相当小,例如对于由服务基础设施托管的给定服务设置为四(4)个签名,给定服务通常由数据包的报头中携带的目的地地址和目的地端口标识。给定服务的签名数目保持较小使得所有这些掩码可以快速且一致地应用于接收到的数据包的内容。

聚合过程可以用于更新知识库。可以发现新识别的签名类似于已知的签名。作为示例,新候选签名可以与先前已知的6个八位字节签名共享五(5)个八位字节。可以更新数据库以用具有这五(5)个八位字节的候选签名替换先前已知的6个八位字节签名。现在,该新签名可以更广泛地检测攻击,因为它不受不再是更新签名的一部分的第6个八位字节的内容的限制。在实施方式中,聚合过程可以在后台执行。在服务基础设施处接收到特定数据包时不必然触发聚合过程。

本技术可以应用于使用各种协议来检测到达服务基础设施的非法数据包。本技术具有使用用户数据报协议(udp)检测非法数据包的特定应用,因为该协议是无连接的。尽管传输控制协议(tcp)可以从现有的因特网安全解决方案中受益,但是本技术仍然可以用于提供针对非法tcp数据包的附加保护。以下描述涉及用于检测非法udp数据包的方法和系统的应用,而无意于限制本技术的通用性。

适当利用这些基本原理,现在将考虑一些非限制性示例来说明本技术的方面的各种实现方式。

图1是示出根据本技术的实施方式的连续数据包的其内容的变化的数据包的简化图示。数据包100包括报头102和内容,该内容包括第一内容部分104和其余的第二内容部分106。报头102的格式可以取决于数据包100的协议而变化。通常,报头102包括因特网协议(ip)(第3层)报头部分,该报头部分指定了源地址、目的地地址以及可以指示数据包是udp数据包、tcp数据包或根据其他协议构建的数据包的协议指示符。ip报头还包含其他一些字段。报头102然后包含特定于诸如tcp或udp的协议的第4层报头部分。第4层报头部分可以包括源端口、目的地端口和一些其他字段。

如果数据包是合法的,则源地址和源端口指定了发起该数据包的网络实体。目的地地址可以指定服务基础设施的服务器并且其与目的地端口的组合可以指定由服务器托管的特定服务。通常,将给定目的地地址与给定目的地端口组合在一起的特定对指定了给定服务。例如,在将不同端口用于同一服务的音频和视频数据的情况下,可以通过其他组合来指定同一服务。然而,这对本技术没有限制作用。

数据包100的内容被示为第一内容部分104和其余的第二内容部分106,以说明本技术将与合法服务或恶意软件有关的签名应用于数据包100的内容的开始附近。尽管对内容的第一内容部分104的大小没有先验限制,但是在实施方式中,出于将在下文中解释的实际原因使用多达八(8)个字节(或64位)的长度。在关于图1描述的示例中,将签名应用于第一内容部分104的前八(8)个字节。在另一变型中,第一内容部分104可以比图示的更长,例如包括16个字节,在这种情况下,可以将签名应用于第一内容部分的第九至第十六字节,或者应用于第一内容部分的第六至第十三字节,或者应用于第一内容部分中的任何字节,或者应用于第一内容部分104的任何八(8)个连续或非连续字节。

在图1上,在服务基础设施处接收到的数据包100的第一实例中,内容的第一内容部分104a包括以下八(8)个字节:001c169a21002f5e。该8个字节的序列可以在服务基础设施中被更早地识别为已知攻击的签名“001c169a21002f5e”。例如,当服务基础设施被其第一内容部分104中具有该签名的大量数据包泛洪时,该签名可能已被识别。服务基础设施(或其部件之一)将签名作为掩码应用于第一内容部分104a、在签名与第一内容部分104a之间执行逐字节比较以输出比较结果108a。如果在第一内容部分104a的提取内容与已知攻击的签名之间存在完全逐字节的匹配(所有字节均在比较结果108a中设置),则将数据包100的该第一实例识别为不合法且丢弃。在变型中,可以想到的是,可以在签名与第一内容部分104a之间执行逐位比较以输出比较结果108a。可以观察到,可以使用相同或等效的过程来确定是否可以在第一内容部分104a与合法服务的签名之间找到完全的逐字节匹配。

在服务基础设施处接收到的数据包100的第二实例中,内容的第一内容部分104b包括以下字节:001c16e421002f5e。该序列与存储在服务基础设施中的任何签名都不相同,因为第四字节已更改;该第四字节在图1上标有下划线。将相同的签名(001c169a21002f5e)应用到第一内容部分104b上产生其中并非设置所有字节的比较结果108b。数据包100的后续实例可以包括具有稍微不同的内容的第一内容部分104c和104d,使得应用相同的签名(001c169a21002f5e)产生其中并非设置所有字节的比较结果108c和108d。

聚合过程可以用于维护签名的更新列表。尽管在第一内容部分104b、104c和104d中找不到完全匹配,但是比较结果108b、108c和108d仍然具有显示签名(001c169a21002f5e)与第一内容部分104b、104c和104d之间的匹配的至少六(6)个字节。几个接收到的数据包100的第一内容部分104a至104d仅示出了与签名的细微差异。考虑到识别非法数据包,服务基础设施可以选择使用施加在第一内容部分104的第一字节、第二字节和第四至第八字节上的6字节签名来代替8字节签名。因此,当服务基础设施已经检测到数据包100的内容与已知签名之间的部分匹配时,服务基础设施可以聚合与现有签名类似的第一内容部分104以形成具有更少字节的新候选签名。当检测到部分匹配时,可以至少部分地实时地执行该聚合过程,或者可以将其作为后台操作来执行。在图1的示例中,候选签名可以是“001cxxxx21002f5e”,其中,“xxxx”表示当接收到新数据包100时未验证这些字节,候选签名实际上具有六(6)个字节。如果许多接收到的数据包100与候选签名匹配,则较早的签名(例如001c169a21002f5e)可以被候选签名(例如001cxxxx21002f5e)代替。

在图1的示例中,尽管仅针对四(4)个数据包100示出了内容的第一内容部分104,但是将理解,由新候选签名替换签名可以遵循对较大数目的包的分析。

图2是根据本技术的实施方式的服务基础设施的框图。服务基础设施120可以包括被配置成从数据包源140接收数据包的前端130、一个或更多个服务器150、数据包清理系统160和数据库170,并且还可以包括路由器180和针对一些服务器150的特定于服务的保护模块190。在前端130处接收到的数据包100被转发到数据包清理系统160,该数据包清理系统160可以丢弃基于对每个数据包100的签名的评估而发现被滥用的任何业务。数据包清理系统160将未被丢弃的数据包100转发给各种服务器150以进行处理。通常,每个服务器150由对应的ip地址标识并且是一个或更多个服务的主机。可以通过给定服务器150的ip地址和由对应的端口号来标识保持在给定服务器150上的给定服务,该ip地址和端口号是从每个数据包100的报头102获得的目的地地址和目的地端口。数据包清理系统160可以根据数据包100中的目的地地址将未被丢弃的数据包100路由至适当的服务器150。

可选地,数据包清理系统160可以经由路由器180向服务器150路由数据包100。对于某些服务,路由器180仅将数据包100转发到适当的服务器150。对于一些其他服务,路由器180可以首先将数据包100转发到保护模块190,保护模块190可以根据一些其他保护方案将数据包100丢弃或转发到适当的服务器150。作为非限制性示例,保护模块190可以实现反分布式拒绝服务(ddos)功能以保护某些服务器150免受这样的特定形式的攻击。

图3是示出根据本技术的实施方式的用于筛选在服务基础设施处接收到的数据包的方法的高级操作的一般序列图。在图3中,序列300包括可以以可变顺序执行的多个操作,操作中的一些可以同时执行,操作中的一些是可选的。在操作305处,在服务基础设施100处从数据包源140接收数据包,该数据包源140可以是服务基础设施100的客户端但是也可以是诸如黑客的恶意方。前端130将数据包转发到数据包清理系统160。在操作310处,数据包清理系统160将数据包的模式与在数据包清理系统160中限定的签名集中的一个签名进行匹配。可以从数据库170读取签名集。如果服务基础设施支持多个不同的服务,则数据包清理系统160可以使用数据包的目的地地址和目的地端口来根据数据包源140的当前服务选择特定的签名集。如果存在与该集合中的签名之一的匹配,则序列300在操作315处继续,其中用于匹配的签名的流计数器被更新,例如针对当前服务的每个新接收到的数据包被步进。该流计数器可以对在短暂的时段内(例如在一秒钟之内)针对当前服务接收到的数据包的数目进行计数,并且在该短时段结束时自动将其复位使得每时段的容量(例如,每秒的数据包的数目)被实际地计数。在操作320处进行测试以确定是否已经专门针对匹配的签名限定了流阈值。如果是这样,则操作325应用专门针对匹配签名限定的流阈值,以取决于流计数器小于或大于该流阈值而传递或阻止数据包。如果操作320显示没有针对匹配签名限定的流阈值,则操作330可以应用专门针对当前服务限定的流阈值以传递或阻止数据包。在操作325和330中,如果数据包被阻止,则数据包清理系统160丢弃该数据包。否则,数据包清理系统160将数据包转发到当前服务的适当服务器150。

可以注意到,在操作325处应用的专门针对匹配签名限定的流阈值和/或在操作330处应用的专门针对当前服务限定的流阈值可以表示为每个时段的数据包的数目,例如表示为每秒数据包的数目,取决于用于保护服务基础设施100免受恶意攻击的特定情况而将该数目例如设置为每秒低至零(0)或一(1)个数据包,或设置为任何更高的数目。如果匹配签名是攻击的已知签名,则可以将流阈值设置为低值,例如设置为每秒零(0)个数据包,使得很少或没有恶意数据包被传递到服务器150。如果匹配签名是当前服务的已知签名,则可以将流阈值设置为更高的值。

非限制地,用于合法服务的已知签名的流阈值可以被设置为无穷大,在这种情况下,与该已知签名匹配的所有数据包由于是合法服务而被数据包清理系统160传递。在非限制性示例中,当保护模块190保护用于合法服务的服务器150免受特定攻击时,可以选择无限大的流阈值。

返回至操作310,如果数据包清理系统160未在数据包的模式与数据包清理系统160中定义的签名集之一之间找到匹配,则在操作335处进行测试以确定在当前服务的签名集中是否存在可用空间——如本文中以上所述,签名集的大小受到限制使得可以针对数据包的模式快速测试整个集合。如果没有可用空间,则该序列在操作340处继续,在该操作340中,针对当前服务或针对整个服务基础设施100限定的通用流阈值用于确定是将数据包传递到用于当前服务的适当的服务器150上还是在数据包清理系统160处阻止并丢弃该数据包。该通用流阈值可以用于保护服务基础设施100免受大规模攻击,例如其中多个数据包源140之一使用无法与任何已知签名匹配的数据包向服务基础设施100泛洪。

如果在操作335处签名集中存在可用空间,则在操作345处,在数据库170中搜索对应于当前数据包的模式的另一服务的另一签名集中限定的签名。先前相对于另一服务识别并存储在数据库170中的攻击的已知签名可能与与当前服务有关的当前数据包的模式匹配。例如,当黑客试图使用与以前用于攻击其他服务相同或等同的手段来攻击当前服务时,可能就是该情况。如果在数据库170中找到与数据包的模式匹配的签名,则在操作350处将找到的签名插入到签名集中的可用空间中。应当注意,无论找到的签名是与攻击有关还是与合法服务的合法数据业务有关都可以执行操作350,因为在任一情况下使用相同的过程。关于在签名集中输入的新签名记录了数据库170中包含的用于找到的签名的信息,该信息包括例如专门针对该签名限定的任何流阈值。在操作350之后,序列300在操作320处继续进行。

如果在操作345处在数据库170中没有找到与数据包的模式匹配的签名,则序列300在操作330处继续,在操作330中,根据专门针对当前服务限定的流阈值,将数据包传递到用于当前服务的适当的服务器150或者丢弃。

图3未示出在服务基础设施处接收到的数据包的模式搜索的所有可能结果。关于图4a至图4i提供了附加的非限制性示例,图4a至图4i形成示出了根据本技术的实施方式的用于在服务基础设施处检测非法数据包的方法的操作的序列图。在图4a至图4i中,序列200包括可以以可变顺序执行的多个操作,操作中的一些可以同时执行,操作中的一些是可选的。序列200的各种操作示出了:考虑到随着时间在服务基础设施120处接收到的业务,可以如何创建、应用、聚合和/或最终删除签名。在图4a至图4i中,标号a、b、c、d、e和f指示各种操作可以如何由序列200内的其他操作接续的示例。序列200的各种操作可以遵循不同的顺序。

服务基础设施120可以针对其所有服务器150上托管的所有客户端限定单一签名集。这可以例如是相对较小的服务基础设施120在单个服务器150上托管单个服务,或者在一个或几个服务器150上托管少量服务的情况。替选地,可以针对由服务基础设施120托管的每个服务或由服务基础设施120托管的一组服务定义不同的签名集。可以基于由接收到的数据包的报头中的目的地地址和目的地端口标识的特定托管服务来选择将被应用于确定接收到的数据包将被接受还是被丢弃的相关签名集。可以想到,可以针对一组目的地地址定义签名集,或者基于在处理较早接收到的数据包时进行的历史观察来定义签名集。

服务基础设施120可以在大量接收到的数据包中搜索集合中的签名。为了限制由这些操作引起的处理量,签名集中的签名的数目可以保持较小,例如具有多达四(4)个签名的集合。出于相同的原因可以限制签名的长度,选择该长度使得数据包清理系统160可以在单个处理器操作中将每个签名应用于接收到的数据包。

序列200可以在操作202处开始,在操作202中将多个签名集存储在数据库170中。基于一起标识在服务基础设施的服务器中托管的服务的目的地地址和目的地端口来存储每个签名集。在操作204处,可以关于签名集中的每个签名在数据库170中关联特定动作。一些签名可以由服务基础设施120的运营商来定义,例如但不限于,当运营商针对基础架构120中托管的服务定义合法数据包的签名时。同样,运营商可以定义合法签名的特定动作是无条件地允许带有该签名的数据包,或者允许该数据包除非超出高流阈值。运营商可以针对具有可疑签名的数据包在数据库170中指定低流阈值,或者甚至将这样的阈值设置为零(0),在这种情况下,具有可疑签名的数据包将被无条件丢弃。在操作206处,针对签名集中的每个签名启动删除定时器。非限制地,可以将删除定时器设置为短暂的时段,例如两(2)秒,使得在该短暂的时段内接收到的任何数据包中未出现的签名将被迅速地从签名集中自动删除。定时器的处理和自动删除的处理可以在数据库170中、数据包清理系统160中或服务基础设施120的另一元件中执行。

在操作208处,在服务基础设施处接收数据包,更具体地,在数据包清理系统160处接收数据包。数据包包括如图1所示的内容。在操作210处由数据包清理系统160选择签名集,该选择是在存储在数据库170中的多个签名集中进行的,该选择是基于数据包的报头中标识的目的地地址和目的地端口的,目的地地址和目的地端口一起标识服务基础设施中托管的服务。然后在操作212处,数据包清理系统160将所选的签名集中的每个签名作为掩码相继地应用到内容的预定区域。在实施方式中,内容的预定区域在内容的开始处。在相同或另一实施方式中,每个签名具有允许其在单个处理器操作中将其作为掩码应用于内容的预定区域的最大长度。在相同或又一实施方式中,签名集可以包含四(4)个签名。

在操作214处,数据包清理系统160验证是否在内容的预定区域与签名集中的签名之一之间找到了逐字节的匹配。如果找到了这样的逐字节匹配,则在操作216处重新启动针对签名集中的提供到内容的预定区域的逐字节匹配的一个签名的删除定时器。因为在操作214处针对签名之一找到了逐字节匹配,因此在操作218处由数据包清理系统160选择动作,该动作对应于该一个签名。数据包清理系统160可以在操作220处无条件地向用于所标识的托管服务的适当的服务器150转发数据包,在操作222处如果正被转发到适当的服务器150的数据包的当前流小于流阈值则向适当的服务器150转发数据包,在操作224处无条件地丢弃数据包,或者在操作226处如果正被转发到适当的服务器150的数据包的当前流达到或超过流阈值则丢弃数据包。在操作222和226处应用的流阈值可以是针对在操作214处已经找到匹配的签名之一限定的基于签名的流阈值。如果在操作214处未找到匹配,则替选地可以应用针对目的地地址和目的地端口限定的基于目的地的流阈值。在非限制性示例中,可以将基于签名的流阈值设置为每秒25k数据包并且可以将基于目的地的流阈值设置为每秒30k数据包。

如果在操作224或226处丢弃了数据包,则序列200可以结束。如果未丢弃数据包,则操作220或222可以可选地被操作228跟随,在操作228中数据包清理系统160将数据包转发到路由器180。然后在操作230处,路由器180可以将来自数据包的报头的目的地地址应用于内部路由表以将数据包直接路由至适当的服务器150或保护模块190,保护模块190又通信地耦接至适当的服务器150。无论数据包是从数据包清理系统160直接转发到适当的服务器150还是经由路由器180从数据包清理系统160转发到适当的服务器150,用于处理接收到的数据包的序列200可以结束。

返回至操作214,如果在内容的预定区域与签名集中的任何一个签名之间未找到逐字节匹配,则序列200在操作232处继续,在操作232中确定签名集中是否存在可用空间。如果在签名集中存在可用空间,则在操作234处,数据包清理系统160在数据库170中搜索与内容的预定区域匹配的现有签名。如果找到了这样的现有签名,则在操作236处,数据包清理系统160使现有签名插入签名集中的可用空间中。如果没有找到现有签名,则在操作238处,数据包清理系统160将新签名插入签名集中,该新签名由数据包的内容的预定区域定义。如上文中在操作320和325的描述中所述(图3),操作236和238导致稍有不同的结果在于:在操作236处将现有签名插入签名集中可能涉及使用专门针对该签名限定的流阈值。在任一情况下,在操作240处针对新签名初始化删除定时器使得如果在稍后的数据包中不经常发现新签名,则可以最终删除该新签名。在操作242处,数据包清理系统160使得基于所选择的基于目的地的流阈值和基于签名的流阈值之一来转发或丢弃数据包。在操作242之后用于处理数据包的序列200结束。

如果操作232确定签名集中不存在可用空间,则数据包清理系统160可以在操作244处确定转发到服务器的数据包的当前流是否小于通用流阈值。如果是这样,则在操作246处数据包清理系统160使得向适当的服务器150转发数据包。否则,已经超过了通用流阈值,则在操作248处数据包清理系统160可以丢弃数据包。序列200在操作246或248之后结束。在非限制性示例中,通用流阈值可以设置为每秒75,000个数据包。

在实施方式中,序列200的其他操作可以用于生成未使用签名的删除序列和相似签名的聚合序列。这些其他操作可以在后台执行并且可以不响应于在服务基础设施120处对任何特定数据包的接收。

如图4h所示,可以在数据包清理系统160中检测超时250或类似的触发器。超时250可以每秒发生一次或以任何其他合适的时间间隔发生。当数据包清理系统160检测超时250时,在操作252处验证对于存储在数据库170中的任何一个签名删除定时器是否已到期。如果是这样,则在操作254处删除与到期的删除定时器对应的签名并且删除序列结束。可以针对数据库170中存储的任何数目的签名重复操作252和254。在变型中,可以在数据库170中自主检测超时250并且可以在没有来自数据包清理系统160的干预的情况下删除过期签名。

(可能例如每秒发生一次的)另一周期性超时260触发某些签名的聚合序列。在操作262处,对给定签名集中的两个签名的至少一些字节之间的部分匹配进行搜索。在该上下文中,在非限制性实施方式中,如果在集合中的另一签名中找到集合中的签名的大部分字节,则可以认为部分匹配是足够的。例如,如果签名包括7个字节并且如果在另一签名中找到了这7个字节中的5个的匹配,则认为已检测到部分匹配。如果未检测到部分匹配,则聚合序列结束。足以检测到部分匹配的匹配字节数可以设置为最多至最大签名大小的任何值。

响应于在操作262处检测到部分匹配,操作264用包含匹配字节的新签名替换两(2)个部分匹配的签名。在操作266处针对新签名初始化删除定时器,使得如果在后面的数据包中不经常发现新签名则可以最终删除新签名。聚合序列然后结束。可以针对存储在数据库170中的任意数目的签名重复操作262、264和266。在变型中,可以在数据库170中自主检测超时260并且可以在没有来自数据包清理系统的干预的情况下聚合签名。尽管某些签名可能聚合,但是其他一些签名可能不聚合。在实施方式中,可以聚合基于可疑数据包的签名而合法业务的签名可以不经受任何聚合。

序列200和300中的操作中的每一个可以由一个或更多个处理器处理,该一个或更多个处理器耦接至存储器设备。例如,图5是根据本技术的实施方式的服务基础设施的数据包清理系统的框图。在图5中,数据包清理系统160包括一个处理器或多个协作处理器(简单起见表示为处理器166)、一个或多个存储器设备(简单起见表示为存储器设备167)、一个或多个输入设备(表示为输入设备168)以及一个或多个输出设备(表示为输出设备169)。输入设备168和输出设备169可以被组合在输入/输出设备中。处理器166可操作地连接至存储器设备167、输入设备168和输出设备169。非限制地,处理器166可以是能够通过在单处理器操作中将8字节签名应用于接收到的数据包的内容的预定区域来执行掩码操作的64位处理器。存储器设备167或者存储单个签名集或者可以替选地针对服务基础设施120的服务器150上托管的每个服务存储签名集,每个服务由目的地地址和目的地端口的特定组合来标识。存储器设备167可以包括用于存储可由处理器166执行的指令的非暂态计算机可读介质。处理器166执行指令可以使数据包清理系统160执行序列200和/或300中归因于数据包清理系统160的操作。

数据包清理系统160可以包括本文中不需要讨论的多个其他元件。尽管数据包清理系统160可以是服务基础设施120的一部分,但是在实施方式中,本数据包清理系统160的特征可以被并入作为独立单元操作的服务器中。

输入设备168可以从前端130接收数据包。处理器166从输入设备168接收数据包并且从存储器设备167读取签名集。如果存储器设备167存储了多个签名集,则处理器166可以读取数据包中包含的目的地地址和目的地端口以便识别由基础架构120托管的特定服务。在这样的情况下,处理器166可以从存储器设备167读取与由目的地地址和目的地端口标识的托管服务有关的签名集。无论如何,处理器166随后将签名集中的每个签名作为掩码相继地应用于数据包的内容的预定区域。如果在内容的预定区域与签名集中的任何一个签名之间存在逐字节的匹配,则处理器166可以从存储器167读取针对找到匹配的签名采取的特定动作。处理器166可以使得输出设备169无条件地向服务基础设施120的适当的服务器150转发数据包、使得无条件地丢弃数据包、使得如果正被转发到服务器的数据包的当前流小于流阈值则使输出设备169将数据包转发到适当的服务器150、或者使得如果正被转发到服务器的数据包的当前流达到或超过流阈值则丢弃数据包。

处理器166可以使输出设备169向数据库170发送查询以读取用于服务基础设施120中托管的任何一个服务或所有服务的一个或更多个签名集。在输入设备168处从数据库170接收一个或更多个签名集,并且将其转发到处理器166,处理器166又使其存储在存储器设备167中。可以在后台中执行该操作使得当在数据包清理系统160处接收数据包时易于在存储器设备167中获得该一个或更多个签名集。

处理器166可以周期性地搜索在给定签名中的两个签名的至少一些字节之间的部分匹配。响应于检测到该部分匹配,处理器166可以用包含形成该部分匹配的至少一些字节的新签名替换该两个签名。在给定签名集中的签名之中可能发生多于一个这样的聚合。

处理器166可以使输出设备169将新签名转发到数据库170。

虽然已经参考以特定顺序执行的特定步骤描述和示出上述实现方式,但是应该理解,可以在不脱离本技术的教导的情况下组合、细分或重新排序这些步骤。步骤中的至少一些可以并行或串行执行。因此,步骤的顺序和分组不是对本技术的限制。

应当清楚地理解,并非在本技术的每个实施方式中都需要享有本文中提到的所有技术效果。

对本领域普通技术人员来说,本技术的上述实现方式的修改和改进可以变得明显。前面的描述旨在是示例性的而不是限制性的。因此,本技术的范围旨在仅受所附权利要求书的范围限制。

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