通信网络中识别和禁止蠕虫的方法和装置的制作方法

文档序号:7968905阅读:161来源:国知局
专利名称:通信网络中识别和禁止蠕虫的方法和装置的制作方法
技术领域
本发明一般涉及通信网络,尤其涉及用于在例如网际协议(IP)网络的分组网络中识别和禁止诸如TCP/IP蠕虫的蠕虫的方法和装置。
背景技术
小公司和家庭PC用户相信对于真正的电脑黑客来说他们的系统不是想要的目标,因为真正的黑客们更感兴趣于较关键的基础设施和系统。事实是,即使在花费了相当大的努力之后,熟练的黑客也不能闯入这些非关键性的系统。然而,熟练的黑客不是主要的威胁,最大的威胁来自于因特网蠕虫,例如TCP/IP蠕虫,它们处于感染蠕虫的、连接到网络的系统中,经常地和自动地企图侵染计算机系统以感染这些系统并把它们转变成相同的攻击机器。TCP/IP蠕虫是熟练黑客所开发的软件。在黑客手动地把TCP/IP蠕虫感染到因特网上能够感染的系统中后,该感染TCP/IP蠕虫的系统开始发出数亿的TCP/IP蠕虫IP分组来试图侵染因特网中上百万的计算机系统。接收该TCP/IP蠕虫IP分组的、能够感染的系统将被自动地感染。依次的,它开始发出数亿的相同的TCP/IP蠕虫IP分组来试图侵染其它的系统。作为多米诺效应,越多的能够感染的系统接收到TCP/IP蠕虫IP分组,就有越多的感染TCP/IP蠕虫的系统,以及越多的TCP/IP蠕虫IP分组被发出。这种类型的侵染攻击被自动地执行而且基本上不用黑客本人的努力就可以攻击数以百万的潜在的受害者。因特网上具有防火墙的任何人会感觉到来自这些TCP/IP蠕虫的攻击的稳定的后台IP分组。如果系统连接到因特网,则有可能每几分钟就在因特网上某处,有TCP/IP蠕虫会试图侵染该系统。试图侵染该系统的TCP/IP蠕虫可能不是由熟练技术的黑客发出的并且可能不会花费显著的时间和精力。如果蠕虫成功地闯入该系统,则其是偶然自动完成的。
利用正在生成的所有类型的新的TCP/IP蠕虫针对因特网上数以百万的系统来攻击成千上万的不同的脆弱性,一些蠕虫将成功地发现脆弱性的组合,其可以侵染数以百万的计算机系统并在几小时内把它们变成TCP/IP蠕虫攻击机器,这种机会是很高的。已经观察到,例如,通过由大容量网络通信量引起的拒绝服务,可以造成这种严重危害,所述通信量是由发出攻击蠕虫IP分组的数以百万的感染TCP/IP蠕虫的计算机系统所产生的。如果感染TCP/IP蠕虫的系统经有线局域网(LAN)、无线LAN、虚拟专用网络(VPN)、拨号网络、或任何其他的方式被连接到公司内部网络,则它以相同的方式攻击公司内部网络,从而对公司的内部网络构成严重的损害。
所有的IP网络服务提供者面临这种严重的问题。这包括所有顶层因特网服务提供者、大公司、网络外购服务提供者、以及许多小公司。TCP/IP蠕虫是需要立即处理的严重的问题。
因此,在任何IP网络中都需要用于识别和禁止例如TCP/IP蠕虫的蠕虫的方法和装置。

发明内容
在一个实施例中,本发明使网络安全性服务和网络安全性基础设施能够通过分布式蠕虫探针检测、识别、减轻、抵消和禁止诸如TCP/IP蠕虫的蠕虫,所述蠕虫探针可以被链接到集中式监视系统,用于紧急响应处理。蠕虫探针根据每个可能的蠕虫始发源IP地址计数来跟踪具有到多个目的地IP地址的目的地不可达错误的分组,并根据每个可能的蠕虫始发源IP地址计数来跟踪到多个目的地IANA(因特网号码分配管理局)保留的IP地址的所有IP地址。当这样的可能的蠕虫始发源IP地址的计数的数量在局部预定时间周期内在蠕虫探针上超过预定局部门限时,该错误的计数以及可能的蠕虫始发源IP地址将作为告警被发送到网络中的所有其他蠕虫探针。当可能的蠕虫始发源IP地址的这种计数的数量在预定全局时间周期内超过预定全局门限时,来自具有识别的蠕虫始发源IP地址的末端设备的通信量将被阻塞以防止该末端设备进一步扩散蠕虫。


