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

文档序号:7936393阅读:129来源:国知局
专利名称:用于潜在被污染端系统的牵制机制的制作方法
技术领域
本发明涉及通信网络上的安全传输,并且特别地,涉及用于通信网络 的潜在被污染端系统的牵制机制。
背景技术
安全性是现代通信网络中的关键特征;提供安全解决方案要求了解可 能的威胁场景和它们的相关要求。网络安全系统还需要是灵活的,以促进 跨管理域的互操作和协作。
随着通信网络扩展并且汇聚为集成的全球系统,正在开发并采用开放 协议标准,目的是4吏得能够灵活地和广泛地^f吏用信息的收集和交换。不幸 地是,这些开放标准倾向于使网络更容易遭受与安全相关的攻击;TCP(传 输控制协议)是在系统用户将连接网络用于严格合法的目的的基础上被设 计的,所以没有对安全问题给予特别的考虑。由于很多路由协议依赖TCP (例如,边界网关协议BGP使用TCP作为它的传输协议),这使得它们 易受TCP协议本身的所有安全弱点的攻击。
在网络中有很多种必须要考虑的安全顾虑。本发明涉及检测感染了蠕 虫的系统。蠕虫是一种以各种方式跨网络复制自身的程序,受害者通常不 是被作为特定目的,而只是一个不幸的主机。蠕虫通过利用已知的和先前 未知的软件脆弱性操作,并且快速跨网络繁殖。通过劫持通常以被提高的 特权运行的受信任应用,诸如网络服务器、邮件传送代理、登录服务器, 蠕虫可以得以完全使用系统资源,并造成完整系统受损。即使蠕虫对网络 装备的任何给定块的影响经常是良性的,数万个受感染网络单元向其它网 络单元尽快扩散恶意软件的累积效应却可以是灾难性的。蠕虫,尤其是快速扩散的"flash蠕虫",曾给互联网带来严重破坏;例如,Code Red (红 色代码)和Nimda (尼姆达)曾造成互联网中的大拥塞,很多情况下要求 关闭很多企业的整个网络。
在计算机网络是实体内和实体间通信和交易的关键要素的世界中,IP 网络的可靠性和安全性是根本的。尽管当前的防御模型已有多年经验,迄 今还没有能够提供一个模型,它的最终目的是以很少的关联成本和干扰提 供针对所有攻击的完全保护。实际入侵检测技术没有给出高端路由器所要 求的适当的性能级别。为了解决这个问题,当前正在设计新的技术。对于 电信行业,这是个关键挑战,并且迄今为止已提出了很多部分解决方案。
础设施的能力正变成网络运营商的真实挑战,特别是在大的分布式网络的 情况中。
攻击检测方法学可以被划分成两个主要种类基于流的分析和深度分 组分析。基于流的分析是基于监控电信基础设施中的流量来检测不寻常的 流量模式。它通常依赖于在网络路由器中实现的像Netflow、 IPFix和实时 业务流监控(RTFM: http:〃www.auckland.ac.nz/net/lnternet/rtfm/)的j支
常看到的模式来来追溯单个恶意IP分组。追踪连续流的方法还可以被用来
追溯单个分组,诸如iTrace。
多数基于流的分析方法是基于对异常流量模式的统计检测。例如,
ConSentry Networks使用复杂ASIC来处理对流量的统计分析。Cetasea
Networks的Orcaflow产品使用从标准MIB中采集的统计来发现与基线的
偏差,HP的ProCurve Swithe实现连接速率极限等。
所提出的用于检测攻击的其它统计技术是"顺序假设测试"。尽管该
方法有快速的反应时间,它要求确定每个连接请求是否成功。其它技术提
出监控蠕虫的不同特征,诸如识别同样的(重复的)分组,或者基于DNS (域名服务器)查找的缺乏识别恶意分组,或者基于〗象对等体列表、ARP (地址解析协议)速率、互联网暗区等向分组分配分数。
6理想地,网络运营商致力于快速识别受感染机器并尽快隔离它;否则, 在产生任何才艮警前,感染会充分扩散。然而,为检测和预防安全攻击所付 出的价格是巨大的。今天,企业部署分层防御模型,包括防火墙、防病毒 系统、接入管理和入侵检测系统(IDS)。除了昂贵外,迄今可用的解决 方案没有足够快地检测和结束蠕虫繁殖跨网络扩散。响应度受当前的解决 方案是基于多个部件的事实的影响,所述多个部件可能在沟通和协调所要 求的对策上有问题。
对通过高端路由器的所有分组的监控和分析要求与路由器耦合的专门 的硬件或附加装备,这增加了基础设施的复杂度和成本。即使这样,它可 能仍有效率问题。基于识别攻击的特征的解决方案是效率非常低的,因为 这些解决方案的响应时间大,总是滞后新蠕虫几天。而且,对所连接的主 机的数量设置适当的极限用于定义攻击是困难的 一些服务器合法地与很 多主机对话,而且一些客户端也与很多主机对话——例如, 一些网页,像 例如www.cnn.com,是复杂的并且与几十个主机对话,所以将误报和漏才艮 均减到最少是困难的。
此外,在"好,,和"坏"代码的身份或行为之间区分是极其困难的。 这导致大量的"误报",使很多预防系统的目的限于检测事件而不是保护 它们。
流量模式异常检测提供一种有远景的检测蠕虫的解决方案。多数的流 量模式异常检测方法是通过对某些端口的统计进行的,并且它们可以被分 类成两种主要方法比较、行为。在比较方法中,计划是建立各流的基线 特征,然后检测与基线的偏差。明显地,该方法不能有非常快速的检测时 间,并且在适合蠕虫检测上不是很理想。
现有的行为方法试图识别类似蠕虫的行为并且试图识别呈现任何这些 行为的主机。当前的行为检测方法有几个主要缺陷。所有的现有产品都将 蠕虫行为检测功能并入到在独立的交换机中的高性能ASIC部分中。单个 的网络流量(或"管道")被汇聚向高性能ASIC,这使得分出每个主机 或端口成为甚至更复杂的问题。而且,所汇聚的管道的速度可能比单个管道的速度更高,所以所需要的汇聚CPU周期会非常高。行为检测系统更可
能被朝向网络的核心放置,所以本地流量将不被所述系统"看到"。这意 味着受感染的主机可以感染整个工作组而不造成任何才艮警。在网络中安装 附加的检测系统将导致每个分组的更多延迟,并且还将增加管理等。 总之,被当前的行为方法使用的这种复杂处理不能在快速数据路径处
被进行;被现有的行为检测系统采取的任何动作都必定被延迟。但是任何 延迟都是不受欢迎的;在这种上下文中,通过的任何分组转移到潜在的另 一受感染机器。
因此,需要提供容易安装和维护的、用于检测和限制网络中的恶意活 动(例如,互联网蠕虫)的新技术和系统。

