专利名称:防御分布式网络泛洪攻击的制作方法
技术领域:
本发明公开涉及计算机网络,更具体地,涉及防御计算机网络中的攻击。
背景技术:
计算机网络通常包括交换数据和共享资源的互联计算设备的集合。这些设备可 以包括例如web服务器、数据库服务器、文件服务器、路由器、打印机、终端用户计算 机以及其他设备。各种设备可以执行大量不同的服务和通信协议。不同的服务和通信协 议中的每一种都使网络暴露于不同的安全漏洞。用于检测网络攻击的传统技术使用了模式匹配。具体地,入侵检测系统 ("IDS (intrusion detection system),,)应用正则表达式或者子串匹配来检测数据流中的规
定模式。可以使用多个模式来尝试提高攻击检测的精度。为了提高检测攻击的可能性, IDS可以尝试识别与数据流关联的软件应用和协议的类型。基于该识别,IDS选择合适 的模式来应用,从而检测网络攻击,本文中使用的术语“网络攻击”包括病毒或者其他 恶意行为。恶意用户在开放式系统互联(OSI)参考模型的各层上实施网络攻击。例如, 历史上,服务拒绝(DoS)攻击已在OSI模型的第三层(网络层)或者第四层(传输层) 上实施。如攻击者利用同步(SYN)数据包连续攻击网络服务器的SYN泛洪攻击(SYN floodattacks),其可能导致服务器的开放连接数的溢出。类似的攻击包括ACK泛洪和重 置(RST)攻击。这些攻击发生在第七层(也被称为应用层)以下。用于阻断这些攻击 的传统技术包括检测来自同一发端设备的两个以上连续的SYN数据包。以这种方式,传 统技术防止在OSI参考模型的更低层上的攻击。近来,恶意用户已经开发出了在OSI模型的第七层(应用层)上实施的网络攻 击。例如,在应用层上实施的DoS攻击(也被称为应用层上的泛洪攻击)可能涉及诸如 自动软件代理(例如,机器人)的一个或多个恶意实体,其连续发布请求,以消耗大量 web服务器资源。这种近来的网络攻击更基于连接,因为恶意软件代理通常在发起网络 会话(例如通过完成TCP三次握手)之后才开始这种泛洪攻击。因此,用于防止发生在 更低层上的攻击(诸如SYN泛洪)的传统的方法对于防止这些新的恶意用户或者软件代 理使用泛洪服务器或者其他设备的更复杂的方法是无效的。网络攻击还可以是协议兼容 的,并因此可能难以使用查找协议异常的机制进行检测。诸如用户或者软件代理的恶意实体可以单独或者与一个或多个软件代理相结合 使用消耗大量资源的服务请求来泛洪服务器。用于保护这种服务器的传统方法通常禁用 该服务或者节流接入该服务以防止服务器崩溃。然而,这可能导致合法用户不能使用该服务。在一些情况中,这种方法可能导致收入受损失或者客户不满。
发明内容
总的来说,本发明公开描述了用于防御分布式网络泛洪攻击的技术。具体地, 该技术防御分布式网络泛洪攻击,而无需禁用或者节流对目标服务的所有接入。本发明 公开的技术特别适用于发生在应用层(第七层)上的泛洪攻击。总的来说,本发明公开 描述了提供通信会话的三阶段分析的入侵检测和防御(IDP)设备,以识别和防御发生在 通信会话中的网络泛洪攻击。可以配置任何网络安全设备实现本发明公开的技术。在第一阶段期间,IDP设备监测网络设备之间正在进行的通信会话(也被称为连 接或者数据包流)的数目、入站连接请求的数目、和/或入站连接请求的速率。该IDP 设备确定与所监测的通信会话相关联的参数,其(在各个实例中)对应于连接的数目、连 接请求的数目、和/或入站连接请求速率中的一个或多个。当IDP确定诸如连接数目、 连接请求数目、或者接收连接请求的速率中的一个或多个的参数超过阈值时,IDP开始分 析的第二阶段。在第二阶段期间,IDP确定与给定事务(或资源)类型的请求的数目相关联的参 数。例如,事务的类型可以通过唯一的函数名、统一资源定位符(URL)或统一资源标 识符(URI)、一个或多个协议字段或一个或多个协议字段的条目、或者其他标志符来识 别。IDP确定该参数(例如,在一段时间内(称作“时间周期(time tick)”)对特定事 务类型的请求的数目)是否超过相应的阈值。在一些实例中,IDP预先配置有每种事务 类型的阈值,而在其他实例中,IDP执行学习阶段来计算每种事务类型的阈值。当参数 (例如,事务类型中的至少一种的请求数目)超过阈值时,IDP进入分析的第三阶段。在 一些实例中,IDP确定事务请求的绝对数目是否超过阈值,而在其他实例中,IDP确定事 务请求的接收速率是否超过阈值。在第三阶段期间,IDP确定来自发布在第二阶段中确定的高于阈值的事务类型的 请求的每个客户端的请求数目。即,对于事务类型x(诸如,协议字段或者协议字段的 条目),IDP已确定对其的请求超过了事务类型X的阈值,IDP就确定哪些客户端正在请 求事务类型X以及每个客户端发布了多少关于事务类型X的请求。当特定客户端发布的 关于事务类型X的请求的数目超过相应的阈值时,IDP对该客户端执行程序化操作。例 如,IDP可以被配置为执行以下操作中的一个或多个阻断客户端的进一步通信、对客 户端的通信进行速率限制、向其他设备广播客户端的因特网协议(IP)地址、将该客户端 的IP地址添加到访问控制列表(ACL)、向管理员发送包含该客户端IP地址的警报、结束 该客户端的通信会话、向该客户端发送结束会话消息、或者其他操作。在一些实例中,IDP进一步维持对应于第二和第三阶段的定时器(timer)。当第 二阶段的定时器届满(expire)时,假定第二阶段的参数不再高于阈值,则IDP转换回第 一阶段,而当第三阶段的定时器届满时,再次假定特定客户端对事务类型X的请求数目 不再超过相应的阈值,则IDP转换回第二阶段。在一些实例中,当定时器届满时和/或 当参数不再高于阈值时,即,基于正在进行的通信业务,IDP从第二阶段转换回到第一阶 段。在一些实例中,每当对特定的客户端执行程序化操作时,IDP重置第三阶段的定时 器。同样地,当IDP从第三阶段转换回第二阶段时,IDP重置第二阶段的定时器。可选地,在一些实例中,一旦定时器届满,IDP则从第三阶段转换回第一阶段。在一些实例 中,当IDP在第三阶段中时,并且当特定客户端的事务类型X的请求数目落后于相应的 阈值时,IDP转换到第二阶段。同样地,在一些实例中,当到受保护的服务器的通信会 话的数目落后于相应的阈值时,IDP从第二阶段转换到第一阶段。在一些实例中,滞后 用于避免阈值附近的阶段转换的抖动。在一些实例中,IDP执行来自多个客户端设备的入站业务的分析。在一些实例 中,IDP接收来自IDP设备外部的一个或多个设备的数据,诸如边缘设备(例如,位于相 应的服务提供商网络的边缘的路由器)或者维护和/或分析网络业务的网络内采样设备。 这些设备(当使用这些设备时)将数据发送到IDP,从而IDP能够识别恶意客户端或者相 应的恶意网络会话。在一个实例中,一种方法包括使用第一网络设备监测到由第一网络设备保 护的第二网络设备的网络连接,当确定与所监测的网络连接相关联的参数超过连接阈值 时,监测与网络连接相关联的多个事务类型中的每一个,当确定与多个事务类型中的至 少一个相关联的参数超过相应的事务类型阈值,监测与发起多个事务类型中的至少一个 的事务的网络地址相关联的通信,以及当从至少一个网络地址发起的多个事务类型中的 至少一个的事务超过相应的客户端事务阈值时,对于该至少一个网络地址执行程序化操 作。在另一实例中,一种网络设备包括网络接口,接收受保护的网络设备的多个 网络会话的数据包;计算机可读介质,存储连接阈值、事务类型阈值、和客户端-事务 阈值;控制单元,具有一个或多个处理器;重组模块,在控制单元内执行,重组多个网 络会话的应用层数据;以及攻击检测模块,在控制单元内执行,监测到受保护的网络设 备的多个网络会话的网络连接、当与所监测的网络连接相关联的参数超过连接阈值时监 测与多个网络会话相关联的多个事务类型中的每一个、当与多个事务类型中的至少一个 相关联的参数超过事务类型阈值时监测与发起多个事务类型中的至少一个的事务的网络 地址相关联的通信、以及当从至少一个网络地址发起的多个事务类型中的至少一个的事 务超过客户端_事务阈值时对于该至少一个网络地址执行程序化操作。在另一实例中,一种系统包括多个客户端设备,其中,多个客户端设备中的 每一个参与与受保护的网络设备的多个网络会话中的一个;以及网络安全设备,位于受 保护的网络设备与多个客户端设备之间,其中,网络安全设备包括网络接口,接收多 个网络会话的数据包;计算机可读介质,存储连接阈值、事务类型阈值、和客户端-事 务阈值;控制单元,具有一个或多个处理器;重组模块,在控制单元内执行,重组多个 网络会话的应用层数据;以及攻击检测模块,在控制单元内执行,监测到受保护的网络 设备的多个网络会话的网络连接、当与所监测的网络连接相关联的参数超过连接阈值时 监测与多个网络会话相关联的多个事务类型中的每一个、当与多个事务类型中的至少一 个相关联的参数超过事务类型阈值时监测与发起多个事务类型中的至少一个的事务的网 络地址相关联的通信、以及当从至少一个网络地址发起的多个事务类型中的至少一个的 事务超过客户端_事务阈值时对于网络地址中的至少一个执行程序化操作。在另一实例中,诸如计算机可读存储介质的计算机可读介质包括(例如,使用 其编码)使可编程处理器监测到保护的网络设备的网络连接的指令,在确定与连接相关联的参数超过连接阈值时,监测与该网络连接相关联的多个事务类型中的每一个;当确 定与多个事务类型中的至少一个相关联的参数超过相应的事务类型阈值时,监测与发起 多个事务类型中的至少一个的事务的网络地址相关联的通信;当从至少一个网络地址发 起的多个事务类型中的至少一个的事务超过相应的客户端-事务阈值时,对于网络地址 中的至少一个执行程序化操作。本发明公开的技术可呈现一个或多个优点。例如,本发明公开的技术通常是可 扩展的、适应的、和灵活的。本技术考虑到从粗粒度到细粒度监测的不同级别的监测。 本技术扩展性良好,因为尽管在每一阶段分析的深度可能会增加,但是受检查的业务流 量降低。实施这些技术的IDP还是普遍适用的,因为IDP能够自动识别需要被监测的有 关数据。虽然在一些实例中,用户手动配置阈值的预期命中率,但是在其他实例中,IDP 动态设置这些值。此外,本发明公开的技术可用于任何网络协议,只要有协议解码器即 可。即使当攻击是适应协议的,例如甚至在攻击者已经成功完成了三次握手并且建立了 连接的情况下,本技术仍可提供防御泛洪攻击。本发明公开的技术能够导致阻断单独的恶意实体、客户端设备或者软件代理接 入服务,而不会阻断其他无恶意实体的一般接入服务。即,本发明公开的技术可以阻断 恶意实体、客户端设备或者软件代理接入到特定服务,而不会禁用无恶意实体的服务。 这可以允许更加良好的安全性,而不会降低提供给合法实体的服务质量。在附图和以下的描述中阐述一个或多个实例的细节。根据描述和图示以及权利 要求,其他的特征、目标、和优点是明显的。
图1是示出了一个示例性的企业计算机网络的框图,其中,入侵检测和防御 (IDP)设备尝试防止恶意实体(诸如恶意自动软件代理)的泛洪攻击。图2是示出了 IDP的实例布置的框图。图3是示出了图2中所示的IDP的状态检测引擎的一个实例的框图。图4是示出了网络设备的实例布置的框图,其中IDP监测来自多个客户端设备的 业务以防止网络攻击。图5是示出了用于实现学习阶段以动态确定连接阈值、事务类型阈值、和客户 端_事务阈值的实例方法的流程图。图6是示出了用于防止网络泛洪攻击的实例方法的流程图。图7是示出了用于防止网络泛洪攻击的方法的可选的视图的状态转换图。图8是示出了包含可互换服务卡(包含IDP卡)的实例路由器的框图。
具体实施例方式图1是示出了根据本发明公开中的技术的一个示例性的企业计算机网络4的框 图,其中入侵检测和防御(IDP)设备10可以尝试防止由恶意实体(诸如恶意自动软件代 理)发起的泛洪攻击。虽然主要对IDP设备10进行描述,然而应当理解,本发明公开的 技术可以由任何各种不同的网络设备来实现。例如,包括用于耦合一般安全服务卡(包 括这些技术的实现)或者具体实现这些技术的服务卡的服务平面的网络设备可以实现本发明公开的技术。网关设备、路由器、集线器、防火墙和服务器是可包含这些服务平面 的网络设备的实例。同样,任何网络安全设备可以实现本发明公开的技术。本文中使用 的术语“机器人(bot)”指的是自动软件代理,其通常执行恶意或者其他不希望的行为。 尽管本发明公开中主要涉及一种IDP设备,不过入侵检测系统(IDS)或者入侵防护系统 (IPS)可以通过类似技术进行配置。在图1的实例中,IDP 10是单个网络设备。在其他 实例中,防火墙9、交换机19、安全管理设备18、IDP 14或者节点8A 8N中的单个节 点中的任意一个、或者诸如路由器、虚拟专用网络(VPN)装置或网关的其他设备,可以 实现关于IDP 10所述的功能。网络4包括连接到诸如因特网的公共网络6的私人企业计算网络5。公共网络 6可以包括例如一个或多个客户端计算设备。防火墙9保护私人企业网络5,具体地, 保护内部计算节点8A 8N(计算节点8)。计算节点8代表企业网络5内的任意私人计 算设备,例如工作站、膝上型电脑、文件服务器、打印服务器、数据库服务器、web服 务器、电子邮件服务器、数据库、打印机、个人数字助理(PDA)、智能电话、和其他设 备。安全管理设备18管理企业网络5的一个或多个网络安全设备,例如IDP 10、防火墙 9、IDP 14、或者一个或多个计算节点8。在一个实例中,安全管理设备18实施简单网络 管理协议(SNMP),以修改网络安全设备的设置。在另一实例中,安全管理设备18实施 设备管理接口(DMI)。交换机19向和从企业网络5中的目的地(例如,计算节点8中的 一个、安全管理设备18、IDP 14、和IDP 10)引导网络业务。在图1的实例中,企业网络5包括IDP 10,用于监测在防火墙9和内部计算节点 8之间流动的业务。具体地,根据本发明公开的技术,IDP 10在开放式系统互联(OSI) 网络模型的应用层(第七层)检测泛洪攻击。即,除了检测并防止诸如SYN泛洪攻击的 低层泛洪攻击以外,IDP 10还能够检测并防止应用层上的泛洪攻击。IDP 10尝试确定来 自一个或多个设备的网络通信是否表示网络攻击。IDP 10通常在三个阶段中监测各个业 务统计。示例的业务统计包括活动连接的数目、接收连接请求的速率、接收活动连接的 事务请求的速率、以及基于每个客户端的各自事务请求。IDP 10还可以执行代理处理, 因为IDP 10执行提供有关客户端的实际IP地址的信息的协议分析。因此,客户端分析可 以在客户端的实际IP地址上而不是在代理IP地址上执行。在第一阶段期间,IDP 10监测活动的通信会话的数目、接收连接请求的速率、 和连接请求数目中的一个或多个。第一阶段在本发明公开中还被称为服务监测阶段。IDP 10计算与所监测的网络连接相关联的参数,该参数包括活动的通信会话的数目、接收连 接请求的速率和连接请求的数目中的一个或多个。当IDP 10确定诸如通信会话的数目、 连接请求的数目、和/或接收连接请求的速率的参数超过相应的连接阈值时,IDP 10进入 第二阶段。在第二阶段期间,IDPlO监测特定时间段上每个通信会话期间发生的各个事 务类型。IDPlO计算与这些事务类型相关联的参数,该参数包括特定时间段上的各个事 务类型的事务数目或者特定时间段期间接收各个事务类型的事务的速率。IDP 10将各个 事务类型的数目与该事务类型的相应的阈值(例如平均值)相比较。对于该事务类型中 的至少一个,当IDP 10确定事务数目超过该类型的平均值时,IDP 10进入第三阶段。在 第三阶段期间,IDP 10监测在特定的时间段上执行使IDP 10进入第三阶段的事务类型的 每个客户端。具体地,IDP 10计算每个客户端在特定时间段上执行该事务类型的次数并且将每个客户端的该次数与客户端_事务阈值相比较。以这种方式,本发明公开的技术 可以结合基于速率的技术和基于签名的技术的方面以检测并防止应用层攻击。当IDP 10确定特定的客户端正在执行使IDP 10进入第三阶段的事务类型时, IDP 10执行关于该客户端的程序化响应。程序化响应可以包括以下响应中的一个或多 个阻断客户端(永久或者诸如几分钟的时间段)、关闭与客户端相关联的通信会话(例 如,通过向参与通信会话的客户端和/或服务器发送关闭会话消息)、丢弃通信会话的 数据包、记录与客户端相关联的因特网协议(IP)地址、阻断来自客户端的将来的连接尝 试、对来自客户端的将来的会话的速率限制、以及向一个或多个其他网络设备(在图1中 未示出)广播或者通告该客户端的IP地址以使那些网络设备阻断该客户端。在一些实例中,IDP 10还可以将模式匹配与专用于应用程序和协议的异常检测 进行集成,以识别复杂的攻击行为。在一个实例中,IDP 10允许系统管理员指定攻击定 义。在一些实例中,系统管理员指定复合的攻击定义。有关攻击定义(诸如复合攻击定 义)的应用的进一步的细节可参见Guraswamy等人于2005年1月27日提交的美国专利 申请第 11/045,572 号 “ Compound Attack Detection in aComputer Network” 的美国专利申 请,其全部内容结合于此作为参考。IDP 10识别所监测的业务中的数据包流,并透明地重组来自数据包流的应用层 通信。IDP 10内的一组专用于协议的解码器分析应用层通信并且识别应用层事务。通 常,“事务(transaction) ”指的是对等设备之间的一个或多个有关的应用层通信的有界序 列。事务通常可识别为根据特定协议的数据包单元或者其他网络通信单元的元素。协 议通常定义包含某数据的数据包内的字段。以这种方式,IDP 10通过检查在通信会话期 间交换的数据包的特定协议字段来识别事务。例如,TCP连接可以用于发送(接收)多 个超文本传输协议(HTTP)请求(响应)。可以使用单个TCP连接读取包含多个图像和 HTML页面的链接的单个web页面。HTTP解码器将TCP连接内的每个请求/响应识别 为不同的事务。这对于防止某些攻击定义应用于整个事务边界可能是有用的。在一个实 例中,根据源和目标IP地址、协议、以及源和目标端口号来识别通信会话。其他的实例 以其他的方式识别通信会话,例如通过使用媒体访问控制(MAC)地址。IDP 10将攻击定义应用到元和协议解码器识别的专用于协议的异常,以检测并 防止网络攻击。例如,系统管理员可以指定复合网络攻击,包括反复FTP登录失败的协 议异常和匹配“根”的登录用户名的模式。通过这种方式,系统管理员可以将模式分析 与协议异常相结合,以定义复杂的攻击定义。如果发生网络攻击,则IDP 10采取一个或 多个编程措施,诸如自动丢弃与其中检测到网络攻击的应用层通信相关联的数据包流。作为本发明公开中使用的术语,机器人一般包括在一个或多个网络计算设备上 运行以执行恶意网络会话的程序。机器人可以执行脚本,以使机器人执行恶意网络会话 的一系列的一个或多个操作。机器人通常与其他的机器人共同行动,以形成“机器人网 络”。机器人网络可以包括成千上万甚至更多的一起行动的计算设备。在典型的机器 人网络中,一组机器人在位于中央位置的计算设备的指挥下一起行动,在中央位置的计 算设备可以包括编写机器人的恶意用户的计算设备或者被攻击或被感染的计算机终端。 位于中心的计算设备可以通知机器人网络的机器人有关目标的身份(诸如目标的网络地 址),并且指示机器人攻击该目标。以这种方式,机器人网络可以用于执行分布式网络泛洪攻击。恶意软件代理利用网络会话执行恶意操作,诸如例如拒绝服务(DoS)攻击、点 击欺诈、垃圾邮件输出、或其他恶意网络活动。机器人可以被编程以识别服务器的特定 事务类型(诸如节点8中的一个),其使服务器利用相对大量的计算能力。一旦机器人发 现这样事务类型(诸如特定协议字段或者协议字段中的特定条目),机器人可以反复发布 该事务类型的大量请求,用于尝试关闭服务器。此外,单个机器人可以发现昂贵事务类 型,通知中央计算机终端,计算机终端可以指示机器人网络的所有机器人连接服务器并 且执行该昂贵事务类型。一旦认识到这种类型的机器人及机器人网络的活动,根据本公开的技术,IDP 10首先监测多个连接,然后监测各个事务类型的请求,最后监测执行超过相应阈值的特 定事务类型的客户端。阈值可以对应于“正常”客户端的行为。当IDP 10确定执行该 事务类型的一个或多个客户端正在执行超过阈值的该事务类型时,IDP 10阻断客户端, 确定该客户端是恶意的。以这种方式,IDP 10能够阻断恶意客户端并保持服务器活动, 而没有防止正常客户端接入昂贵事务类型。图2是示出了 IDP 20的一个实例配置的框图。在示出的实例中,IDP 20包括转 发平面22,用于透明监测入站网络业务24并转发网络业务作为出站网络业务26。在图2 所示的实例中,转发平面22包括流分析模块25、状态检测引擎28、多个协议解码器30、 转发组件31和安全管理模块44。图2的IDP 20的实例示出了作为单个网络设备的IDP 20,诸如图1的IDP 10或者IDP 14。其他的实例在多个网络设备或者诸如图1的安全管 理设备18、交换机19或者防火墙9的其他类型的设备中实现IDP 20的功能。IDP 20还 被称为安全设备或者网络安全设备,并且IDP 20保护的设备(诸如图1的节点8)被称为 受保护的网络设备或者受保护的服务器。安全管理模块44给出了一种用户界面,管理员42通过该用户界面配置IDP 20。 例如,管理员42可以配置IDP 20用来监测企业网络的特定子网。此外,安全管理模块 44给出了一种用户界面,管理员42可以通过该用户界面来指定攻击定义33,以使安全管 理模块44中继到状态检测引擎28。在一些实例中,管理员42经由安全管理模块44的用 户界面指定连接阈值、事务类型阈值、和客户端-事务阈值。在一些实例中,安全管理模块44允许管理员42为某些事务类型和公知的协议 字段值配置异常。例如,管理员42可以定义“www.google.com”的http请求的异常, 因为即使在没有发生恶意活动时,“www.google.com”的连接数目通常都将超过连接阈 值。同样,当管理员42确定已知某些协议字段的某些值不是恶意的时候,为了避免误确 认,安全管理模块44允许管理员42排除这些值。在一个实例中,攻击定义33包括复合攻击定义。复合攻击定义通常以在本发明 公开的通常范围之外的方式,根据一个或多个协议层上的多个元素定义攻击。然而,应 当理解,本发明公开的技术可以并入利用除本发明公开的技术以外的复合攻击定义的设 备中,以检测并处理网络攻击。此外,安全管理模块44可以提供用户界面,管理员42 可以通过该用户界面可以修改诸如监测的最高优先级数据包流、应用程序的端口绑定、 或者确定与数据包流与相关联的一种类型的应用程序和协议的其他特点的关于数据包流 特征的假设。在一个实例中,安全管理设备18 (图1)实现安全管理模块44的功能,以使管理员42能够远程对IDP 20进行编程。根据从管理员42接收的配置,安全管理设备 18可以经由例如简单网络管理协议(SNMP)配置IDP 20。流分析模块25接收入站业务24并且识别业务中的网络流。流分析模块25包括 或者连接到网络接口卡(NIC)23。每个网络流表示在网络业务中一个方向上的数据包流 并由至少一个源地址、目的地址和通信协议所识别。流分析模块25可以利用附加信息指 定网络流,包括源介质访问控制(MAC)地址、目的MAC地址、第4层源端口、和第4 层目的端口。其他的实例可以使用诸如IP地址的其他信息来识别网络流。流分析模块25维护流表35内的数据,该流表描述了网络业务内出现在的每个 活动的数据包流。流表35指定与每个活动的数据包流相关联的网元(network element), 即,诸如源和目的设备以及与数据包流相关联的端口的低级别信息。此外,流表35识别 共同形成客户端和服务器之间的单个通信会话的数据包流对或者数据包流组。例如,流 表35可以在指定通信会话作为共享至少一些公共网络地址、端口和协议的流的相反的方 向的数据包流对。根据以下进一步详细的所述,状态检测引擎28检测数据包流,以识别数据包流 中的攻击。根据本发明公开的技术,状态检测引擎28使用三阶段分析检测数据包流,以 检测机器人在应用层上操作的网络泛洪攻击。当状态检测引擎28检测到泛洪攻击时,状 态检测引擎28执行程序化响应,诸如向安全管理模块44发送警报40、或者指示转发组件 31丢弃数据包流的数据包、或者结束对应于数据包流的网络会话。状态检测引擎28还可 以限制数据包流的速率,即将对应于检测出的机器人的网络会话节流到某个比特率(诸 如10兆比特/秒)。攻击检测模块52还可以将参与泛洪攻击的网络设备中的至少一个的标识符记录 在流表35中,并阻断从已记录的标识符的网络设备发起的将来的连接请求。即,流分析 模块25可以接收连接请求,确定连接请求从在流表35中记录的标识符发起,以及阻断连 接请求。以这种方式,IDP 20可以阻断来自参与作为程序化响应的网络会话的网络设备 的将来的连接请求。转发组件31还可以构造发送到其他网络设备(诸如其他路由器或者 IDP, IPS、或防火墙(FW)设备)的消息,以阻断或者响应于来自状态检测引擎28为其 检测出机器人的源网络设备的数据包流。警报40可以包括诸如数据包流的源地址、对应 于数据包流的应用程序的标识、或者有关网络会话的其他信息的细节。在一个实例中,状态检测引擎28包括用于执行应用程序识别的协处理器(未示 出)。协处理器可以连续地接收数据包流形式的输入,并可以不断地对数据包流执行应用 程序识别。对于数据包流的每个程序块,协处理器可以返回协处理器识别的应用程序的 一个或多个身份认证。通常,协议解码器30包括一组一个或多个专用于协议的软件模块,用于处理应 用层通信32并输出识别应用层事务的事务数据34。具体地,事务数据34指示两个对等 设备之间的一系列有关的应用层通信开始和结束的时间。在一个实例中,一个或多个协 议解码器30可以是通用协议解码器,以便通用协议解码器尝试识别对应于应用层通信32 的有效载荷的应用程序。通过协议解码器的一个实例是将一组预定义的应用程序指纹/ 签名与被解码的数据相匹配并且基于具体的指纹匹配来识别应用程序的算法。例如,通 用协议解码器可以尝试识别对应于HTTP通信的有效载荷的应用程序。
许多协议解码器30对应于不同的通信协议或服务。可以由协议解码器30支持 的通信协议的实例包括超文本传输协议(HTTP)、文件传输协议(FTP)、网络新闻传输 协议(NNTP)、简单邮件传输协议(SMTP)、远程登录、域名系统(DNS)、菜单查询系统 (Gopher)、查找器(Finger)、邮局协议(POP)、安全套接字协议层(SSL)协议、轻量级目 录访问协议(LDAP)、安全Shell (SSH)、服务器消息块(SMB)和其他协议。在一个实例 中,协议解码器30中的每个经由通用软件接口(即,以独立于基础传输机制的方式处理 应用程序数据的软件接口)接收数据。以这种方式,协议解码器可以在应用于给定的数 据包流时被交换、重用和堆叠(分层)。在协议解码器30应用到给定的数据包流或者单个数据包之后,协议解码器将事 务数据34、应用层元36、和协议异常数据38返回到状态检测引擎28。在一些实例中, 状态检测引擎28将攻击定义33的复合攻击定义应用到专用于协议的应用层元36和异常 数据38,以检测并防止网络攻击和其他安全风险,在本发明公开的技术之外或者作为本 发明公开的技术的可选项。如果检测到安全风险,那么状态检测引擎28可以将警报40输出到安全管理模 块44,用于记录和进一步分析。此外,状态检测引擎28可以根据策略定义采取附加的 操作,诸如丢弃与通信会话相关联的数据包、自动结束通信会话或其他操作。如果没有 检测到给定的通信会话的安全风险,转发组件31继续在对等设备之间转发数据包流。例 如,转发组件31可以根据用于转发数据包流中的企业网络的拓扑结构维护存储路径的路 由表。图3是更详细地示出了 IDP 20的状态检测引擎28的实例的框图。在该实例中, 状态检测引擎28包括重组模块50、攻击检测模块52、数据缓冲器55、攻击定义33、和 阈值学习模块59。通过移除任意的底层传输信息(例如,第四层(L4)信息及第四层以 下的信息),重组模块50接收入站网络业务24以及重组数据包流的应用层通信32。重 组模块50将重组的应用层通信32转发到合适的协议解码器用于处理。状态检测引擎28存储从安全管理模块44接收的攻击定义33。攻击定义33可以 被存储在例如计算机可读介质(例如,随机存取存储器(RAM))中。在图3的实例中, 攻击定义33包括连接阈值54、平均事务表56、和平均客户端事务表58。连接阈值54限 定一个或多个活动连接的并发数目和/或服务器接收连接请求的速率。平均事务表56限 定每个事务类型的阈值,平均客户端事务表58限定关于每个事务类型的客户端的阈值。 以这种方式,平均事务表56限定事务类型阈值,平均客户端事务表58限定客户端-事务 阈值。攻击定义33通常将攻击定义为在特定事务类型的事务的速率超过事务类型阈值时 并且在连接超过连接阈值时一个或多个客户端超过该事务类型的客户端_事务阈值的情 况。攻击定义33还可以包括定义除用于本发明公开的目的的攻击定义之外的其他类型攻 击的复合攻击定义。以这种方式,本发明公开的技术可以结合到现有的IDP或者用于检 测和/或防止网络攻击的其他设备中。当状态检测引擎28接收数据包作为数据包流的一部分时,重组模块50缓冲数据 缓冲器55中的数据包。在一个实例中,数据缓冲器55作为滑动窗口存储数据。S卩,在 数据缓冲器55存储数据,直到变满或者达到用于识别所指定需要的最小数据量。当数据 缓冲器55满时,数据缓冲器55丢弃某些数据以为存储新的数据腾出空间。在一个实例中,数据缓冲器55根据先进先出(FIFO)协议存储和丢弃数据,其中,当数据缓冲器55 变满时,存储的第一数据便是丢弃的第一数据。在另一实例中,数据缓冲器55根据最近 最少使用协议丢弃数据,其中,当数据缓冲器55变满时,最近最少使用的数据包流将被 丢弃以为将要存储的新的数据腾出空间。在一个实例中,重组模块50根据5元组{源IP地址、目的IP地址、协议、源端 口、目的端口}关联网络会话的数据包流中的数据包。其他的实例使用其他的方法关联 数据包与具体的数据包流或者封装的数据包流。在一个实例中,IDP 20包括利用虚拟局 域网(VLAN)的网络的部分。因此,重组模块50可以根据VLAN标识符、源地址、和 目的地址关联数据包流中的数据包。攻击检测模块52将攻击定义33应用到应用层元素36和从协议解码器30接收到 的协议异常数据38。除了确定定义的攻击模式是否存在之外,攻击检测模块52可以确定 由协议解码器30检测到的任意协议异常是否与攻击定义33指定的协议异常相匹配。当 在给定的通信会话中检测到攻击定义指定的模式和协议异常时,攻击检测模块52确定相 应的数据包流与攻击定义33中的一个匹配。此外,基于每个事务或在通信会话的存在期 中满足,攻击定义33中的每一个可以指定是否必须满足模式匹配和协议异常。S卩,在单 个协议字段内或者在会话的整个数据流上,攻击定义33中的每个可以指定特定的模式或 者协议异常是否可以得到满足。根据本发明公开的技术,攻击检测模块52还执行网络业务的三阶段分析,艮口, 网络业务的应用层元36和事务数据34方面的分析。在第一阶段期间,也被称为服务监 测阶段,攻击检测模块52通常监测到节点8(图1)中的一个的连接。这可以包括监测多 个活动连接的数目和/或接收连接请求的速率,即,在定义的时间段上接收的连接请求 的数目。以这种方式,在第一阶段期间,攻击检测模块52通常监测IDP 20保护的一个 或多个服务器上的负载。为了确定多个活动连接,攻击检测模块52检索来自流表35 (图2)的数据,以确 定对于特定服务器(诸如计算节点8中的一个)活动的连接的数目。在一些实例中,攻 击检测模块52还分析应用层元36和事务数据34,以确定接收连接请求的速率。在这些 实例中,攻击检测模块52计算在给定的时间间隔(也被称为“时间周期”)内接收到的 连接请求的数目。在一些实例中,攻击检测模块52确定当前连接的数目和接收连接请求的速率。 当当前连接和/或接收连接请求的速率中的一个或两者超过连接阈值54时,攻击检测模 块52进入分析的第二阶段。在一些实例中,攻击定义33定义两个连接阈值对应于当 前连接的数目的第一连接阈值和对应于接收连接请求的速率的第二连接阈值。在一个实例中,为了确定到受保护的服务器的当前连接的数目,攻击检测模块 52查询流表35,以确定流表35中的条目数。流表35中的条目数通常对应于当前活动的 连接或者通信会话的数目。为了确定连接请求的速率,攻击检测模块52分析事务数据 34,以确定网络通信是否表示发起网络会话的请求。在一个实例中,发起网络会话的请 求包括TCP/IP同步(SYN)数据包。因此,攻击检测模块52确定在数据包的TCP报头 中是否设置有接收到的数据包的SYN标记。因此,当攻击检测模块52在一段时间内接 收超过连接阈值54的多个SYN数据包时,攻击检测模块52可以确定开始分析的第二阶段。虽然为了示例的目的主要描述了关于TCP,然而应理解,本发明公开的技术通常可 用于任意因特网协议。例如,本技术还可用于用户数据报协议(UDP)或者除TCP以外 的其他无状态协议(stateless protocol)。为了确定在一段时间内接收到的SYN数据包的数目,在一个实例中,攻击检测 模块52维护具有对应于在一段时间内接收到的多个SYN数据包的长度的诸如序列、阵列 或链表的数据结构(未示出)。攻击检测模块52向数据结构的每个元素分配对应于接收 对应于该元素的SYN数据包的时间的时间戳。当当前时间与该时间段之间的差产生超过 最早的元素的时间戳的时间时,攻击检测模块52从数据结构中移除最早的元素。以这种 方式,当数据结构的长度超过连接阈值54时,攻击检测模块52开始分析的第二阶段。因 此,一旦确定连接超过连接阈值54,则攻击检测模块52执行分析的第二阶段。在分析的第二阶段期间(也被称为协议分析阶段),攻击检测模块52通常监测活 动连接的多个事务类型。具体地,在分析的第二阶段,攻击检测模块52可以执行内容检 测并可使用协议解码器30对应用层协议进行解码。例如,根据相应的通信会话的协议, 事务类型在一个或多个特定位置的数据包内被识别。协议解码器30被配置为根据相应的 协议识别正在被请求的事务的类型。攻击检测模块52可以维护关于协议事务的业务统 计,并基于数据分析检测恶意事件。例如,攻击检测模块52基于协议解码器30提供的 数据(诸如事务数据34和应用层元36)监测各事务类型的数目和/或速率。因此,攻击 检测模块52在第二阶段期间监测一个或多个协议字段,以识别各事务类型的数目和/或 速率。在一个实例中,事务类型与服务器的特定统一资源标识符(URI)相关联。 例如,经由“example.com”可访问的服务器可以包括与“example.com/home”、
“example.com/get_shipping_cost”、 “example.com/place_order”、 “example.com/ display_catalog”、 “example.com/search_for_item”、 “example.com/view_cart”、 禾口 “example.com/order_status”相关联的事务类型。这对应于域名系统(DNS)的实例,以 及DNS的事务的类型通常被称为“DNS请求”事务。其他的实例可以使用与URI不相 关的其他的事务类型。作为一个实例,攻击检测模块52可以监测SMTP确认请求,以检 测电子邮件服务器泛洪攻击。在一个实例中,攻击检测模块52维护跟踪每个事务类型(诸如协议字段条目) 的请求数目的表。攻击检测模块52将每个事务类型的值与设置每个事务类型的事务_类 型阈值的平均事务表56 (在本发明公开中也被称为“Top-N表”)相比较。平均事务表 56通常指示平均事务表56中列出的各事务类型的阈值。这允许攻击检测模块52将各事 务类型的监测值与平均事务表56中定义的相应阈值相比较。平均事务表56包括为事务类 型的期望数目和/或速率配置的阈值。例如,攻击检测模块52可以监测作为事务类型的 特定协议字段的值。当攻击检测模块52确定监测的协议字段的值超过相关的阈值时,攻 击检测模块52转换到分析的第三阶段。在一些实例中,平均事务表56使用各事务类型 的阈值预先配置,例如每个协议字段或者每个协议字段的条目类型,而在其他实例中, 阈值学习模块59生成平均事务表56,将在以下更加详细地描述。在一些实例中,攻击可以以随机事务为目标。在这些情况下,攻击检测模块52 被配置为将事务的总数与平均事务表56中的阈值总事务值相比较。在这些实例中,当在第二阶段期间确定的总事务的总数超过平均事务表56的阈值总事务值时,攻击检测模块 52也转换到分析的第三阶段。在分析的第三阶段期间,攻击检测模块52通常监测发起触发攻击检测模块52 进入第三阶段的事务类型中的一个的事务的网络地址。即,对于攻击检测模块52监测 到的多个事务类型,攻击检测模块52确定超过平均事务表定义的阈值的至少一个事务类 型,并进入第三阶段,然后监测正在执行超过平均事务表56的相应阈值的事务类型的客 户端。超过相应阈值的事务类型可以被称为“攻击”事务。第三阶段还被称为客户端 分析阶段,由于攻击检测模块52基于每个客户端IP地址监测在第二阶段中识别的攻击事 务的使用。平均客户端事务表58通常定义每个事务类型的正常客户端行为的阈值。平均客 户端事务表58包括各事务类型的条目。每个条目基于每个客户端而不是基于每个事务类 型或每个协议字段(如平均事务表56)定义数目和/或速率。对于在第二阶段执行超过 阈值的事务类型的每个客户端,攻击检测模块52确定客户端执行该攻击事务类型的数目 和/或速率。即,每次请求攻击事务类型,攻击检测模块52都识别执行该事务的客户端 的IP地址,并为该客户端增加相应的计数。为此,攻击检测模块52识别来自协议解码 器30的事务数据36中客户端的IP地址。攻击检测模块52建立包括对应于执行攻击事 务的每个客户端中的计数的客户端事务表(未示出)。攻击检测模块52监测客户端事务表中的条目,以确定任何客户端已请求该攻击 事务的次数是否超过平均客户端事务表58中定义的阈值。攻击检测模块52将具有超过 相应阈值的请求数目的每个客户端标记为恶意客户端,并使IDP 20对于这样的恶意客户 端执行程序化响应。在一些实例中,程序化响应包括以下操作中的一个或多个阻断恶 意客户端的网络连接、丢弃与恶意客户端相关联的网络连接的数据包、阻断由恶意客户 端发起的连接尝试、向另一网络设备通告恶意客户端的IP地址以使另一网络设备阻断该 恶意客户端的网络连接、向恶意客户端发送结束会话消息、对来自该客户端的将来的会 话进行速率限制、以及向与恶意客户端通信的服务器发送结束会话消息。为了向恶意客 户端发送诸如结束会话消息的消息,攻击检测模块52指示转发组件31汇编并转发消息。 在一些实例中,结束会话消息包括TCP/IP结束会话消息。在一些实例中,当检测到安全风险时(诸如客户端超过攻击事务类型的相应的 阈值),状态检测引擎28向安全管理模块44输出警报40 (图2)用于记录和进一步分析。 状态检测引擎28还可以指示转发组件31执行安全风险的程序化响应。如以上所讨论的, 程序化响应可以包括自动丢弃与在其中检测到网络攻击的应用层通信相关联的数据包流 的数据包。由于数据包被丢弃,所以数据包将不能到达他们预期的目的。这防止了恶意 客户端在其目的上执行其预期的攻击,例如消耗过多的目标的资源。状态检测引擎28还 可以使转发组件31向恶意网络会话中的一个或多个参与者发送结束会话消息作为程序化 响应。关于“example.com”的以上实例,假定攻击检测模块52确定在第二阶段期间事 务“example.com/get_shipping_cost”超过平均事务表56中的相应阈值。S卩,"example. com/get_shipping_cost"是攻击事务类型。因此,在第三阶段期间,攻击检测模块52将 确定每个客户端执行“example.com/get_shipping_cost”的次数,并且将这些值与平均客户端事务表58中定义的阈值相比较。当单个客户端执行超过平均客户端事务表58中定 义的阈值的“example.com/get_shipping_cost”时,攻击检测模块52将该客户端标记为恶
意的,并使IDP20对于该客户端执行程序化响应。以这种方式,攻击检测模块52能够只将那些执行超过相应的客户端_事务阈值 的特定事务类型的客户端标记为恶意的和阻断的,而不阻断未超过客户端_事务阈值的 无恶意实体的接入服务(即,事务类型)。在图3的实例中,IDP 20包括阈值学习模块59。阈值学习模块59在IDP 20的学 习阶段期间动态地生成连接阈值54、平均事务表56、和平均客户端事务表58。当IDP20 进入学习阶段时,阈值学习模块59从协议解码器30接收事务数据34和应用层数据36。 在学习阶段期间,阈值学习模块59从流表35 (图2)中检索数据。阈值学习模块59在学 习阶段期间监测该数据以例如基于学习的平均值定义攻击定义33的阈值,从而攻击检测 模块52能够确定后续监测的数据是否超过学习阶段期间确定的阈值。在一些实例中,阈 值学习模块59在一天的不同时间和/或一周的不同时间执行不同学习阶段,以说明关于 不同天和一天的不同时间的自然变化的原因。在一些实例中,阈值学习模块59将通过流表35确定的学习阶段期间连接的平均 数定义为连接阈值54。在学习阶段期间,阈值学习模块59还生成平均事务表56和平均客 户端事务表58。阈值学习模块59为协议解码器30解码的特定协议识别每个事务类型、 每个事务类型的请求的平均数和/或请求的速率(记录在平均事务表56中)、以及每个单 个客户端执行每个事务类型的平均次数和/或速率(记录在平均客户端事务表58中)。在一些实例中,阈值学习模块59根据统计上的重大改变(诸如偏离计算的平均 值的多个标准差)设置阈值,而不是定义阈值为计算的平均值。在一个实例中,阈值学 习模块59将连接阈值设置为偏离连接的确定的平均数的两个标准差、将特定事务类型的 事务类型阈值设置为偏离该事务类型的请求的确定的平均数的两个标准差、以及将客户 端_事务阈值设置为偏离该事务类型的客户端请求的确定的平均数的两个标准差。在另 一实例中,阈值学习模块59以高出学习的平均阈值一定的百分比值设置连接阈值,诸如 高出学习的平均阈值百分之十五。管理员可以配置或者改变该百分比值。虽然作为独立的模块描述,然而在一些实例中,攻击检测模块52和阈值学习模 块59被结合到单个模块。在一些实例中,攻击检测模块52实现关于阈值学习模块59描 述的功能。此外,攻击检测模块52和/或阈值学习模块59可以以软件、固件和/或硬 件的任意组合来实现。在一些实例中,诸如ASIC或者FPGA的专用硬件单元实现攻击 检测模块52和/或阈值学习模块59中的一个或者两者的功能。因此,本文中使用的术 语“模块”可以包括在计算机可读介质中编码的可执行指令以及专用硬件单元。图4是示出了具有网络设备的实例布置的系统的框图,其中IDP 20监测来自多 个客户端设备66A 66H(客户端设备66)的业务,以防止对企业设备60的网络攻击。 在图4的实例中,IDP 20保护可以对应于节点8中的任意一个(图1)的企业设备60。客 户端设备66经由边缘设备62A 62D (边缘设备62)中的相应的一个与企业设备60进行 通信。例如,客户端设备66A到企业设备60的网络通信被边缘设备62A转发。边缘设 备62可以包括例如路由器、交换机、网关、或其他中间网络设备。在图4的实例中,边缘设备62还收集IDP 20的数据以辅助IDP20执行本发明公开中所述的三阶段分析。边缘设备62还可以收集IDP 20在执行学习阶段中使用的数据。 通常,边缘设备62确定相应的客户端设备66到企业设备60的连接数目和/或连接请求 的速率、每个事务类型的请求的总数以及边缘设备62中的一个连接到其上的客户端设备 66。边缘设备62将该数据转发到IDP 20,以及IDP 20聚集(aggregate)来自每个边缘设 备66的数据,以确定是否阻断客户端设备66中的特定的一个,例如,当客户端设备66 中的一个超过请求攻击事务类型的阈值时。在图4的实例中,边缘设备62B和62C被连接到采样设备64。采样设备64可 以附加地或者可选地被配置为为IDP 20收集数据,以辅助IDP 20执行的三阶段分析。以 这种方式,IDP 20可以根据远程监控包含恶意网络设备的多个网络设备来阻断恶意网络设备。尽管图4中示出了四个边缘设备62和八个客户端设备66,不过公共网络6可以 包括任意数量的边缘设备62和客户端设备66,并且以任意方式布置。此外,在一些实例 中,IDP 20通过一个或多个中间设备(诸如路由器、交换机、网关、或集线器)通信连接 到边缘设备62。图5是示出了用于执行学习阶段以动态确定连接阈值、事务类型阈值和客户 端_事务阈值的实例方法的流程图。尽管图5的方法主要相对于阈值学习模块59(图3) 来描述,不过可以配置其他的模块和/或设备来执行图5的方法。尽管图5中示为步骤 序列,不过图5的每个步骤还可以并行执行。在一个实例中,攻击检测模块52(图3)执 行图5的方法。通常,阈值学习模块59在学习阶段期间执行图5的方法以确定连接阈值 54、平均事务表56和平均客户端事务表58。在学习阶段期间,阈值学习模块59接收来自流表35(图2)的连接数据以及来 自协议解码器30(图3)的事务数据34和应用层元36。在图5的实例中,根据该连接数 据,阈值学习模块59确定连接的平均数(80)、连接请求的平均数(82)、以及接收连接请 求的平均速率(84)。作为一个实例,阈值学习模块59从TCP SYN数据包中识别连接请 求,为此,在TCP报头中设置SYN标记,器指向节点8中的一个(图1)。阈值学习模 块59将连接的平均数确定为学习阶段期间正在进行的连接的平均数。在一个实例中,阈值学习模块59将学习阶段分割为多个时间间隔(也被称为 “时间周期”)。阈值学习模块59确定每个时间间隔中的活动连接数目,以及计算该时 间间隔期间连接的平均数。阈值学习模块59可以将计算的连接的平均数设置为连接阈值 54。在一个实例中,每个时间周期包括三十秒。在一个实例中,阈值学习模块59确定 在每个时间间隔期间接收到的连接请求数目,以及计算该时间间隔期间的连接请求的平 均数作为连接阈值54的连接请求的平均速率。在一个实例中,连接阈值54包括存储活 动事务的平均数和连接请求的平均速率的表。阈值学习模块59还确定每个事务类型的事务的平均数(86)。阈值学习模块59 将平均事务表56构造为识别每个事务类型和在学习阶段期间请求每个事务类型的次数的 表。在一些实例中,阈值学习模块59确定在每个时间间隔期间执行每个事务类型的次 数,并对于这些时间间隔由该数目计算每个事务类型的平均值。在一些实例中,阈值学 习模块59构造平均事务表56作为类似于下表1的表表 权利要求
1.一种方法,包括使用第一网络设备监测到被所述第一网络设备保护的第二网络设备的网络连接;当确定与所监测的网络连接相关联的参数超过连接阈值时,监测与所述网络连接相 关联的多个事务类型中的每一个;当确定与所述多个事务类型中的至少一个相关联的参数超过相应的事务类型阈值 时,监测与发起所述多个事务类型中的所述至少一个的事务的网络地址相关联的通信; 以及当从所述网络地址中的至少一个发起的所述多个事务类型中的所述至少一个的事 务超过相应的客户端_事务阈值时,针对所述网络地址中的所述至少一个执行程序化操作。
2.根据权利要求1所述的方法,其中,监测所述网络连接包括确定到所述第二网络设备的网络连接的数目,作为 所述与所监测的网络连接相关联的参数,以及其中,确定与所监测的网络连接相关联的参数超过所述连接阈值包括确定到所述 第二网络设备的网络连接的数目超过所述连接阈值,其中,所述连接阈值限定了同时连 接的阈值数目。
3.根据权利要求1所述的方法,其中,监测所述连接包括确定对所述第二网络设备的连接请求的接收速率,作为 所述与所监测的网络连接相关联的参数,以及其中,确定与所监测的网络连接相关联的参数超过所述连接阈值包括确定对所述 第二网络设备的连接请求的接收速率超过所述连接阈值,其中,所述连接阈值限定了连 接请求被接收的阈值速率。
4.根据权利要求1所述的方法,其中,监测与所述网络连接相关联的所述多个事务类 型中的每一个包括监测所述事务的一个或多个协议字段的值。
5.根据权利要求1所述的方法,其中,监测所述多个事务类型中的每一个包括确定在一段时间内所述多个事务类 型中的每一个的事务数目,作为与所述多个事务类型中的所述至少一个相关联的参数, 以及其中,确定与所述多个事务类型中的所述至少一个相关联的参数超过事务阈值包 括确定所述多个事务类型中的所述至少一个的所述事务数目超过所述事务类型阈值, 其中,所述事务类型阈值限定了所述多个事务类型中的所述至少一个的事务的阈值数。
6.根据权利要求1所述的方法,其中,监测所述多个事务类型中的每一个包括确定所述多个事务类型中的每一个 的接收速率,作为所述与所述多个事务类型中的所述至少一个相关联的参数,以及其中,确定与所述多个事务类型中的所述至少一个相关联的参数超过事务阈值包 括确定所述多个事务类型中的所述至少一个的事务的接收速率超过所述事务类型阈 值,其中,所述事务类型阈值限定了接收所述多个事务类型中的所述至少一个的事务的 阈值速率。
7.根据权利要求1所述的方法,其中,监测与所述网络地址相关联的所述通信包括为所述网络地址中的每一个 确定在一段时间内从所述网络地址发起的所述多个事务类型中的所述至少一个的事务数 目,以及其中,执行所述程序化操作包括当为所述网络地址中的所述至少一个所确定的事 务数目超过所述客户端-事务阈值时,对所述网络地址中的所述至少一个执行所述程序 化操作,其中,所述客户端-事务阈值限定了单个客户端的所述多个事务类型中的所述 至少一个的事务的阈值数。
8.根据权利要求1所述的方法,其中,执行所述程序化操作包括执行以下操作中的一 个或多个阻断所述网络地址中的所述至少一个的网络连接、丢弃与所述网络地址中的 所述至少一个相关联的网络连接的数据包、阻断从所述网络地址中的所述至少一个发起 的连接尝试、向第三网络设备通告所述网络地址中的所述至少一个以使所述第三网络设 备阻断所述网络地址中的该至少一个的网络连接、向所述网络地址中的所述至少一个发 送结束会话消息、对来自所述网络地址中的所述至少一个的将来的网络会话进行速率限 制、以及向与所述网络地址中的所述至少一个相关联的所述第二网络设备发送结束会话 消息。
9.根据权利要求1所述的方法,进一步包括在发生在监测到所述第二网络设备的所述连接之前的学习阶段期间确定所述连接阈值;在所述学习阶段期间确定所述事务类型阈值;以及在所述学习阶段期间确定所述客户端_事务阈值。
10.根据权利要求9所述的方法,其中,确定所述连接阈值包括计算以下中的至少一 个在所述学习阶段期间的并发连接的平均数、在一个或多个时间段上的所述学习阶段 期间接收到的连接请求的数目、以及在所述学习阶段期间接收所述连接请求的速率。
11.根据权利要求9所述的方法,其中,确定所述事务类型阈值包括计算在一个或 多个时间段上的所述学习阶段期间的所述多个事务类型中的每一个的事务的平均数,以 及基于所述事务的平均数设置所述事务类型阈值。
12.根据权利要求9所述的方法,其中,确定所述客户端-事务阈值包括计算在所 述学习阶段期间来自各个客户端的所述多个事务类型中的每一个的事务的平均数,以及 基于事务的所述平均数设置所述客户端_事务阈值。
13.根据权利要求1所述的方法,其中,监测与所述连接相关联的所述多个事务类型 中的每一个包括对所述多个事务类型中的每一个的数据包进行解码,以从所述数据包中提取应用层 数据;以及执行来自所述数据包的所述应用层数据的内容检测。
14.一种网络设备,包括网络接口,接收受保护的网络设备的多个网络会话的数据包;计算机可读介质,存储连接阈值、事务类型阈值、和客户端-事务阈值;控制单元,具有一个或多个处理器;重组模块,在所述控制单元内执行,重组所述多个网络会话的应用层数据;以及攻击检测模块,在所述控制单元内执行,监测到所述受保护的网络设备的所述多个 网络会话的网络连接、当与所监测的网络连接相关联的参数超过所述连接阈值时监测与 所述多个网络会话相关联的多个事务类型中的每一个、当与所述多个事务类型中的至少 一个相关联的参数超过所述事务类型阈值时监测与发起所述多个事务类型中的所述至少 一个的事务的网络地址相关联的通信、以及当从所述网络地址中的至少一个发起的所述 多个事务类型中的所述至少一个的事务超过所述客户端-事务阈值时对于所述网络地址 中的所述至少一个执行程序化操作。
15.根据权利要求14所述的网络设备,其中,为了监测所述连接,所述攻击检测模 块计算与所述所监测的网络连接相关联的参数,作为到所述受保护的网络设备的连接数 目,以及确定到所述受保护的网络设备的所述连接数目是否超过所述连接阈值。
16.根据权利要求14所述的网络设备,其中,为了监测所述连接,所述攻击检测模块 计算与所述所监测的网络连接相关联的参数,作为到所述受保护的网络设备的连接请求 的接收速率,以及确定所述速率是否超过所述连接阈值。
17.根据权利要求14所述的网络设备,其中,为了监测所述多个事务类型,所述攻击 检测模块计算与所述多个事务类型中的所述至少一个相关联的参数,作为在一段时间内 针对所述多个事务类型中的每一个的请求数目,以及确定所述数目是否超过所述连接阈 值。
18.根据权利要求14所述的网络设备,其中,为了监测所述网络地址,所述攻击检测 模块计算在一段时间内从所述网络地址中的每一个接收针对所述多个事务类型中的所述 至少一个的请求的次数的数目,以及确定所述数目是否超过所述客户端_事务阈值。
19.根据权利要求14所述的网络设备,进一步包括阈值学习模块,用于在发生在监 测到所述受保护的网络设备的所述网络连接之前的学习阶段期间确定所述连接阈值、在 所述学习阶段期间确定所述事务类型阈值、在所述学习阶段期间确定所述客户端_事务 阈值,以及在所述计算机可读介质中记录所述连接阈值、所述事务类型阈值和所述客户 端-事务阈值。
20.根据权利要求19所述的网络设备,其中,所述阈值学习模块根据在所述学习阶段 期间的并发连接的平均数、在所述学习阶段期间接收到的连接请求的数目、以及在所述 学习阶段期间接收所述连接请求的速率中的至少一个计算所述连接阈值,其中,所述阈 值学习模块计算所述事务类型阈值作为在所述学习阶段期间所述多个事务类型中的每一 个的事务的平均数,以及其中,所述阈值学习模块计算所述客户端-事务阈值作为在所 述学习阶段期间来自各个客户端的所述多个事务类型中的每一个的事务的平均数。
21.根据权利要求14所述的网络设备,其中,所述程序化操作包括以下操作中的一个 或多个阻断所述网络地址中的所述至少一个的网络连接、丢弃与所述网络地址中的所 述至少一个相关联的网络连接的数据包、阻断从所述网络地址中的所述至少一个发起的 连接尝试、向第三网络设备通告所述网络地址中的所述至少一个以使所述第三网络设备 阻断所述网络地址中的该至少一个的网络连接、向所述网络地址中的所述至少一个发送 结束会话消息、对所述网络地址中的所述至少一个的将来的网络会话进行速率限制、以 及向与所述网络地址中的所述至少一个相关联的所述受保护的网络设备发送结束会话消 肩、ο
22.—种系统,包括 受保护的网络设备;多个客户端设备,其中,所述多个客户端设备中的每一个参与与所述受保护的网络 设备的多个网络会话中的一个;以及网络安全设备,位于所述受保护的网络设备与所述多个客户端设备之间,其中,所 述网络安全设备包括网络接口,接收所述多个网络会话的数据包;计算机可读介质,存储连接阈值、事务类型阈值和客户端-事务阈值; 控制单元,具有一个或多个处理器;重组模块,在所述控制单元内执行,重组所述多个网络会话的应用层数据;以及 攻击检测模块,在所述控制单元内执行,监测到所述受保护的网络设备的所述多个 网络会话的网络连接、当与所监测的网络连接相关联的参数超过所述连接阈值时监测与 所述多个网络会话相关联的多个事务类型中的每一个、当与所述多个事务类型中的所述 至少一个相关联的参数超过所述事务类型阈值时监测与发起所述多个事务类型中的至少 一个的事务的网络地址相关联的通信、以及当从所述网络地址中的至少一个发起的所述 多个事务类型中的所述至少一个的事务超过所述客户端-事务阈值时对于所述网络地址 中的至少一个执行程序化操作。
全文摘要
本发明公开了一种防御分布式网络泛洪攻击的网络安全设备,该网络安全设备执行业务的三阶段分析以识别恶意客户端。在一个实例中,一种设备包括攻击检测模块,在第一阶段期间,监测到受保护的网络设备的网络连接;在第二阶段期间,当该连接的参数超过连接阈值时,监测多个网络会话的多个事务类型;以及,在第三阶段期间,当与至少一个与事务类型相关联的参数超过事务类型阈值时,监测与发起至少一个事务类型的事务的网络地址相关联的通信。当从至少一个网络地址发起的多个事务类型中的至少一个的事务超过客户端-事务阈值时,该设备对于网络地址中的至少一个执行程序化操作。
文档编号H04L12/26GK102014116SQ201010235869
公开日2011年4月13日 申请日期2010年7月22日 优先权日2009年9月3日
发明者克里希纳·纳拉亚纳斯瓦米, 布赖恩·伯恩斯, 文卡塔·拉马·拉朱·曼特纳 申请人:丛林网络公司