通过结合附图考虑下面的详细描述,本发明的教导会容易理解,其中图1示出了涉及本发明的示范全局公司IP网络;图2示出了在本发明的IP网络中用于识别和禁止感染TCP/IP蠕虫的系统的主要方法的流程图;图3示出了本发明的用于识别和禁止感染TCP/IP蠕虫的系统的子方法“可能的蠕虫IP地址表周期清除”的流程图;图4示出了本发明的用于识别和禁止感染TCP/IP蠕虫的系统的子方法“添加可能的蠕虫”的流程图;图5示出了本发明的用于识别和禁止感染TCP/IP蠕虫的系统的子方法“接收全局改变”的流程图;图6示出了涉及本发明的因特网控制消息协议类型3分组格式;图7示出了适于执行在此所述的功能的通用计算机的高级部件图;图8示出了本发明的局部表格的示范数据结构;和图9示出了本发明的全局表格的示范数据结构。
为便于理解,只要可能的话,使用相同的参考数字来表示对于附图公共的相同元素。
具体实施例方式
蠕虫,例如传输控制协/网际协议(TCP/IP)蠕虫不仅危害因特网上脆弱的计算机系统,而且它们还产生大量的网络通信量,这导致网络拒绝服务(DOS)攻击。
蠕虫,例如TCP/IP蠕虫,是一种自我复制的计算机程序,其类似于计算机病毒。病毒把它自己附属到另一个可执行的程序上,并变为该程序的一部分;然而,蠕虫是自我包含的并不需要成为另一个程序的一部分来传播它。它们经常被设计成利用数据传输能力,比如许多计算机上建立的TCP/IP协议。主要的TCP/IP蠕虫攻击包括臭名昭著的Code Red、Slapper、和SQL/Slammer,近年来它们对全球网络造成了严重的影响。美国政府开始宣布“国家战略以保护电脑空间”的动议并把TCP/IP蠕虫描述成数亿美元损失的原因,这用作对于依赖于计算机网络的国家的唤醒号召。
在所有的公司和许多家庭网络中,有连接到因特网或公司内部网的计算机。到目前为止,直到新的TCP/IP蠕虫攻击了成千上万的计算机并把这些计算机变成了TCP/IP蠕虫攻击机器,才有有效的方法来检测新的TCP/IP蠕虫。就是说,网络安全工业,包括因特网和计算机安全公司,不能提供有效的方法或产品来足够快地识别和减轻具有未知特征的新的TCP/IP蠕虫,并打击和卸下主要的因特网集线器节点。
通过例如SQL/Slammer蠕虫的蠕虫感染的具有千兆位以太网接口卡(NIC)的因特尔奔腾III 500MHz PC能产生100,000分组/秒或300兆比特/秒以上的通信量。感染的计算机随机地选择目标IP地址以试图闯入与这些IP地址相关的计算机。这意味着具有正确因特网连接的单个机器在12小时内可以攻击整个的因特网络。如果一个具有10/100Mbps NIC卡的计算机系统被侵染并转变成感染TCP/IP蠕虫的机器,则它将使用T1(1.5Mbps)或T3(45Mbps)接口连接立刻消耗10/100Mbps网络的所有的带宽和广域网(WAN)连接的输出方向带宽。对于感染TCP/IP蠕虫的数据中心中的两个高端系统,它们能容易地消耗OC3(155mbps)或甚至OC12(622mbps)WAN接口连接的输出方向中的所有带宽。在那些拥塞的WAN接口的输入方向中,几乎100%的IP分组将不能到达其上驻留有感染的计算机系统的网络。除非感染的计算机系统被物理地关机或从网络断开,减轻该问题的仅有的远程IP通信量控制是把过滤器施加到连接到WAN连接的路由器或交换机。甚至在今天,由在WAN连接上生成拥塞的TCP/IP蠕虫所引起的新的DOS攻击几乎也是不可避免的,因为有很多的新的变种的TCP/IP蠕虫被生成来不断地和自动地针对TCP/IP网络上的数百万计算机系统攻击成千上万的不同弱点。
图1示出了有关本发明的示范全球IP网络。就是说,图1示出了示范网络,例如,分组网络,比如有关本发明的IP(网际协议)网络。示范的分组网络包括网际协议(IP)网络、异步传输模式(ATM)网络、帧-中继网络等等。IP网络被广义的定义成使用网际协议来交换数据分组的网络。
如图所示,在图1中,全球公司IP网路110经路由器131和路由器132被连接到因特网120。全球公司IP网络可以包括亚太、欧洲、美国、加拿大、和拉丁美洲中的位置。蠕虫探针111、112和113被布置在各国的关键位置以检测有关蠕虫的活动,例如TCP/IP蠕虫的活动。表格140显示了示范的可疑的全局蠕虫活动计数以及它们相关的可能蠕虫始发源IP地址。当可疑的蠕虫活动计数在预定时间周期内超过预定全局门限时,最靠近始发可疑蠕虫活动的源IP地址的路由器或交换机将被通知以阻塞来自具有特定蠕虫始发源IP地址的机器的所有通信量,借此防止TCP/IP蠕虫扩散并阻止具有大量容量的蠕虫IP分组引起网络通信量拥塞。
基于本发明的理论是,感染TCP/IP蠕虫的系统把蠕虫分组发送到随机产生的目的地IP地址,该地址包括IANA保留的IP地址和未运转着的系统的许多IP地址。例如,全部IP版本4(IPv4)具有4,294,967,296个IP地址的地址空间。这包括专用IP地址、广播IP地址、多播IP地址、回环IP地址和因特网号码分配管理局(IANA)保留的IP地址。此外,对于那些关于运转着的系统的IP地址,蠕虫正在其上侵染的业务中不是每个IP地址都具有协议或端口。例如,简单邮件传送协议(SMTP)服务器不会开启TCP端口号80。再有,即使使用IP地址的、运转着的系统让特定端口打开,它也没有蠕虫可以侵染其的脆弱性。例如,熟知的所谓的“红色代码蠕虫”只能侵染具有对“点点反斜杠”类脆弱性的微软因特网信息服务器(IIS)网络服务器。因此,在蠕虫感染的系统侵染另一个计算机系统之前,它应该已经发送许多蠕虫分组到IANA保留的IP地址、到未运转着的系统的许多IP地址、到在业务中没有某些协议和端口的系统,并会在IP网络中留下有关蠕虫攻击的IP通信量的踪迹,因为默认地,IP网络设备用ICMP不可达的分组来应答蠕虫系统,比如用具有代码0,1,2或3的ICMP类型3分组来应答,以便如果IP地址不是可路由的,或者它不具有运转着的系统,或者系统在业务中不具有某些协议和端口,则通知蠕虫系统。
如果特定的蠕虫探针设备使用这些ICMP不可达分组的踪迹,它可以立刻识别接收这些ICMP不可达分组的系统,这些分组来自被TCP/IP蠕虫感染或正在执行IP网络中的IP地址扫描的多个系统。如果这样的系统不是一个已知的认可的IP地址扫描系统,则特定的蠕虫探针可以自动地与IP网络中的防火墙、路由器、交换机和集线器通信以阻止从感染蠕虫的计算机始发的通信量或命令感染蠕虫的计算机系统关机。以此方式,在几秒内蠕虫会自动失效和被禁止,即使该蠕虫是未知特性的新变种,所述未知特性比如是它试图侵染什么端口,它试图侵染什么协议,它试图侵染什么操作系统(OS),它试图侵染什么应用,它试图侵染什么脆弱性或者它拥有什么样的蠕虫标记等等。只要可疑的系统正在把蠕虫分组发送到IANA保留的IP地址,到未运转着的系统的IP地址,到业务使用中没有某些协议和端口的系统,则它就将遗留下来自多个系统的ICMP不可达通信量的踪迹。
本发明的数学统计统计使用如下的L,M,N,X和Y
●L是网络云中可用的IP地址的总数;●M是网络云中运转着的系统的IP地址的总数;●N是网络云内蠕虫可以侵染的IP地址的总数;●X是计算机系统被侵染前被蠕虫攻击的该网络云内IP地址的平均数;和●Y是计算机系统被侵染前该网络云内遗留下攻击踪迹的蠕虫所攻击的IP不可达地址的平均数。
在一个实施例中,X=(L/N)-1和Y=(L-M)/N。例如,在具有前缀9.x.x.x的A类子网中,计算机系统使用100,000个IP地址,它们中的一半使用WindowsOS以及它们中的一半使用Unix或其他的OS。此外,在所述100,000个计算机系统中,计算机系统的50,000个IP地址使用Windows OS;而且,所述50,000个系统的一半25,000个系统具有允许蠕虫侵染并感染这些系统的脆弱性。除此之外,网络设备(比如路由器,交换机,集线器等等)使用多于100,000个的IP地址。A类IP子网具有总共16,777,216个有效IP地址。在该例中,总共有200,000的IP地址具有运转着的系统,它们中的100,000个用于计算机系统,以及它们中的100,000用于网络通信设备。此外,在50,000个Windows OS机器中,有Windows OS系统的25,000个IP地址可被蠕虫侵染和感染。现在,假设某人在因特网上释放新的蠕虫。该蠕虫可以随机的侵染具有到子网9.x.x.x的一个接口的多家庭计算机系统A。基于统计,在系统A能侵染另一个系统之前,也就是侵染子网9.x.x.x中的B之前,系统A将攻击子网9.x.x.x内的平均670 IP地址,例如,X=(16777216/25000)-1=670。系统A还平均生成663个不可达IP地址攻击通信量的踪迹,例如,Y=(16777216-200000)/25000=663。如果本发明的一些蠕虫探针设备被改置在子网9.x.x.x内,则基于系统A始发的试图的平均数,在它能侵染另一个系统B之前,它们将能够检测到对于不可达的IP地址的一些蠕虫攻击的踪迹,并把系统A识别为感染的系统。在几秒内,这些蠕虫探针设备能能自动地与防火墙,路由器,交换机和集线器通信以阻止从系统A始发的通信量或命令系统A关机。由于663只是在另一个系统被感染前的、基于统计的试图的平均数,在系统B能被识别成感染的系统之前,系统A实际上可能已侵染系统B。在此情况下,一旦系统A被识别,从它始发的所有通信量将被阻止。而且,如果系统B被感染,则由这些蠕虫探针设备利用相同的方法识别它并阻止它的通信量。基于所述数学方式,人们能够认识到的是,为了获得大量的Y以便在蠕虫侵染另一个系统之前,由感染蠕虫的系统生成的到不可达IP地址的攻击所遗留的踪迹能被快速地检测到,可用IP地址与运转着的系统的IP地址的比率应该足够大。比率越高,蠕虫系统A侵染能被感染的系统B的可能越小。在系统中的十分之一是可感染系统的10Mbps网络中,对于红色代码蠕虫,在蠕虫系统A侵染能够被蠕虫感染的系统B之前禁止蠕虫系统A的最低比率大约是20∶1。当比率变为很低时,比如2∶1,蠕虫探针设备仍能够识别并禁止蠕虫系统A。高比率和低比率之间的区别在于,在高比率情况中,能够感染蠕虫的系统B不会被侵染,而在低比率情况下,能够感染蠕虫的系统B会被侵染并变为攻击其他可感染系统的另一个感染蠕虫的系统。
图2示出了本发明的用于识别和禁止感染TCP/IP蠕虫的系统的主要方法的流程图。方法200在步骤210开始并前进到步骤215。注意,蠕虫探针设备在策略上被布置在繁重通信量的IP节点中。关键位置包括,但不限于,多数的LANIP子网和主要的通信量聚合集线器或者网络中具有繁重通信量负荷的交换点,比如边界路由器,防火墙,代理,VPN集中器,入侵检测系统(IDS)和入侵防止系统(IPS)。IDS是一种这样的系统,其通过网络通信量分析技术警告用户网络上存在入侵。IPS是一种这样的系统,其训练访问控制以保护计算机免受未许可用户的利用。
在步骤215,方法200使用蠕虫探针设备监听所有的IP分组,例如,通过网络上的蠕虫探针NIC卡的TCP、UDP、ICMP和其它的协议IP分组。在步骤220,方法200检查IP分组的目的地IP地址是否处于因特网号码分配管理局(IANA)保留的IP地址空间中。注意,TCP/IP蠕虫使用随机产生的IP地址攻击潜在的目标机器。由于IANA保留的IP地址空间正常地没有被使用;因此,去往这样一个地址的分组需要研究分析。如果IP分组的目的地IP地址处于IANA保留的IP地址空间中,则方法200前进到步骤225;否则,方法前进到步骤235。
在步骤225中,方法200检查在IANA保留IP地址空间中的IP分组的目的地地址是否是存储在允许的保留IANA IP地址存储表中的允许的IANA IP地址。如果IP分组的目的地IP地址在允许的IANA保留IP地址空间中,则方法200前进到步骤235;否则,方法前进到步骤230。在步骤230中,方法200执行图4所示的子方法400“添加可能的蠕虫”,从而以当前时间戳作为IANA保留空间侵犯使该源IP地址入口的累积计数加一。接着,方法前进到步骤255。保留的IANA IP地址示例性地被示出在下面的表1中。在http://www.iana.org/assignments/ipv4-address-space上可以发现最新的IANA保留IP地址空间。

