应用分布式阈值随机漫步的潜在网络威胁识别转让专利

申请号 : CN200710105257.3

文献号 : CN101175078B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 哈沙德·纳基尔布赖恩·伯恩斯安库尔·辛格拉

申请人 : 丛林网络公司

摘要 :

总的说来,本发明致力于一种在来往于被感染的网络设备的流量不一定路由通过计算机网络上的单个点的计算机网络内识别被感染的网络设备的技术。例如,网络设备内的各个线卡对来自主机表内的网络设备的输入网络流进行计数。所有参与的网络设备的所有线卡的主机表随后被关联。然后确定来自一个网络设备的流的数量是否超过发送到该网络设备的流的数量到显著的程度。如果超过,该网络设备就会被认为是可疑的。来自可疑的网络设备的包将被重新路由到网络安全设备进行更全面的检查。

权利要求 :

1.一种利用分布式阈值随机漫步识别潜在网络威胁的方法,包括:

利用设置在网络内的一组非对称路由路径上的多个中间设备记录以所述网络上的主机设备为源的网络流的数量和发送到所述网络上的所述主机设备的网络流的数量;

确定以所述主机设备为源的所述网络流的数量与发送到所述主机设备的所述网络流的数量之间的差值是否超过第一阈值;

当确定所述差值超过所述第一阈值时,重新路由以所述主机设备为源的网络流量到网络安全设备;

确定以所述网络上的所述主机设备为源的所述网络流的数量与发送到所述网络上的所述主机设备的所述网络流的数量是否落到第二阈值之下;以及当确定所述差值落到所述第二阈值之下时,将发送到所述主机设备的网络流量重新路由到网络安全设备。

2.根据权利要求1所述的方法,其中,记录流的数量包括:记录以所述主机设备为源的不表示网络连接拒绝的网络流的数量和发送到所述主机设备的不表示网络连接拒绝的网络流的数量。

3.根据权利要求1所述的方法,其中,重新路由来自所述主机设备的网络流量包括:将以所述主机设备为源的网络流量重新路由到检查所述网络流量以识别恶意软件的侵入检测和防护(“IDP”)设备。

4.根据权利要求1所述的方法,其中,重新路由网络流量包括:发送指令到一组线卡,以使所述线卡将来自所述主机设备的包转发到网络安全设备。

5.根据权利要求1所述的方法,

其中,记录以所述网络上的主机设备为源的网络流的数量和发送到所述网络上的所述主机设备的网络流的数量包括:保持以所述主机设备为源的经由所述网络的所述流的数量的记录以及保持以所述主机设备为目的地的经由所述网络的所述流的数量的记录;以及其中,确定差值包括确定以所述主机设备为源的经由所述网络的所述流的数量的所述记录和以所述主机设备为目的地的经由所述网络的所述流的数量的所述记录之间的差值。

6.根据权利要求5所述的方法,其中,保持记录包括:

利用所述网络内的一组中间设备中的每个中间设备保持以所述主机设备为源的经由所述中间设备的所述流的数量的记录;

利用所述一组中间设备中的每个中间设备保持以所述主机设备为目的地的经由所述中间设备的所述流的数量的记录;

将以所述主机设备为源的经由所述中间设备的所述流的数量的所述记录关联到以所述主机设备为源的经由所述网络的所述流的数量的所述记录中;以及将以所述主机设备为目的地的经由所述中间设备的所述流的数量的所述记录关联到以所述主机设备为目的地的经由所述网络的所述流的数量的所述记录中。

7.根据权利要求6所述的方法,其中,所述中间设备为路由器。

8.根据权利要求6所述的方法,

其中,利用所述网络内的一组中间设备中的每个中间设备保持以所述主机设备为源的经由所述中间设备的所述流的数量的记录包括:利用所述一组中间设备中的每个中间设备内的一组线卡中的每个线卡保持以所述主机设备为源的经由所述线卡的所述流的数量的记录;以及其中,关联指定所述主机设备为源的经由所述中间设备的所述流的数量的所述记录包括:关联以所述主机设备为源的经由所述线卡的所述流的数量的所述记录。

9.根据权利要求8所述的方法,其中,利用所述一组中间设备中的每个中间设备内的一组线卡中的每个线卡保持以所述主机设备为源的经由所述线卡的所述流的数量的记录包括:从所述网络接收网络包;

确定所述包是否为新流的一部分;以及

如果所述包为新流的一部分以及所述包的源地址字段指定了所述主机设备,则增加以所述主机设备为源的经由所述线卡的流的数量。

10.根据权利要求9所述的方法,其中,确定所述包是否为新流的一部分包括:从所述包提取流信息;

确定流数据库是否包含与所提取出的流信息一致的记录;以及

当确定所述流数据库不包含与所提取出的流信息一致的记录时,确定所述包是新流的一部分。

11.根据权利要求10所述的方法,还包括:当确定所述流数据库不包含与所提取出的流信息一致的记录时,增加与所提取出的流信息一致的记录。

12.根据权利要求10所述的方法,其中,所述流数据库为散列表。

13.根据权利要求10所述的方法,其中,增加以所述主机设备为源的经由所述线卡的流的数量包括:确定主机表是否包含针对所述主机设备的条目;

如果确定所述主机表不包含针对所述主机设备的条目,则为所述主机设备在所述主机表内创建条目;以及使所述主机表内针对所述主机设备的所述条目中的源计数器增值。

14.根据权利要求8所述的方法,其中,利用所述一组中间设备中的每个中间设备内的一组线卡中的每个线卡保持以所述主机设备为源的经由所述线卡的所述流的数量的记录包括:对以所述主机设备为源的经由所述线卡的所述流的数量的所述记录求和。

15.根据权利要求6所述的方法,

其中,利用所述一组中间设备中的每个中间设备保持以所述主机设备为目的地的经由所述中间设备的所述流的数量的记录包括:利用所述一组中间设备中的每个中间设备内的所述一组线卡中的每个线卡保持以所述主机设备为目的地的经由所述线卡的所述流的数量的记录;以及其中,关联指定所述主机设备为目的地的经由所述中间设备的所述流的数量的所述记录包括:关联以所述主机设备为目的地的经由所述线卡的所述流的数量的所述记录。

16.根据权利要求15所述的方法,其中,利用所述一组中间设备中的每个中间设备内的一组线卡中的每个线卡保持以所述主机设备为目的地的经由所述线卡的所述流的数量的记录包括:从所述网络接收网络包;

