首页> 中国专利> 用于潜在被污染端系统的牵制机制

用于潜在被污染端系统的牵制机制

摘要

提供了一种基于流量模式异常检测的恶意软件检测和响应系统,由此对每个方向不同地计数网络单元的每个端口上与各种协议相关联的分组。这样的分组包括:ARP请求、TCP/SYN请求和确认、TCP/RST分组、DNS/NETBEUI名查找、输出ICMP分组、UDP分组等。当分组造成独立计数或计数组合超出门限时,采取适当的动作。所述系统可以被并入到快速路径中,也就是,数据平面,使得诸如交换机、路由器和DSLAM的通信系统能够以非常低的成本具有内在安全性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-04-24

    授权

    授权

  • 2010-04-28

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20080122

    实质审查的生效

  • 2009-11-25

    公开

    公开

说明书

技术领域

本发明涉及通信网络上的安全传输,并且特别地,涉及用于通信网络的潜在被污染端系统的牵制机制。

背景技术

安全性是现代通信网络中的关键特征;提供安全解决方案要求了解可能的威胁场景和它们的相关要求。网络安全系统还需要是灵活的,以促进跨管理域的互操作和协作。

随着通信网络扩展并且汇聚为集成的全球系统,正在开发并采用开放协议标准,目的是使得能够灵活地和广泛地使用信息的收集和交换。不幸地是,这些开放标准倾向于使网络更容易遭受与安全相关的攻击;TCP(传输控制协议)是在系统用户将连接网络用于严格合法的目的的基础上被设计的,所以没有对安全问题给予特别的考虑。由于很多路由协议依赖TCP(例如,边界网关协议BGP使用TCP作为它的传输协议),这使得它们易受TCP协议本身的所有安全弱点的攻击。

在网络中有很多种必须要考虑的安全顾虑。本发明涉及检测感染了蠕虫的系统。蠕虫是一种以各种方式跨网络复制自身的程序,受害者通常不是被作为特定目的,而只是一个不幸的主机。蠕虫通过利用已知的和先前未知的软件脆弱性操作,并且快速跨网络繁殖。通过劫持通常以被提高的特权运行的受信任应用,诸如网络服务器、邮件传送代理、登录服务器,蠕虫可以得以完全使用系统资源,并造成完整系统受损。即使蠕虫对网络装备的任何给定块的影响经常是良性的,数万个受感染网络单元向其它网络单元尽快扩散恶意软件的累积效应却可以是灾难性的。蠕虫,尤其是快速扩散的“flash蠕虫”,曾给互联网带来严重破坏;例如,Code Red(红色代码)和Nimda(尼姆达)曾造成互联网中的大拥塞,很多情况下要求关闭很多企业的整个网络。

在计算机网络是实体内和实体间通信和交易的关键要素的世界中,IP网络的可靠性和安全性是根本的。尽管当前的防御模型已有多年经验,迄今还没有能够提供一个模型,它的最终目的是以很少的关联成本和干扰提供针对所有攻击的完全保护。实际入侵检测技术没有给出高端路由器所要求的适当的性能级别。为了解决这个问题,当前正在设计新的技术。对于电信行业,这是个关键挑战,并且迄今为止已提出了很多部分解决方案。尽快检测蠕虫的繁殖并且有效地反作用于正在进行的攻击以便保护网络基础设施的能力正变成网络运营商的真实挑战,特别是在大的分布式网络的情况中。

