专利名称:分布式分组流检查和处理的制作方法
技术领域:
本发明针对跨分组处理设备的网络分组处理负荷的分布,特别地,其中,通过采用用于控制或以其他方式影响冗余过滤操作的装置跨分组过滤设备来分布所述负荷。
背景技术:
企业将网络技术用于进行业务、商业管理、学术研究、机构管理和类似任务是普遍的。网络技术一特别是数字分组交换网络技术一使得能够在本地和广域企业网内以及本地和广域企业网之外实现信息(诸如文档、数值数据、图像、视频、音频和多媒体信息)、资源 (诸如服务器、个人计算机、数据储存器和安全设备)和应用(诸如文字处理、记帐、金融、数据库、电子数据表、呈现、电子邮件、通信、网络管理和安全应用)的广泛共享和通信。虽然分组交换网络在拓扑结构、尺寸和配置方面相当大地改变,但是基本上,所有此类网络不变地包括至少两个“节点”,其被可通信地链接(通过有线或无线连接)以使得能够在其之间传输数字分组封装数据。节点一如本领域的技术人员所已知的一包括台式计算机、膝上型计算机、工作站、用户终端、主机计算机、服务器、网络附加存储、网络打印机和用于所述数字分组封装数据的其它目的地、起源或终点。联网设备一在本领域中有时称为“中间系统”或“互通单元” 一一般(如果不是不变地)也存在于分组交换网络中。与节点相对照,这些主要用于对网络节点之间的数据业务进行管理、调节、成形或其他方式的调解。交换机、网关和路由器例如在网络内的节点之间引导分组业务以及将业务引导到网络中和引导到网络外。同样地,某些网络安全设备一作为所谓的“混合”联网设备运行一通过对数据分组或数据分组流进行过滤、隔离、标记和 /或其他方式的调节来调解进入网络中或网络内的分组业务。在常见的入侵预防系统(IPS)部署中,可以将多个IPS单元遍布于网络中以基于包括组织网络拓扑结构和关键资产位置的若干因素来保护网络并将网络分段。例如,典型的是将IPS放置在(一个或多个)WAN接入点处以及数据中心的前面和网络的不同段之间以创建独立的安全区。照此,流可以在其穿过网络时通过多个IPS。在每个IPS处,可能由过滤器的相同集合或子集来检查相同的流,从而招致没有附加价值的重复处理循环。因此,需要用于避免分组交换网络中的冗余分组检查的技术。
发明内容
响应于上述需要,本发明的实施例提供了用于跨一组分组处理设备分布网络处理负荷的技术,其中,所述方法采用用于消除或以其他方式控制冗余分组处理操作的装置。为此目的,本发明的实施例提供了一种包括至少两个分组处理设备的网络,其中 (a)所述分组处理设备中的第一分组处理设备能够处理从中流过的数据分组;(b)所述分组处理设备中的第二分组处理设备也能够处理从中流过的数据分组;以及(c)所述第一分组处理设备能够在它对所述数据分组的所述处理期间检测是否先前已由所述第二分组处理设备对所述数据分组执行一个或多个分组处理操作。如果所述第一分组处理设备检测到先前已由所述第二分组处理设备对所述数据分组执行分组处理,则所述第一分组处理设备可以拒绝对所述数据分组执行分组处理。如果所述第一分组处理设备检测到先前尚未由所述第二分组处理设备对所述数据分组执行分组处理,则所述第一分组处理设备可以对所述数据分组执行分组处理。在一个优选实施例中,本发明设法影响所谓的网络入侵预防系统(IPS)中的冗余, 所述网络入侵预防系统特别地包括遍及网络分布的一组直列式(in-line)分组过滤器设备。依照本实施例,本发明的网络包括至少两个分组处理设备,其中(a)所述分组处理设备中的第一分组处理设备能够检查并过滤从中流过的数据分组,通过执行来自过滤器组的一个或多个过滤器来实现所述过滤;(b)所述分组处理设备中的第二分组处理设备也能够检查并过滤从中流过的数据分组,也通过执行来自所述过滤器组的一个或多个过滤器来实现所述过滤;以及(c)所述第一分组处理设备能够在它对所述数据分组的所述检查期间检测是否先前已由所述第二分组处理设备对所述数据分组执行一个或多个过滤器。如果所述第一分组处理设备检测到先前已由所述第二分组处理设备对所述数据分组执行特定的过滤器,则所述第一分组处理设备可以拒绝将该特定过滤器应用于所述数据分组。如果所述第一分组处理设备检测到先前尚未由所述第二分组处理设备对所述数据分组执行特定的过滤器,则所述第一分组处理设备可以将该特定过滤器应用于所述数据分组。一类实施方式将识别已被应用于检查分组的过滤器组的唯一标识符编码。下游 IPS使用此字段来避免重复相同的过滤器检查。所述唯一标识符可以被写入分组的字段中。 通过写入分组字段中,IPS系统实际上对分组字段进行重新定义、重新确定其目的或劫持分组字段。可以使用的某些字段是IP选项字段;diffserv位;或VLAN/MPLS标记。第二实施方式利用网络拓扑结构的知识和该拓扑结构中的其它IPS的放置。集中式或分布式方法可以利用拓扑结构信息来防止冗余处理并可能跨不止一个IPS散布处理负荷。在集中式或分布式方法中,可以从层2或层3拓扑结构相关协议消息中的信息或从其它信令协议获悉该拓扑结构。在集中式方法中,一个设备获得拓扑结构信息、该拓扑结构中的IPS的放置,并将工作负荷划分信息或指令分配给每个IPS。在分布式方法中,每个IPS 获得拓扑结构信息、该拓扑结构中的此IPS和可能的其它IPS的放置,并且每个IPS判定将对每个分组进行什么处理。该判定可以基于已经进行了什么先前IPS处理、此IPS的工作负荷和可以由此IPS与分组的目的地之间的已知拓扑结构中的其它IPS进行什么处理。本发明的实施例的一个优点是其使得能够跨一组分组处理设备分布网络处理负荷以消除、控制或以其他方式影响冗余分组处理操作。本发明的实施例的另一优点是其跨一组分组过滤设备分布网络分组过滤负荷以消除、控制或以其他方式影响(完全地或部分地)所述分组过滤设备组当中的冗余过滤操作。本发明的实施例的另一优点是其通过与分组或分组流通过所述分组过滤设备同时地在分组或分组流中插入并检测唯一标识符来分布网络分组过滤负荷。所述唯一标识符的存在或不存在指示所述分组流的先前通过所述过滤设备中的一个。本发明的实施例的另一优点是其使用共享网络拓扑结构信息来分布网络分组过滤负荷,所述共享网络拓扑结构信息被宿存在所述网络中以使得能够被所述分组过滤设备组中的每一个访问(完全或受限的)。
通过结合附图进行的以下详细说明,本发明的实施例的这些及其它特征和优点将变得对于本领域普通技术人员来说显而易见。
图IA示意性地举例说明包括多个分组处理设备141、142、143、144和145的网络 100,所述分组处理设备依照本发明被配置为分布分组处理功能。图IB示意性地举例说明用于映射拓扑结构信息和分组处理信息的有用分组处理设备中的某些说明性数据结构。图2示意性地举例说明实施本发明的模式,其中,与其它分组处理功能(例如,IPS 相关分组处理Mo)串行地执行在先处理检测220。图3提供举例说明可在本发明的执行中采用的逻辑的流程图。图4示意性地举例说明实施本发明的另一模式,其中,在先处理检测420a、420b被集成到其它分组处理功能中(例如,IPS相关分组处理400的状态和过滤器功能411、422)。
具体实施例方式本发明设法广泛地在本文给出的权利要求的范围内涵盖用于跨一组分组处理设备来分布网络处理负荷的所有产品、系统和方法,其中,所述产品、系统和方法采用用于消除、减少、控制或以其他方式影响冗余分组处理操作的装置或步骤。在图IA至4中给出了此类产品、系统和方法一包括其组成部分一的某些特定示例。虽然本发明能够采取若干以及各种实施例,所有此类实施例在网络内采用至少两个分组处理设备(例如,“第一”和“第二” “分组处理设备”),每个分组处理设备能够处理从中流过的数据分组,并且其中,所述设备中的至少一个能够在其对所述数据分组的处理期间检测先前已经由其他分组处理设备对所述数据分组执行一个或多个分组处理操作。所述“第一”和“第二”分组处理设备在其有形产品实施例的方面不需要在其物理配置或功能性的总体范围或程度方面是相同的。例如,“第一”分组处理设备可以被配置为用于网络的“边缘”的比较低业务的区域,而“第二”分组处理设备可以被配置为用于网络的“核心”的比较高业务的区域。因此,虽然第一分组处理设备可以采用比第二分组处理设备所采用的更加流水线式的操作系统和不那么高级的存储和逻辑电路,但此类设备的使用在冗余的范围内一两者都能够执行基本上类似的一组分组处理操作(即,上述“一个或多个分组处理操作”)。本发明所预期的分组处理操作包括其中分组化数据被压缩、解压缩、加密、解密、 分类、撤消分类(declassify)、搜索或提交至其它类似深分组处理操作的任何计算操作。虽然本发明适应广泛的变化,但主要分组处理操作是在已知的网络入侵预防和网络入侵检测技术中采用的分组检查和过滤操作。例如在2006年1月3日授权给Craig Cantrell等人的美国专利No. 6,983,323 ; 在2006年11月7日授权给Gerald S. Stellenberg等人的美国专利No. 7,134,143 ;在 2002年11月7日由Craig Cantrell等人提交的美国专利申请公开No. 2004/0093513 ; 以及在2007年3月7日授权给R. Tarquini的美国专利No. 7,197,762中公开了网络入侵预防技术。例如在2007年1月2日授权给B. Schneir等人的美国专利No. 7,159,237 ;在2007年6月5日授权给A. Reikar的美国专利No. 7,228,564 ;在2005年4月12日授权给E. Carter的美国专利No. 6,880,087 ;以及在1994年1月11日授权给S. Shieh等人的美国专利No. 5, 278,901中描述了网络入侵检测技术和/或网络安全相关分组处理操作。分组处理设备被作为“直列式”设备(参考所谓的“导线中的凸块”)安装到主网络中,使得从中流过的所有分组经受上述分组处理操作。通常,将在网络中分布若干分组处理设备。依照本发明的实施例,“第一”和“第二”分组处理设备将位于网络中,使得从源到其目的地的数据分组业务(即,其中所述源或目的地中的至少一个在网络内部)能够在到达其目的地之前通过第一和第二分组处理设备两者。此类条件仅在其中存在冗余可能性的情况中保证了本发明的实现。图IA示意性地举例说明通过内联网连接到其它公司站点和经由因特网190连接到远程用户的局域网(LAN) 100。从源到目的地穿过网络的业务可以通过诸如IPS的不止一个分组检查设备。例如,如果端节点114从服务器113检索数据,则载送该数据的分组将通过IPS4 144和IPS5 146和IPS2 142。不使全部的三个IPS设备重复在端节点114和服务器113之间载送数据的这些分组的相同检查将是有利的。现在将描述用于减少或消除冗余分组检查的技术的两个示例。在一个实施例中, 每个分组载送标识符,其直接地或间接地并连同其它数据的使用一起指示已对该分组执行哪种(些)先前分组处理操作和/或指示尚未且应该对此分组执行哪种处理。在任一种情况下,标识符使得已被上游IPS处理的分组能够避免下游的重复处理。流的智能标记导致完全绕过检查处理或将所要求的检查减少至否则由现有技术系统执行的处理的一小部分,从而使IPS引擎效率最优化。标记分组从而减少保证网络安全所需的总体IPS处理能力并减少业务等待时间。刚刚描述的实施例涉及向分组处理设备添加新的功能,即检验上述分组标识符、 基于分组标识符的内容来确定是否需要对分组执行分组处理以及仅对任何特定分组执行尚未对该分组执行的处理的能力。添加此新功能的一种方式是与如图2所示的其它分组处理组件串行地将其实现,图2举例说明根据本发明的一个实施例实现的分组处理设备200。 分组处理设备200接收分组210。分组处理设备200包括先前分组处理检测功能220,其可能是最先检查分组210并确定已经由上游分组处理设备对接收到的分组进行了哪种处理 (如果有的话)。先前分组处理检测功能220然后将连同ft~evft~0cess (先前处理)信息230 一起将分组210传递至IPS分组处理组件240,PrevProcess信息230描述已经由上游分组处理设备应用于此分组的先前分组处理操作(如果有的话)。另外或替换地,信息230可以指定尚未和需要对分组210执行哪种处理。IPS分组处理组件240使用I^revftOcessing信息 230来避免冗余分组处理。更具体地,IPS分组处理组件240可以考虑将一个或多个分组处理操作应用于分组210,并仅对分组210执行信息230指示(直接地或间接地)尚未对该分组执行的那些操作。先前处理检测器功能220 (或IPS分组处理组件M0)可以对分组210 进行标记以指示已经由IPS分组处理组件240将哪些分组处理操作应用于分组210 (或哪些分组处理操作尚未被IPS分组处理组件应用于分组210)。图3描绘被先前处理检测器功能220使用的逻辑。首先,先前处理检测器功能220 在步骤310处确定其是否正在使用标记信息或拓扑结构信息来确定应对接收到的分组进行什么处理。如果分组处理设备200处于使用标记的模式,则在步骤320处检查经细察的分组的一个或多个字段。可以在步骤330、340和350处对从接收到的分组210提取的信息执行处理以例如解密和/或运行算法以确定可信任方(诸如另一 IPS)是否向接收到的分组分配(一个或多个)标记值。如果分组处理设备200处于使用拓扑结构信息的模式,则在步骤 360处检查分组210的一个或多个分组地址字段。在步骤370处分组寻址信息被与另一数据结构相结合地用来确定已对分组210执行哪种处理(如果有的话)并确定应由该设备200 对分组210执行哪种处理(如果有的话)。独立于分组处理设备200处于哪种模式和如何确定此设备200已经执行和/或应进行哪种处理,先前处理检测器功能220在步骤380处将分组210和关于已经和/或应执行哪种处理的信息传递至IPS分组处理器M0。所述标记可以例如是被添加到分组210的额外字段。可替换地,例如,可以通过用过滤器处理标识符来重写在分组210中接收到的数据来将分组210中的一个或多个现有字段的目的重新确定为充当标记。可以被用于此目的的字段的示例包括IP选项字段; diffserv 位;以及 VLAN/MPLS 标记。如上所述,在先处理检测器220可以使用关于网络拓扑结构的信息来确定已经和 /或应对分组210执行哪种处理。这种方法尝试更好地理解分组210的路径和分组210沿着其从源到目的地的路线将接收到的处理。首先,通过检查分组地址字段⑶口上文相对于步骤360所述)来获得关于分组的路径的信息。可以与驻留于分组处理设备MO中的数据结构相结合地使用此地址信息以确定在分组处理设备200处应对此分组210执行哪种处理 (如果有的话),所述数据结构包括关于沿着此分组210的路径由其它处理设备进行和将要进行的先前和未来处理的明确过滤器指令或信息。关于网络拓扑结构和请求了哪种处理或应执行哪种其它处理的信息可以被另一设备(诸如网络管理设备SMS 151)加载到分组处理设备200及其它分组处理设备中,或者通过拓扑结构协议的检查和可能参与由分组处理设备来确定,所述拓扑结构协议诸如层2生成树协议;层3路由器协议(诸如RIP、0SPF、BGP或 IGMP);和/或分组处理设备发现协议。独立于此拓扑结构相关信息被如何创建并存储在分组处理设备200中,此信息在分组处理设备200接收到分组210时被连同接收到的分组210 的一个或多个寻址字段一起用来直接地确定应对此分组210执行哪种分组处理(如果有的话),或者计算已经由或稍后将由其它分组处理设备执行哪种处理(如果有的话),并且然后推导出应由此分组处理设备200对此分组210执行哪种处理(如果有的话)。可以使用多种技术基于网络拓扑结构来推导出已经或应对分组210执行哪些分组处理操作。例如,在一个实施例中,不进行关于一个或多个IPS是否在分组210的从其源去往其目的地的路径中的假设。在本实施例中,每个分组处理设备将分组标记以指示已经由该分组处理设备对分组210执行了哪种处理。在本实施例中,应以不影响目的地端节点或其它中间分组转发设备进行的分组处理的方式来实现所述标记。在另一实施例中,只有当已知存在将在当前IPS 200处理分组210之后处理分组 210的一个或多个IPS时才对分组210进行标记。这要求某些拓扑结构相关信息。在本实施例中,可以以能够在处理分组210之后被另一 IPS取消的方式来封装或以其他方式修改分组210。仍必须注意保证中间分组转发设备不受分组修改的影响。要使用哪种标记方法和应使用哪个标记信息的确定由另一设备(诸如网络管理设备,诸如SMS 151)经由由SMS 加载的数据分配给分组处理设备200,所述数据将分组寻址信息映射成标记和处理指令;或者由分组处理设备200用网络拓扑结构中的IPS的位置的知识和分组地址字段中的一个或多个来确定。分组处理设备200可以通过例如加载数据结构来使用拓扑结构信息确定将对接收到的分组210执行哪种处理,所述数据结构将源地址、目的地地址、源和目的地地址二者或分组210中的其它字段映射成明确的处理和标记指令。可替换地,分组处理设备200可以加载拓扑结构信息并然后使用该信息基于诸如分组的地址字段、关于网络拓扑结构中的其它分组处理设备的信息和哪些任务被分配给每个分组处理设备的信息来识别已经或需要执行哪种分组处理。可以用许多不同的策略来实现不重复分组处理的目标。例如,一个此类策略是一个分组处理设备将执行所有分组处理,并且其他分组处理设备将执行很少的其他处理或不执行其他处理。为了实现此策略,第一或最后的分组处理设备可以例如被分配为执行所有分组处理。策略的另一示例是跨多个分组处理设备分布分组处理负荷的策略,其中,每个分组处理设备搜索不同的威胁。参考图IA和1B,现在将描述这些方法的某些示例。在第一示例中,分组处理策略是使第一分组处理设备(例如,IPS)执行所有分组处理并使用网络拓扑结构信息来识别已经和/或应执行哪种分组处理。SMS 151加载将源地址信息映射到分组过滤器的数据结构181 (图IB)。IPS2 142检验分组的源地址字段以识别分组的源地址。IPS2 142然后在加载的数据结构中对此源地址或该源地址所属的子网进行定位以确定在处理分组时应使用哪些过滤器。如表181所示(图1B),如果源地址来自子网2,则IPS2 142将使用如组X所指示的所有过滤器来处理分组,组X包括分组处理过滤器的完整组。如果源地址不是子网2,则网络中的另一 IPS将已经是接收分组的第一 IPS,在这种情况下,该另一 IPS将已经执行所有要求的分组处理。在第二示例中,分组处理策略是让最后的IPS执行所有分组处理并使用网络拓扑结构信息来识别已经和/或应执行哪种分组处理。出于本示例的目的假设图IB所示的数据结构181现在将目的地地址信息映射到分组过滤器。SMS 151加载数据结构181。IPS检验分组的目的地地址,并然后在数据结构181中对目的地地址本身或源地址所属的子网进行定位以确定应使用哪些过滤器来处理此分组。如表181所示,如果目的地地址是到子网2 的,则IPS2 142将使用由组X所指示的过滤器组处理分组,组X包括分组处理过滤器的完整组。如果使用目的地地址来识别已经和/或应执行哪种分组处理,则必须处理多播目的地以及单播目的地。因为多播分组具有多个目的地。使最后的IPS处理分组可以导致多个IPS执行相同的过滤。结果,通过以下方式来处理具有多播目的地地址的分组使用那些分组的源地址并使得那些分组中的每一个遇到的第一 IPS来以上文所讨论的方式执行分组处理。可以仍以上文所讨论的方式基于目的地地址使用链中的最后的IPS来处理单播分组。如果网络管理优选的是跨多个分组处理设备来分布分组处理并想要使用拓扑结构信息来识别已经和/或应执行哪种分组处理,则可以使用源和目的地两者来确定什么分组处理已被分配给接收到分组的IPS。在以下示例中,存在三组过滤器。过滤器组A保护一种类型的设备将其称为苹果。过滤器组C保护另一类型的设备将其称为桔子。过滤器组 B针对对两种设备类型(苹果和桔子)的威胁进行保护并且是非常计算密集的。过滤器分配规则如下如果分组通过作为高功率多处理器分组检查设备的IPS5,则应在IPS5处而不在其它IPS处应用过滤器组B。苹果类型端节点驻留于子网2中且桔子类型端节点驻留于子网1中。知道网络拓扑结构和设备驻留在该拓扑结构中的位置的SMS 151构造描述此类网络拓扑结构和设备位置的数据结构,并将那些数据结构发送到IPS。如图IB所示,IPS2从SMS 151接收数据结构182,其命令IPS2 如果对于任何目的地地址而言,分组源地址是来自子网2,则应用过滤器组A ;如果分组目的地是从除子网1 之外的任何源地址到子网2的,则应用过滤器组A ;以及如果分组目的地是到子网2且源地址是来自子网1的,则应用过滤器组A和组B。如果分组源自于子网1中且目的地是子网 2,则分组将首先被交换机131接收并然后转发到IPS1,在那里,IPSl将应用用于桔子(组 C)的过滤器。如果分组通过桔子过滤器,则IPSl将转发分组。路由器层3 136然后将接收分组并将其转发到IPS2,IPS2如上所述地将应用过滤器组组A和组B,因为分组从未通过IPS5。如果IPS2接收到来自任何其它子网的分组,则分组将已经通过IPS5,在那里,将已经应用过滤器组B。同样地,IPS5 146从SMS 151接收数据结构185,其命令IPS5向所有分组应用过滤器组B,无论那些分组源自于哪里或目的地是哪里,因为由于IPS5在网络拓扑结构中的位置在IPS5接收到分组之前将已经由另一 IPS应用了过滤器组A或组C。IPS3 143从SMS 151接收到数据结构183,其命令IPS3如果分组正在子网3和4 之间行进,则应用过滤器组A、组B和组C,否则仅应用过滤器组A和组C。子网3中的服务器为苹果和桔子两者提供服务,因此检查两种类型的弱点。如果分组不通过IPS5,则还检查过滤器组B。在下一个示例中,使用分组标记来识别已经和/或应执行哪种分组处理,并且分组处理策略将使第一 IPS执行所有分组处理。在这种情况下,将由第一 IPS来处理分组过滤器组A、组B和组C以接收分组。然后该IPS对分组进行标记以指示已经对此分组处理了过滤器组A、组B和组C。如果另一 IPS接收到具有指示已经处理过滤器组A、组B和组 C的标记字段的分组,则该IPS将在不处理那些过滤器的情况下转发分组,这降低分组等待时间并提供用于当前IPS的更多带宽。例如,如果分组源自于子网1且目的地是子网3,则 IPSl将是接收分组的第一 IPS,因此,其将应用过滤器组A、组B和组C,并对分组进行标记以指示这些过滤器组已被应用于此分组。IPSl然后将经由路由器层3 136来将分组转发到IPS5 146。IPS5将看到分组已被标记,指示已经应用了过滤器组A、组B和组C。结果, IPS5 146将经由路由器层3 138来将分组转发到IPS3。IPS3 143也将看到分组已被标记以指示已经应用了过滤器组A、组B、组C,并且IPS3将把分组转发到交换机133。在本示例中,仅需要使用三个位作为标记字段。在本示例中,由此LAN的交换机和路由器通过层2报头中的802. Ip位来确定服务类别(CoS)。不使用IP diffserv位来确定分组的CoS,因此,IPS设备可以把IP diffserv字段的目的重新确定为包含分组处理标记。虽然在此非常简单的示例中,仅使用3个位,但其它更复杂的标记方法可以例如使用加密算法和跨多个分组的字段。“不用密码(in the clear)”标记分组可能导致安全问题。例如,终端站可以将其发送的分组标记以防止那些分组被IPS检查。可以以多种方式来解决此类安全问题。例如, 可以将标记编码,使得IPS能够验证标记是由可信任方(诸如另一 IPS)而不是尝试避免分组检查的未授权端节点分配的。存在由分组标记编码提供的两个主要功能,第一是防止非信任方对标记字段进行定位或解释,以及第二是允许分组处理设备验证标记值由可信任方产生。存在多种提供这两个功能的方式。例如,一种方法是创建标记值,其在被算法处理时产生具有两个分量的值。一个分量包含指示已经和/或需要对此分组执行的分组处理的未编码值。另一分量包含用来证明授权方已经向分组分配编码值的值。可以使用更复杂的多字段方法。例如,可以重新确定一个字段的目的或添加一个字段以指示哪个或哪些字段包含真正编码值。拓扑结构信息和标记两者都可以用来跨两个或更多分组处理设备来分布负荷或利用由一个分组处理设备添加且被另一个去除的标记。例如,接收到分组的IPS可以检查分组的标记以识别尚未对分组执行哪些处理操作。然后,IPS可以使用网络拓扑结构信息来确定哪些下游IPS具有对分组执行任何其余分组处理操作的能力。IPS可以使用标记信息和网络拓扑结构信息的此组合来判定是对标记执行剩余分组处理操作中的任何一个,还是将此类操作留给下游IPS执行。例如,如果当前IPS能够对分组执行(一个或多个)必要的处理操作,但是当前IPS的当前工作负荷是高的且下游IPS也能够对分组执行(一个或多个)必要的处理操作,则当前IPS 5可以判定不处理当前分组。然而,如果没有下游IPS能够对分组执行(一个或多个)必要的处理操作,则当前IPS可以处理当前分组,即使当前IPS 的工作负荷是高的。拓扑结构信息和IPS在该拓扑结构中的放置能够被IPS用来知道是对分组进行标记还是去除先前的标记。如果在此IPS与分组目的地之间存在另一 IPS,则可以将分组标记以指示已经对其执行了此类处理。这样,可以使用标记信息和网络拓扑结构信息的组合基于诸如网络中的多个IPS的处理能力和工作负荷的因素跨那些IPS来动态地分布分组处理工作负荷。分组处理的分布可以响应于IPS工作负荷的改变、网络中的IPS的添加/去除和随着时间的推移而变的其它网络特征而动态地改变。此分布式方法相比于集中式方法而言具有优点,在集中式方法中,需要作为对拓扑结构、拓扑结构中的IPS添加和减除以及每个IPS的操作状态和负荷的反应来重新分布新的工作负荷数据或指令。分布式方法仅仅需要保持知道其它IPS状态和位置,并且能够在不等待来自集中式决策者的指令的情况下逐分组地做出处理判定。现在参考图4,示出了系统400的实施例,其举例说明定位先前分组处理检测器功能(由图2中的元件220实现)的两个其它可能的位置。作为在IPS分组处理的上游串行地添加此功能的替代,可以将其集成到IPS设备的其它功能中。由系统400提供了许多直列式功能。那些功能中的第一功能包括状态管理器功能412。状态管理器412与数据流的主动监视相结合地执行两个关键操作。首先,状态管理器412实现会话管理操作。此会话管理操作监视并管理与在数据流上载送的分组业务有关的每个会话的状态。更具体地,会话管理操作诸如用表格或其它机制来跟踪当前在数据流上存在哪些会话,并保存历史分组相关数据以进行检验。由状态管理操作412出于保证单独的分组与所识别的会话相关联的目的直列式地检验数据流中的每个分组410。在检验出不与会话相关联的分组410的情况下, 可以将该流氓分组410识别为可疑或有威胁的,并且然后由系统400将其阻止。其次,状态管理器410实现分组和流重新组装操作。与此操作相结合地,认识到可
11以将对网络的攻击分在多个分组上。这样,攻击者尝试在单独看起来无危险的若干分组上隐藏攻击。为了针对此进行防护,状态管理器412内的分组和流重新组装操作相对于已建立的连接来监视数据流并随着时间的推移检验多个分组及其内容以便尝试检测攻击的存在。这样,分组流和重新组装操作跟踪分组和其有效负荷,识别分组之间的关系,并且将分组有效负荷重新组装在一起,其中针对威胁的可能性分析被重新组装的分组数据。在用于公共流的分组集合被检验且在重新组装时被确定为呈现威胁的情况下,那些分组(和同一流或会话中的相关分组)可以被系统400阻止,和/或与那些有威胁的分组相关联的流/会话可以被系统400终止。因此,此功能允许跨分组边界跟踪模式匹配。状态管理器412可以与PrevProcess检测420a相交互以使用标记或拓扑结构信息来确定已经对分组410执行哪种处理和/或需要对分组410执行什么处理。状态管理器 412可以例如被实现为应用定制的硬件块以便保证其以最大可能速度(对于数据流而言,优选地超过线速度)执行所需任务的能力。由系统400提供的直列式功能中的第二功能包括实现促进深分组检查的一种形式的有状态模式匹配的触发器过滤器功能422。触发器过滤器422与数据流的主动监视相结合地执行两个过滤操作。首先,分组报头匹配操作查看每个分组410并确定其中的报头字段值是否引起危险业务的怀疑。此操作涉及针对指示攻击的信息的存在来检查固定的报头字段(诸如,例如目的地和源IP地址、目的地和源端口等)。例如,可以基于分组的报头信息将其分类。然后可以单独地将此分类用于过滤,或者可以将其用来在执行如接下来所讨论的其它过滤操作时提供上下文。此报头信息可以被与I^revftOcess检测功能402b共享且PrevProcess检测功能402b能够返回关于已经对此分组进行什么处理或应对此分组进行什么处理的信息。其次,分组内容匹配操作查看每个分组410并确定其中的内容(字符)串和/或正则表达式值是否引起危险业务的怀疑。此操作涉及使分组有效负荷元素与被识别为与攻击相关联的串和表达式匹配。应认识到的是分组报头匹配操作和分组内容匹配操作可以有利地相互结合地操作以基于报头字段值和内容串/正则表达式值的所检测组合来检测可疑分组业务。在其中检测到威胁的情况下,危险分组可以被系统400阻止和/或与那些分组相关联的会话可以被系统400终止。虽然以上说明集中于寻找危险或可疑业务(并然后阻止该业务)的触发器操作,但可能的是在某些情况下可以将触发器实现为并将过滤器设计为寻找“良好”业务的质量和特性。在这种情况下,未能被识别为满足“良好”标准的所有分组将被系统400阻止,而所识别的良好业务被允许通过。可以使用分组标记来指示此分组410已被视为良好的,使得接收到此分组410的后续下游IPS系统可以跳过冗余处理。触发器过滤器功能优选地被实现为应用定制的硬件块,以便保证其以最大可能速度(对于数据流而言,优选地超过线速度)执行所需任务的能力。更具体地,通过以并行处理架构使用多个硬件实现的模式匹配组件来执行用于快速路径模式匹配的过程。此配置允许系统以线速度进行操作并进一步提供未来的可缩放性。为了帮助触发器过滤器功能422的操作,向分组报头匹配操作和分组内容匹配操作两者提供过滤标准(或规则)424。这些规则4M包括检测触发以及检测例外。检测触发是一个或多个报头字段值、内容串和/或正则表达式值单独地或相互结合的标识,其在单个会话的分组的有效负荷元素内的匹配存在指示对网络的威胁。检测例外是一个或多个报头字段值、内容串和/或正则表达式值单独地或相互结合的标识,但是其在单个会话的分组的有效负荷元素内的存在(虽然可能有关)不应被视为指示对网络的威胁。提供转换功能以将检测触发和检测例外转换成过滤标准(或规则)4 ,其被提供给触发器过滤器功能4M 的分组报头匹配操作和分组内容匹配操作并由这些操作对其进行作用。此转换可以例如包括数据到较低级机器代码的变换以便由分组报头匹配操作和分组内容匹配操作来实现。检测触发和检测例外是从一组检测签名导出的,所述检测签名被具体地设计或调整为用于已辨识的单个会话类型的网络威胁的识别、检测和抑制。例如,可以将检测签名 (包括例如安全规则、策略和算法)设计为缓解或避免来自所检测的弱点的网络损害。可以从许多众所周知的源中的任何一个获得这些签名,所述源包括例如机器(主机)制造商、服务供应商、因特网等。另外,可以由受保护的网络的管理员来创建签名。更进一步地,可以由签名创建行业中的实体来提供签名,其中,该实体进行操作以从全世界收集威胁信息(例如,蠕虫、病毒、木马、拒绝服务、访问、故障、侦察、其它可疑业务等),分析该信息并设计能够被其他人用来缓解或避免来自所收集的威胁的网络损害的检测签名。关于上文所讨论的过滤器标准管理的操作优选地被实现为可定制软件应用(其与硬件触发器过滤器功能对接)以便保证针对安全风险对其进行调整或调谐的持续灵活性和能力。这样,可以根据需要来缩放系统的威胁检测能力。优选地,在分组层级和/或会话层级中的任一者或两者上实现由触发器过滤器功能422执行的过滤比较操作。在分组层级,检查和过滤操作在应用检测签名的规则时单独地考虑每个分组。在会话层级,检查和过滤操作在应用检测签名的规则时一起考虑多个相关分组。为了帮助会话层级比较,系统400可以依赖于与所存储的历史分组相关数据有关的状态信息。对于会话层级比较而言,该比较和过滤不仅考虑用于正在检验中的当前分组的已提取分组特征(报头和有效负荷),而且考虑历史分组相关数据。在签名标准与组合的已提取分组特征和历史分组相关数据之间匹配的情况下,检测到对网络的潜在威胁。由系统400提供的直列式功能中的第三功能包括分组处置器功能430。分组处置器功能430响应于由状态管理器功能412和触发器过滤器功能422得到的评估和结论作为网守进行操作并确定将如何处置分组和/或会话。更具体地,分组处置器功能430编译状态管理器412和触发器过滤器功能422的分析和检验结果以确定某个分组是否是感兴趣的, 并然后适当地对该分组进行作用。三个处置选项可用于被确定为感兴趣的分组。首先,就状态管理器功能412和触发器过滤器功能422关于某个分组或会话都未检测到任何威胁、危险或可疑情况来说,允许该分组业务通过并沿着数据流继续。其次,就状态管理器功能412 或触发器过滤器功能422关于某个分组或会话检测到明显的威胁或危险来说,该分组业务被阻止并从数据流丢弃。第三,就状态管理器功能412或触发器过滤器功能422关于某个分组或会话检测到威胁或危险的可疑情况来说,从数据流提取该分组业务以用于进一步的更仔细的检验,如本文将更详细地讨论的。优选地以硬件实现此分组处置器功能,以便保持其在关于数据流中的通过分组进行分类判定时快速地行动的能力。由系统400提供的直列式功能中的第四功能包括流控制功能440。流控制功能440 进行操作以基于某些可编程或可配置优先级对沿着数据路径输出的业务流进行成形。主要通过增加(或相反地减小)允许某些分组业务沿着数据路径通过的速率来实现业务成形。例如,可以将已知的且已确认的无危险业务优先化以沿着数据路径进行传输。类似地,可以相对于其它不那么关键的业务对与已知任务关键应用有关的分组业务赋予优先权。更一般地,可以扼制某种类型的业务,使得其不超过某个阈值量。这用于防止下游资源的过运行或干扰较高优先级业务。优选地以硬件实现此流控制功能,以便保持其在关于数据流中的通过分组做出处置判定时快速地行动的能力。 虽然已经讨论了本发明的几个说明性实施例,但应理解的是鉴于本文的说明,各种修改对于本领域的技术人员来说将是显而易见的。所有此类修改在以下权利要求所涵盖的本发明的精神和范围内。
权利要求
1.一种包括至少两个分组处理设备的网络,其中(a)所述分组处理设备中的第一分组处理设备能够检查并过滤从中流过的数据分组, 通过执行来自过滤器组的一个或多个过滤器来实现所述过滤;(b)所述分组处理设备中的第二分组处理设备也能够检查并过滤从中流过的数据分组,也通过执行来自所述过滤器组的一个或多个过滤器来实现所述过滤;以及(c)所述第一分组处理设备能够在其对所述数据分组的所述检查期间检测先前已由所述第二分组处理设备对所述数据分组执行一个或多个过滤器。
2.权利要求1的网络,其中,所述第一分组处理设备能够识别先前已经由所述第二分组处理设备执行来自所述过滤器组的哪个或哪些过滤器。
3.权利要求2的网络,其中,通过数据分组的字段的检查来实现由所述第一分组处理设备进行的先前已经执行来自所述过滤器组中的哪个或哪些过滤器的所述识别,其中,所述字段包含表示所述一个或多个过滤器的值。
4.权利要求3的网络,其中,所述值被加密。
5.权利要求3的网络,其中,所述值表示数据结构中的一个或多个条目,其中,所述一个或多个条目与所述一个或多个过滤器相关。
6.权利要求3的网络,其中,所述值表示哪个或哪些分组处理设备先前已经执行所述一个或多个过滤器。
7.权利要求6的网络,其中,所述值还表示先前由所述一个或多个设备执行的该一个或多个过滤器。
8.权利要求1的网络,其中,所述第一分组处理设备包括数据分组检查器,所述检查器提供所述检测能力。
9.权利要求8的网络,其中,所述数据分组检查器的检测能力包括检测分组中的字段的重新使用的能力。
10.权利要求1的网络,其中,只有当所述第一分组处理设备检测到先前未对所述数据分组执行所述一个或多个过滤器时,所述第一分组处理设备能够对所述数据分组应用该一个或多个过滤器。
11.一种适合于安装在网络中从而在其中提供入侵预防系统的分组处理设备,该分组处理设备包括(a)用于接收和传送数据分组的流的端口;(b)用于检查所述数据分组的流的数据分组检查器;以及(c)用于过滤所述数据分组的流的数据分组过滤器,所述过滤涉及响应于由所述数据分组检查器进行的对所述数据分组的流的所述检查来执行来自过滤器组的一个或多个过滤器;以及其中,所述数据分组检查器能够在所述检查期间确定来自所述过滤器组的一个或多个过滤器对所述数据分组的流的在先执行的发生。
12.权利要求11的分组处理设备,其中,所述数据分组检查器能够识别先前已执行了来自所述过滤器组的哪个或哪些过滤器。
13.权利要求12的分组处理设备,其中,通过数据分组的字段的检查来实现由所述数据分组检查器进行的先前已执行来自所述过滤器组的哪个或哪些过滤器的所述识别,其中,所述字段包含表示所述一个或多个过滤器的值。
14.权利要求13的分组处理设备,其中,所述值被加密。
15.权利要求14的分组处理设备,其中,所述值表示数据结构中的一个或多个条目, 其中,所述一个或多个条目与所述一个或多个过滤器相关。
16.权利要求14的分组处理设备,其中,所述值表示安装在所述网络中的先前执行所述一个或多个过滤器的另外一个或多个分组处理设备。
17.权利要求16的分组处理设备,其中,所述值还表示先前由所述一个或多个设备执行的该一个或多个过滤器。
18.一种网络,包括(a)多个节点,其被可通信地链接以使得能够在其之间传输数据分组;(b)第一和第二联网设备,每个联网设备被与数据分组传输路径直列式地设置,每个联网设备能够执行来自过滤器组的为其分配的过滤器,对流过所述路径的数据分组执行所述过滤器;以及(c)管理代理,其能够将来自所述过滤器组的第一过滤器分配给所述第一联网设备,并将第二过滤器分配给所述第二联网设备;以及其中(d)所述第二联网设备能够确定是否已由所述第一联网设备对所述数据分组执行所述第一过滤器,并且(i )如果已经执行所述第一过滤器,则仅执行所述第一和第二过滤器中的第二过滤器,或者(i i )如果尚未执行所述第一过滤器,则执行所述第一和第二过滤器两者。
全文摘要
通过采用用于消除、控制或以其他方式影响冗余分组处理操作的装置来改善一组分组处理设备当中的网络处理负荷的分布。在一个实施例中,存在至少两个分组处理设备,二者都能够处理从中流过的数据分组,诸如依照来自过滤器组的一个或多个过滤器来检查、检测并过滤数据分组。通过给分组处理设备中的任一者或两者提供或使得其具有如下能力来控制冗余所述分组处理设备在其对所述数据分组的所述检查期间检测到例如先前已由另一分组处理设备对所述数据分组执行一个或多个过滤器且然后不对所述数据分组执行先前执行的过滤器。
文档编号H04L12/56GK102217248SQ200980145140
公开日2011年10月12日 申请日期2009年10月28日 优先权日2008年9月12日
发明者布赖恩·C·史密斯, 马克·维勒比克-勒迈尔 申请人:惠普公司