确定所述包是否为新流的一部分;以及

如果所述包为所述新流的一部分以及所述包的目的地址字段指定了所述主机设备,则增加以所述主机设备为目的地的经由所述线卡的所述流的数量。

17.根据权利要求6所述的方法,其中,将以所述主机设备为源的经由所述中间设备的所述流的数量的所述记录关联到以所述主机设备为源的经由所述网络的所述流的数量的所述记录中包括:对以所述主机设备为源的经由所述中间设备的所述流的数量的所述记录求和。

18.根据权利要求1所述的方法,其中,确定以所述主机设备为源的网络流的数量与发送到所述主机设备的所述网络流的数量之间的差值是否超过第一阈值包括:确定以所述主机设备为源的网络流的近似数量与发送到所述主机设备的网络流的近似数量之间的差值是否超过第一阈值。

19.一种利用分布式阈值随机漫步识别潜在网络威胁的网络设备,

所述网络设备是设置在网络内的一组非对称路由路径上的多个中间设备的一部分,所述网络设备包括:设备关联模块,用来记录以所述网络上的主机设备为源的流的数量和发送到所述网络上的所述主机设备的所述网络流的数量;

威胁识别模块,用来确定经由多个网络路径的以网络上的主机设备为源的网络流的数量和经由所述多个网络路径的发送到所述网络上的所述主机设备的网络流的数量之间的差值是否超过第一阈值;以及流量重定向模块,用来当所述威胁识别模块确定所述差值超过所述第一阈值时,将以所述主机设备为源的网络流量重新路由到网络安全设备,其中,所述威胁识别模块确定以所述主机设备为源的所述网络流的数量和发送到所述主机设备的所述网络流的数量之间的差值是否落到第二阈值之下;以及其中,当所述威胁识别模块确定所述差值落到所述第二阈值之下时,所述流量重定向模块将以所述主机设备为目的地的网络流量重新路由到所述网络安全设备。

20.根据权利要求19所述的网络设备,其中,所述设备关联模块通过记录不表示网络连接拒绝的以所述主机设备为源的网络流的数量和发送到所述主机设备的不表示网络连接拒绝的网络流的数量,来记录以所述网络上的主机设备为源的流的数量和发送到所述网络上的所述主机设备的网络流的数量。

21.根据权利要求19所述的网络设备,其中,所述网络安全设备为深入检查所述网络流量以识别恶意软件的签名的侵入检测和防护(“IDP”)设备。

22.根据权利要求19所述的网络设备,其中,所述流量重定向模块通过发送指令到一组线卡来重新路由网络流量,以使所述线卡将以所述主机设备为源的包转发到所述网络安全设备。

23.根据权利要求19所述的网络设备,

其中,所述设备关联模块保持以所述主机设备为源的经由所述网络的所述流的数量的记录以及保持以所述主机设备为目的地的经由所述网络的所述流的数量的记录;以及其中,所述威胁识别模块通过确定以所述主机设备为源的经由所述网络的所述流的数量的所述记录和以所述主机设备为目的地的经由所述网络的所述流的数量的所述记录之间的差值,来确定以所述主机设备为源的所述网络流的数量和发送到所述主机设备的所述网络流的数量之间的差值是否超过第一阈值。

24.根据权利要求23所述的网络设备,

其中,所述网络设备包括保持以所述主机设备为源的经由所述网络设备的所述流的数量的记录以及保持以所述主机设备为目的地的经由所述网络设备的所述流的数量的记录的线卡关联模块;以及其中,所述设备关联模块通过将指定所述主机设备为源的经由所述网络设备和其它网络设备的所述流的数量的所述记录关联到指定所述主机设备为源的经由所述网络的所述流的数量的所述记录中以及将指定所述主机设备为目的地的经由所述网络设备和其它网络设备的所述流的数量的所述记录关联到指定所述主机设备为目的地的经由所述网络的所述流的数量的所述记录中,来保持以所述主机设备为源的经由所述网络的所述流的数量的记录和以所述主机设备为目的地的经由所述网络的所述流的数量的记录。

25.根据权利要求24所述的网络设备,其中,所述网络设备和所述其它网络设备为路由器。

26.根据权利要求24所述的网络设备,

其中,所述网络设备还包括一组线卡,其中所述一组线卡中的每个线卡保持指定所述主机设备为源的经由所述线卡的所述流的数量的记录以及保持指定所述主机设备为目的地的经由所述线卡的所述流的数量的记录;

其中,所述线卡关联模块通过关联指定所述主机设备为源的经由所述线卡的所述流的数量的所述记录来保持指定所述主机设备为源的经由所述线卡的所述流的数量的记录;以及其中,所述线卡关联模块通过关联指定所述主机设备为目的地的经由所述线卡的所述流的数量的所述记录来保持指定所述主机设备为目的地的经由所述线卡的所述流的数量的记录。

27.根据权利要求26所述的网络设备,其中,所述一组线卡中的线卡包括流模块,用于从所述网络接收网络包以确定所述包是否为新流的一部分,以及用于如果所述包为新流的一部分且所述包的源地址字段指定了所述主机设备,则增加指定所述主机设备为源的经由所述线卡的所述流的数量。

28.根据权利要求27所述的网络设备,

其中,所述线卡包括容纳与流信息一致的记录的流数据库;以及

其中,所述流模块从所述包提取流信息,确定所述流数据库是否包含与所提取出的流信息一致的记录,以及当所述流模块确定所述流数据库不包含与所提取出的流信息一致的记录时,确定所述包为新流的一部分。

29.根据权利要求28所述的网络设备,其中,当所述流模块确定所述流数据库不包含与所提取出的流信息一致的记录时,所述流模块增加与所提取出的流信息一致的记录到所述流数据库。

30.根据权利要求28所述的网络设备,其中,所述流数据库为散列表。

31.根据权利要求27所述的网络设备,

其中,所述线卡包括容纳针对主机设备的条目的主机表;

以及

其中,所述流模块确定所述主机表是否包含针对所述主机设备的条目,如果所述流模块确定所述主机表不包含针对所述主机设备的条目,就针对所述主机设备在所述主机表内创建条目,并使所述主机表内针对所述主机设备的所述条目内的源计数器增值。