攻击检测方法学可以被划分成两个主要种类:基于流的分析和深度分组分析。基于流的分析是基于监控电信基础设施中的流量来检测不寻常的流量模式。它通常依赖于在网络路由器中实现的像Netflow、IPFix和实时业务流监控(RTFM:http://www.auckland.ac.nz/net/Internet/rtfm/)的技术。深度分组分析方法学是基于通过分析每个分组来检测已知的特征或经常看到的模式来来追溯单个恶意IP分组。追踪连续流的方法还可以被用来追溯单个分组,诸如iTrace。

多数基于流的分析方法是基于对异常流量模式的统计检测。例如,ConSentry Networks使用复杂ASIC来处理对流量的统计分析。CetaseaNetworks的Orcaflow产品使用从标准MIB中采集的统计来发现与基线的偏差,HP的ProCurve Swithe实现连接速率极限等。

所提出的用于检测攻击的其它统计技术是“顺序假设测试”。尽管该方法有快速的反应时间,它要求确定每个连接请求是否成功。其它技术提出监控蠕虫的不同特征,诸如识别同样的(重复的)分组,或者基于DNS(域名服务器)查找的缺乏识别恶意分组,或者基于像对等体列表、ARP(地址解析协议)速率、互联网暗区等向分组分配分数。

理想地,网络运营商致力于快速识别受感染机器并尽快隔离它;否则,在产生任何报警前,感染会充分扩散。然而,为检测和预防安全攻击所付出的价格是巨大的。今天,企业部署分层防御模型,包括防火墙、防病毒系统、接入管理和入侵检测系统(IDS)。除了昂贵外,迄今可用的解决方案没有足够快地检测和结束蠕虫繁殖跨网络扩散。响应度受当前的解决方案是基于多个部件的事实的影响,所述多个部件可能在沟通和协调所要求的对策上有问题。

对通过高端路由器的所有分组的监控和分析要求与路由器耦合的专门的硬件或附加装备,这增加了基础设施的复杂度和成本。即使这样,它可能仍有效率问题。基于识别攻击的特征的解决方案是效率非常低的,因为这些解决方案的响应时间大,总是滞后新蠕虫几天。而且,对所连接的主机的数量设置适当的极限用于定义攻击是困难的:一些服务器合法地与很多主机对话,而且一些客户端也与很多主机对话——例如,一些网页,像例如www.cnn.com,是复杂的并且与几十个主机对话,所以将误报和漏报均减到最少是困难的。

此外,在“好”和“坏”代码的身份或行为之间区分是极其困难的。这导致大量的“误报”,使很多预防系统的目的限于检测事件而不是保护它们。

流量模式异常检测提供一种有远景的检测蠕虫的解决方案。多数的流量模式异常检测方法是通过对某些端口的统计进行的,并且它们可以被分类成两种主要方法:比较、行为。在比较方法中,计划是建立各流的基线特征,然后检测与基线的偏差。明显地,该方法不能有非常快速的检测时间,并且在适合蠕虫检测上不是很理想。

现有的行为方法试图识别类似蠕虫的行为并且试图识别呈现任何这些行为的主机。当前的行为检测方法有几个主要缺陷。所有的现有产品都将蠕虫行为检测功能并入到在独立的交换机中的高性能ASIC部分中。单个的网络流量(或“管道”)被汇聚向高性能ASIC,这使得分出每个主机或端口成为甚至更复杂的问题。而且,所汇聚的管道的速度可能比单个管道的速度更高,所以所需要的汇聚CPU周期会非常高。行为检测系统更可能被朝向网络的核心放置,所以本地流量将不被所述系统“看到”。这意味着受感染的主机可以感染整个工作组而不造成任何报警。在网络中安装附加的检测系统将导致每个分组的更多延迟,并且还将增加管理等。

总之,被当前的行为方法使用的这种复杂处理不能在快速数据路径处被进行;被现有的行为检测系统采取的任何动作都必定被延迟。但是任何延迟都是不受欢迎的;在这种上下文中,通过的任何分组转移到潜在的另一受感染机器。

因此,需要提供容易安装和维护的、用于检测和限制网络中的恶意活动(例如,互联网蠕虫)的新技术和系统。

发明内容

本发明的目的是提供一种用于通信网络的潜在被污染端系统的检测和响应机制。

相应地,本发明提供一种用于在通信网络的边缘处连接的网络单元的恶意软件检测和响应系统,所述恶意软件检测和响应系统包括:头部数据处理单元,其用于检查在所述网络单元的端口上看到的每个协议数据单元的头部数据,并且识别PDU类型;计数器单元,其用于基于所述PDU类型提供每个流量方向的多个计数值;用于存储极限表和规则集的装置,所述极限表为每个所述计数值设置对应的极限,所述规则集为所述端口定义攻击模式和牵制动作;以及攻击识别和牵制单元,其基于所述计数值、极限表和规则集识别攻击的类型,并且初始化用于牵制所述攻击类型的防御动作。

本发明还提供一种用于在通信网络的边缘处连接的网络单元的端口的恶意软件检测和牵制方法,所述方法包括以下步骤:i)检查在所述端口上看到的每个协议数据单元(PDU)的头部数据,用于确定每个所述PDU的PDU类型;ii)为每个流量方向维护多个计数器,所述多个计数器基于所述PDU类型提供计数值;iii)提供具有对应于每个计数值的预置极限的极限表和为所述端口定义攻击模式和牵制动作的规则集;以及iv)基于所述计数值、极限表和规则集识别攻击的类型。

根据本发明的所述恶意软件检测和响应系统使得能够为通信网络防御蠕虫,同时避免在多数当前网络中为此目的所实现的所有错综复杂的处理。由于所述恶意软件检测和响应系统不要求开发用于每个新蠕虫的特征定义,该系统的实现和使用不取决于蠕虫特征的持续更新,并且不要求技术管理员的注意。这种与蠕虫特征的独立性的附带优势是攻击者不能通过操作流量特征结果避免检测。

根据本发明的所述恶意软件检测和响应系统的另一优势是它可以被构建到边缘交换机的每个端口中而不需要特殊的硬件。本发明的所述系统可以被并入到“快速路径”中,也就是,数据平面,使得诸如交换机、路由器和接入/边缘装备的通信系统能够以非常低的成本具有内在安全性。

