用于高度可实现性应用的智能集成网络安全设备的制作方法

文档序号:7889443阅读:163来源:国知局
专利名称:用于高度可实现性应用的智能集成网络安全设备的制作方法
技术领域
与本发明的原理相一致的系统、设备和方法总体上涉及控制计算机网络安全。
背景技术
防火墙和侵入检测系统都是可用于保护计算机网络使其免受未经授权的或破坏性的用户侵入的设备。防火墙可保护局域网的安全,使局域网外部的用户无法进入。防火墙对于发送到或者来自局域网外部的用户的所有信息进行检查、路由并频繁地添加标注。侵入检测系统(IDS)可用于检验在网络内传输的信息,以识别出可疑的行为模式。
基于流的路由器(FBR)可允许网络管理员根据网络管理员所规定的网络策略来实现数据包的转发和路由。FBR可允许网络管理员实现有选择性地通过网络中的指定路径对数据包进行路由的策略。FBR也可以用来确保特定类型的数据包当它们被路由时接受有区别的、优选的业务。常规路由器可以根据可用的路由信息将数据包转发到它们的目的地址。与仅仅根据目的地址来进行路由不同的是,FBR允许网络管理员实现路由策略,以根据多种其他的标准来接受或拒绝数据包,这些其他的标准包括应用、协议、数据包大小以及终端系统的身份。数据包过滤器可以对网络层中的数据进行操作,以保护所信任的网络免于受到来自不信任的网络的攻击。例如,数据包过滤器检查传输控制协议/互联网协议(TCP/IP)包头的字段,包括协议类型、互联网协议(IP)的源地址和目的地址、源端口号和目的端口号。数据包过滤器的缺点是速度慢、而且对具有复杂安全策略的大型网络的管理很困难。代理服务器可以对应用层中承载的数据进行操作,从而将所信任的网络和不信任的网络隔离开来。在一个应用代理服务器中,可以建立两条传输控制协议(TCP)连接一条连接在数据包源服务器和代理服务器之间,另一条连接在代理服务器和数据包目的服务器之间。应用代理服务器可以以目的服务器的名义接收到来的数据包。应用数据可以由代理服务器来组装和检验,而第二条TCP连接在代理服务器和目的服务器之间可以是开放的,从而将已接受的数据包中继转发到目的服务器。代理服务器可能很慢,因为在应用层中检查数据包需要附带的协议栈开销。此外,由于对于每个应用可能需要一个唯一的代理服务器,代理服务器的实现可能会很复杂,且很难加以修改以支持新的应用。另外,由于代理服务器仅检验应用数据包,因此代理服务器不可能在TCP或网络层上检测到试图发起的网络安全侵入。

发明内容
本发明提供了用于检查数据包的方法和设备。在第一个方面,提供了用于检查数据包的方法。该方法可包括配置一个初级安全系统以处理数据包,其中这个初级安全系统可被操作以保持一组设备的流信息,以便于处理数据包;指定一个当发生故障事件时用于处理数据包的次级安全系统;并且将来自初级安全系统的流记录与次级安全系统共享。在第二个方面,提供了一种系统。该系统可包括一个第一设备。这个第一设备可包括一个第一安全装置、一个可操作以保持与从一个计算机网络接收到的数据包相关联的流信息的第一模块、以及一个可操作以允许与一个第二设备交换流记录的通信接口。所述第一模块还可操作以将对于设备特定的流信息与第一安全设备共享。在第三个方面,提供了一种用于检查数据包的系统。该系统可包括一个初级安全设备,这个初级安全设备可操作以接收和处理数据包。所述初级安全设备可包括用于保持包含在初级安全设备内的一组设备的流信息的装置。一个次级设备可操作以当发生故障事件时处理初级安全设备的数据包。所述次级安全设备还包括用于在一组设备之间共享信息的装置。该系统还包括用于将来自初级安全设备的流记录与次级安全设备共享的装置。本发明的一个或多个实施例的细节在附图和下面的说明中描述。本发明的其他特征和优点通过说明书、附图和权利要求变得更为清楚。