32.根据权利要求26所述的网络设备,其中,所述线卡关联模块通过对指定所述主机设备为源的经由所述线卡的所述流的数量的所述记录求和,来保持指定所述主机设备为源的经由所述线卡的所述流的数量的记录。

33.根据权利要求26所述的网络设备,其中,所述一组线卡中的每个线卡通过从所述网络接收网络包、确定所述包是否为新流的一部分以及当所述包是新流的一部分且所述包的目的地址字段指定了所述主机设备时增加指定所述主机设备为目的地的经由所述线卡的所述流的数量,来保持指定所述主机设备为目的地的经由所述线卡的所述流的数量的记录。

34.根据权利要求22所述的网络设备,其中,所述设备关联模块通过对以所述主机设备为源的经由所述网络设备和其它网络设备的所述流的数量的所述记录求和,来关联指定所述主机设备为源的经由所述网络设备和所述其它网络设备的所述流的数量的所述记录。

35.根据权利要求19所述的网络设备,其中,所述网络为企业网,而所述主机设备为个人计算机。

36.根据权利要求19所述的网络设备,其中,所述威胁识别模块确定从所述主机设备发送的所述网络流的近似数量和发送到所述网络设备的所述网络流的近似数量之间的差值是否超过所述第一阈值。

说明书 :

应用分布式阈值随机漫步的潜在网络威胁识别

技术领域

[0001] 本发明涉及计算机网络,尤其涉及计算机网络安全。

背景技术

[0002] 计算机病毒和蠕虫是公司和家庭计算机网络的主要威胁。病毒和蠕虫会造成敏感信息的泄漏、计算机网络的拥塞、硬件和软件故障以及其它问题。许多病毒和蠕虫试图在尽可能多的网络设备上进行自身复制。为了进行自身复制,被感染的网络设备上的病毒或蠕虫可使该网络设备试图创建与其它网络设备的网络连接。如果该网络设备成功地创建了与另一网络设备的网络连接,该病毒或蠕虫就会利用该网络连接将它自身的副本传输到另一网络设备,或使另一网络设备运行恶意代码。
[0003] 通常,被感染的网络设备不会预先编程有网络(如企业网)内那些在线的并能接受与该被感染的网络设备连接的网络设备的网络地址。因此,被感染的网络设备通常通过试图建立经由一系列网络地址的网络连接,来执行网络地址的端口扫描以发现易受攻击的系统。例如,被感染的网络设备会发送创建网络连接的邀请(例如,传输控制协议SYN消息)到局部子网内的每个因特网协议地址(如,68.122.053.xxx)。因为被感染的网络设备将邀请发送到那些不存在或者不接受网络连接的网络设备,所以被感染的网络设备所发送的许多邀请都被拒绝或彻底失败。发出许多创建网络连接的邀请而这些邀请中的许多又不被接受的被感染的网络设备往往被称作“可疑网络设备”。
[0004] 网络安全设备可利用阈值随机漫步(threshold random walk)算法来识别可疑网络设备。采用阈值随机漫步算法的网络安全设备为每一个已通过该网络安全设备发出邀请的网络设备保留(maintain)一个计数器。每当来自一个网络设备的邀请被接受时,网络安全设备就使该网络设备的计数器增值,而每当来自该网络设备的邀请被拒绝时,网络安全设备就使该网络设备的计数器减值。如果网络设备的计数器落在最小阈值以下,这就表示该网络设备正在发送许多邀请到其它网络设备,而这些网络设备中的许多都不接受这些邀请。因此,网络安全设备会怀疑该网络设备已经被病毒或其它的威胁所感染。网络安全设备于是会隔离被怀疑受到感染的网络设备。

发明内容

[0005] 总的说来,本发明致力于在来往于被感染的网络设备的流量不一定通过计算机网络上的单个点路由的计算机网络内识别被感染的网络设备的技术。例如,在一个实施例中,遍布网络分布的网络设备内的各个线卡对来自网络设备的输入网络流计数。分布式网络设备的线卡可例如保持用来为每个线卡识别出的网络流存储统计数据的主机表。每个网络设备内的控制单元将所有参与的网络设备的所有线卡的主机表相互关联。控制单元然后确定来自某一网络设备的流的数量是否超过流向该网络设备的流的数量到显著的程度。如果超过,控制单元就会认为该网络设备是可疑的。控制单元随后就会将来自可疑网络设备的包重新路由到网络安全设备作更全面的检查。
[0006] 例如,企业网内的路由器可包括一组线卡。每个线卡均保持一个散列表和一个主机表。当线卡从企业网接收包时,线卡确定该包是否表示网络连接的拒绝(例如,TCP RST包)。如果该包不表示网络连接的拒绝,则线卡确定该包是否为散列表内的流的一部分。如果该包不是散列表内的流的一部分,则线卡在散列表内输入新的流,并针对该包的源地址和该包的目的地址在主机表内使计数器增值。接下来,例如,路由器内的控制单元定期将线卡内的主机表关联到设备主机表中。该控制单元可以与企业网内的其它路由器的控制单元协作将其它分布式设备的设备主机表关联到系统主机表中。代表分布式设备工作的控制单元随后会分析系统主机表,以识别失败连接企图的数量超过给定阈值的网络设备。如果失败连接企图的数量超过该阈值,控制单元就确定所识别出的网络设备正试图启动许多或者失败或者被其他设备拒绝的网络连接。因为这是被感染的网络设备的标志,控制单元就会指示线卡将来自这些网络设备的网络流量重新路由到能确定网络设备是否被实际感染的侵入检测和防护设备。这样,就像在利用非对称路由的网络内经常出现的情形一样,即使所有来自给定网络设备的流量不一定流过企业网内的公共点,企业网的路由器仍可协作来识别可疑的网络设备。
[0007] 根据本发明一个实施例的方法包括:确定从网络上的主机设备经由多个网络路径发送的网络流的数量与经由该多个网络路径向网络上的该主机设备发送的网络流的数量之间的差值是否超过第一阈值。该方法还包括当确定该差值超过第一阈值时,重新路由来自该主机设备的网络流量。
[0008] 根据本发明另一实施例的网络设备包括:确定从网络上的主机设备经由多个网络路径发送的网络流的数量与经由该多个网络路径向网络上的该主机设备发送的网络流的数量之间的差值是否超过第一阈值的威胁识别模块。该网络设备还包括当成胁识别模块确定该差值超过第一阈值时重新路由来自主机设备的网络流量的流量重定向模块。
[0009] 根据本发明另一实施例的计算机可读介质包括多个指令。该指令使网络设备的可编程处理器确定从网络上的主机设备经由多个网络路径发送的网络流的数量与经由该多个网络路径向网络上的该主机设备发送的网络流的数量之间的差值是否超过第一阈值。该指令还使该处理器当确定差值超过第一阈值时,重新路由来自主机设备的网络流量。
[0010] 在附图以及下面的描述中阐述了本发明的一个或多个实施例的细节。通过说明书、附图以及权利要求书,本发明的其他特征、目的和优点将会变得显而易见。