最重要的是,本发明提供一种牵制机制,所述牵制机制使用组合的检测和响应,用于使能早期告警而没有误告警的问题,并且能够管理并且为单个主机轻松设置极限。

附图说明

从以下对在附图中示出的优选实施例的更特别的描述,本发明上述的和其它的目的、特征和优势将变得显而易见,在所述附图中:

图1示出根据本发明实施例的恶意软件检测和响应(MDR)系统的框图;

图2a、2b和2c示出为识别与各PDU相关联的桶所实施的对协议数据单元(PDU)头部的比特的附加随机化;

图3示出监控快速数据路径中的流量的方法的流程图;以及

图4示出检测攻击的方法的流程图。

具体实施方式

本发明提供一种恶意软件检测和响应(MDR)系统,所述恶意软件检测和响应(MDR)系统可以被轻松集成到现有网络装备的硬件中,并且优选地在网络的边缘设备处。例如,所述恶意软件检测系统可以被并入到但是不限于网络交换机中,或者被并入到智能服务接入管理器(ISAM)、数字用户线路接入复用器(D-SLAM)、或甚至非对称数字用户线路(ASDL)调制解调器中。以上通过示例方式列出的网络单元在带宽、服务智能、IP/以太网特征和可扩展性方面属于一种产品族,所述产品族使得电信装备厂商能够提供为海量的三网合一(3P)部署准备的下一代接入网络。因而,ISAM是为无阻塞3P服务递送定制的线速IP DSLAM;D-SLAM是在IP/以太汇聚网中操作的DSL(数字用户线路)接入复用器;并且ADSL在单个电话接入线路上支持传统电话服务之上的高速数据通信,用于将运营商的现有铜双绞线投资变形成多媒体宽带分布系统。

图1示出根据本发明的恶意软件检测和响应(MDR)系统1的框图。该图一般地示出带有端口12的网络单元(NE)10;NE 10在该例子中被连接在接入网络和互联网之间的边界处。在本说明书中,这样的单元,数字数据经过所述单元被从一个点经过通信线路传输到另一点,一般被称为协议数据单元(PDU)。该术语包括被根据各种传输协议格式化的数据单元;PDU可以是根据各传输协议生成的IP分组、TCP分组、帧等。

PDU可以例如是ARP请求、TCP/SYN请求和确认、TCP/RST分组、DNS/NETBEUI名查找、输出ICMP分组、UDP分组等。在这些例子中,地址解析协议(ARP)是被用来将在传输网上使用的IP地址转换成诸如在LAN/MAN/WLAN上使用的以太网地址的物理地址的TCP/IP协议。如果NE使用ARP,ARP请求和响应可以在端口12上出现。在这种情况下,当NE希望获得接入网上主机的物理地址时,它向接入网上广播ARP请求。接入网上具有所述请求中的IP地址的主机然后以它的物理地址应答。主机还使用逆向ARP(RARP)来发现它的IP地址。在这种情况下,主机广播它的物理地址,RARP服务器以主机的IP地址应答。

NE 10还可以使用IP/TCP。已知为了建立连接,通过交换特定类型的分组,TCP使用“3次握手”。互联网协议头部携带几个信息字段,包括源和目的地主机地址信息。头部还包括6个被根据分组类型设置的控制比特(或标记)。在三次握手期间在分组中设置SYN标记,所述SYN标记被用来同步各流中的分组的序号。当正常的TCP连接开始时,目的地主机从源主机接收SYN(同步/开始)分组,并且发送回SYN ACK(同步确认)。然后目的地主机必须在连接被建立前听到SYN ACK的ACK(确认)。

当TCP连接的端点希望结束它那半的连接时,它传输FIN分组,另一端以FIN/ACK确认所述FIN分组。在拆除现有连接期间在分组中设置FIN标记,所述FIN标记被用来指示不再有来自发送者的数据。RST标记被设置来请求连接的重置。典型的连接拆除要求来自每个TCP端点的一对FIN和FIN/ACK段。

端口12上的其它类型的PDU可以使用域名系统(DNS)用于将网络节点的名转化成地址。网络基本输入/输出系统(NetBIOS)是连接网络硬件和网络操作系统的传输协议;它使得能够在DNS中查找。NetBios扩展用户接口(NETBEUI)是被诸如LAN管理器、LAN服务器、用于工作组的Windows、Windows NT的网络操作系统使用的NetBIOS协议的增强版本。

现在返回到图1,本发明的MDR系统1监控到达端口12上的PDU。可以在NE的选择的端口或全部端口上实施所述监控;图1通过示例方式仅示出端口12。在最广泛的方面,系统1包括头部数据处理单元14、计数器单元16、用于极限表的存储装置20、攻击识别和牵制(AIC)单元24和计时单元11。