图I示出了包括一个会话模块的网络拓扑图。图2示出了所述会话模块的框图。图3示出了流表的结构。图4示出了描述所述会话模块的操作的流程图。图5示出了描述所述会话分类的流程图。图6示出了由所述会话模块生成的准重新组装信息。图7示出了所述会话模块包含在一个防火墙中的情况下的网络拓扑图。图8示出了所述会话模块与防火墙、IPS和路由器协同工作时的网络拓扑图。图9示出了会话模块、防火墙、IPS和路由器包含在一个安全设备中的情况下的网络拓扑图。图10示出了一组安全设备包含在一个高可用性结构中的情况下的网络拓扑图。图lla-c描述了用于在图10所示网络拓扑图中提供故障保护的处理过程。在不同的附图中用相同的附图标记和标号来表示相同的单元。
具体实施例方式图I不出了一个实例性的网络拓扑图,其包含一个局域网(LAN) 100,所述局域网包括一个服务器102、多个工作站(W/S) 104a-104c (在总体上用“104”表示)、以及一个安全系统124。所述安全系统124可包括一个会话模块122和一组其他安全设备。在所示的实施方式中,安全系统124可包括两个安全设备,即第一安全设备106和第二安全设备108。LAN100可以通过安全系统124连接到一个外部网络,例如互联网114b。第二个LAN 116可包 括一个Web服务器110、一个Email服务器112、一个服务器138、多个工作站134a_134f (在总体上用“134”表示)、以及一个安全系统124。LAN 116可经由安全系统126连接到互联网114a。安全系统126可包括一个第一安全设备128、一个第二安全设备130、以及一个会话模块132。LAN中的计算机、服务器和其他设备可以使用多种数据传输介质相互连接,这些数据传输介质如导线、光纤、无线电波等。安全系统124和安全系统126可以类似的方式操作。例如使用安全系统124,会话模块122可以监控网络内传输的数据包。在一个实施方式中,第一安全设备106可以是一个防火墙,而第二安全设备可以是IPS。会话模块122可以与第一安全设备106和第二安全设备108相关联地工作,以便于阻止与试图发起网络安全侵入相关的数据包。图2示出了一个实例性的会话模块的框图,如会话模块122。会话模块122可包括一个用于接收数据包的输入包接口 205。会话模块132可以类似的方式操作。接收到的数据包可以由流处理引擎(FPE) 202进行分析,以判断是否正在进行网络安全侵入的尝试。会话模块122也可以包括一个流表215。流表215可用于存储关于与接收到的数据包相关的流的信息。会话模块122还可以包括与网络上的其他安全设备的接口。在一个实施方式中,会话模块122可包括一个防火墙接口 220、一个IPS接口 225、以及一个基于流的路由器 接口 230。安全设备接口 218可以被会话模块122用来获得关于接收到的数据包的信息、以及关于与数据包相关的流的信息,从而判断接收到的数据包是否应该被准许或更改。安全设备接口 218也可以被会话模块122用来传输可由安全设备所使用的流信息,以便于处理数据包。图3示出了一个流表215的结构,这个流表在实践中可以按照本发明的原理来使用。流表215可包括与当前的TCP/IP流相关的流记录302a-302e (在总体上用“302”表示)。一个TCP/IP流可包括一系列在一个方向上在源和目的地之间传输数据包的信息。流记录可以用索引键值305来编入索引。索引键值305可用来存储和获得与接收到的数据包相关的适当的流记录。在一个实施方式中,索引键值305可以是一个混列键值(hash key),而流表215可以作为混列表来实现。会话模块122 (图2)可以在相同的流记录中存储网络上两个或多个安全设备的指令。在会话模块122的一个实施例中,在流记录302中可以存储三个安全设备(例如设备310、315和320)的指令。流记录302可以存储策略信息(例如防火墙策略、IPS策略等,以应用于这个流),以及存储可以由安全设备所使用的其他信息,如加密参数、地址转换参数、簿记(bookkeeping)信息和统计数据。流记录302也可以包括由会话模块122用来判断是否应该准许该数据包的流信息325。这种信息可包括实现例如关于连接超时、时间记帐、以及带宽使用的网络策略所需的信息。在同时申请和申请人共有的名为“Multi-Method Gateway-based Network Security Systems and Methods,,的专利申请(美国专利申请号为10/072683)中更详细地描述了流、会话和流表,该专利申请的内容在此整个并入作为参考。图4是描述了在与本发明的原理相一致的一个实施方式中FPE202(图2)的示例性操作的流程图。输入数据包可以由会话模块122接收(步骤400)。IP数据包可以被分段(步骤402),并且IP包头可以对于每个IP数据包被验证(步骤403)。在步骤403期间,与一个给定数据包相关的IP包头可以被提取出来,并检查是否存在基本的缺陷。如果所述数据包是一个TCP数据包(步骤404),TCP包头可以被确认有效(步骤405),并且TCP数据包可以被重组(步骤410)。确认有效的过程可包括提取TCP包头数据,并对包头进行分析以查找基本缺陷。在步骤410中形成的准重组(quasi-reassembly)信息可以通过会话模块122传送到其他安全设备,以便于由其他安全设备对数据包进行处理。下面的说明以及美国专利申请号10/072683中更详细地描述了重组步骤。在步骤415中,PE 202可以使用与给定的接收数据包相关联的TCP/IP包头来执行会话分类。会话模块122可以根据考虑与所述接收数据包相关联的TCP/IP流得到的信息、以及从流表入口获得的信息来判断该数据包是否应该被准许(步骤420)另外,会话模块122可以利用从其他安全设备,例如防火墙(步骤425)、IPS(步骤430)以及基于流的路由器(步骤435)中的一个安全设备所返回的信息。此外,会话模块122也可以通过将流信息传送到用于处理给定的数据包的相应设备,从而便于安全设备的操作。最后,如果该数据包应该被准许的话,则FPE 202可以将该数据包进行转发(步骤440)。否则,对该数据包进行其他的处理(步骤445)。其他处理可包括记录关于该数据包的特殊信息、保存该数据包、或者更改和/或丢弃该数据包。图5是示出了可包括在会话分类(图4的步骤415)中的示例处理的流程图。这个会话分类步骤可以接收一个数据包(步骤500),并提取可用于判断该数据包是否应该被准许的信息。所提取的信息可包括源IP地址和目的IP地址,源端口号和目的端口号,以及 一个协议(步骤505)。所提取的信息可用来搜索流表215 (步骤510),以判断该数据包是否和一个已知的会话流相关联。对于一个已知的会话流,步骤510可在流表215中产生一个匹配的流记录(步骤515)。如果找到了一个匹配的流记录,FPE 202 (图2)可以从这个匹配的流记录中提取出用于接收到的数据包的TCP/IP会话信息(步骤520)。FPE 202利用步骤520期间所获得的TCP/IP会话信息来判断接收到的数据包是否应该被准许。更具体地说,FPE 202可以从匹配的流记录中提取信息,并可将这个信息传送给安全设备(例如传送来自流记录的会话ID和TCP/IP会话信息,以及其他对于安全设备特定的信息)(步骤525)。根据从安全设备所返回的结果,FPE 202能够转发、丢弃、记录、存储、更改或者处理给定的数据包(步骤530)。如果在步骤515期间在流表中没有找到匹配的流记录,则接收到的数据包可以和一个新的TCP/IP会话相关联(步骤532)。对于一个新的TCP/IP会话,FPE 202可以为这个新的会话分配一个会话ID,并且FPE 202可以与其他安全设备(例如防火墙、IPS、流路由器)进行通信,从而为与新的会话相关联的数据包确定安全策略。例如,FPE 202可以从一个防火墙获取信息(步骤540),以判断接收到的与新的会话相关联的数据包是否应该被准许。FPE 202可以与一个IPS进行通信(步骤545),以判断接收到的数据包是否应该被阻止,因为它与试图发起网络安全侵入的已知攻击信号相匹配。FPE 202可以从一个流路由器中获取与新的会话相关联的任何网络策略(步骤550)。FPE 202可以作为不同安全设备之间的裁判者,利用单独地或结合地从安全设备中获得的信息来判断与新的TCP/IP会话相关联的数据包是否应该被准许。FPE 202可以利用从安全设备获得的信息来创建一个新的流记录,并可以将这个新的流记录存储到流表215中(步骤555)。这个新的流记录可包括用于和接收到的数据包相关联的新的会话的TCP/IP会话信息,以及其他特定安全设备信息。在此之后,如上面接合图4所描述的,FPE 202可以便于对接收到的和给定的TCP/IP会话相关联的数据包进行处理,包括将会话ID、TCP/IP会话信息和对于安全设备特定的信息从相应的流记录传送到安全设备。除了利用各种安全设备来判断一个接收到的数据包是否和一个试图发起的网络安全侵入相关联之外,如上面接合图4所描述的那样,会话模块122(图2)还可以对接收到的TCP/IP包进行准重组(quasi-reassembly)。图6示出了可由会话模块122所生成的示例性的准重组信息。准重组信息可以包括一个指向存储器中给定数据包600的位置的指针,以及一个指向包括该数据包在流605中的相对位置的信息的指针。在一种实施方式中,IPS可执行被动的TCP/IP重组,并且指向数据包600的位置的指针可以用来将该数据包在IPS内定位。在另一种实施方式中,指向包含该数据包在流605内的相对位置的信息的指针可以用来获取包含在与该数据包相关的TCP/IP包头内的TCP/IP序列号。准重组信息可以被传送给连接到会话模块122的安全设备(图2)。安全设备可以利用准重组信息来处理接收到的数据包。如上所述,会话模块122可以用在多个不同的网络拓扑中。图7示出了一种将会 话模块122集成到防火墙705中的网络拓扑。防火墙705可包括一个与路由器720和IPS715的接口。防火墙705可以从一个外部网络接口 700接收数据包。防火墙705可以与IPS715进行通信,以根据已知的攻击信号来判断所接收到的数据包是否应该被阻止。如果防火墙705和IPS 715确定该数据包应该被准许通过,则防火墙705可以将接收到的数据包发送到路由器720。路由器720可以根据存储在路由器内的网络策略,利用一个内部网络接口725,将输出的数据包转发到其所目的地。图8示出了一个利用会话模块122来实现计算机网络安全的示例性替代实施例。在这个实施例中,会话模块820可以和防火墙805、IPS 810和路由器815相结合来工作。通过外部网络接口 800接收到的数据包可以在传送到路由器815之前由防火墙805来过滤。防火墙805也可以将关于接收到的数据包的信息发送到IPS 810。IPS 810可以对接收到的数据包进行检验,并可以根据已知的攻击信号通知会话模块820是否应该阻止接收到的数据包。路由器815可以将数据包发送到会话模块820以进一步处理。如果会话模块820确定接收到的数据包应该被准许,则它可以通过一个内部网络接口 825将接收到的数据包转发到其目的地。图9示出了一个利用会话模块122来实现计算机网络安全的示例性的具有高度可实现性的实施例。在这个实施例中,网络拓扑可以包括一个局域网(LAN)900,包括外部网络接口 902a、内部网络接口 904a、和一个第一安全系统924a。第一安全系统924a可包括会话模块122a和一组其他安全设备。在所不的实施方式中,第一安全系统924a包括两个安全设备、一个防火墙设备905a和一个IPS设备910a。在另一种实施方式中,第一安全系统924a可包括更多的或更少的安全设备,例如包括一个防火墙905a,而没有IPS。LAN 900可通过外部网络接口 902a,经由第一安全系统924a连接到一个外部网络,例如互联网。LAN900也可通过外部网络接口 902b,经由一个第二安全系统924b连接到外部网络,例如互联网。第二安全系统924b可包括会话模块122b和一组安全设备。在所示的实施方式中,第二安全系统924b可包括两个安全设备、一个防火墙设备905b和一个IPS设备910b,以及一个内部网络接口 904b。在另一种实施方式中,第二安全系统924b可包括更多的或更少的安全设备,例如包括一个防火墙905b,而没有IPS。第一和第二安全系统924a/b可以以相同方式配置。第一和第二安全系统924a/b可以经由一条链路929来连接。链路929可以是连接至LAN 900的内部链路,或者作为替代,也可以是作为外部网络的一部分的链路。第二安全系统924b可以通过外部网络接口 902b直接耦合到一个外部网络,例如互联网。作为替代,第二安全系统924b也可以经由第一安全系统924a耦合到外部网络。类似地,第一和第二安全系统924a/b可以共享一个内部网络接口。LAN 900内的计算机、服务器和其他设备可以通过多个数据传输介质相互连接,这些数据传输介质包括、但不限于线路、光纤和无线电波。用于具有高度可实现性的网络拓扑的其他配置也是可能的。在每种配置中,第二安全系统924b可以在出现故障时用来支持由第一安全系统924a所处理的数据流。在与本发明的原理相一致的一种实施方式中,第二安全系统924b可以由一个安全系统池来提供。在这个系统池中,至少一个安全系统 可以和基本故障系统相同。在这个系统池中的一个或多个其它安全系统可以和次级故障系统相同。第二安全系统中的每一个可以被动地(即直到故障事件出现之前处于闲置状态)也可以主动地处理数据包,以支持其自身的网络需求。在与本发明的原理相一致的一种实施方式中,第一和第二安全系统可以分别为对方提供故障保护。在这种实施方式中,可以在这两个安全系统之间交换故障数据。下面将更详细地讨论在出现故障之前以及在支持故障保护时安全系统的操作。在图9所示的具有高度可实现性的实施方式中,第二安全系统924b可以被配置为在第一安全系统924a出现故障时进行操作。故障可能在网络拓扑中的第一安全系统924a或者连接至第一安全系统924a的链路出错时发生。故障可以由第二安全系统924b通过检测接收“保持激活(keep-alive)信号”、数据或其他状态信息时发生的错误而检测出来。在与本发明的原理相一致的一种实施方式中,第一安全系统924a可包括一个故障引擎930。故障引擎930可以操作用来将故障数据发送到另一个安全系统(例如第二安全系统924b),从而使两个安全系统同步。在与本发明的原理相一致的一种实施方式中,故障数据可包括来自与各个安全系统(例如第一安全系统924a)相关联的流表215(作为会话模块122的一部分)的数据。更具体地说,在发生故障之后,第二个安全系统(例如第二安全系统924b)可以接收最初预定由第一个安全系统(例如第一安全系统924a)处理的数据包,以进行路由和处理(即对于出现故障的情况)。所接收的数据包中的一部分涉及先前已经在第一安全系统中被处理和识别的会话。在发生故障之前共享流信息可以允许第二安全系统无缝地处理已接收的现有流的数据包。常规的系统不能在发生故障之前共享流信息,因此必须丢弃涉及现有会话(即在发生故障时的当前会话)的所有数据包,或者作为替代,重复处理步骤。如上所述,第一安全系统924a中的会话模块122a可以监控在网络内传输的数据包。会话模块122a可以与防火墙设备905a和IPS 910a协同工作,以便于阻止与试图发起的网络安全侵入相关的数据包。第二安全系统924b的故障引擎930 (图9)可以操作以检测一个或多个初级安全系统(例如第一安全系统)中的故障,为此一个给定的安全系统可以被指定作为故障设备。故障引擎930可以操作以检测给定的初级安全系统的链路或操作中的故障。在与本发明的原理相一致的一种实施方式中,一个给定的安全系统可以作为一个或多个其它安全系统的故障系统。故障引擎930可以控制相应设备中流表215的信息的接收和更新。更具体地说,故障引擎930可以操作以从初级安全系统向次级安全系统提供同步信息,随时间更新同步信息,检测初级安全系统的故障,并且启动在次级安全系统中对数据包的处理,这些数据包原本应由初级安全系统处理,但由于检测到发生故障而只能由次级安全系统处理。现在参照图10,示出了会话模块122的另一种实现方式。会话模块122的这种实现方式可包括用于接收数据包的到来数据包接口 205。接收到的数据包可以由流处理引擎(FPE) 202进行分析,以判断是否正在试图发起网络安全侵入。会话模块122也可以包括流表215。流表215可以用来存储关于与接收到的数据包相关的流的信息。流表215可以包括一个初级部分或激活部分1002,以及一个次级部分1004。初级部分1002可以是流表中专门用来存储与作为初级安全系统的给定会话模块的操作相关的信息的部分(例如存储该会话模块主动参与数据包处理的流信息)。次级部分1004可以是流表中专门用来存储与作为次级安全系统的给定会话模块的操作相关的信息的部分(例如该会话模块在发生故障的情况下可能要处理的流的故障/同步信息)。在一种实施方式中,初级和次级部分1002和1004可以集成到流表215中。在另一种实施方式中,流表215可以存储对应于多个初级安全系统的多个次级部分,一个给定的会话模块可以为这些初级安全系统提供故障支持。会话模块122也可以包括与网络上的其他安全设备的接口,以及一个或多个与其他安全系统的接口。在与本发明的原理相一致的一种实施方式中,会话模块122可以包括一个防火墙接口 220、一个IPS接口 225、以及一个故障接口 1000。这些安全设备接口由会话模块122用来获得关于接收到的数据包的信息,以及关于和该数据包相关的流的信息,从而判断接收到的数据包是否应该被准许或修改。故障接口 1000可以用来将同步信息发送到网络中的其他安全系统。在与本发明的原理相一致的一种实施方式中,初级和次级安全系统中的每一个可以包括会话模块122,而会话模块122可包括故障引擎930。在这样的实施方式中,第一安全系统924a和第二安全系统924b (图9)除了会话模块122之外并没有单独的故障引擎930。对于第一安全系统(即被操作用来以常规方式传递数据包的初级安全系统)的处理步骤可以包括对会话模块122中的流表215进行初始化(步骤1102)。在初始化之后,故障引擎930可以识别反映流表215的初始状态/当前状态的信息(步骤1104),并可经由故障接口 1000将该信息传送到第二安全系统(其中它例如存储在次级部分1004中)。在初始化之后,第一安全系统的会话模块122可以对数据包进行分析,并进行其他的会话,如上所述,存储在流表215中或从流表215中删除的其他信息涉及图3-5 (步骤1108)。在预定的时刻,故障引擎930可以从流表215经由故障接口 1000向一个或多个次级安全系统提供信息(步骤1110)。这一过程可以重复进行,从而在第二安全系统(例如在流表215的相应的次级部分中)中保持来自流表215的信息的当前拷贝。在一种实施方式中,流表215可以在预定的时刻被复制,并整个提供给第二安全系统。在一种替代实施方式中,流表215仅有一部分被复制。在一种实施方式中,每次当在第一安全系统中创建一个会话或断开(torn down) 一个会话时发送一条消息。在一种实施方式中,可以为每个新的会话提供超时信息。在这种实施方式中,只要当第一安全系统中的相关定时器被复位时,可以向每个第二安全系统发送一条刷新消息(即在第二安全系统中刷新定时器)。作为替代,未将超时信息与传送给第二安全系统的会话信息一起发送。在这种配置中,第二安全系统可以在启动(set-up)时接收刷新消息,并中断第一安全系统中的会话。在一种实施方式中,可以为每个新创建的会话提供超时信息。在第二安全系统中,超时功能可以被禁止(即第二安全系统没有在超时期间届满后从流表中删除会话)。在一种实施方式中,只有当第二安全系统在发生故障后接管数据包处理时,定时器才被启动,以、对与第一安全系统相关的数据流进行定时。第二安全系统(例如操作用来在发生故障时处理来自第一安全系统的数据包的安全系统)的处理步骤可包括对第二安全系统的会话模块122中的流表215进行初始化(步骤1122)。反映流表215的初始状态的信息可以由第二安全系统通过故障接口 1000来接收(步骤1124),并存储在流表215的次级部分中(步骤1126)。第二安全系统可以继续以预定的时间间隔接收来自第一安全系统的更新(步骤1128),并且流表215可以被更新(步骤1126)。当故障引擎930检测到发生故障时(步骤1130),第二安全系统的会话模块122可以对流表215进行初始化(步骤1132)。故障可以由一个外部实体或者由第二安全系统检测出来。数据包可以提供给第一和第二安全系统以进行处理。然而,第二安全系统可以被配置为不处理数据包,除非已经检测到故障发生。故障检测可以通过查询(Ping)或保持激活(keep-alive)信号被检测出来。在一种实施方式中,第一安全系统可以向第二安全系统提供一个保持激活信号。作为替代,第二安全系统可以以间歇方式对第一安全系统进行查询(Ping),以判断第一安全系统是否正常工作。在另一种实施方式中,外部实体可以 监控第一安全系统的操作。当检测到第一安全系统或与之相关的连接路径中存在故障时,可以生成一个接管(take-over)信号,并将其传送给适当的第二安全系统。对第二安全系统中的流表215进行初始化可包括激活流表215的适当的次级部分1004。初始化过程可包括对流表215进行重新排序,从而将初级部分1002和次级部分1004的记录分别结合起来(例如如果第二安全系统主动支持发生故障之前的其他数据包处理)。在一种实施方式中,每条记录可包括指明该记录属于哪个安全系统的标签。在初级安全系统恢复正常工作的情况下,所述标签可用来很容易地清除来自第二安全系统的流表的初级部分的记录。在此之后,如上面参照图3-5所述,第二系统中的会话模块122可以开始接收并分析数据包(进行其他的会话,并处理存储在流表215中/从流表215中删除的其他信息)(步骤1124)。在预定的时刻,会话模块122的故障引擎930可以经由其故障接口 1000向一个或多个第三安全系统提供来自流表215的信息(步骤1136)。更新信息可以以预定的时间间隔提供给第三安全系统,从而在一个或多个第三安全系统中保持来自流表215的信息的当前拷贝。在一种实施方式中,流表215可以在预定的时刻被复制,并正给提供给一个或多个第三安全系统。在一种替代实施方式中,可以只复制流表215的一部分。在一种实施方式中,可以继续对数据包执行上述操作,直到发生预定的事件。所述预定的事件可以是第一安全系统从故障状态恢复到正常工作。现在参照图11c,示出了在一个安全网络中提供高度可实现性的处理过程。一个初级安全系统可以被识别(步骤1152),并且一个或多个次级安全系统可以被识别(步骤1154)。初级安全系统可以是操作用来处理直到故障事件发生时该初级安全系统所接收的数据包的安全系统。所述故障可包括初级安全系统的故障,以及从初级安全系统到网络的链接的故障。次级安全系统可以被指定为在故障事件发生后用来处理与初级安全系统相关的数据包的荷载。在一种实施方式中,可以识别一个次级安全系统。在一种替代实施方式中,可以识别一个次级安全系统池。在系统池的一种实现方式中,一个次级安全系统可以被指定为主机,而一个或多个其它的次级安全系统可以被指定为从机。当发生故障时,作为主机的次级系统可用来处理发生故障的初级安全系统的数据包。当作为主机的设备发生故障时,从机可进行操作以取代主机的作用。
回到高度可实现性的处理过程,初级安全系统可以对流表215进行初始化(步骤1156),并且流表的初始配置可以被传送给次级安全系统(步骤1158)。数据包可以按照常规方式由初级安全系统进行处理,并且流表215可以被相应地更新(步骤1160)。在预定的时刻,来自次级系统的流表215可以用来自初级安全系统的信息来更新(步骤1162)。当检测到发生故障事件时(步骤1164),次级安全系统可以对次级系统中的流表215进行初始化,并且可以开始处理路由至初级安全系统的数据包(步骤1166)。在一种实施方式中,当故障事件被纠正后,初级安全系统可以被重新初始化,包括更新流表215,并且初级安全系统可以恢复执行数据包处理。如上面参照图9所描述的,当初级和次级安全系统包括多个安全设备时(例如防火墙和IPS),不需要对各个设备进行单独的同步。因此,减少了要在各个设备之间传递的数据量。另外,随着要传递的信息量的减少,可以提高可靠性。在图9所示的配置中,每个安全设备可以共享统一的流表215中的信息。其他处理功能可以在次级安全系统中实现。例如,当发生故障时,先前确定为已识别的流表的一部分的数据包可以由IPS进行旁路处理。在一种实施方式中,两个安全系统可以彼此作为故障设备(例如第一系统作为第二系统的故障设备,反之亦然)。在另外的实施方式中,故障安全设备可以是常规的系统(即在设备 之间没有共享的流信息),并且由故障安全系统所接收的流信息可以由多个设备共享。与本发明的原理相一致的实施例可以通过数字电子电路来实现,或者通过计算机硬件、固件、软件来实现,或者通过它们的结合来实现。本发明的实施例可以实现为计算机程序产品,即实际嵌入到信息载体、例如机器可读的存储设备或者所传播的信号中的计算机程序,用于由数据处理设备,例如可编程处理器、计算机或多个计算机来执行,或者对其操作进行控制。计算机程序可以用任何形式的编程语言来写成,包括汇编语言或解释语言,并且它可以以任何形式来调用,包括作为独立的程序或者作为模块、组件、子程序或其他适用在运算环境下的单元。计算机程序可以被调用,以在一台计算机上或者在位于一个站点处或分布在多个站点上、由通信网络互联的多台计算机上执行。本发明的方法步骤可以由一个或多个执行计算机程序的可编程处理器来实现,通过对输入数据进行操作并生成输出数据来实现本发明的功能。本发明的方法步骤以及设备也可以由专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来实现。作为示例,适用于执行计算机程序的处理器既包括通用微处理器也包括专用微处理器,以及任意的一个或多个用于任何类型的数字计算机的处理器。总的来说,处理器能够从只读存储器或随机访问存储器或者同时从这两者接受指令和数据。计算机的基本元件是用于执行指令的处理器,以及一个或多个用于存储指令和数据的存储设备。总的来说,计算机也可包括或可操作地连接到一个或多个用于存储数据的海量存储设备,例如磁盘、磁-光盘、或者光盘,用于从这些存储设备接收数据或者将数据发送到这些存储设备。适用于承载计算机程序指令和数据的信息载体可包括所有形式的非易失性存储器,例如包括半导体存储设备,如EPR0M、EEPR0M及闪存设备;磁盘,如内部的硬盘或可移动磁盘;磁-光盘;以及⑶-ROM和DVD-ROM光盘。处理器和存储器可以通过专用逻辑电路来补充,或者结合到专用逻辑电路中。与本发明的原理相一致的实施例可以通过运算系统来实现,这种运算系统包括后端组件、例如数据服务器,或者包括中间设备组件、例如应用服务器,或者包括前端组件、例如具有图形用户界面或Web浏览器的客户端计算机,用户可以通过它与本发明的应用进行互动,或者包括上述的后端、中间设备、前端组件的结合。这种系统的组件可以通过任何形式或介质的数字数据通信、例如通信网络来互联。通信网络的例子例如包括局域网(“LAN”)和广域网(“WAN”),如互联网。运算系统可包括客户端和服务器。客户端和服务器可以彼此远距离放置,并可通过通信网络来互动。客户端和服务器之间的关系借助于在各个计算机上运行、彼此具有客户端-服务器关系的计算机程序来实现。本发明已经在特定实施例中进行了描述。然而应该理解,在不背离本发明的构思和保护范围的情况下可以做出各种改动。例如,本发明的步骤可以按照不同的顺序来执行,仍可以达到所希望的效果。此外,会话模块、IPS、防火墙和路由器都可以组合为一个单个的设备,如图9所示的配置。将会话模块与一个或多个安全设备封装在一起的其他配置也 是可能的。因此,其他实施方式也都在后面的权利要求所要保护的范围之内。
权利要求
1.一种用在计算机网络中的方法,包括 配置一个第一安全系统以处理数据包,所述第一安全系统可操作以保持多个设备的流信息,以便于对数据包进行处理,所述配置包括 在第一安全系统中对流表进行初始化,所述流表包括 存储与作为初级安全系统的第一安全系统的操作相关的 信息的初级部分,和 存储与作为次级安全系统的第一安全系统的操作相关的 信息的次级部分; 指定一个用于当发生故障事件时处理数据包的第二安全系统;并且 将来自第一安全系统的流表的流信息传送到第二安全系统。
全文摘要
提供了用于检查数据包的方法和设备。一个初级安全系统可以被配置以处理数据包。该初级安全系统可操作以保持一组设备的流信息,以便于对数据包进行处理。可指定一个当发生故障事件时处理数据包的次级安全系统。可以将来自初级安全系统的流记录与次级安全系统共享。
文档编号H04L29/06GK102647406SQ20121003272
公开日2012年8月22日 申请日期2005年10月12日 优先权日2004年10月12日
发明者尼尔·朱克, 毛宇明, 科沃斯科·古鲁斯瓦米 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1