发明内容
本发明的目的是提供一种用于通信网络的潜在被污染端系统的检测和 响应纟几制。
相应地,本发明提供一种用于在通信网络的边缘处连接的网络单元的 恶意软件检测和响应系统,所述恶意软件检测和响应系统包括头部数据 处理单元,其用于检查在所述网络单元的端口上看到的每个协议数据单元 的头部数据,并且识别PDU类型;计数器单元,其用于基于所述PDU类 型提供每个流量方向的多个计数值;用于存储极限表和规则集的装置,所 述极限表为每个所述计数值设置对应的极限,所述规则集为所述端口定义 攻击模式和牵制动作;以及攻击识别和牵制单元,其基于所述计数值、极 限表和规则集识别攻击的类型,并且初始化用于牵制所述攻击类型的防御 动作。
本发明还提供一种用于在通信网络的边缘处连接的网络单元的端口的 恶意软件检测和牵制方法,所述方法包括以下步骤i)检查在所述端口上 看到的每个协议数据单元(PDU)的头部数据,用于确定每个所述PDU 的PDU类型;ii)为每个流量方向维护多个计数器,所述多个计数器基于 所述PDU类型提供计数值;iii)提供具有对应于每个计数值的预置极限的极限表和为所述端口定义攻击模式和牵制动作的规则集;以及iv)基于所 述计数值、极P艮表和规则集识别攻击的类型。
根据本发明的所述恶意软件检测和响应系统使得能够为通信网络防御 蠕虫,同时避免在多数当前网络中为此目的所实现的所有错综复杂的处理。 由于所述恶意软件检测和响应系统不要求开发用于每个新蠕虫的特征定 义,该系统的实现和使用不取决于蠕虫特征的持续更新,并且不要求技术 管理员的注意。这种与蠕虫特征的独立性的附带优势是攻击者不能通过操 作流量特征结果避免检测。
根据本发明的所述恶意软件检测和响应系统的另 一优势是它可以被构 建到边缘交换机的每个端口中而不需要特殊的硬件。本发明的所述系统可 以被并入到"快速路径"中,也就是,数据平面,使得诸如交换机、路由 器和接入/边缘装备的通信系统能够以非常低的成本具有内在安全性。
最重要的是,本发明提供一种牵制机制,所述牵制机制使用组合的检 测和响应,用于使能早期告警而没有误告警的问题,并且能够管理并且为 单个主机轻柏^:置极限。