头部数据处理单元14监控在端口12上看到的PDU,并且检查PDU的头部的各种字段中的数据,目的是确定PDU类型,以确定计数器单元16的哪个计数器应当被更新。PDU的“类型”基于头部中的信息被建立,并且识别由所述PDU发起的动作。PDU类型的例子是SYN_in、ARP_query_in等。例如,通过检查各标记是否在输入IP/TCP分组的头部中被设置,识别SYN_in分组。单元14监控输入和输出双方向中的头部;术语“看到的”在本说明书是指从远端主机到达端口12上的PDU(输入PDU)或从端口12被传输到远端主机的PDU(输出PDU)。要注意,术语“流量方向”被用来识别“输出”和“输入”PDU。术语“输出”和“输入”此处被相对于网络单元10的端口12使用。

可以在硬件中构建头部数据处理单元14,在这种情况下它可以简单地包括许多用于PDU头部中的每个感兴趣的比特位置的比较器。基于硬件的解决方案还可以使用内容可寻址存储器(CAM)来检测分组头部中的特定字段。选择性地,可以使用简单的软件模块来测试头部中的各字段。对本领域的技术人员来说,其它的选择性方案将是明显的。

计数器单元16包括多个也被称为简单计数器的计数器15和复杂计数器单元25。在系统1的更精密复杂的实现中优选地使用复杂计数器单元25,用于确定远端主机的数量,如随后所描述的。要注意,可以有多个“复杂计数器”25,用于要保护的每个端口。

在本说明中使用术语“计数值”来指代计数器15的内容。每个计数器15与特定类型的PDU相关联。并且当对应的PDU被检测时被递增。同样地,在端口12上看到的每个PDU更新零个、一个或多个计数器;计数器15的数量(以及隐含地,类型)是取决于要在各端口处收集的信息的类型的设计参数。因而,NE 10可以装备有分别用于计数ARP请求(问询)和响应的ARP计数器:ARP_query_in分组将更新ARP_query_in计数器15,ARP_response_out分组将更新ARP ARP_response_out计数器等。当端口配备有复杂计数器单元25时,获得更多的流量信息,这使得能够计数远端主机的数量。在这种情况下,对于输出ARP请求,计数器15计数ARP请求的总数,单元25确定在所述请求中提到的不同主机的数量。类似地,对于输入ARP响应,计数器计数ARP响应的总数、作出响应的不同主机的数量和在输出ARP请求中提到的作出响应的主机的数量。

TCP计数器15还可以被用于SYN和SYN/ACK分组。现在,对于输出SYN请求,TCP计数器计数所发送的SYN请求的总数、不同的远端主机的数量和不同的远端主机和端口号对的数量。对于输入TCP SYN/ACK确认,计数器15计数所接收的SYN/ACK的总数、不同的远端主机和端口号对的数量和与输出SYN分组中的主机匹配的主机/端口的数量。

通过类似的方式,对于输入RST分组,计数器15计数所接收的RST分组的总数,单元25计数不同的远端主机的数量、不同的远端主机和端口号对的数量、与输出SYN分组中的主机匹配的主机/端口的数量。对于其它连接类型(非ARP等),计数器计数输出广播的总数。

DNS计数器15还可以被用于获得关于DNS/NETBEUI查找的统计。对于输出DNS/NETBEUI查找,本发明的系统计数查找的总数和为输入请求所查找的不同的名的数量。对于输入DNS/NETBEUI查找,所述系统计数成功的查找的数量、失败的查找的数量和中间结果的数量,所述中间结果是导致向另一DNS服务器转发的DNS问询。

计数器还可以被用于计数每个类型的输出ICMP分组。互联网控制消息协议(ICMP)是对互联网协议(IP)的扩展,它支持包含错误、控制和信息的消息的分组。

同样地,可以在指定的UPD计数器中计数UPD分组。用户数据报协议(UDP)是IP网络层上的最小的、面向数据报的、传输网络协议,它不保证数据排序或递送。因为它是面向数据报的,所述应用的每个发送操作导致单个IP数据报的传输。这种操作模式与TCP形成对比,TCP是面向字节流的并且保证所发送字节的递送和排序。在本发明的一个实施例中,对于输出UDP分组,UDP计数器计数所发送的分组的总数、不同的远端主机的数量、不同的远端主机和端口号对的数量。对于输入UDP分组,计数器追溯所接收的分组的总数、不同的远端主机的数量、不同的远端主机和端口号对的数量、以及与输出UDP分组中的主机匹配的主机/端口的数量。

要注意的是,以上的计数器15的列表不是穷举性的。表1提供了在本发明的实验性实施例中使用的计数器的类型。如以上所指示的,术语输入和输出是相对于端口12使用的。