表1
在步骤235中,方法200检查是否分组是具有代码0(网络不可达的)、代码1(主机不可达的)、代码2(协议不可达的)或代码3(端口不可达的)的ICMP类型3分组。图6显示了ICMP类型3分组格式。如果分组是具有代码0、1、2或3分组的ICMP类型3,则方法前进到步骤240;否则,方法前进回到步骤215。在步骤240,方法200检查是否分组的目的地IP地址处于许可的扫描系统IP地址存储表中。如果分组的目的地IP地址在许可的扫描系统IP地址存储表中,则方法前进回到步骤215;否则,方法前进到步骤245。
在步骤245中,方法200从嵌入在ICMP类型3分组中的原始IP分组的首部中提取以获得源IP地址、目的地IP地址、协议信息、和端口信息。方法200计数原始IP分组,作为ICMP类型3 IP地址侵犯。具有代码0,1,2和3分组格式的ICMP类型3被显示在图6中。方法接着前进到步骤250。注意,从该步骤向前,方法200使用从原始IP分组的首部中提取的内容源IP地址和内容目的地IP地址,原始IP分组是ICMP不可达分组的内容的一部分。理由是,ICMP不可达分组是由于不可达的目的地网络、主机、协议、或端口的应答分组。感染蠕虫的系统可始发分组到多个目的地,同时应答ICMP不可达分组将表明这些不可达的分组从单个的源IP地址始发到单个的目的地。为了解决该问题,从原始的IP分组中提取原始的源IP地址和目的地IP地址(原始的IP分组是ICMP分组的内容的一部分),从而确定是否那些原始的IP分组从单一的源IP地址被发送到多个目的地IP地址。例如,感染蠕虫的计算机9.200.200.5发送蠕虫分组到IP地址9.100.100.111和9.100.100.222。如果两个IP地址不具有运转的系统,末端路由器9.100.100.1发送两个主机不可达分组返回到感染蠕虫的计算机。通过路由器9.100.100.1把这两个主机不可达的分组应答到感染蠕虫的计算机9.200.200.5。只是这两个ICMP分组的内容是不同的。一个包含到目的地9.100.100.111的原始首部,而另一个包含到目的地9.100.100.222的原始首部。
在步骤250,方法200执行图4所示的子方法400“添加可能的蠕虫”,以便使有关产生ICMP错误代码(例如,不可达的目的地IP地址(例如网络和/或主机),不可达的协议,和不可达的端口)的IP分组的所有源IP地址的累积计数增加。在步骤255,方法200检查是否蠕虫探针设备的其中之一具有有关下述IP分组的源IP地址,该IP分组产生累积计数,该计数在预定全局时间周期内超过预定全局门限。预定全局门限是蠕虫探针操作员指定的可配置的参数。在一个实施例中,累积计数的默认的全局门限是蠕虫探针数的10倍,以及默认预定全局时间周期是2秒。如果任何蠕虫探针设备具有有关以下IP分组的源IP地址,该IP分组产生的ICMP类型3IP地址侵犯或IANA保留的IP地址侵犯的累积计数在预定全局时间周期内超过预定全局门限,则该方法前进到步骤260;否则方法前进到步骤290。
在步骤260,方法200在全局表中用带有当前时间戳UTCx的蠕虫IP地址x来标记源IP地址并发送蠕虫IP地址x和它的相关的时间戳UTCx到其他的蠕虫探针,并使用多种手段通知操作员,包括,但不限于,电子邮件和寻呼机等等。方法接着前进到步骤265。在步骤265中,方法200检查蠕虫探针正运行在感染蠕虫的系统的只标识模式中,还是在感染蠕虫的系统的标识和禁止模式中。如果蠕虫探针是处于感染蠕虫的系统的只标识模式中,该方法前进回到步骤215;否则,该方法前进到步骤270以禁止感染蠕虫的系统。如果蠕虫探针正运行在感染蠕虫的系统的只标识模式中,蠕虫探针将只识别感染蠕虫的系统但不禁止它们。如果蠕虫探针正运行在感染蠕虫的系统的标识和禁止模式中,蠕虫探针将识别感染蠕虫的系统并接着禁止它们。全局表是这样的表,其跟踪可能的源IP地址和相关数据的列表,相关数据比如累积的计数和时间戳,它们已经被全局识别成可能的感染蠕虫的系统。
全局表的数据结构被显示在图9中。数据结构900包括用于该表的5个入口点。入口点901用于IANA保留IP地址侵犯,入口点902用于ICMP网络不可达的侵犯,入口点903用于ICMP主机不可达的侵犯,入口点904用于ICMP协议不可达的侵犯,或入口点905是用于ICMP端口不可达的侵犯。对于每个入口点,一组类似的基本数据结构与它有关。例如,入口点903具有一组8个数据结构,包括数据结构910-917。每个数据结构901-917,包括源IP地址项、累积计数项、和时间戳项。这些数据结构根据源IP地址项被分类和排序。
在步骤270,方法200检查是否蠕虫探针已经命令路由器或交换机阻止该被识别的感染蠕虫的系统。如果它还没有发出阻止指令,方法前进到步骤285;否则,方法前进到步骤275。在步骤275,方法200检查是否阻止请求超过用于完成阻止任务的预定时间门限。如果完成阻止任务的预定时间门限被超过,方法前进到步骤280;否则,该方法前进回到步骤215。在步骤280中,方法200在全局表中用带有失败阻止当前时间戳UTCx的蠕出IP地址x标记源IP地址,发送蠕虫IP地址x和失败阻止时间戳UTCx到其他的蠕虫探针,并使用多种手段通知操作员,包括,但不限于,电子邮件和寻呼机等等。尽管蠕虫没有被阻止,但系统已经检测到该蠕虫并将其报告给操作员,操作员能研究并手动地关掉感染蠕虫的系统。接着,该方法前进回到步骤215。
在步骤285中,方法200使用与跟踪路由命令相似的技术来识别仍可达的和与所识别的源IP地址计算机系统最接近的路由器或交换机。方法接着命令识别的路由器或交换机阻止来自识别的源IP地址的所有通信量。接着,方法200前进到步骤287。在步骤287,方法200在全局表中用以当前时间戳UTCx成功阻止的蠕虫IP地址x来标记源IP地址,把蠕虫IP地址x和成功阻止时间戳UTCx发送到其他的蠕虫探针,并使用多种手段通知操作员,包括,但不限于此,电子邮件和传呼机等等。接着,该方法前进回到步骤215。
在步骤290,方法200检查是否蠕虫探针的其中之一具有有关以下IP分组的源IP地址,该IP分组产生的累积计数在预定本地时间周期内超过预定本地门限。预定本地门限是通过蠕虫探针操作员所指定的可配置的参数。在一个实施例中,默认的本地门限是10和默认的本地时间周期是1秒。如果任何蠕虫探针设备具有有关以下IP分组的源IP地址,该IP分组产生的ICMP类型3 IP地址侵犯或IANA保留的IP地址侵犯的累积计数在预定本地时间周期内超过预定本地门限,该方法前进到步骤295;否则方法前进返回到步骤215。
在步骤295,方法200从蠕虫探针设备发送在预定本地时间周期内超过本地门限的该可能的蠕虫IP地址,该蠕虫探针设备检测通过网络中所有其他蠕虫探针的门限。接着方法前进到步骤215。
图3示出了本发明的用于识别和禁止感染TCP/IP蠕虫的系统的“可能的蠕虫IP地址表周期性清除”的子方法的流程图。这是很重要的子处理过程,因为不用该清除子处理来删除那些过时的源IP地址实体,方法200将导致虚假的、对感染蠕虫的系统的肯定标识,因为不是所有的IANA保留IP地址侵犯和ICMP不可达的侵犯都是由TCP/IP蠕虫所引起。只有那些具有一个源IP地址在短时间周期内具有多个目的地IP地址的模式的IANA侵犯分组和ICMP不可达的分组是通过TCP/IP蠕虫或扫描机器被始发的。在蠕虫探针主要方法之后,方法200开始运行“本地可能的蠕虫IP地址表“(此后称作本地表)和”全局可能的蠕虫IP地址表“(此后称作全局表),其包含与IANA保留IP地址侵犯和ICMP不可达侵犯有关的IP地址。全局表是这样的表,其跟踪可能的源IP地址和相关数据的列表,相关数据比如累积计数和时间戳,它们已经被全局地识别成可能的感染蠕虫的系统。本地表是这样的表,其跟踪可能的源IP地址和有关数据的列表,相关数据比如累积计数和时间戳,它们已经被本地地识别成可能的感染蠕虫的系统。方法300被用于从存储表中清除那些超过的时间周期的IP地址条目。方法300开始于步骤305和前进到步骤310。
图8显示了本地表的数据结构。数据结构800包括用于该表的5个入口点。入口点801被用于IANA保留的IP地址侵犯,入口点802被用于ICMP网络不可达的侵犯,入口点803被用于ICMP主机不可达的侵犯,入口点804被用于ICMP协议不可达的侵犯,或者入口点805被用于ICMP端口不可达的侵犯。对于每个入口点,一组类似的基本数据结构与它相关。例如,入口点803具有一组3个源IP地址数据结构810、820、和830,这些源IP地址数据结构810、820和830中的每个包括源IP地址项和累积计数项。此外,每个源IP地址数据结构810、820和830具有一组一个或多个与它有关的基本目的地IP地址数据结构。例如,对于具有源IP地址A的源IP地址数据结构810,其具有一组3个与它有关的基本目的地IP地址数据结构811、812和813。每个目的地IP地址数据结构包括目的地IP地址项和时间戳项。同样的,具有源IP地址B的源IP地址数据结构820具有一组8个与它相关的基本目的地IP地址数据结构821-828,以及具有源IP地址C的源IP地址数据结构830具有一组2个与它相关的基本目的地IP地址数据结构831和832。源IP地址数据结构根据源IP地址被分类和排序,并且基本目的地IP地址数据结构根据目的地IP地址被分类和排序。
图9显示了全局表的数据结构。数据结构900包括5个用于该表的入口点。入口点901被用于IANA保留的IP地址侵犯,入口点902被用于ICMP网络不可达的侵犯,入口点903被用于ICMP主机不可达的侵犯,入口点904被用于ICMP协议不可达的侵犯,或入口点905被用于ICMP端口不可达的侵犯。对于每个入口点,一组类似的基本数据结构与它相关。例如,入口点903具有一组8个数据结构,包括数据结构910-917。每个数据结构901-917包括源IP地址项,累积计数项和时间戳项。这些数据结构根据源IP地址项被分类和排序。
在步骤310,方法300访问使用网络定时协议与世界时间时钟同步的计算机时间。网络时间协议是用于因特网上的计算机之间的同步时间的一种协议。在步骤315,方法300访问本地表中的第一个目的地IP地址项。在步骤320,方法300检查是否该值(当前时间-与本地表中的目的地IP地址相关的时间戳)超过该目的地IP地址的预定本地时间周期。如果该值超过预定本地时间周期,方法前进到325;否则,方法前进到步骤340。在步骤325,方法300删除该目的地IP地址入口并把存储分配释放到存储池。本地表中的源IP地址累积计数与该目的地IP地址相关,其被加1。在步骤330,方法300检查是否在本地表中源IP地址累积计数是0。如果源IP地址累计计数是0,方法前进到步骤335;否则,方法前进到步骤340。
在步骤335,方法300删除该源IP地址项并把存储分配释放到存储池。这意味着在整个预定本地时间周期期间,该源IP地址不发送IP分组到许多目的地IP地址中的多个,它们是在IANA保留的IP地址空间中或是不可达的。在步骤340,方法300检查是否该源IP地址是本地表中最后的目的地IP地址项。如果源IP地址是本地表中最后的目的地IP地址项,方法300完成处理“本地表”清除并前进到步骤350以处理“全局表”清除;否则,方法300前进到步骤345。在步骤345,方法300访问本地表中的下一个目的地IP地址项并前进回到步骤320。
在步骤350,方法300访问全局表中的第一源IP地址项。在步骤355,方法300检查全局表中的该源IP地址是已经被识别的、已经成功被阻止的还是已经阻止失败的蠕虫。如果全局表中的该源IP地址是已经被识别的、已经成功被阻止的或已经阻止失败的蠕虫,方法300前进到步骤370;否则,方法300前进到步骤360。在步骤360,方法300检查是否该值(当前时间-与全局表中的源IP地址相关的时间戳)超过该源IP地址的预定全局时间周期。如果该值超过预定全局时间周期,方法前进到365;否则,方法前进到步骤370。在步骤365,方法300删除该源IP地址项并把存储分配释放到存储池。
在步骤370,方法300检查它是否是全局表中最后的源IP地址项。如果是,方法300前进到步骤380;否则,方法前进到步骤375。在步骤375,方法300访问全局表中的下一个源IP地址项并前进回到步骤355。在步骤380,方法300等待直到预定本地时间周期结束为止。此时,方法300前进回到步骤310。
图4示出了本发明用于识别和禁止感染TCP/IP蠕虫的系统的“添加可能的蠕虫”的子方法的流程图。方法400被执行并由方法200调用以将可能的蠕虫IP地址添加到本地表和全局表。方法400在步骤405开始并前进到步骤410。
在步骤410,基于IANA保留的IP地址侵犯、ICMP网络不可达的侵犯、ICMP主机不可达的侵犯、ICMP协议不可达的侵犯或ICMP端口不可达的侵犯,方法400选择本地表中的入口点。在步骤415,通过搜索本地表中分类的IP地址项,方法400检查源IP地址是否已经在本地表中。如果源IP地址被发现,方法400前进到步骤425;否则方法前进到420。在步骤420,方法400从用于源IP地址的系统存储池中分配存储结构,填充源IP地址并设置源IP地址的累积计数为1。方法400还从用于目的地IP地址的系统存储池中分配存储器结构,用当前时间戳填充目的地IP地址。注意,对于每个源IP地址数据结构,都有与每个源IP地址数据结构相关的一个或多个目的地IP地址数据结构。因此,在一个实施例中,源IP地址具有目的地IP地址的计数,并且目的地IP地址具有当前的时间的时间戳。方法400接着把这些存储器结构插入到本地表中并使源IP地址被分类。
在步骤425,通过搜索本地表中分类的IP地址项,方法400检查是否目的地IP地址已经在与源IP地址相关的本地表中。如果在本地表中发现目的地IP地址,方法400前进到步骤430;否则,方法前进到440。在步骤430,方法400用当前的时间戳更新目的地IP地址项。接着方法前进到步骤435以返回到方法200。在步骤440,方法400使源IP地址累积计数增加一。方法400还从用于目的地IP地址的系统存储池中分配存储结构,用当前的时间戳填充目的地IP地址。接着,方法400把目的地IP地址存储器结构插入到本地表中相应的源IP地址项并使目的地IP地址被分类。
在步骤445,方法400基于IANA保留的IP地址侵犯、ICMP网络不可达的侵犯、ICMP主机不可达的侵犯、ICMP协议不可达的侵犯或ICMP端口不可达的侵犯,选择全局表中的入口点。在步骤450,通过搜索全局表中分类的IP地址项,方法400检查是否源IP地址已经在全局表中。如果源IP地址被发现,方法400前进到步骤455;否则,方法前进到465。在步骤455,方法400给源IP地址累积计数加一并把时间戳更新到全局表中的该源IP地址项。接着方法前进到步骤460以返回到方法200。
在步骤465,方法400检查是否本地源IP地址累积计数超过预定本地门限。如果本地源IP地址累积计数超过预定本地门限,方法前进到475;否则,方法前进到步骤470以返回到方法200。在步骤475,方法400从用于源IP地址的系统存储池中分配存储结构,把源IP地址和源IP地址累积计数复制到存储结构中,用当前时间设置时间戳。接着,方法400把存储结构插入到全局表中并使源IP地址被分类。接着,方法前进到步骤480以返回到方法200。
图5示出了本发明的用于识别和禁止感染TCP/IP蠕虫的系统的子方法“接收全局改变”的流程图。方法500是子方法,其接收和更新从其他的蠕虫探针发送的改变。方法500开始于步骤505并前进到步骤510。
在步骤510,方法500监听和等待直到它从其他的蠕虫探针接收全局改变信息为止。在步骤515,方法500检查接收的全局改变信息是由其他蠕虫探针所发送的“全局设置改变”还是“全局可能的蠕虫IP地址改变”。如果是“全局设置改变”,方法前进到步骤520;否则,方法前进到步骤525。
在步骤520,方法500把那些“全局设置改变”信息复制到蠕虫探针设置存储表中。接着,方法前进回到步骤510。在步骤525,基于IANA保留的IP地址侵犯、ICMP网络不可达的侵犯、ICMP主机不可达的侵犯、ICMP协议不可达的侵犯或ICMP端口不可达的侵犯,方法500在全局表中选择入口点。
在步骤530中,方法500检查是否接收的IP地址已经在全局表中。如果接收的IP地址已经在全局表中,方法前进到步骤550;否则,方法前进到步骤535。在步骤535中,方法500从用于源IP地址的系统存储池中分配存储结构,把源IP地址和源IP地址累积计数复制到存储结构中,并把时间戳设置到当前时间。接着,方法500把该存储结构插入到全局表中并使源IP地址被分类。
在步骤540,基于IANA保留的IP地址侵犯、ICMP网络不可达的侵犯、ICMP主机不可达的侵犯、ICMP协议不可达的侵犯或ICMP端口不可达的侵犯,方法500在本地表中选择入口点。在步骤545,方法500检查是否接收的IP地址也在本地表中。如果接收的IP地址也在本地表中,方法前进到步骤555;否则,方法前进回到步骤510。
在步骤550,方法500把接收的源IP地址累积计数添加到现存的源IP地址项中,并更新全局表中的时间戳。在步骤555中,方法500把本地表的源IP地址累积计数添加到全局表中的该新的源IP地址项中。在步骤560,方法500把本地表中的源IP地址累积计数发送到其他的蠕虫探针。在步骤565中,方法500检查是否源IP地址累积计数超过预定全局门限。如果预定全局门限没有被超过,方法500前进回到步骤510。如果其被超过,方法500前进到步骤570。通过使用方法200的步骤260、265、270、275、280、285和287,方法570识别和阻止蠕虫源IP地址。接着,方法500前进回到步骤510。
本发明的基础设施可以包括下列的部件●蠕虫探针设备可以是任何通用计算机系统,其具有与具备至少1GB RAM的基于Intel的Pentium IV 3.0GHz CPU和运行LINUX OS的、具有Sniffer应用能力的千兆以太网NIC等同的处理能力。Sniffer应用是一种程序和/或设备,其监视经过其上插入计算机NIC卡的网络段的所有数据分组。所有蠕虫探针设备必须被配置运行NTP(网络时间协议)对等业务以便与UTC(世界时间时钟)同步时间。蠕虫探针应用可以是以C语言可执行应用程序的形式的,但不限于此。
●蠕虫探针设备被布置在实体(例如公司)的内部网络中,比如LAN或主要通信量聚集的集线器或网络中具有繁重的IP通信量负荷的交换点,比如边界路由器、防火墙、代理、VPN集中器、IDS和IPS段。每个隔离的网络可以具有至少一个探针设备,其布置在具有繁重通信量的IP节点上。大的全球网络将具有布置在网络内的大约一打蠕虫探针。
●公司内部网络内布置的路由器将遵从因特网工程任务组(IEFT)请求评论(RFC)792或基于IANA保留的IP地址的路由或二者兼有。
●蠕虫探针使用TACACS+方法与路由器和交换机通信以阻止感染的计算机系统。TACACS+是一种安全性的应用程序,其提供对用户的集中式验证,这些用户试图获得对路由器或网络访问服务器的访问。
图7示出了通用计算机的高级别的部件图,该计算机适于执行在此所述的功能。如图7所示,系统700包括处理器元件702(例如CPU)、存储器704(例如随机存取存储器(RAM)和/或只读存储器(ROM))、识别和禁止TCP/IP蠕虫模块705、和各种输入/输出设备706(例如,存储设备,其包括,但不限于,磁带驱动器、软盘驱动器、硬盘驱动器或光盘驱动器、接收机、发射机、扬声器、显示器、语音合成器、输出端口和用户输入设备(比如键盘、小键盘、鼠标等等))。
应该注意的是,可以以软件和/或软件和硬件的组合例如,使用专用集成电路(ASIC)、通用计算机或其他的硬件等同物来实现本发明。在一个实施例中,本发明的识别和禁止TCP/IP蠕虫模块或处理705可以被装载入存储器704中并通过处理器702来执行以实现所讨论的功能。同样的,本发明的识别和禁止TCP/IP蠕虫处理705(包括相关的数据结构)可以被存储在计算机可读媒体或载体上,例如,RAM存储器、磁性或光的驱动器或磁盘等等。
尽管已经描述了各种实施例,但应该明白的是,所呈现的内容只是出于示例性的,并非是限制性的。因此,优选实施例的广度和范围不应该受到任何上述示例性实施例的限制,而只应根据下述的权利要求和它们的等同物来定义。
权利要求
1.一种用于检测通信网络中潜在的蠕虫感染的方法,包括基于每个源地址,计数以不可达目的地通过所述通信网络的分组;和如果所述分组的计数在预定时间周期内超过用于所述源地址的预定门限,则检测到所述潜在的蠕虫感染。
2.权利要求1的方法,还包括在整个所述通信网络中布置多个蠕虫探针,其中所述多个蠕虫探针中的每一个在所述通信网络的本地位置上执行所述分组的计数。
3.权利要求2的方法,还包括如果所述本地计数超过用于所述源地址的预定本地门限,则从所述多个蠕虫探针中的一个把所述源地址和相关的本地计数发送到所述通信网络中的所述多个蠕虫探针中的其余蠕虫探针。
4.权利要求3的方法,还包括如果全局计数超过用于所述源地址的预定全局计数门限,则阻止来自具有所述源地址的端点设备的通信量。
5.权得要求4的方法,其中所述全局计数是来自所述多个蠕虫探针中的一个或多个蠕虫探针的多个所述本地计数的总和。
6.权利要求4的方法,其中所述阻止步骤包括识别与具有所述源地址的所述端点设备最接近的路由器或交换机;和发送命令到所述路由器或所述交换机,以阻止从具有所述源地址的所述端点设备始发的通信量。
7.权利要求4的方法,还包括如果所述全局计数门限被具有所述源地址的所述端点设备所超过,则发送告警到网络管理者。
8.权利要求1的方法,其中所述通信网络是分组网络。
9.权利要求8的方法,其中所述分组网络是网际协议(IP)网络。
10.权利要求2的方法,其中所述多个蠕虫探针被布置在以下位置上,所述位置包括下列位置中的至少一个所述通信网络中的局域网(LAN)网际协议(IP)子网和所述通信网络中的通信量集线器。
11.权利要求1的方法,其中所述分组是网际控制报文协议(ICMP)类型3分组。
12.权利要求1的方法,其中所述分组是包含有关下列内容中的至少一个的信息的分组网络不可达错误,主机不可达错误,协议不可达错误,端口不可达错误,以及具有IANA保留地址空间中的目的地地址的IP分组。
13.权利要求1的方法,其中根据下列内容中的至少一个来确定所述预定门限参数X和参数Y,其中X=(L/N)-1和Y=(L-M)/N,其中L是所述通信网络中可用的IP地址的总数,其中M是所述通信网络中关于运转着的系统的IP地址的总数,和其中N是能够被蠕虫侵染的、所述通信网络内的IP地址的总数。
14.一种其上存储有多条指令的计算机可读媒体,所述多条指令包括以下指令,当由处理器执行时,所述指令使处理器执行一种用于检测通信网络中潜在的蠕虫感染的方法的步骤,所述方法包括基于每个源地址,计数以不可达目的地通过所述通信网络的分组;和如果所述分组的计数在预定时间周期内超过用于所述源地址的预定门限,则检测到所述潜在的蠕虫感染。
15.权利要求14的计算机可读媒体,还包括在整个所述通信网络中布置多个蠕虫探针,其中所述多个蠕虫探针中的每一个在所述通信网络的本地位置上执行所述分组的计数。
16.权利要求15的计算机可读媒体,还包括如果所述本地计数超过用于所述源地址的预定本地门限,则从所述多个蠕虫探针中的一个把所述源地址和相关的本地计数发送到所述通信网络中的所述多个蠕虫探针中的其余蠕虫探针。
17.权利要求16的计算机可读媒体,还包括如果全局计数超过用于所述源地址的预定全局计数门限,则阻止来自具有所述源地址的端点设备的通信量。
18.权利要求17的计算机可读媒体,其中所述全局计数是来自所述多个蠕虫探针中的一个或多个蠕虫探针的多个所述本地计数的总和。
19.权利要求17的计算机可读媒体,其中所述阻止步骤包括识别与具有所述源地址的所述端点设备最接近的路由器或交换机;和发送命令到所述路由器或所述交换机,以阻止从具有所述源地址的所述端点设备始发的通信量。
20.一种用于检测通信网络中潜在的蠕虫感染的装置,包括用于基于每个源地址来计数以不可达目的地通过所述通信网络的分组的装置;和用于如果所述分组的计数在预定时间周期内超过用于所述源地址的预定门限,则检测到所述潜在的蠕虫感染的装置。
全文摘要
公开了一种使网络安全性业务和网络安全性基础设施能够通过分布式蠕虫探针来检测、识别、减轻、抵消和禁止蠕虫的方法和装置,其中所述蠕虫探针可以被链接到集中式监视系统,用于紧急响应处理。基于每个源IP地址,蠕虫探针跟踪具有目的地不可达错误的分组。在一个实施例中,当这种错误的数量例如在蠕虫探针处的预定本地时间周期内超过预定本地门限时,所述错误的计数以及源IP地址将作为告警被发送到网络中的所有其他蠕虫探针。当所述错误的数量例如在预定全局时间周期内超过预定全局门限时,来自具有被识别的源IP地址的端点设备的通信量将被阻止以防止该端点设备进一步扩散蠕虫。
文档编号H04L9/00GK1968271SQ20061013222
公开日2007年5月23日 申请日期2006年5月10日 优先权日2005年5月10日
发明者大卫·陈, 爱德华·阿莫罗索 申请人:美国电报电话公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1