从以下对在附图中示出的优选实施例的更特别的描述,本发明上述的 和其它的目的、特征和优势将变得显而易见,在所述附图中
图1示出根据本发明实施例的恶意软件检测和响应(MDR)系统的框
图2a、2b和2c示出为识别与各PDU相关联的桶所实施的对协议数据 单元(PDU)头部的比特的附加随机化;
图3示出监控快速数据路径中的流量的方法的流程图;以及 图4示出检测攻击的方法的流程图。
具体实施例方式
本发明提供一种恶意软件检测和响应(MDR)系统,所述恶意软件检测和响应(MDR)系统可以被轻松集成到现有网络装备的硬件中,并且优 选地在网络的边缘设备处。例如,所述恶意软件检测系统可以被并入到但 是不限于网络交换机中,或者被并入到智能服务接入管理器(ISAM)、 数字用户线路接入复用器(D-SLAM)、或甚至非对称数字用户线路 (ASDL)调制解调器中。以上通过示例方式列出的网络单元在带宽、月艮 务智能、IP/以太网特征和可扩展性方面属于一种产品族,所述产品族4吏得 电信装备厂商能够提供为海量的三网合一 (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名查找、输出1CMP分组、UDP分组等。在这些例子中, 地址解析协议(ARP )是被用来将在传输网上使用的IP地址转换成诸如在
NE使用ARP, ARP请求和响应可以在端口 12上出现。在这种情况下, 当NE希望获得接入网上主机的物理地址时,它向接入网上广播ARP请求。 接入网上具有所述请求中的IP地址的主机然后以它的物理地址应答。主机 还使用逆向ARP ( RARP )来发现它的1P地址。在这种情况下,主机广播 它的物理地址,RARP服务器以主机的IP地址应答。
NE10还可以使用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。在最广泛的方面,系统l包括头部数据处理单元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 4吏用。
可以在硬件中构建头部数据处理单元14,在这种情况下它可以简单地 包括许多用于PDU头部中的每个感兴趣的比特位置的比较器。基于硬件的 解决方案还可以使用内容可寻址存储器(CAM)来检测分组头部中的特定 字段。选择性地,可以使用简单的软件模块来测试头部中的各字段。对本 领域的技术人员来说,其它的选择性方案将是明显的。
计数器单元16包括多个也被称为简单计数器的计数器15和复杂计数 器单元25 。在系统1的更精密复杂的实现中优选地使用复杂计数器单元25 , 用于确定远端主机的数量,如随后所描述的。要注意,可以有多个"复杂 计数器"25,用于要保护的每个端口。
在本说明中使用术语"计数值"来指代计数器15的内容。每个计数器 15与特定类型的PDU相关联。并且当对应的PDU被检测时被递增。同样 地,在端口 12上看到的每个PDU更新零个、 一个或多个计数器;计数器 15的数量(以及隐含地,类型)是取决于要在各端口处收集的信息的类型 的设计参数。因而,NE 10可以装备有分别用于计数ARP请求(问询)和 响应的ARP计数器ARP—queryjn分组将更新ARP—query—in计数器15, ARP response—out分组将更新ARP ARP response—out计数器等。当端口 配备有复杂计数器单元25时,获得更多的流量信息,这使得能够计数远端 主机的数量。在这种情况下,对于输出ARP请求,计数器15计数ARP 请求的总数,单元25确定在所述请求中提到的不同主机的数量。类似地, 对于输入ARP响应,计数器计数ARP响应的总数、作出响应的不同主枳i 的数量和在输出ARP请求中提到的作出响应的主机的数量。
TCP计数器15还可以被用于SYN和SYN/ACK分组。现在,对于输 出SYN请求,TCP计数器计数所发送的SYN请求的总数、不同的远端主 机的数量和不同的远端主机和端口号对的数量。对于输入TCP SYN/ACK 确认,计数器15计数所接收的SYN/ACK的总数、不同的远端主机和端口
12号对的数量和与输出SYN分组中的主机匹配的主机/端口的数量。
通过类似的方式,对于输入RST分组,计数器15计数所接收的RST 分组的总数,单元25计数不同的远端主机的数量、不同的远端主机和端口 号对的数量、与输出SYN分组中的主机匹配的主机/端口的数量。对于其 它连接类型(非ARP等),计数器计数输出广播的总数。
DNS计数器15还可以被用于获得关于DNS/NETBEUI查找的统计。 对于输出DNS/NETBEUI查找,本发明的系统计数查找的总数和为输入请 求所查找的不同的名的数量。对于输入DNS/NETBEUI查找,所述系统计 数成功的查找的数量、失败的查找的数量和中间结果的数量,所述中间结 果是导致向另一 DNS服务器转发的DNS问询。
计数器还可以被用于计数每个类型的输出ICMP分组。互联网控制消 息协议(ICMP)是对互联网协议(IP)的扩展,它支持包含错误、控制 和信息的消息的分组。
同样地,可以在指定的UPD计数器中计数UPD分组。用户数据报协 议(UDP)是IP网络层上的最小的、面向数据报的、传输网络协议,它不 保证数据排序或递送。因为它是面向数据报的,所述应用的每个发送^Mt 导致单个IP数据报的传输。这种操作模式与TCP形成对比,TCP是面向 字节流的并且保证所发送字节的递送和排序。在本发明的 一个实施例中, 对于输出UDP分组,UDP计数器计数所发送的分组的总数、不同的远端 主机的数量、不同的远端主机和端口号对的数量。对于输入UDP分组,计 数器追溯所接收的分组的总数、不同的远端主机的数量、不同的远端主机 和端口号对的数量、以及与输出UDP分组中的主机匹配的主机/端口的数 量。
要注意的是,以上的计数器15的列表不是穷举性的。表l提供了在本 发明的实验性实施例中使用的计数器的类型。如以上所指示的,术语输入 和输出是相对于端口 12使用的。
表1PDU类型
计数器类型(所计数的特征)
ARP_query_in ARP_query_out ARP—responsein ARPresponseout
SYN in SYN—out SYNACK—in SYNACK out
#本地子网中的源的数量
#本地子网中的预期目的地的数量
#实际存在的本地子网中的预期目的地的数量
#回答本地子网中的源的次数
#所尝试的输入TCP连接的数量 弁所尝试的输出TCP连接的数量 #目的地接受的所尝试的输出TCP连接的数量 #主机接受的所尝试的输入TCP连接的数量
FIN—in 薩一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 IO装备有复杂计数 器单元25,通过将用于由计数器15提供的独立/合成计数值的、被越过的 极限与由复杂计数器单元25提供的远端主机的数量相关联,攻击识别块 23识别攻击。简言之,如果一个或多个计数器中的计数值越过极限/门限, 单元24在规则22中识别不被端口 12上的各流量流遵从的特定规则。
一旦攻击的类型已被识别,攻击牵制块26再次基于规则集22中的规 则触发特定的防御动作。理想地,每次计数器被改变时,攻击识别和牵制 单元24应当检查极限。尽管这种操作模式给予最快的响应时间,它要求数 据路径中的处理功率。优选地,根据各计数器的类型,为每个计数器设置 时间窗口TW。多数计数器15可以使用非常短的时间窗口,例如,5秒。例如,ARP—failures计数器是扫描本地子网的非常明确的指示符,所以它 应当立即触发它的极限。其它计数器在本质上更多是统计上的,所以更长 的时间间隔是合理的,比方说三十秒。例如,用于TCP/IP分组的计数器 需要更长的窗口 ,因为连接的持续时间可能;^艮更长的时间段等。
表2给出MDR系统l使用的不同规则的例子,并且提皿则名、用 于评估与为各规则设置的极限的一致性的时间窗口、与各规则(以及如何
获得合成值)相关的独立/合成计数值、对规则的极限和(可能的)攻击类 型。独立计数值的例子是指示本地子网上的对等体的数量的 ARP—query—out和指示被端口 12接收的RST分组的数量的RST—in。合 成计数值的例子是SYNjut - SYNACK—in,它指示失败的输出尝试的数
表2
规则名
ARP failure
ARP—count SYN failure SYNACK sea n
PIN—scan FINACK diff
TW 5
ARP_poison 5
30 30 30
5
— 30
RST count 30 Unreachable一c 30 ount
计数值 极限
ARPquery—out— 〉 1 ARP response in
ARP—response—out— > 1 ARP—query—in
ARP—query—out 〉10 SYN out— SYNACK in 见a SYNACK out - SYN in 见b
刚out > 1
FINACK out- 见c FINACK in
RST in 见d
Unreachable in > 20
攻击类型
#主机试图与相同子网中不存 在的对等体对话的次数
并来自主机的非请求ARP响 应的数量,典型地是ARP有害 尝试
#本地子网上的对等体的数量
#失败的输出尝试的数量
#太多的输出SYNACK,可能
是扫描
#输出FIN扫描的数量
#两个方向的FIN+ACK计数
不匹配,可能是XMAS树扫描
并太多的输入RST
#太多的输入目的地不可达表2中,以a )标志的SYN—failure的极限提供失败的输出连接的数量, 如从SYN_out - SYNACK—in中计算的。在正常使用期间,几乎所有的输 出连接都成功。有一些很多输出连接失败的情况,诸如像在目的地可能被 关掉的P2P软件的情况中。两部分规则被用于检测 o如果SYN—out是小的,不采取动作。
o如果SYN—out是大的(比方说30秒中10个尝试),超过20% 的故障率是告警的原因。 极限b)被设置用于指示端口扫描。正常地,响应于输入SYN分组发 生的ACK输出分组(SYNACK分组)的数量被期望是接近于SYN分组 的数量。当有太多的输出SYNACK分组时,它可能是端口扫描。使用两 部分测试
o如果SYNACK—out-SYN—in是小的,没有动作。 o如果差>2, (SYNACK_out/SYN—in)的比率>20是端口扫描。 FINACK—diff的极限c )指示两个方向上的FINACK分组的数量不匹 配。在正常使用期间,两个数量应当非常接近,不管是哪侧开始FIN顺序。 如果主机发送的多于它接收的,这是扫描的指示,诸如像所有标记被设置 的XMAS树扫描。使用两部分测试
o如果输入和输出FINACK分组之间的绝对差是小的,没有动作。 o如果绝对差是大的(30秒中发送的比接收的多5个以上FINACK 分 组 ) , 则 FINACK—out/FINACK—in 或 FINACK in/FINAcKout>l.2引起告警。 极限d )提供输入RST分组的数量。每个RST分组可能地是扫描尝 试的响应,但是在很多合法情况中也使用RST,所以触发被设置地相对高, 例如30秒中50 RST分组。
使用独立极限的规则的一些例子如下 -如果countSYN〉100,蠕虫试图连接4艮多主机; -如果countUDPout> 100,蠕虫试图通过UDP连接4艮多主机; 一如果countARP〉100,蠕虫探测本地子网。使用合成极限的规则的例子如下 —(countSYN — countSYNACK) /countSYN> 0.15指示TCP的低
完成率;
—(countUDPout — countUDPin ) /countUDPout > 0.15指示UDP
的4氐完成率;或
—(countRST+countlCMPnonreachable) > 19指示4艮多远端主才几 拒绝对话或不可达。 进一步地,合成极限可以被设置为以上条件的组合。例如,如果 ((countSYNhosts > 50 ) & ( countSYN - countsYNACK > 30 )),则蠕 虫试图连接太多的主机,但是仅通过一些。
要注意的是,网络内不是所有的装备需要实现所有的计数器、以上提 供的极限和规则。取决于所要求的保护、存储器占用量、快速数据路径的 处理功率、'隄速控制路径的处理功率等,每个实现可以选择一些子网。
在进行所有的计数后,攻击识别块26检查计数值相对于表21中的极 限,并且基于规则22识别攻击类型。然后,基于攻击类型和它的比重、基 于预置规则22,攻击牵制单元26可以采取许多动作
a. 完全关闭端口,直至手动重置。这对具有非常低的误报的规则将是 适用的。
b. 将所述端口隔离到仅专用于补救的VLAN,其中,可以带来病毒扫 描器和其它工具来承载。
c. 将所述端口隔离到蜜罐(honeypot) VLAN以便可以观察进行中的 蠕虫。
d. 临时关闭所述端口;比方说1秒,然后2秒,然后4秒,每次翻倍。 这对当合法用户可以偶尔达到极限时具有模糊边界的规则是适合的,该动 作意味着在极限处仅使用户减速(所以合法用户不会受到很大影响),但 是蠕虫将被减速并且最终被关闭。
因为检测在"快速"路径中被进行,可以立即采取以上动作,包括丟 弃触发所述动作的分组。而且,因为所述检测在网络的边缘处被实施,所采取的动作是高度专用于单个主机,或者被连接到物理端口的少量主;fe/L。
如以上所指示的,每侧(远端和近端)或流量的每个方向的计数器被 独立保持。为每个方向保持独立的计数器消除了为每个方向匹配请求/响应 对的需要,简化了恶意软件检测。这消除了保持远端主机地址的列表的需 要,所述列表将消拟艮多存储器和CPU周期。尽管这样的列表将使得能够
进行更精确的恶意软件检测,计数远端的数量、记忆并匹配每个分组的每
个IP/端口组合昂贵的惊人;通常的方法相当慢并且使用太多存储器。为交 换机的物理端口提供本发明的恶意软件检测和响应系统,导致确定哪个端 口被攻击,而不依赖识别入侵者的分组,以便获得免费的抗欺骗。
通过计数远端主机的不同的IP地址,可以提供更精确的检测;这些可 以只是远端IP地址或IP地址-端口组合。追踪远端主才几的常用方法将再次 遇到CPU和存储器限制。对于输入PDU,代替使用远端主机的地址列表, 本发明的系统使用复杂计数器单元25追溯远端主机的数量。该技术比保持 地址列表快得多,以精确性为代价节省了处理器周期和存储器。复杂计数 器单元25包括多个桶19、桶选择器18和桶计数单元17。例如,复杂计数 器单元25可以配备有用于每个流量方向和每个协议类型的所设置的桶计 数单元17。优选地,以所选择尺寸的阵列的形式提供桶19。要注意的是, 尽管为以上列出的每个PDU种类维护远端主机的不同的桶19是令人期望 的,组合所述桶是可行的。在对于所有输入和输出分组甚至仅使用单个散 列表的极端情况下,有很多值。
观念是散列来自识别远端主机的头部字段的地址数据,如一般通过桶 选择器18所示出的。所获得的散列值然后被用作到阵列19的索引,并且 对应各散列值的桶(比特)被设置。选择性地,设置的桶计数单元17可以 计数未被设置(或非设置)的桶。通过这种方式,每个桶被与特定的远端 主机地址相关联。桶计数单元17确定经过特定时间TW设置了多少桶。 桶数量指示在该时间间隔期间多少远端主机接收/传输了流量。例如,如果 远端主机的数量高的令人可疑,攻击可以被检测。
桶在所述时间窗口期间仅使用非常简单的算法被设置一次。如果桶选择器18识别比方说Bucket剁(桶#0 ,并且该桶已经被设置,则什么也不 发生。另一方面,如果Buckets (桶#0还未衫Li殳置,则设置它。用于桶 更新步骤的伪代码是
<formula>formula see original document page 20</formula>
(宣告视为Boolean [m;设置m桶 桶二hash (IP,端口 );散列以发现桶数量 如果(看到[桶);已经看到该桶,什么也不做 否则;还未看到该桶
计数=计数+1;
看到[桶=真; 结束如果)
确定被设置(或非设置)的桶的数量的明显方式是贯穿(loop over) 每个比特,或者采用每个字节并且查找表;这两种方法均相当慢。另一方 面,本发明的系统使用这样的算法,所述算法基本上将每个比特作为独立 的数量和求和对平行处理。通过这种方法,它采用大约十二个指令来计数 在32比特字中设置的比特的数量。
优选地,被散列的比特是分组的IP地址比特,或是IP地址比特和端 口号比特;在下文中我们称该数据为地址数据。在本发明的一个实验性实 施例中,在256比特(m=256)的比特阵列上实现所述桶,并且所选择的 散列函数将该数量减小到8比特。由于1P地址空间是32比特,对于8-比 特散列,在相同桶中有224种组合的选择。换言之,224地址数据可以设置相同的桶。这意^^木着攻击者可以尝试通过与落入相同桶中的主机/端口对话 以便使远端主机的数量保持为低来避免触发。
可以使用特定的对策来解决这种情形。例如,可以设计散列函数,以 便相同子网中的地址有可能使用不同的桶(这是期望来自散列函数的"随
机化"特性)。如图2a中所示, 一起XOR (异或)四个地址字节将区分 子网。如图2b中所示,XOR (异或)IP地址的最后字节和端口号的较低 字节将确保既不是水平扫描(相同的端口号,不同的IP地址)也不是垂直 扫描(相同的IP地址,不同的端口 )将在相同的桶中结束。另一解决方案 是向散列函数添加随机函lt^生器(randomizer ),如图2c中所示。因而, 可以在启动时间糸t拣随机的32比特数,并且在进行XOR (异或)前将它 添加到IP地址。这保留了以上的子网散射特性并且^f吏攻击者难以停留在相 同的桶中。 一般地,函数的选择取决于所期望的攻击检测的复杂性。
如以上所讨论的,每个端口或仅是感兴趣的某些端口可以配备有本发 明的MDR系统。要注意,本发明的另一优势是不必要同步对NE的所有 端口的轮询;展开轮询是没有害处的。取决于平台, 一个容易的方式是将 计数器的轮询与SNMP轮询集成,这意味着当用于该端口的SNMP被处 理时检查端口的计数器。而且,实际上,在轮询间隔中不需要高的精度, 所以它可以作为低优先级任务被进行。
优选地,使用"线性计数"函数来散列地址数据,如K-Y Whang等 人在论文"A Linear-Time Probabilistic Counting Algorithm for Database Applications"中所描述的,该论文呈现了对这些计数才支术的彻底的数学处 理。这种类型的函数已被选择,因为它是整个概率计数技术家族中最精确 的。Whang等人得到对实际线性计数的最佳估算
<formula>formula see original document page 21</formula>
其中,m是阵列大小,z是阵列中未设置项目的数量,n是真实计数。 Whang等人还得到对该类型函数的错误估算膨#) = + D
其中,t是通过n/m比率确定的加栽因素。
该论文还给出用于获得期望的精确性的准则。如果将该论文的发现应 用于本发明的系统,注意阵列19的大小可以^皮从以上讨论的256比特显著 减少,而对恶意软件检测的精确性没有显著影响。更小的阵列是令人期望 的,以便使得在软件中的实现更容易。对于本发明的MDR系统,如果阵 列19有四字节(而不是256),作为结果的精确性是17%。对于两字节阵 列,精确性掉到35%。这意味着甚至专用于该阵列的非常小的存储空间仍 能够获得全面的结果。
向NMS/OSS传送相关的计数以进行长期(如以分钟/小时)分析来检 测非常低速的秘密蠕虫也是可行的。
接下来提供本发明的MDR系统如何操作的一些例子。
例子1
假定有TCP flash蠕虫通过地址扫描本地子网。这将造成大量的ARP 请求,以及更少量的ARP响应(基本上,仅是具有实际主机的地址将响应)。 成功的ARP将被试图建立连接的SYN分组跟随。已知极限是可配置的, 通过以下将可以捕获这种蠕虫
a. 如果countARP > 100;如果子网有太多未^f吏用的地址,该极限触 发。
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根据被违犯的规则触发适当的防御动作。
权利要求
1.一种用于在通信网络的边缘处连接的网络单元的恶意软件检测和响应系统,所述系统包括头部数据处理单元,用于检查在所述网络单元的端口上看到的每个协议数据单元的头部数据,并且识别PDU类型;计数器单元,用于基于所述PDU类型提供每个流量方向的多个计数值;用于存储极限表和规则集的装置,所述极限表为每个所述计数值设置对应的极限,所述规则集为所述端口定义攻击模式和牵制动作;以及攻击识别和牵制单元,其基于所述计数值、极限表和规则集识别攻击的类型,并且发起用于牵制所述攻击类型的防御动作。
2. 根据权利要求l所述的系统,其中,所述计数器单元包括多个简单 计数器,用于维护独立计数值的每个简单计数器为各自流量方向提供在所 述端口上看到的指定PDU类型的PDU的数量。
3. 根据权利要求2所述的系统,进一步包括复杂计数器单元,所述复 杂计数器单元用于确定经过所述端口交换PDU的远端主机的数量。
4. 根据权利要求3所述的系统,其中,对于每个PDU类型,所述复 杂计数器单元包括输出复杂计数器和输入复杂计数器,所述输出复杂计数 器用于计数从所述端口接收所述各自PDU类型的PDU的远端主机的数 量,所述输入复杂计数器用于计数向所述端口传输所述各自PDU类型的 PDU的远端主才几的数量。
5. 根据权利要求3所述的系统,其中,所述复杂计数器单元包括 多个桶的桶阵列,每个桶与至少一个远端主机的地址相关联; 桶选择器,用于识别在所述端口上看到的PDU的地址数据,识别对应所述地址数据的桶,并且仅在所述桶之前未被设置时设置所述桶;以及 桶计数器,用于提供指示经过预置时间段设置的桶的数量的所述计数值。
6. 根据权利要求2所述的系统,进一步包括将时间窗口关联到每个所 述计数器的计时单元。
7. 根据权利要求l所述的系统,其中,所述计数器单元包括ARP计 数器、TCP计数器、DNS计数器、UDP计数器和ICMP计数器的一个或 多个。
8. 根据权利要求1所述的系统,其中,所迷攻击识别和牵制单元包括 攻击识别单元,用于使用所述极P艮表和所述规则集识别所述攻击类型;以及攻击牵制单元,用于基于由所述攻击识别单元识别的攻击类型执行防 举卩动作。
9. 根据权利要求8所述的系统,其中,所述攻击识别单元包括 用于从用于指定PDU类型的所述计数值中确定合成计数值的装置;进行比较来检测所有越过的极限的装置;基于越过的极限和所述规则集识别所述攻击类型的装置。
10. 根据权利要求5所述的系统,其中,所述桶选择器包括用于随机 化所述地址数据来获得索引值的装置和通过使用所述索引值来识别对应于 所述桶阵列中的所述地址数据的所述桶的装置。
11. 根据权利要求10所述的系统,其中,所述用于随机化的装置包括 对所述地址数据应用散列函数的散列装置。
12. 根据权利要求ll所述的系统,其中,所述用于随机化的装置进一 步在所述散列装置前包括用于处理所述地址数据的附加随机化装置。
13. —种用于在通信网络的边缘处连接的网络单元的端口的恶意软件 检测和牵制方法,所述方法包括以下步骤i)检查在所述端口上看到的每个协议数据单元(PDU)的头部数据, 用于确定每个所述PDU的PDU类型;ii )为每个流量方向维护多个基于所述PDU类型提供计数值的计数器; iii)提供具有对应于每个计数值的预置极限的极限表和为所述端口定义攻击才莫式和牵制动作的规则集;以及iv)基于所述计数值、极限表和规则集定义攻击的类型。
14. 根据权利要求13所述的方法,进一步包括发起用于牵制所述攻击 类型的防御动作。
15. 根据权利要求13所述的方法,其中,步骤ii)包括a) 为每个PDU识别对应于所述PDU类型的计数器;以及b) 更新在步骤a)中识别的所述计数器中的计数值。
16. 根据权利要求13所述的方法,其中,步骤iv)包括 通过将每个计数值与所述极限表中的对应极限进行比较来检测一个或多个被越过的极限;以及基于所述越过的极限和所述规则集识别所述攻击类型。
17. 根据权利要求13所述的方法,其中,步骤iv)包括 为每个所述计数器分配时间窗口 ;将为PDU类型获得的多个计数值处理成合成计数值;比较来检测一个或多个被越过的极限;以及基于所述越过的极限和所述规则集识别所述攻击类型。
18. 根据权利要求14所述的方法,其中,所述防御动作包括关闭所述 端口、使所述端口减速、或者向网络运营商报告所述违犯。
19. 根据权利要求13所述的方法,其中,步骤ii)包括 将桶阵列中的每个桶与至少一个远端主机的地址关,来; 识别在所述端口上看到的每个所述PDU的地址数据并且从所述地址数据计算索引值;仅在所述桶之前未被设置时设置对应于在所述PDU中识别的所述索 引值的桶;提供指示经过预置时间段设置的桶的数量的所述计数值。
20. 根据权利要求13所述的方法,其中,所述极限表中的所述极限是 静态极限、动态极限和统计确定的极限的一个。
全文摘要
提供了一种基于流量模式异常检测的恶意软件检测和响应系统,由此对每个方向不同地计数网络单元的每个端口上与各种协议相关联的分组。这样的分组包括ARP请求、TCP/SYN请求和确认、TCP/RST分组、DNS/NETBEUI名查找、输出ICMP分组、UDP分组等。当分组造成独立计数或计数组合超出门限时,采取适当的动作。所述系统可以被并入到快速路径中,也就是,数据平面,使得诸如交换机、路由器和DSLAM的通信系统能够以非常低的成本具有内在安全性。
文档编号H04L29/06GK101589595SQ200880002986
公开日2009年11月25日 申请日期2008年1月22日 优先权日2007年1月23日
发明者B·K·麦克法兰, D·维默尔, J-M·罗伯特, K·麦克纳米, S·T·周 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1