表1

PDU类型              计数器类型(所计数的特征)

ARP_query_in      #本地子网中的源的数量

ARP_query_out     #本地子网中的预期目的地的数量

ARP_response_in   #实际存在的本地子网中的预期目的地的数量

ARP_response_out  #回答本地子网中的源的次数

SYN_in            #所尝试的输入TCP连接的数量

SYN_out           #所尝试的输出TCP连接的数量

SYNACK_in         #目的地接受的所尝试的输出TCP连接的数量

SYNACK_out        #主机接受的所尝试的输入TCP连接的数量

FIN_in            #输入扫描(未真正使用)的数量

FIN_out           #输出扫描的数量

FINACK_in         #输入套接字关闭的数量

FINACK_out        #输出套接字关闭的数量

RST_in            #输入重置的数量

Unreachable_in    #目的地不可达(任何原因)的次数

要注意的是,即使计数器的列表非常长,每个分组可以仅是一个协议TCP、ARP、UDP等,所以,每分组的工作相当于确定分组的类型的几个测试,并且然后为各协议递增几个计数器。

MDR系统20维护在所述网络单元处可用的任何适合的存储器中存储的极限表21;这一般通过存储装置20示出。极限表21维护用于每个计数器的独立极限(individual limits),以及用于计数器组的组合极限,所述组合极限涉及对许多计数器中的计数值实施一些简单操作。表20还存储规则集22,规则集22定义攻击和对各攻击的牵制动作。集22中的规则对每个端口是可配置的,目的是检测异常流程模式,知道合法流量的已知模式等。极限表21的另一变体是保持概率极限,计数器追踪计数值,极限被预转换成概率值。

优选地,极限由相应网络(未示出)的NMS(网络管理系统)或OSS(操作支持系统)设置或改变。由于多数网络使用DHCP来分配IP地址,NMS可以直接下载为主机的种类定制的边界集。这可以随主机MAC地址、物理端口、VLAN分配或任何其它本地特征而变。

还可以设想结合不同的牵制动作(或响应)的动态极限。例如,初始设置特定计数器15的边界为紧(tight)并且以对这些边界的牵制动作响应是可行的,当边界被触发时,这些牵制动作仅使端口减速而不是将它关闭。通过这种方式,NE得到在进行中的可能攻击的早期告警,而不过度打扰用户。当特定的计数器触发告警时,响应可以自动放松极限。这种类型的响应在初始设置期间对适应性地设置服务器的极限等是有用的。

攻击识别和牵制单元24包括用于识别攻击的攻击识别块23和基于攻击类型触发适当的防御动作的攻击牵制单元26。因而,块23从所需要的单个计数值中计算合成计数值,并且将所述单个和合成计数值与对应的独立和合成极限进行比较。如果一个或多个极限被越过(cross),块23基于规则集22中的规则识别可能的攻击类型。如果NE 10装备有复杂计数器单元25,通过将用于由计数器15提供的独立/合成计数值的、被越过的极限与由复杂计数器单元25提供的远端主机的数量相关联,攻击识别块23识别攻击。简言之,如果一个或多个计数器中的计数值越过极限/门限,单元24在规则22中识别不被端口12上的各流量流遵从的特定规则。

一旦攻击的类型已被识别,攻击牵制块26再次基于规则集22中的规则触发特定的防御动作。理想地,每次计数器被改变时,攻击识别和牵制单元24应当检查极限。尽管这种操作模式给予最快的响应时间,它要求数据路径中的处理功率。优选地,根据各计数器的类型,为每个计数器设置时间窗口TW。多数计数器15可以使用非常短的时间窗口,例如,5秒。例如,ARP_failures计数器是扫描本地子网的非常明确的指示符,所以它应当立即触发它的极限。其它计数器在本质上更多是统计上的,所以更长的时间间隔是合理的,比方说三十秒。例如,用于TCP/IP分组的计数器需要更长的窗口,因为连接的持续时间可能延展更长的时间段等。

表2给出MDR系统1使用的不同规则的例子,并且提供规则名、用于评估与为各规则设置的极限的一致性的时间窗口、与各规则(以及如何获得合成值)相关的独立/合成计数值、对规则的极限和(可能的)攻击类型。独立计数值的例子是指示本地子网上的对等体的数量的ARP_query_out和指示被端口12接收的RST分组的数量的RST_in。合成计数值的例子是SYN_out-SYNACK_in,它指示失败的输出尝试的数量。

表2

规则名        TW   计数值            极限    攻击类型

ARP_failure   5    ARP_query_out-    >1     #主机试图与相同子网中不存

                   ARP_response_in           在的对等体对话的次数

ARP_Poison    5    ARP_response_out- >1     #来自主机的非请求ARP响

                   ARP_query_in              应的数量,典型地是ARP有害

                                             尝试