附图说明

[0011] 图1是示出路由器协作实施分布式随机漫步技术以识别任何可疑主机设备的示例性非对称路由网络的框图。
[0012] 图2是示出在非对称路由网络中应用分布式随机漫步技术识别潜在被感染主机设备的示例性路由器的框图。
[0013] 图3是示出在非对称路由网络中应用分布式随机漫步技术识别潜在被感染主机设备的路由器的线卡内的流模块的示例性操作的流程图。
[0014] 图4是示出应用分布式随机漫步技术识别可疑的潜在被感染主机设备的路由器的控制单元的示例性操作的流程图。
[0015] 图5是示出线卡主机表的示例性配置的表格图。
[0016] 图6是示出设备主机表的示例性配置的表格图。
[0017] 图7是示出系统主机表的示例性配置的表格图。
[0018] 图8是表示以主机设备为源的流的数量和发送到该主机设备的流的数量之间的示例性差值随时间变化的示图。

具体实施方式

[0019] 图1是示出包括非对称路由网络6的示例性系统2的框图,在该非对称路由网络中,路由器8A和8B协作实施分布式随机漫步技术来识别任何可疑的主机设备。为了举例说明,系统2表示为包括协作实施分布式随机漫步技术来识别任何可疑的主机设备的路由器8A和8B。为方便描述,只示出了两个主机设备4A和4B(总称作主机设备4),并且该主机设备可以是个人计算机、服务器、网络数据中心、中间网络设备、电视机顶盒、网络电话、网络设备、移动设备等等。
[0020] 网络6可以是企业网。例如,公司可运用网络6来实现与员工计算机和与客户及用户的通信。主机设备4可直接或间接地连接到网络6。例如,主机设备4A可通过因特网服务提供商和因特网或通过专用网络链接间接连接到网络6。同时,主机设备4B可直接连接到网络6,主机设备4B为连接到企业局域网(LAN)的网络设备就是这种情形。
[0021] 系统2示出了非对称路由网络的简化示例。即,在从主机设备4A到主机设备4B一个方向上流动的流量流经的路径不同于在相反方向上流动的流量。如此处所述,路由器8A协作检测任何可能感染计算机病毒或蠕虫的主机设备4。例如,这样的恶意计算机程序可使主机设备4试图通过网络6与主机设备4中的其它设备建立网络连接。这些恶意程序然后会试图利用这些网络连接进行非法目的。例如,在主机设备4A上运行的恶意程序可应用至主机设备4B的网络连接来使主机设备4B执行恶意程序的副本。在另一实例中,在主机设备4A上运行的恶意程序可应用至主机设备4B的网络连接来使主机设备4B发送敏感信息(比如信用卡号码)到主机设备4A。
[0022] 在多数情况下,恶意程序不会预编程有主机设备4的网络地址的信息和哪些主机设备4接受网络连接的信息。因此,恶意程序会使被感染的主机设备在识别主机设备4的网络地址和识别哪些主机设备4接受网络连接的尝试中试图建立许多网络连接。这些试图中的许多或因为不存在给定网络地址的主机设备或因为主机设备4拒绝与被感染的主机设备建立网络连接而失败。因此,病毒感染的标志指示是指主机设备试图建立明显超过被接受的网络连接数量。而且,如果一个或多个主机设备4进行了许多不成功的与特定主机设备建立网络连接的尝试,这就表示该特定主机设备正“遭受攻击”。也就是说,在一个或多个主机设备4上运行的恶意程序是为了非法目的而以特定设备为目标。
[0023] 为了与其它的主机设备建立网络连接,主机设备4通过网络6发送连接请求。每个连接请求通常包括源地址字段、目的地址字段、协议字段、源端口字段和目的端口字段。例如,如果该连接请求从主机设备4A发往主机设备4B,则源地址字段包括主机设备4A的网络地址,目的地址字段包括主机设备4B的网络地址。共享相同的源地址字段、目的地址字段、协议字段、源端口字段和目的端口字段值的一组包可称为“网络流”。
[0024] 每一个路由器8都包括发送和接收包含连接请求和连接确认的包的多组线卡。线卡可通过高速交换机互连。路由器8的线卡可,例如,保持用于为每个线卡识别出的网络流存储统计数据的主机表。例如,当路由器8中的一个内的线卡从主机设备4中的一个或路由器8中的另外一个接收包时,该线卡确定该包是否表示连接拒绝(例如,TCP RST包)。如果该包表示连接拒绝,则线卡转发该包。否则,如果该包不表示连接拒绝,则线卡提取用于识别该包的流的信息。换句话说,线卡提取该包的源地址字段、目的地址字段、协议字段、源端口字段和目的端口字段。线卡然后访问散列表以确定线卡以前是否接收过相同流中的其它包。也就是说,线卡对包的源地址字段、目的地址字段、协议字段、源端口字段和目的端口字段执行散列函数。如果散列表不包含所得散列值的条目,线卡就认为该包是一个新流的一部分,并在散列表中为该散列值创建条目。如果线卡以前接收过与该包相同的流中的其它包,则线卡更新散列表中的时间戳,并转发该包而不更新它的LC主机表。
[0025] 如果线卡以前没有接收过与该包相同的流中的其它包,则线卡修改LC主机表来记录检测到的流。重要的是,该流不需要表示已建立的连接。更特别的是,线卡甚至记录主机设备间的连接尝试(如SYN包)和连接确认(如SYNACKS)。在一个实施例中,每个线卡内的主机表包含已在包中被用作源地址或目的地址的每个网络地址的条目。主机表内的每个条目包含主机源计数器和目的源计数器。对于每个新的流,线卡通过使源设备网络地址的源计数器增值和使目的设备网络地址的目的计数器增值来更新其主机表。这样,线卡保持以每个主机设备为源的流的数量的记录和以每个主机设备为目的地的流的数量的记录。
[0026] 路由器8的每个控制单元定期将它们各自线卡的LC主机表相互关联到各自的“设备主机表”中去。例如,控制单元通过为线卡主机表内的每个独特条目在设备主机表内创建条目,将来自它的线卡的LC主机表合并成设备主机表。也就是说,控制单元针对被指定为由任意线卡接收到的包流内的源地址或目的地址的每个网络地址在设备主机表内创建条目。针对设备主机表内的每一个条目,控制单元将线卡主机表的每个等效条目的源计数器求和以及将线卡主机表内的每个等效条目的目的计数器求和。这样,控制单元保持以主机设备为源的经由路由器的流的数量的记录和以主机设备为目的地的经由路由器的流的数量的记录。
[0027] 在将线卡的主机表关联到设备主机表中以后,路由器8的控制单元可将每个路由器8的设备主机表关联到系统主机表中。例如,一个路由器8的控制单元以应用例如链路层发现协议(LLDP)的网络管理协议的对等模式,发送设备主机表信息请求到其它路由器中的每一个。作为响应,其它的路由器传送它们各自的设备主机表到该请求路由器。接收路由器然后将分散的主机表关联到非对称路由网络6的单个系统主机表中。
[0028] 为关联设备主机表,接收路由器的控制单元为设备主机表内的每个独特条目在系统主机表内创建一个条目。对于系统主机表内的每个条目,控制单元将设备主机表的每个等效条目的源计数器求和以及将设备主机表的每个等效条目的目的计数器求和。这样,控制单元保持以主机设备作为源的经由网络6的流的数量的记录和以主机设备为目的地的经由网络6的流的数量的记录。
[0029] 路由器8的控制单元可使用系统主机表来识别任何可疑的网络设备,这些可疑网络设备可提供该设备已经被病毒或其它威胁感染的指示。例如,一个路由器8中的控制单元可分析系统主机表来将以主机设备为源的经由网络6的流的相对数量与以该主机设备为目的地的经由网络6的流的数量作比较。例如,控制单元可将系统主机表内某一主机设备的目的计数器从该主机设备的源计数器中减去。如果差值超过给定的阈值,控制单元就认为该主机设备是可疑的。
[0030] 在主机设备发送的流明显多于该主机设备接收的流的情况下,考虑到主机设备一般使用双向流来实施通信,控制单元会认为该主机设备正试图与其它或者不存在或者拒绝这些连接尝试的主机设备建立连接。通过这种方式,即使路由器8A或8B都不需要检查来往于非对称路由网络6内的一个主机设备4中的所有流量,控制单元也可使用系统主机表来识别该主机设备被感染了计算机病毒或蠕虫的指示(indicator)。此外,如果以某一主机设备为目的地的经由网络6的流的数量与以该主机设备为源的经由网络6的流的数量相比较的相对数量超过第二阈值,控制单元就认为该主机设备正遭受攻击。
[0031] 当一个路由器8的控制单元认为一个主机设备4可疑时,该控制单元就使来自该主机设备的包重新路由到侵入检测和防护(“IDP”)设备10。另外,当一个路由器8的控制单元认为一个主机设备4正遭受攻击时,该控制单元就使发往该主机设备的包重新路由到IDP设备10。例如,路由器8A的控制单元发送指令到路由器8A中的每个线卡来更新该线卡内的转发表,使这些线卡将来自可疑主机设备的包转发到IDP设备10。IDP设备10随后检查来自可疑主机设备的包,以确定这些包是否包含该可疑主机设备实际上已被恶意软件感染的其它提示。例如,IDP设备10会深入检查包中有关恶意软件签名的内容。如果IDP设备10确认恶意软件已经感染了该可疑主机设备,IDP设备10就将该可疑主机设备隔离。例如,IDP设备10可发送指令到路由器8以丢弃来自该可疑主机设备的包。另外,IDP设备
10可向该可疑主机设备的用户发送关于可能被感染的警报。
[0032] 本发明可提供一个或多个优点。例如,当来往于主机设备的流(包括网络连接请求和确认)可通过网络的不同路径时,本发明能够识别潜在的被感染的主机设备。出于这个原因,不需要所有的网络流量都流过网络上的公共点以识别潜在的被感染的主机设备。因为不是所有的网络流量都必须流过该网络上的公共点,本发明可消除严重的瓶颈。而且,因为本发明不需要在网络安全设备(如,IDP设备10)内对包进行深入检查来初始化检测潜在的被感染的主机设备,所以线卡可以在以线速转发包的同时实施本发明的实施例。
[0033] 图2是示出在非对称路由网络中应用分布式随机漫步技术识别主机设备4中的一些潜在的被感染主机设备的示例性路由器8A的框图。如图2中的实例所示,路由器8A包括控制单元20、交换结构(switch fabric)22以及一组线卡24A~24N(总称为线卡24)。线卡24A~24N可分别通过网络路径26A~26N发送或接收包。路径26A~26N在本文中可称作网络路径26。
[0034] 线卡24A~24N中的每一个分别包括流模块28A~28N、散列表30A~30N、转发表32A~32N以及LC主机表34A~34N。流模块28A~28N在本文中可总称作流模块28,散列表30A~30N在本文中可总称作散列表30,转发表32A~32N在本文中可总称作转发表32,以及LC主机表34A~34N在本文中可总称作LC主机表34。
[0035] 当线卡24中的一个从网络路径26中相应的一个接收包时,流模块28中相应的一个从该包中提取流信息。例如,如果线卡24A从网络路径26A接收到SYN包或SYN-ACK包,流模块28A就从该包中提取流信息。特别地,流模块28A可从网络包中提取出源地址字段、目的地址字段、协议字段、源端口字段以及目的端口字段。在从包中提取了流信息以后,流模块28A针对该流信息执行散列函数以获得散列值。流模块28A然后确定散列表30A是否包含该散列值的条目。散列表30A内的每个条目都可以是指示流模块28A使用该条目的最后时间的时间戳。给定合适的散列函数和散列表数据结构,流模块28就能够以线速执行散列函数和散列表查找。在一些实施例中,散列表30A可以由存储流信息的流数据库代替或相反。
[0036] 如果散列表30A包含经过散列的流信息的条目,流模块28A就不认为收到的包为新流的一部分。因为流模块28A不认为收到的包是新流的一部分,流模块28A就对散列表30A内针对该提取出的流信息的条目的时间戳进行更新。流模块28A然后根据存储在转发表32A内的转发信息,通过网络路径26中的一个将该包转发到网络6上。但是,如果散列表30A不包含该经过散列的流信息的条目,流模块28A就针对该经过散列的流信息向散列表30A中添加新的条目。
[0037] 当时间戳表示使用散列表30A内的记录的时间戳时,流模块28A会定期从散列表30A中清理条目,从而从散列表30A中清理掉旧的条目。例如,如果散列表30A内的一条记录的时间戳表示五分钟以上时间之前的时间,流模块28A就删除散列表30A内的该条记录。
当流模块28A接收包时,流模块28A将散列表30A内针对该包的流的记录时间戳设定为当前时间。这样,散列表30A更可能只包含主动网络流。
[0038] 当散列表30A不包含该经过散列的流信息的条目时,除了往散列表30A添加新的条目外,流模块28A还修改LC主机表34A以记录新的流。LC主机表34A包含在最近通过线卡24A的网络流内被指定为源设备或目的设备的每个主机设备的条目。LC主机表34A内的每个条目都包括源计数器和目的计数器。LC主机表34A内针对某一主机设备的条目的源计数器指示已指定该主机设备作为源设备的最近通过线卡24A的流的数量。LC主机表34A内针对某一主机设备的条目的目的计数器指示已指定该主机设备作为目的设备的最近通过线卡24A的流的数量。
[0039] 为了修改LC主机表34A,流模块28A可首先确定LC主机表34A是否包含针对包中指定的源设备的条目。如果LC主机表34A不包含针对包中指定的源设备的条目,则流模块28A针对包中指定的该源设备向LC主机表34A中添加条目。流模块28A然后将针对包中指定的该源设备的条目内的源计数器设定为1。另一方面,如果LC主机表34A包含对于包中指定的源设备的条目,则流模块28A将该条目内的源计数器加1。
[0040] 在确定了LC主机表34A是否包含针对包内指定的源设备的条目以后,流模块28A确定LC主机表34A是否包含针对包内指定的目的设备的条目。如果LC主机表34A不包含针对包内指定的目的设备的条目,流模块28A针对包中指定的目的设备向LC主机表34A中添加条目。流模块28A然后将针对包中指定的目的地址的条目内的目的计数器设定为1。另一方面,如果LC主机表34A包含针对包中指定的目的设备的条目,流模块28A将该条目内的目的计数器加1。
[0041] LC主机表34A内的每个条目还可包含主机位图字段和端口位图字段。在一些实施例中,流模块28A可利用该主机位图字段将源计数器和目的计数器压缩成一个固定宽度的字段。当LC主机表34A如下所述进行关联时,这个压缩是很有用的。
[0042] 控制单元20内的线卡关联模块36定期将LC主机表34关联到设备主机表38中。例如,线卡关联模块36定期请求线卡24中的每一个发送LC主机表34的副本到线卡关联模块36。在接收到LC主机表34的副本以后,线卡关联模块36在设备主机表38内针对LC主机表34内的每个独特条目创建条目。这样,设备主机表38包含最近通过路由器8A的网络流内被指定为源设备或目的设备的每个主机设备的条目。与LC主机表34一样,设备主机表38内的每个条目包括源计数器和目的计数器。设备主机表38内针对某一主机设备的条目的源计数器指明了已指定该主机设备作为源设备的最近通过路由器8A的流的数量。换句话说,设备主机表38内针对某一主机设备的条目的源计数器是每个LC主机表34内针对该主机设备的源计数器之和。设备主机表38内针对某一主机设备的条目的目的计数器指明了已指定该主机设备作为目的设备的最近通过路由器8A的流的数量。换句话说,设备主机表38内针对某一主机设备的条目的目的计数器是每个LC主机表34内针对该主机设备的目的计数器之和。
[0043] 控制单元20内的设备关联模块40定期将其它路由器8内的其它设备主机表与设备主机表38关联到系统主机表42中。例如,设备关联模块40可定期请求每个路由器8发送它们的设备主机表的副本到设备关联模块40。在收到设备主机表的副本以后,设备关联模块40针对设备主机表内的每个独特条目在系统主机表42内创建条目。这样,系统主机表42包含最近通过路由器8的网络流内被指定为源设备或目的设备的每个主机设备的条目。
与设备主机表38一样,系统主机表42内的每个条目均包括源计数器和目的计数器。系统主机表42内针对某一主机设备的条目的源计数器指明了已指定该主机设备作为源设备的最近通过路由器8的流的数量。换句话说,系统主机表42内针对某一主机设备的条目的源计数器是每个设备主机表内针对该主机设备的源计数器之和。系统主机表42内针对某一主机设备的条目的目的计数器指明了已指定该主机设备作为目的设备的最近通过路由器8的流的数量。换句话说,系统主机表42内针对某一主机设备的条目的目的计数器是每个设备主机表内针对该主机设备的目的计数器之和。
[0044] 控制单元20内的威胁识别模块44分析系统主机表42以识别主机设备4中那些可疑的或潜在遭受攻击的主机设备。例如,对于系统主机表42内的每个条目,威胁识别模块44通过从主机设备的源计数器中减去目的计数器来计算差值。如果该差值高于第一阈值(例如,+50),威胁识别模块44就认为与该条目相关联的主机设备是可疑的,因为该主机设备发送的流(包括连接请求,例如SYN包)多于该主机设备接收到的流(包括连接确认,例如SYN-ACK包)。另一方面,如果该差值低于第二阈值(例如,-50),威胁识别模块44就认为该主机设备正潜在地遭受攻击,因为该主机设备接收的流(包括连接请求,例如SYN包)明显高于该主机设备发送的流(包括连接请求,例如SYN包)。
[0045] 当威胁识别模块44确定主机设备4中的一个是可疑的或潜在地遭受攻击,威胁识别模块44就发送警报到控制单元20内的流量重定向模块46。当威胁识别模块44确定从网络6上的某一主机设备经由网络路径26发送的网络流的数量与经由网络路径26向网络6上的该主机设备发送的网络流的数量之间的差值超过第一阈值时,流量重定向模块46负责将来自可疑的一个主机设备4的网络流量重新路由到IDP设备10。例如,响应于来自威胁识别模块44的警报,流量重定向模块46可发送指令到线卡24以修改转发表32。如果威胁识别模块44确定主机设备4中的一个是可疑的,流量重定向模块46就发送指令到线卡
24来修改转发表32,以便线卡24将来自可疑的主机设备的包转发到IDP设备10。如果威胁识别模块44确定主机设备4中的一个正潜在地遭受攻击,流量重定向模块46将发送指令到线卡24来修改转发表32,以便线卡24将来自正潜在地遭受攻击的主机设备的包转发到IDP设备10。这样,IDP设备10可更全面地检查这些包。
[0046] 图3是示出在非对称路由网络中应用分布式随机漫步技术识别潜在的被感染主机设备的路由器8A的线卡24A内的流模块(例如,流模块28A)的示例性操作的流程图。首先,流模块28A从网络路径26A接收包(50)。在接收到包以后,流模块28A确定该包是否表示网络连接拒绝(51)。如果该包表示网络连接拒绝(51中的“是”),则流模块28A转发该包(58)。另一方面,如果该包不表示网络连接拒绝(51中的“否”),流模块28A从该包中提取流信息(52)。
[0047] 流模块28A使用提取出的流信息来确定该包是否属于一个新的流(54)。例如,流模块28A可对提取出的流信息执行散列函数以得出散列值。如果散列表30A不包含该散列值的条目或者不包含具有最近时间戳的条目,流模块28A就确定该流为一个新的流。如果该包不属于新的流(54中的“否”),流模块28A就用与提取出的流信息匹配的流信息更新散列表30A的条目内的时间戳(56)。流模块28A然后转发该包(58)。另一方面,如果该包属于一个新的流(54中的“是”),流模块28A就向散列表30A中添加针对该新的流的条目(60)。例如,流模块28A以提取出的流信息的散列值来在散列表30A内创建包含时间戳的条目。
[0048] 在流模块28A针对该新的流向散列表30A添加条目以后,流模块28A确定LC主机表34A是否包含针对该包中指定的目的主机的条目(62)。如果LC主机表34A不包含针对该包中指定的目的主机的条目(62中的“否”),流模块28A就向LC主机表34A中添加针对该包中指定的目的主机的条目(64)。
[0049] 在针对该包中指定的目的主机向LC主机表34A添加条目以后,或者如果LC主机表34A已经包含针对该包中指定的目的主机的条目(62中的“是”),则流模块28A确定LC主机表34A是否包含针对该包中指定的源主机的条目(66)。如果LC主机表34A不包含针对该包中指定的源主机的条目(62中的“否”),则流模块28A针对该包(68)中指定的源主机向LC主机表34A添加条目。
[0050] 在针对该包中指定的源主机设备添加条目到LC主机表34A以后,或者如果LC主机表34A已经包含针对该包中指定的源主机设备的条目(66中的“是”),则流模块28A就使LC主机表34A内针对该包中指定的源主机设备的条目内的源计数器增值(70)。然后,流模块28A使LC主机表34A内针对该包中指定的目的主机设备的条目内的目的计数器增值(72)。一旦流模块28A使该目的计数器增值,流模块28A就对散列表30A内的包的流更新时间戳(56)并转发该包(58)。
[0051] 图4是示出应用分布式随机漫步技术识别可疑的潜在被感染主机设备的路由器8A的控制单元(如,控制单元20)的示例性操作的流程图。首先,控制单元20内的线卡关联模块36请求线卡24内的LC主机表34的副本(80)。在请求LC主机表34的副本以后,线卡关联模块36将LC主机表34关联到设备主机表38中(82)。如上所述,为了将LC主机表34关联到设备主机表38中,线卡关联模块36可为LC主机表34内的每个独特主机条目在设备主机表38内创建一个主机条目。线卡关联模块36然后对LC主机表34内的每个主机条目的源计数器求和以及对LC主机表34内的每个主机条目的目的计数器求和,以得到设备主机表38内的主机条目的源计数器和目的计数器。
[0052] 在将LC主机表34关联到设备主机表38中以后,控制单元20内的设备关联模块40从路由器8中的任意其它一个请求设备主机表的副本(84)。在从路由器8中的任意其它一个请求了设备主机表的副本以后,设备关联模块40可将该设备主机表关联到系统主机表42中(86)。如上所述,设备关联模块40通过为设备主机表内的每个独特主机条目在系统主机表42内创建主机条目来关联这些设备主机表。设备关联模块40然后对系统主机表42中的设备主机表内的每个主机条目的源计数器求和以及设备主机表内的每个主机条目的目的计数器求和。
[0053] 一旦设备关联模块40将设备主机表关联到系统主机表42中以后,威胁识别模块44确定系统主机表42的第一主机条目内的源计数器减去系统主机表42的第一主机条目的目的计数器以后是否大于第一阈值(88)。如果该源计数器减去目的计数器的结果大于第一阈值(88中的“是”),流量重定向模块46指示线卡24更新转发表32,使线卡24将来自由该第一主机条目所指定的主机设备的包转发到IDP设备10(90)。在流量重定向模块46发送指令到线卡24以后,威胁识别模块44比较系统主机表42内的第二主机条目的源计数器和目的计数器,依此类推(92)。
[0054] 另一方面,如果系统主机表42内的第一主机条目的源计数器减去目的计数器的结果不大于第一阈值(88中的“否”),则威胁识别模块44确定第一主机条目的源计数器减去目的计数器是否小于第二阈值(94)。如果威胁识别模块44确定第一主机条目的源计数器减去目的计数器小于第二阈值(94中的“是”),则流量重定向模块46指示线卡24更新转发表32,以使线卡24将发往由第一主机条目指定的主机设备的包转发到IDP设备10(96)。在指示线卡24以后或者如果源计数器减去目的计数器不小于第二阈值(94中的“否”),威胁识别模块44比较系统主机表42内的第二主机条目的源计数器和目的计数器,依此类推(92)。
[0055] 图5是示出LC主机表的示例性配置的表格图。图5的实例示出了四个LC主机表:LC主机表100A、LC主机表100B、LC主机表100C以及LC主机表100D。这些LC主机表在本文中可总称作LC主机表100。LC主机表100A和LC主机表100B可表示关于路由器4中的第一个的LC主机表,LC主机表100C和LC主机表100D表示关于路由器4中的第二个的LC主机表。每个LC主机表100都包括主机列、源计数器列、目的计数器列以及一行或多行。每一行表示LC主机表内的条目。
[0056] LC主机表100内的每一行为以某一主机设备为源流经一线卡的网络流的数量和流经该线卡发送到该主机设备的网络流的数量的记录。例如,一行的主机字段可包含主机设备的网络地址。一行的源计数器字段包含以由该行的主机字段的网络地址所指定的主机设备为源流经一线卡的网络流的计数。一行的目的计数器字段可包含经由该线卡发送到由该行的主机字段的网络地址指定的主机设备中的网络流的计数。例如,LC主机表100A的第一行的主机字段指明网络地址为207.142.131.284。LC主机表100A的第一行的源计数器字段指定“45”为指定网络地址207.142.131.284为源的经由线卡的流的数量。LC主机表100A的第一行的目的计数器字段指定“42”为指定网络地址207.142.131.284为目的地的经由线卡的流的数量。
[0057] 图6是示出设备主机表的示例性配置的表格图。图6的实例示出了两个设备主机表:设备主机表110A和设备主机表110B。设备主机表110A和设备主机表110B总称为设备主机表110。每个设备主机表都包括主机列、源计数器列、目的计数器列以及一行或多行。
[0058] 每个设备主机表110都包含针对在它们各自的LC主机表100组内的每个独特主机值的行。例如,设备主机表110A可包含针对LC主机表100A和100B内的每一行的行;设备主机表110B可包含针对LC主机表100C和100D内的每一行的行。例如,LC主机表100A包含主机值为207.142.131.284、207.142.131.040以及207.142.085.079的行。LC主机表100B包含主机值为56.123.078.254、207.142.131.040以及207.142.085.079的行。因为设备主机表110A包含针对设备主机表100A和100B内具有独特主机值的每一行的行,所以设备主机表110A包含主机值为207.142.131.284、207.142.131.040、207.142.085.079以及56.123.078.254的行。
[0059] 设备主机表110内的每一行的源计数器值为它们各自LC主机表100组内有着相同主机值的行的源计数器值之和。例如,设备主机表110A内主机值为207.142.131.040的行的源计数器值(即,230)为LC主机表100A内主机值为207.142.131.040的行的源计数器值(即,180)和LC主机表100B内主机值为207.142.131.040的行的源计数器值(即,50)之和。
[0060] 类似地,设备主机表110内的每一行的目的计数器值为它们各自的LC主机表100组内有着相同主机值的行的目的计数器值之和。例如,设备主机表110A内主机值为207.142.131.040的行的目的计数器值(即,132)为LC主机表100A内主机值为207.142.131.040的行的目的计数器值(即,120)和LC主机表100B内主机值为207.142.131.040的行的目的计数器值(即,12)之和。
[0061] 图7是示出系统主机表120的典型配置的表格图。与LC主机表100和设备主机表110一样,系统主机表120也包括主机列、源计数器列、目的计数器列以及一行或多行。
[0062] 系统主机表120包含针对设备主机表110内具有独特主机值的每一行的行。例如,设备主机表110A包括主机值为207.142.131.284、207.142.131.040、207.142.085.079以及56.123.078.254的 行。设 备主 机 表110B包括 主机 值为 142.43.121.284、207.142.131.040、207.142.085.079以及56.123.078.254的行。因为系统主机表120包含针对设备主机表110内有着独特主机值的每一行的行,所以系统主机表120包含主机 值 为 207.142.131.284、207.142.131.040、207.142.085.079、56.123.078.254 以 及
142.43.121.284的行。
[0063] 系统主机表120内的每一行的源计数器值为设备主机表110内有着相同主机值的行的源计数器值之和。例如,系统主机表120内主机值为207.142.131.040的行的源计数器值(即,488)为设备主机表110A内主机值为207.142.131.040的行的源计数器值(即,230)和设备主机表110B内主机值为207.142.131.040的行的源计数器值(即,258)之和。
[0064] 类似地,系统主机表120内的每一行的目的计数器值为设备主机表110内有着相同主机值的行的目的计数器值之和。例如,系统主机表120内主机值为207.142.131.040的行的目的计数器值(即,275)为设备主机表110A内主机值为207.142.131.040的行的目的计数器值(即,132)和设备主机表110B内主机值为207.142.131.040的行的目的计数器值(即,143)之和。
[0065] 图8是表示以主机设备为源的流的数量和发送到该主机设备的流的数量之间的示例性差值随时间变化的示图。如图8中的实例所示,纵轴表示以一个主机设备为源的网络流的数量和发送到相同主机设备的流的数量之间的差值。例如,威胁识别模块44可通过从以某一主机设备为源的流的数量中减去发送到该主机设备的流的数量来计算该差值。横轴表示时间。
[0066] 图8中的短横线表示给定时间段的差值。例如,从时刻1到时刻2,差值为+5。换句话说,该主机设备发送的流的数量比该主机设备接收到的流的数量多5。从时刻2到时刻3,差值为-10。换句话说,该主机设备发送的流的数量比该主机设备接收到的流的数量少10。这意味着该主机设备接收到的流的数量比该主机设备发送的流的数量多10。
[0067] 图8的示例图还示出了第一和第二阈值。第一阈值可表示威胁识别模块44认为主机设备是可疑的情况下的差值。第二阈值可表示威胁识别模块44认为主机设备正遭受攻击情况下的差值。例如,从时刻11到时刻12,该差值为+30。因为该差值+30在第一阈值之上,威胁识别模块44就认为该主机设备是可疑的。
[0068] 在其它实施例中,威胁识别模块44通过从发送到主机设备的流的数量中减去以主机设备为源的流的数量来计算该差值。在这些实施例中,在图8的示例图中的正的差值表示主机设备接收到的流多于主机设备发送的流。其中第一阈值可表示威胁识别模块44怀疑该主机设备正遭受攻击的等级。类似地,在图8的示例图中的负的差值表示主机设备发送的流多于主机设备接收到的流。其中第二阈值表示威胁识别模块44怀疑该主机设备潜在地被感染的等级。
[0069] 以上描述了本发明的不同的实施例。例如,在路由器的环境下对本发明进行了阐释。但是,这不是唯一的实施例。例如,本发明可以在防火墙设备或其它的设备中实施。而且,除了使用确定数量的流,也可以使用近似数量的流。这些和其它的实施例都落入以下权利要求的范围内。