ARP_count     30   ARP_query_out     >10    #本地子网上的对等体的数量

SYN_failure   30   SYN_out-SYNACK_in 见a     #失败的输出尝试的数量

SYNACK_sca    30   SYNACK_out-SYN_in 见b     #太多的输出SYNACK,可能

n                                            是扫描

FIN_scan      5F   IN_out            >1     #输出FIN扫描的数量

FINACK_diff   30   FINACK_out-       见c     #两个方向的FIN+ACK计数

                   FINACK_in                 不匹配,可能是XMAS树扫描

RST_count     30   RST_in            见d     #太多的输RST

Unreachable_c 30   Unreachable_in    >20    #太多的输入目的地不可达

ount

表2中,以a)标志的SYN_failure的极限提供失败的输出连接的数量,如从SYN_out-SYNACK_in中计算的。在正常使用期间,几乎所有的输出连接都成功。有一些很多输出连接失败的情况,诸如像在目的地可能被关掉的P2P软件的情况中。两部分规则被用于检测:

○如果SYN_out是小的,不采取动作。

○如果SYN_out是大的(比方说30秒中10个尝试),超过20%的故障率是告警的原因。

极限b)被设置用于指示端口扫描。正常地,响应于输入SYN分组发生的ACK输出分组(SYNACK分组)的数量被期望是接近于SYN分组的数量。当有太多的输出SYNACK分组时,它可能是端口扫描。使用两部分测试:

○如果SYNACK_out-SYN_in是小的,没有动作。

○如果差>2,(SYNACK_out/SYN_in)的比率>20是端口扫描。

FINACK_diff的极限c)指示两个方向上的FINACK分组的数量不匹配。在正常使用期间,两个数量应当非常接近,不管是哪侧开始FIN顺序。如果主机发送的多于它接收的,这是扫描的指示,诸如像所有标记被设置的XMAS树扫描。使用两部分测试:

○如果输入和输出FINACK分组之间的绝对差是小的,没有动作。

○如果绝对差是大的(30秒中发送的比接收的多5个以上FINACK分组),则FINACK_out/FINACK_in  或FINACK_in/FINAcK_out>1.2引起告警。

极限d)提供输入RST分组的数量。每个RST分组可能地是扫描尝试的响应,但是在很多合法情况中也使用RST,所以触发被设置地相对高,例如30秒中50RST分组。

使用独立极限的规则的一些例子如下:

-如果countSYN>100,蠕虫试图连接很多主机;

-如果countUDPout>100,蠕虫试图通过UDP连接很多主机;

-如果countARP>100,蠕虫探测本地子网。

使用合成极限的规则的例子如下:

-(countSYN-countSYNACK)/countSYN>0.15指示TCP的低完成率;

-(countUDPout-countUDPin)/countUDPout>0.15指示UDP的低完成率;或

-(countRST+countICMPnonreachable)>19指示很多远端主机拒绝对话或不可达。

进一步地,合成极限可以被设置为以上条件的组合。例如,如果((countSYNhosts>50)&(countSYN-countSYNACK>30)),则蠕虫试图连接太多的主机,但是仅通过一些。

要注意的是,网络内不是所有的装备需要实现所有的计数器、以上提供的极限和规则。取决于所要求的保护、存储器占用量、快速数据路径的处理功率、慢速控制路径的处理功率等,每个实现可以选择一些子网。

在进行所有的计数后,攻击识别块26检查计数值相对于表21中的极限,并且基于规则22识别攻击类型。然后,基于攻击类型和它的比重、基于预置规则22,攻击牵制单元26可以采取许多动作:

a.完全关闭端口,直至手动重置。这对具有非常低的误报的规则将是适用的。

b.将所述端口隔离到仅专用于补救的VLAN,其中,可以带来病毒扫描器和其它工具来承载。

c.将所述端口隔离到蜜罐(honeypot)VLAN以便可以观察进行中的蠕虫。

d.临时关闭所述端口;比方说1秒,然后2秒,然后4秒,每次翻倍。这对当合法用户可以偶尔达到极限时具有模糊边界的规则是适合的,该动作意味着在极限处仅使用户减速(所以合法用户不会受到很大影响),但是蠕虫将被减速并且最终被关闭。

因为检测在“快速”路径中被进行,可以立即采取以上动作,包括丢弃触发所述动作的分组。而且,因为所述检测在网络的边缘处被实施,所采取的动作是高度专用于单个主机,或者被连接到物理端口的少量主机。

如以上所指示的,每侧(远端和近端)或流量的每个方向的计数器被独立保持。为每个方向保持独立的计数器消除了为每个方向匹配请求/响应对的需要,简化了恶意软件检测。这消除了保持远端主机地址的列表的需要,所述列表将消耗很多存储器和CPU周期。尽管这样的列表将使得能够进行更精确的恶意软件检测,计数远端的数量、记忆并匹配每个分组的每个IP/端口组合昂贵的惊人;通常的方法相当慢并且使用太多存储器。为交换机的物理端口提供本发明的恶意软件检测和响应系统,导致确定哪个端口被攻击,而不依赖识别入侵者的分组,以便获得免费的抗欺骗。

通过计数远端主机的不同的IP地址,可以提供更精确的检测;这些可以只是远端IP地址或IP地址-端口组合。追踪远端主机的常用方法将再次遇到CPU和存储器限制。对于输入PDU,代替使用远端主机的地址列表,本发明的系统使用复杂计数器单元25追溯远端主机的数量。该技术比保持地址列表快得多,以精确性为代价节省了处理器周期和存储器。复杂计数器单元25包括多个桶19、桶选择器18和桶计数单元17。例如,复杂计数器单元25可以配备有用于每个流量方向和每个协议类型的所设置的桶计数单元17。优选地,以所选择尺寸的阵列的形式提供桶19。要注意的是,尽管为以上列出的每个PDU种类维护远端主机的不同的桶19是令人期望的,组合所述桶是可行的。在对于所有输入和输出分组甚至仅使用单个散列表的极端情况下,有很多值。

观念是散列来自识别远端主机的头部字段的地址数据,如一般通过桶选择器18所示出的。所获得的散列值然后被用作到阵列19的索引,并且对应各散列值的桶(比特)被设置。选择性地,设置的桶计数单元17可以计数未被设置(或非设置)的桶。通过这种方式,每个桶被与特定的远端主机地址相关联。桶计数单元17确定经过特定时间TW设置了多少桶。桶数量指示在该时间间隔期间多少远端主机接收/传输了流量。例如,如果远端主机的数量高的令人可疑,攻击可以被检测。

桶在所述时间窗口期间仅使用非常简单的算法被设置一次。如果桶选择器18识别比方说Bucket#i(桶#i),并且该桶已经被设置,则什么也不发生。另一方面,如果Bucket#i(桶#i)还未被设置,则设置它。用于桶更新步骤的伪代码是:

Declare seen as Boolean[m];  set m buckets

Bucket=hash(IP,port);    hash to find bucket number

If(seen[bucket]);          already seen this bucket,do nothing

else;                      have not see this bucket

    count=count+1;

    seen[bucket]=true;

endif

(宣告视为Boolean[m];设置m桶

桶=hash(IP,端口);散列以发现桶数量

如果(看到[桶]);已经看到该桶,什么也不做

否则;还未看到该桶

    计数=计数+1;

    看到[桶]=真;

结束如果)

确定被设置(或非设置)的桶的数量的明显方式是贯穿(1oop over)每个比特,或者采用每个字节并且查找表;这两种方法均相当慢。另一方面,本发明的系统使用这样的算法,所述算法基本上将每个比特作为独立的数量和求和对平行处理。通过这种方法,它采用大约十二个指令来计数在32比特字中设置的比特的数量。

优选地,被散列的比特是分组的IP地址比特,或是IP地址比特和端口号比特;在下文中我们称该数据为地址数据。在本发明的一个实验性实施例中,在256比特(m=256)的比特阵列上实现所述桶,并且所选择的散列函数将该数量减小到8比特。由于IP地址空间是32比特,对于8-比特散列,在相同桶中有224种组合的选择。换言之,224地址数据可以设置相同的桶。这意味着攻击者可以尝试通过与落入相同桶中的主机/端口对话以便使远端主机的数量保持为低来避免触发。

可以使用特定的对策来解决这种情形。例如,可以设计散列函数,以便相同子网中的地址有可能使用不同的桶(这是期望来自散列函数的“随机化”特性)。如图2a中所示,一起XOR(异或)四个地址字节将区分子网。如图2b中所示,XOR(异或)IP地址的最后字节和端口号的较低字节将确保既不是水平扫描(相同的端口号,不同的IP地址)也不是垂直扫描(相同的IP地址,不同的端口)将在相同的桶中结束。另一解决方案是向散列函数添加随机函数发生器(randomizer),如图2c中所示。因而,可以在启动时间挑拣随机的32比特数,并且在进行XOR(异或)前将它添加到IP地址。这保留了以上的子网散射特性并且使攻击者难以停留在相同的桶中。一般地,函数的选择取决于所期望的攻击检测的复杂性。

如以上所讨论的,每个端口或仅是感兴趣的某些端口可以配备有本发明的MDR系统。要注意,本发明的另一优势是不必要同步对NE的所有端口的轮询;展开轮询是没有害处的。取决于平台,一个容易的方式是将计数器的轮询与SNMP轮询集成,这意味着当用于该端口的SNMP被处理时检查端口的计数器。而且,实际上,在轮询间隔中不需要高的精度,所以它可以作为低优先级任务被进行。

优选地,使用“线性计数”函数来散列地址数据,如K-Y Whang等人在论文“A Linear-Time Probabilistic Counting Algorithm for DatabaseApplications”中所描述的,该论文呈现了对这些计数技术的彻底的数学处理。这种类型的函数已被选择,因为它是整个概率计数技术家族中最精确的。Whang等人得到对实际线性计数的最佳估算:

n^=-m*ln(z/m)

其中,m是阵列大小,z是阵列中未设置项目的数量,n是真实计数。Whang等人还得到对该类型函数的错误估算:

StdErr(n^/n)=m(exp(t)-t-1)n

其中,t是通过n/m比率确定的加载因素。

该论文还给出用于获得期望的精确性的准则。如果将该论文的发现应用于本发明的系统,注意阵列19的大小可以被从以上讨论的256比特显著减少,而对恶意软件检测的精确性没有显著影响。更小的阵列是令人期望的,以便使得在软件中的实现更容易。对于本发明的MDR系统,如果阵列19有四字节(而不是256),作为结果的精确性是17%。对于两字节阵列,精确性掉到35%。这意味着甚至专用于该阵列的非常小的存储空间仍能够获得全面的结果。

向NMS/OSS传送相关的计数以进行长期(如以分钟/小时)分析来检测非常低速的秘密蠕虫也是可行的。

接下来提供本发明的MDR系统如何操作的一些例子。

例子1

假定有TCP flash蠕虫通过地址扫描本地子网。这将造成大量的ARP请求,以及更少量的ARP响应(基本上,仅是具有实际主机的地址将响应)。成功的ARP将被试图建立连接的SYN分组跟随。已知极限是可配置的,通过以下将可以捕获这种蠕虫:

a.如果countARP>100;如果子网有太多未使用的地址,该极限触发。

b.如果countSYN>100;如果多数地址在用,该极限触发,所以蠕虫将试图与它们全部进行对话。

c.如果(countSYN-countSYNACK)/countSYN>.15;当多数目标拒绝响应蠕虫(因为蠕虫只是盲目地探测)时,该极限触发。

d.如果countSYNhosts>100;当蠕虫实际成功地发现并与很多主机对话时,该极限触发。

如果UDP flash蠕虫违犯对对应的UDP计数器的任何极限,它将被捕获。

例子2

假定SYN洪水攻击起源于端口12。通过为SYN计数器设置的极限,任何高强度攻击将容易被检测。通过为SYN和SYN/ACK分组的数量之间的差建立的规则,甚至将捕获低强度攻击:

(countSYN-countSYN/ACK)/countSYN

例子3

有目标的蠕虫,也就是不盲目扫描地址而是使用联系簿来获得机器名的蠕虫,将通过以下被捕获:

如果countARP>100

如果countSYN>100

如果(countSYN-countSYNACK)/countSYN>.15

如果countSYNhosts>100

如果countNameLookup>100

例子4

假定Smurf攻击正在进行,即,如果countBroadcast>100,发送很多引起对起源者的响应分组的广播分组的攻击将被捕获,所述广播分组被伪造成受害者的IP地址。

图3示出使用MDR系统1监控快速数据路径中的流量的方法的流程图。首先,如步骤30中所示,在表21中建立极限,并且在步骤31初始化所述计数器和桶阵列。注意,可以在常规的时间间隔或者在各时间窗口的末尾初始化所有计数器。同样地,在特定数量的时间窗口流逝后,攻击识别和牵制单元可以在常规的时间间隔解释所述计数;如已知的,这些是可以以不同方式执行的设计实现。

所述方法然后涉及以下为经过时间窗口接收的每个PDU执行的主要步骤:在步骤32,头部数据处理单元14监控端口12并且检查在该端口上接收的PDU的头部;在步骤33,所定义的头部字段中的数据被用来识别PDU的类型并且更新相关的计数器。同时,如果MDR系统配备复杂计数器单元25,相关的地址数据如步骤34中所示被散列,以在步骤35识别对应于该散列值的桶。如果被散列识别的桶未被设置,如通过决定块36的否分支所示出的,则它在步骤37被设置。如果不是,如通过决定块36的是分支所示出的,则所述桶不被改变,并且检查下一个分组。注意,为了简化,仅示出一个散列;使用多个散列是可行的,有时也是令人期望的。

图4示出识别攻击的方法的流程图。在处理如图3中所示在TW期间接收的分组后,所有的计数器在步骤40被读取;在步骤41,攻击识别单元23将计数器值与所述极限进行比较;在步骤42识别被越过的极限,如果有的话;在步骤43,基于违犯所述极限的计数器或计数器组合识别攻击类型,并且在步骤44根据被违犯的规则触发适当的防御动作。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号