用于执行消息交换核算的方法和系统.pdf

上传人:r7 文档编号:473431 上传时间:2018-02-18 格式:PDF 页数:38 大小:4.75MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380022085.7

申请日:

2013.03.21

公开号:

CN104247340A

公开日:

2014.12.24

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 12/58申请公布日:20141224|||实质审查的生效IPC(主分类):H04L12/58申请日:20130321|||公开

IPC分类号:

H04L12/58; H04L12/26

主分类号:

H04L12/58

申请人:

阿卡麦科技公司

发明人:

M·J·斯蒂温斯; A·P·申恩达尔卡尔; W·D·利彻特恩斯特因; M·D·斯泽蒂罗

地址:

美国马萨诸塞

优先权:

2012.03.22 US 61/614,317; 2012.03.22 US 61/614,314; 2012.05.14 US 13/471,103; 2012.05.14 US 13/471,079

专利代理机构:

中国国际贸易促进委员会专利商标事务所 11038

代理人:

陈新

PDF下载: PDF下载
内容摘要

服务器具有对在服务器处查看到的流量执行核算的防火墙模块。流量包括消息交换,诸如HTTP请求和HTTP响应。服务器测试消息交换以确定它们是否匹配若干消息交换类别中的任一个。服务器保持对匹配流量的统计数据,例如由特定的客户端生成的匹配流量的速率。通常,服务器是作为内容分发网络(CDN)的一部分的代理服务器,消息交换发生在请求内容的客户端、代理服务器、CDN中的其他服务器、和/或代理服务器从其检索所请求的内容的源服务器之间。使用消息交换模型和由此生成的统计数据,服务器可以标记特定的流量或客户端,并采取保护性动作(例如拒绝、报警)。在替换实施例中,中央控制系统从多个服务器收集统计数据以供分析。

权利要求书

1.  一种在服务器中操作的计算机实现的方法,所述服务器包括形成一个或多个处理器的电路系统以及保持用于由所述一个或多个处理器执行的指令的存储器,所述服务器通信地耦合到计算机网络,所述方法包括:
在所述服务器处,参与客户端与所述服务器之间的根据协议的消息交换,所述消息交换包括至少一个请求消息以及至少一个响应消息;
对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;
如果所述一个或多个匹配条件满足,则在所述服务器处记录关于所述消息交换的信息;以及
如果所述一个或多个匹配条件不满足,则不记录所述信息。

2.
  根据权利要求1所述的方法,其中消息具有头部和主体,并且所述一个或多个匹配条件指定用于消息头部和消息主体的任一者中的字段的匹配值。

3.
  根据权利要求1所述的方法,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。

4.
  根据权利要求1所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件描述的流量的所述类别相关联的计数。

5.
  根据权利要求1所述的方法,其中记录信息包括增加用于与所述客户端相关联的客户端标识符的计数。

6.
  根据权利要求1所述的方法,其中记录信息包括增加与有关 所述消息交换的URI相关联的计数。

7.
  根据权利要求1所述的方法,其中所述一个或多个匹配条件在所述服务器处接收到的控制文件中指定,所述控制文件与给定的域相关联。

8.
  根据权利要求1所述的方法,所述协议是HTTP。

9.
  根据权利要求1所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件定义的流量的所述类别相关联的计数,并且还包括使用所记录信息来计算流量落入所述类别的发生率。

10.
  根据权利要求1所述的方法,其中所述匹配条件被应用到的所述多个消息包括至少一个请求消息以及至少一个响应消息。

11.
  一种服务器,包括:
电路系统,所述电路系统形成一个或多个处理器;
硬件接口,所述硬件接口通信地耦合到计算机网络;
存储器,所述存储器保持用于由所述一个或多个处理器执行的指令,其中所述指令在由所述一个或多个处理器执行时使得所述服务器执行以下操作:
参与客户端与所述服务器之间的根据协议的消息交换,所述消息交换包括至少一个请求消息以及至少一个响应消息;
对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;
如果所述一个或多个匹配条件满足,则在所述服务器处记录关于所述消息交换的信息;以及
如果所述一个或多个匹配条件不满足,则不记录所述信息。

12.
  一种在代理服务器处操作的计算机实现的方法,所述代理服务器包括形成一个或多个处理器的电路系统以及保持用于由所述一个或多个处理器执行的指令的存储器,所述代理服务器通信地耦合到计算机网络,所述方法包括:
在所述代理服务器处,参与以下消息交换的至少一者:(i)客户端与所述代理服务器之间的消息交换,以及(ii)所述代理服务器与源服务器之间的消息交换,所述消息交换是根据协议的;
针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;
如果所述一个或多个匹配条件满足,则在所述代理服务器处记录关于所述消息交换的信息;以及
如果所述一个或多个匹配条件不满足,则不记录所述信息。

13.
  根据权利要求12所述的方法,其中所述消息交换中的所述多个消息包括由所述代理服务器从所述源服务器接收到的至少一个响应消息。

14.
  根据权利要求12所述的方法,其中所述消息交换中的所述多个消息包括从所述代理服务器向所述源服务器发送的至少一个请求消息。

15.
  根据权利要求12所述的方法,其中所述一个或多个匹配条件包括由从所述代理服务器到所述源服务器的任何请求消息满足的条件。

16.
  根据权利要求12所述的方法,其中所述消息交换中的所述多个消息包括至少一个请求消息以及至少一个响应消息。

17.
  根据权利要求12所述的方法,其中消息具有头部和主体, 并且所述一个或多个匹配条件指定用于消息头部和消息主体中的任一者中的字段的匹配值。

18.
  根据权利要求12所述的方法,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。

19.
  根据权利要求12所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件描述的流量的所述类别相关联的计数。

20.
  根据权利要求12所述的方法,其中记录信息包括增加用于与所述客户端相关联的客户端标识符的计数。

21.
  根据权利要求12所述的方法,其中记录信息包括增加与有关所述消息交换的URI相关联的计数。

22.
  根据权利要求12所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且还包括:
使用所记录信息来计算落入所述类别的、与特定的客户端或URI相关联的消息流量的发生率。

23.
  根据权利要求12所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且还包括:
使用所记录信息来计算落入所述类别并与特定的客户端或URI相关联的消息流量的发生率;以及
将所述发生率与阈值进行比较来确定是否要限制与所述特定的客户端或URI相关联的请求。

24.
  根据权利要求12所述的方法,其中所述协议是HTTP。

25.
  一种代理服务器,包括:
电路系统,所述电路系统形成一个或多个处理器;
硬件接口,所述硬件接口通信地耦合到计算机网络;
存储器,所述存储器保持用于由所述一个或多个处理器执行的指令,其中所述指令在由所述一个或多个处理器执行时使得所述代理服务器执行以下操作:
参与以下消息交换的至少一者:(i)客户端与所述代理服务器之间的消息交换,以及(ii)所述代理服务器与源服务器之间的消息交换,所述消息交换是根据协议的;
针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;
如果所述一个或多个匹配条件满足,则在所述代理服务器处记录关于所述消息交换的信息;以及
如果所述一个或多个匹配条件不满足,则不记录所述信息。

26.
  根据权利要求25所述的代理服务器,其中所述消息交换中的所述多个消息包括由所述代理服务器从所述源服务器接收到的至少一个响应消息。

27.
  根据权利要求25所述的代理服务器,其中所述消息交换中的所述多个消息包括从所述代理服务器向所述源服务器发送的至少一个请求消息。

28.
  根据权利要求25所述的代理服务器,其中所述一个或多个匹配条件包括由从所述代理服务器到所述源服务器的任何请求消息满足的条件。

29.
  根据权利要求25所述的代理服务器,其中所述多个消息包括至少一个请求消息以及至少一个响应消息。

30.
  根据权利要求25所述的代理服务器,其中消息具有头部和主体,并且所述一个或多个匹配条件指定用于消息头部和消息主体中的任一者中的字段的匹配值。

31.
  根据权利要求25所述的代理服务器,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。

32.
  根据权利要求25所述的代理服务器,其中所述代理服务器通过增加与由所述一个或多个匹配条件描述的消息流量的所述类别相关联的计数来记录信息。

33.
  根据权利要求25所述的代理服务器,其中所述代理服务器通过增加用于与所述客户端相关联的客户端标识符的计数来记录信息。

34.
  根据权利要求25所述的代理服务器,其中所述代理服务器通过增加与有关所述消息交换的URI相关联的计数来记录信息。

35.
  根据权利要求25所述的代理服务器,其中所述代理服务器通过增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数来记录信息,并且所述代理服务器还执行以下操作:
使用所记录信息来计算落入所述类别并与特定的客户端或URI相关联的消息流量的发生率。

36.
  根据权利要求25所述的代理服务器,其中记录信息包括增 加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且所述代理服务器还执行以下操作:
使用所记录信息来计算落入所述类别的、与特定的客户端或URI相关联的消息流量的发生率;以及
将所述发生率与阈值进行比较来确定是否要限制与所述特定的客户端或URI相关联的请求。

37.
  根据权利要求25所述的代理服务器,其中所述协议是HTTP。

38.
  一种在代理服务器处操作的计算机实现的方法,所述代理服务器包括形成一个或多个处理器的电路系统以及保持用于由所述一个或多个处理器执行的指令的存储器,服务器通信地耦合到计算机网络,所述方法包括:
(i)在所述代理服务器处,参与以下消息交换的至少一者:(i)客户端与所述代理服务器之间的消息交换,和(ii)所述代理服务器与源服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;
(ii)一经在所述代理服务器处接收到作为所述消息交换的一部分的请求消息或响应消息,从指示所述代理服务器的对所接收到的请求消息或响应消息进行反应的操作的控制文件进行读取;
(iii)确定在所述代理服务器处接收到的所接收的请求消息或响应消息是否满足在所述控制文件中所指定的、定义感兴趣的消息流量的类别的一个或多个条件;
(iv)对多个所接收到的请求消息或响应消息重复步骤(iii)。

39.
  根据权利要求38所述的方法,还包括:如果步骤(iii)和(iv)的结果是所述一个或多个条件的全部都已经满足,则在所述代理服务器处记录关于所述消息交换的信息;否则,不记录所述信息。

40.
  根据权利要求38所述的方法,其中所述代理服务器是由代表多个内容提供商客户的服务提供商操作的内容分发网络的一部分,所述内容提供商客户的内容经由所述内容分发网络分发至请求客户端,每个内容提供商与至少一个控制文件相关联。

41.
  根据权利要求38所述的方法,其中所述控制文件是基于XML的。

42.
  一种代理服务器,包括:
电路系统,所述电路系统形成一个或多个处理器;
硬件接口,所述硬件接口通信地耦合到计算机网络;
存储器,所述存储器保持用于由所述一个或多个处理器执行的指令,其中所述指令在由所述一个或多个处理器执行时使得所述代理服务器执行以下操作:
(i)参与以下消息交换的至少一者:(a)客户端与所述代理服务器之间的消息交换,和(a)所述代理服务器与源服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;
(ii)一经在所述代理服务器处接收到作为所述消息交换的一部分的请求消息或响应消息,从指示所述代理服务器的对所接收到的请求消息或响应消息进行反应的操作的控制文件进行读取;
(iii)确定在所述代理服务器处接收到的所接收的请求消息或响应消息是否满足在所述控制文件中所指定的、定义感兴趣的流量的类别的一个或多个条件;
(iv)对多个所接收到的请求消息或响应消息重复步骤(iii)。

43.
  一种分布式计算系统,包括:
多个内容服务器和一个或多个控制服务器,所述多个内容服务器以及所述一个或多个控制服务器通信地耦合到全球计算机网络;
其中所述多个内容服务器中的每一个执行以下操作:
a.参与以下消息交换的至少一者:(i)客户端与所述内容服务器之间的消息交换,以及(ii)所述内容服务器与另一服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;
b.针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的流量的类别;
c.如果所述一个或多个匹配条件满足,则在所述内容服务器处记录关于所述消息交换的信息;以及
d.将以下中的任一者发送到所述一个或多个控制服务器:(i)所记录的信息,和(ii)由所述内容服务器基于所记录信息做出的关于应用强制策略的确定;
并且其中所述一个或多个控制服务器执行以下操作:
e.从所述多个内容服务器中的第一内容服务器接收以下中的任一者:(i)第一内容服务器的所记录的信息,以及(ii)第一内容服务器的关于应用所述强制策略的确定;
f.将指令发送到所述多个内容服务器中的第二内容服务器,所述指令配置所述第二内容服务器来针对与从所述第一内容服务器接收到的所记录信息和/或所述确定有关的客户端或URI应用强制策略。

44.
  根据权利要求43所述的系统,其中,在步骤(f)中,在所述第二内容服务器处应用的所述强制策略操作以减小来自所述客户端或对于所述URI的请求消息的速率。

45.
  根据权利要求43所述的系统,其中所述第二内容服务器在接收到来自所述一个或多个控制服务器的所述指令之前不针对所述客 户端或所述URI应用强制策略。

46.
  根据权利要求43所述的系统,其中所述第二内容服务器所应用的所述强制策略包括动作,所述动作包括拒绝来自所述客户端或对于所述URI的请求消息。

47.
  根据权利要求43所述的系统,其中记录消息包括增加用于与所述客户端相关联的客户端标识符的计数。

48.
  根据权利要求47所述的系统,其中所述客户端由客户端IP地址、会话id、用户id、令牌以及cookie中的任一者标识。

49.
  根据权利要求43所述的系统,其中所述多个内容服务器是代理服务器。

50.
  根据权利要求43所述的系统,其中所述多个内容服务器是由内容分发网络服务提供商操作以代表多个内容提供商客户分发内容的代理高速缓存服务器,并且定义流量的所述类别的所述一个或多个匹配条件是基于逐个内容提供商可配置的。

51.
  根据权利要求43所述的系统,其中所述协议是HTTP。

52.
  根据权利要求43所述的系统,其中所述第一内容服务器和所述第二内容服务器位于不同的地理位置。

53.
  一种操作分布式计算机系统的方法,所述分布式计算机系统包括多个内容服务器和一个或多个控制服务器,所述多个内容服务器和所述一个或多个控制服务器通信地耦合到全球计算机网络,所述方法包括:
所述多个内容服务器中的每一个执行以下操作:
a.参与以下消息交换的至少一者:(i)客户端与所述内容服务器之间的消息交换,以及(ii)所述内容服务器与另一服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;
b.针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的流量的类别;
c.如果所述一个或多个匹配条件满足,则在所述内容服务器处记录关于所述消息交换的信息;以及
d.将以下中的任一者发送到所述一个或多个控制服务器:(i)所记录的信息,和(ii)由所述内容服务器基于所记录信息做出的关于应用强制策略的确定;
并且所述一个或多个控制服务器执行以下操作:
e.从所述多个内容服务器中的第一内容服务器接收以下中的任一者:(i)第一内容服务器的所记录的信息,以及(ii)第一内容服务器的关于应用所述强制策略的确定;
f.将指令发送到所述多个内容服务器中的第二内容服务器,所述指令配置所述第二内容服务器来针对与从所述第一内容服务器接收到的所记录信息和/或所述确定有关的客户端或URI应用强制策略。

54.
  根据权利要求53所述的方法,其中,在步骤(f)中,在所述第二内容服务器处应用的所述强制策略操作以减小来自所述客户端或对于所述URI的请求消息的速率。

55.
  根据权利要求53所述的方法,其中所述第二内容服务器在接收到来自所述一个或多个控制服务器的所述指令之前不针对所述客户端或所述URI应用强制策略。

56.
  根据权利要求53所述的方法,其中所述第二内容服务器所 应用的所述强制策略包括动作,所述动作包括拒绝来自所述客户端或对于所述URI的请求消息。

57.
  根据权利要求53所述的方法,其中记录消息包括增加用于与所述客户端相关联的客户端标识符的计数。

58.
  根据权利要求57所述的方法,其中所述客户端由客户端IP地址、会话id、用户id、令牌以及cookie中的任一者标识。

59.
  根据权利要求53所述的方法,其中所述多个内容服务器是代理服务器。

60.
  根据权利要求53所述的方法,其中所述多个内容服务器是由内容分发网络服务提供商操作以代表多个内容提供商客户分发内容的代理高速缓存服务器,并且定义流量的所述类别的所述一个或多个匹配条件是基于逐个内容提供商可配置的。

61.
  根据权利要求53所述的方法,其中所述协议是HTTP。

62.
  根据权利要求53所述的方法,其中所述第一内容服务器和所述第二内容服务器位于不同的地理位置。

63.
  一种在代理服务器处操作的计算机实现的方法,所述代理服务器包括形成一个或多个处理器的电路系统以及保持用于由所述一个或多个处理器执行的指令的存储器,所述代理服务器通信地耦合到计算机网络,所述方法包括:
在所述代理服务器处,参与以下消息交换的至少一者:(i)客户端与所述代理服务器之间的消息交换,以及(ii)所述代理服务器与高速缓存服务器之间的消息交换,其中所述消息交换是根据协议的 并且包括至少一个请求消息以及至少一个响应消息;
针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;
如果所述一个或多个匹配条件满足,则在所述代理服务器处记录关于所述消息交换的信息;以及
如果所述一个或多个匹配条件不满足,则不记录所述信息。

64.
  根据权利要求63所述的方法,其中所述消息交换中的所述多个消息包括由所述代理服务器从所述高速缓存服务器接收到的至少一个响应消息。

65.
  根据权利要求63所述的方法,其中所述消息交换中的所述多个消息包括从所述代理服务器发送到所述高速缓存服务器的至少一个请求消息。

66.
  根据权利要求63所述的方法,其中所述一个或多个匹配条件包括由从所述代理服务器到所述高速缓存服务器的任何请求消息满足的条件。

67.
  根据权利要求63所述的方法,其中所述消息交换中的所述多个消息包括至少一个请求消息以及至少一个响应消息。

68.
  根据权利要求63所述的方法,其中消息具有头部和主体并且所述一个或多个匹配条件指定用于消息头部和消息主体中的任一者中的字段的匹配值。

69.
  根据权利要求63所述的方法,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。

70.
  根据权利要求63所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件描述的流量的所述类别相关联的计数。

71.
  根据权利要求63所述的方法,其中记录信息包括增加用于与所述客户端相关联的客户端标识符的计数。

72.
  根据权利要求63所述的方法,其中记录信息包括增加与有关所述消息交换的URI相关联的计数。

73.
  根据权利要求63所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且还包括:
使用所记录信息来计算落入所述类别的、与特定的客户端或URI相关联的消息流量的发生率。

74.
  根据权利要求63所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且还包括:
使用所记录信息来计算落入所述类别并与特定的客户端或URI相关联的消息流量的发生率;以及
将所述发生率与阈值进行比较来确定是否要限制与所述特定的客户端或URI相关联的请求。

75.
  根据权利要求63所述的方法,其中所述协议是HTTP。

76.
  一种代理服务器,包括:
电路系统,所述电路系统形成一个或多个处理器;
硬件接口,所述硬件接口通信地耦合到计算机网络;
存储器,所述存储器保持用于由所述一个或多个处理器执行的指 令,其中所述指令在由所述一个或多个处理器执行时使得所述代理服务器执行以下操作:
参与以下消息交换的至少一者:(i)客户端与所述代理服务器之间的消息交换,以及(ii)所述代理服务器与高速缓存服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;
针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;
如果所述一个或多个匹配条件满足,则在所述代理服务器处记录关于所述消息交换的信息;以及
如果所述一个或多个匹配条件不满足,则不记录所述信息。

77.
  根据权利要求76所述的代理服务器,其中所述消息交换中的所述多个消息包括由所述代理服务器从所述高速缓存服务器接收到的至少一个响应消息。

78.
  根据权利要求76所述的代理服务器,其中所述消息交换中的所述多个消息包括从所述代理服务器发送到所述高速缓存服务器的至少一个请求消息。

79.
  根据权利要求76所述的代理服务器,其中所述一个或多个匹配条件包括由从所述代理服务器到所述高速缓存服务器的任何请求消息满足的条件。

80.
  根据权利要求76所述的代理服务器,其中所述多个消息包括至少一个请求消息以及至少一个响应消息。

81.
  根据权利要求76所述的代理服务器,其中消息具有头部和主体并且所述一个或多个匹配条件指定用于消息头部和消息主体中的任一者中的字段的匹配值。

82.
  根据权利要求76所述的代理服务器,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。

83.
  根据权利要求76所述的代理服务器,其中所述代理服务器通过增加与由所述一个或多个匹配条件描述的消息流量的所述类别相关联的计数来记录信息。

84.
  根据权利要求76所述的代理服务器,其中所述代理服务器通过增加用于与所述客户端相关联的客户端标识符的计数来记录信息。

85.
  根据权利要求76所述的代理服务器,其中所述代理服务器通过增加与有关所述消息交换的URI相关联的计数来记录信息。

86.
  根据权利要求76所述的代理服务器,其中所述代理服务器通过增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数来记录信息,并且所述代理服务器还执行以下操作:
使用所记录信息来计算落入所述类别并与特定的客户端或URI相关联的消息流量的发生率。

87.
  根据权利要求76所述的代理服务器,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且所述代理服务器还执行以下操作:
使用所记录信息来计算落入所述类别的、与特定的客户端或URI相关联的消息流量的发生率;以及
将所述发生率与阈值进行比较来确定是否要限制与所述特定的客户端或URI相关联的请求。

88.
  根据权利要求76所述的代理服务器,其中所述协议是HTTP。

说明书

用于执行消息交换核算的方法和系统
相关申请的引用
本申请要求2012年3月22日提交的美国临时申请第61/614,317号以及2012年3月22日提交的美国临时申请第61/614,314号的优先权。该申请还要求2012年5月14日提交的美国申请第13/471,079号以及2012年5月14日提交的美国申请第13/471,103号的优先权,并且是其继续申请。所有上述申请的内容通过引用全部结合于此。
本专利文件包含受版权保护的资料。版权所有者不反对任何人按照专利文档或专利公开在专利商标局专利文件或记录中所呈现的样子而对其进行传真复制,但在其它情况下则保留所有版权。
技术领域
本申请一般地涉及分布式数据处理系统,以及涉及网络流量的分析和核算(accounting)。
背景技术
分布式计算机系统是现有技术所已知的。一种这样的分布式计算机系统是由服务提供商操作和管理的“内容分发网络”或“CDN”。该服务提供商通常代表第三方提供内容分发服务。这种类型的“分布式系统”通常指的是由单个网络或多个网络链接的自律(autonomous)计算机的集合连同被设计为有利于各种服务的软件、系统、协议和技术,所述各种服务诸如内容分发或支持外包站点基础设施。通常,“内容分发”指的是代表内容提供商的内容(诸如网页、流媒体和应用)存储、高速缓存或传输,以及与其一起使用的辅助技术,所述辅助技术包括但不限于DNS查询处理、供应、数据监视以及报告、内容定向、个性化和商业智能(intelligence)。
在诸如图1所示的已知系统中,分布式计算机系统100被配置为内容分发网络(CDN)并且假设具有一组分布在因特网上的机器102a-n。典型地,大部分的机器是位于因特网边缘附近(即在终端用户接入网络处或靠近终端用户接入网络)的服务器。网络操作命令中心(NOCC)104可以被用来监管(administer)和管理系统中的各种机器的操作。隶属于内容提供商的第三方站点(诸如网站106)分载(offload)内容(例如HTML、嵌入式页面对象、流媒体和软件下载等等)的分发到分布式计算机系统100,具体地是到服务器(有时被称作“边缘”服务器,这是因为它们可以位于因特网的“边缘”附近的事实)。这样的服务器可以被分组在一起成为入网点(POP)107。
通常,内容提供商通过将给定的内容提供商域或子域别名(例如,通过DNS CNAME)为由服务提供商的授权域名服务管理的域来分载它们的内容分发。期望这样的内容的终端用户客户端机器122可以被指向分布式计算机系统中的服务器来更可靠和高效地获取该内容。例如,CDN服务器通常提供代理高速缓存功能,通过从本地高速缓存、从另一CDN服务器(高速缓存分层结构)、经由转发请求从源服务器106、或从另一源获取所请求的内容来响应客户端请求。
尽管没有在图1中具体示出,分布式计算机系统还可以包括其他基础设施,诸如分布式数据收集系统108,其从服务器收集使用和其他数据,聚合整个区域或区域组的数据,以及将该数据传递至其他后端系统110、112、114和116以有利于监视、记录、报警、计费、管理以及其他操作和监管功能。分布式网络代理118监视网络以及服务器负荷并提供网络、流量和负荷数据至DNS查询处理机制115,其对于由CDN管理的内容域是授权的。分布式数据传送机制120可以被用来将控制信息(例如管理内容、有利于负荷平衡等的元数据)分布至CDN服务器。
如图2所示,CDN中的给定机器200(有时被称作“边缘机器”)包括运行操作系统核心(诸如Linux或变型)204的商用硬件 (例如因特尔奔腾处理器)202,其支持一种或多种应用206a-n。为了便利于内容分发服务,例如,给定机器通常运行一组应用,诸如HTTP代理207、名称服务器208、本地监视进程210、分布式数据收集进程212等等。HTTP代理207(在此有时被称作全局主机或“ghost”)通常包括管理器进程,用于对来自该机器的内容的分发和高速缓存进行管理。对于流媒体,该机器可以包括一个或多个媒体服务器,诸如Windows媒体服务器(WMS)或Flash 2.0服务器,根据所支持的媒体格式的需要。
图2中所示的机器可以被配置为提供一个或多个扩展的内容分发特征,优选地基于特定域、特定客户,优选地使用用配置系统而分布至CDN服务器的配置文件。给定的配置文件优选地是基于XML的,并且包括便利于一个或多个先进内容处理特征的一组内容处理规则和指令。配置文件可以通过数据传送机制分发至CDN服务器。美国专利第7,111,057号示出了用于分发和管理服务器内容控制信息的有用的基础设施,并且这种和其他服务器控制信息(有时被称作“元数据”)由CDN服务提供商本身提供,或(通过外联网等)由操作源服务器的内容提供商客户提供。
CDN可以包括网络存储子系统(有时被称作“网络存储(NetStorage)”),其可以位于可由CDN服务器访问的网络数据中心中,诸如在美国专利第7,472,178号中所描述的,其公开通过引用结合于此。
CDN可以操作服务器高速缓存层次结构来提供客户内容的中间高速缓存;一个这样的高速缓存层次结构子系统在美国专利第7,376,716号中描述,其公开通过引用结合于此。例如,CDN可以通过具有一组CDN服务器来提供分层的分布服务,该组CDN服务器被组织为多个区域并代表参与的内容提供商而提供内容分发。高速缓存层次结构建立在包括给定CDN服务器区域和以下之一的CDN中:(a)单个父(parent)区域,(b)CDN服务器区域的子集。响应于确定给定对象请求不可在给定CDN区域中被服务,作为对联 系源服务器的代替,该请求被提供至单个父区域或CDN服务器区域的子集中的给定区域来进行处理,优选地作为与给定对象请求相关联的元数据的功能。如果可能的话,给定的对象请求然后由在单个父区域或给定子集区域中的给定CDN服务器服务。如果原始请求不可由中间节点服务,则该请求通常仅被继续转发至源服务器。
对于实况流分发,CDN可以包括实况分发子系统,诸如在美国专利第7,296,082号和美国公开第2011/0173345号中所描述的,其公开通过引用结合于此。
CDN还可以为其客户提供分布式防火墙系统,利用CDN服务器基础设施以分析和阻止来自边缘处的可疑或有害客户端的流量。防火墙系统和服务在美国专利申请第2011/0225647号中描述,其内容通过引用结合于此。如在此所描述的,在某些实施例中,该系统通过使CDN服务器对到来的客户端请求应用匹配规则并且一经检测到安全威胁或攻击就采取某些行动(诸如拒绝请求或生成报警)来进行操作。
尽管这样的系统是非常有用和有价值的,但是需要关于点击特定网站的流量的更多信息。这样的信息不仅对于检测攻击和反攻击(例如使用上述防火墙机制)是有用的,而且在分析和解决站点的其他使用——诸如不期望的僵尸(bot)活动(例如不期望的数据抓取)方面——也是有用的。另外,这样的信息可以用于获得终端用户在站点上的行为的观察。
本文的教导针对这些和其他需求,它们通过本公开将变得明晰。
发明内容
根据在下面更详细地公开的某些实施例,CDN服务器的功能扩展有速率核算模块,速率核算模块对客户端与服务器之间和/或服务器与另一服务器(例如源服务器)之间的流量进行归类,对在一段时间内的落入这些类别中的流量执行核算,使用可配置的阈值标准来识别在该时间段期间的过量或有其他问题的流量,以及对识别出的这样 的流量应用强制策略。通常,识别出的流量(有时在此被称为“合格流量”)表示来自特定客户端的过量请求速率。在这种情况下,可以采取策略定义的动作来针对该特定客户端——如由诸如特定的客户端IP地址、会话id或其他之类的客户端标识符所表示的。然而,在其他情况下,例如,系统可以识别特定的通用资源标识符(URI)的过量流量。事实上,流量统计数据(statistics)可以通过客户端标识符、URI或关于多种多样的其他键(key)中的任一个来保持,这将从下面的讨论而变得更清晰。
在此描述的速率核算系统和方法扩展了基于云的防火墙模块的能力,基于云的防火墙的能力诸如与在美国专利申请第2011/0225647号中所描述的,其内容通过引用结合于此。
流量归类功能优选地利用语义消息交换模型,语义消息交换模型使得能够基于接触CDN服务器的消息交换的一个或多个方面进行归类。例如,消息交换可以涉及在客户端与CDN服务器之间以及/或者在客户端与CDN服务器之间和CDN服务器与源服务器(即,在CDN服务器通过转发请求从源服务器检索客户端所请求的内容时)之间流动的消息。消息交换还可以包括在两个CDN服务器争取满足客户端请求(例如,在高速缓存层次结构方案中)时在这两个CDN服务器之间流动的消息。
实际上,消息交换的任何方面可以用于驱动归类。例如,流量归类可以基于到CDN服务器的初始客户端请求的内容。在这种情况下,服务器检查客户端请求中的信息,诸如客户端IP地址、会话标识符、用户代理头部、该请求是否包括诸如GET或POST等的HTTP方法、所请求的资源(URI)或所请求的资源类型、特定URI参数的使用、用户名、其他HTTP头部或主体信息等等。
流量归类还可以基于消息交换中的其他事件,诸如CDN服务器响应于客户端请求必须执行什么内部/中间动作。例如,该请求是否导致CDN服务器在本地高速缓存中寻找内容、是否针对内容向源服务器转发请求(高速缓存缺失)、或者所请求的内容是否为非可高速 缓存的内容等。类似地,归类可以基于来自源服务器(例如HTTP4xx或5xx状态代码,或从源服务器返回的其他错误消息)或来自父CDN服务器的响应的内容。
复合标准可以被用来驱动归类脱离上面消息交换的各方面之一。
优选地,特定的归类的定义是可配置的。可配置性使得CDN的每个内容提供商客户能够定义服务器应保持统计数据所针对的它们网站上的流量的种类(归类策略),然后定义在给定类别中查看到过量的该流量时CDN服务器应当做什么(加强策略)。
在利用集中式威胁评估和防御的实现中,CDN服务器可将关于归类的消息交换和/或它们所遇到的“合格”客户端的信息报告至中央数据收集和控制系统。中央系统分析来自多个CDN服务器的数据以确定网络应当进行什么防御姿势。然后,中央系统可以指示CDN服务器——尤其包括尚未遇到任何过量的流量的服务器——针对识别出的威胁主动应用的策略。
如本领域技术人员将认识到的,前面的描述仅仅提及本发明的实例,而不是限制性的。而且,在此的教导可以以多种多样的系统、方法、装置和非易失性计算机可读介质来实现。还应当指出的是,功能到不同机器的分配不是限制性的,因为在此记载的功能在不同机器中可以以多种多样的方式组合或分割。
还要指出,虽然在此的教导应用于CDN,在CDN内实现不是利用这些教导所必要的。因此,任何服务器(不是CDN的一部分)可以被修改以基于服务器正遇到的请求和响应的消息交换归类来执行速率核算。
通过进一步举例的方式,在本发明的一个实施例中,服务器参与在该服务器与客户端之间和/或该服务器与源服务器之间流动的消息的交换。消息交换是根据提供某些种类的请求消息和某些种类的响应消息的协议(诸如HTTP)的。服务器对消息交换中的消息应用匹配条件,例如测试客户端请求的内容,或者测试来自源的响应的内容,或者测试从服务器本身至这些其他服务器之一所发送或接收的消息的 内容。匹配条件定义可以发生在服务器处并且感兴趣的流量的类别。如果匹配条件满足并且当匹配条件满足时,服务器将记录关于消息交换的信息。通常,这包括增加计数以反映已经遇到匹配消息。如上面所指出的,可以基于每客户端ID、每URI、或其他来保持计数。如果匹配条件不满足,则服务器不增加计数。该计数可用于计算特定流量的速率,然后与可配置的阈值进行比较,以确定该特定流量是否是过量的。如果是这样,则服务器可以采取步骤来限制该流量(即通过拒绝其至少一些),或者产生报警或应用一些其他的强制策略。
匹配条件经常需要服务器检查多个消息,包括在客户端/服务器之间流动的请求和响应两者,以确定整个消息交换是否落入由匹配条件所定义的类别内。例如,匹配条件可以指定某个URI来针对请求进行匹配,但还要求服务器做出到源的转发请求以满足该请求(即,由从服务器至源服务器的任何请求消息满足的匹配条件)。
匹配条件可以指定用于消息头部或消息主体的匹配值。对于HTTP,匹配条件可以指定客户端正使用的HTTP方法。
在本发明的另一个实施例中,服务器参与服务器与客户端、和/或服务器与另一服务器(即源服务器)之间的消息的交换,如上面所描述的。一经接收到消息交换中的请求/响应消息,服务器就从指示服务器对所接收到的消息进行反应的操作的元数据控制文件(诸如XML文件)进行读取。通常,控制文件是各自与服务器为其处理流量的特定内容提供商或内容提供商域相关联的许多中的一个。服务器确定接收消息是否满足在控制文件中所指定的一个或多个条件,所述一个或多个条件有效地定义在服务器处出现(所接收的或所发送的)的并且感兴趣的流量的类别。一些条件可以针对请求的内容进行匹配,其他条件针对响应的内容等进行匹配,使得有必要检查多个消息以确定该流量是否满足所定义的类别。因此,服务器对多个接收到的请求/响应消息重复地应用这些控制文件指定的条件。如果类别被匹配,则服务器记录信息,通常通过如前面所描述地增加计数。
在本发明的另一个实施例中,一种系统包括内容分发网络 (CDN)中的多个服务器。服务器中的至少一个执行以下操作:(ⅰ)接收来自客户端的对与给定的内容提供商相关联的内容的请求,以及(ii)确定多个请求中的每个请求的内容匹配定义类别的一个或多个标准,并且如果是这样,则记录信息(例如增加计数)。所述一个或多个标准优选地基于逐个内容提供商可配置,并且给定的内容提供商可以与多个类别相关联。该服务器进一步执行以下操作:(ⅲ)对做出请求的多个客户端中的每一个确定匹配该类别的请求的速率,以及(iv)将请求的速率与阈值进行比较,该阈值基于逐个内容提供商可配置,以及(v)针对超过阈值的客户端应用强制策略,该强制策略基于逐个内容提供商可配置。
强制策略可以包括诸如拒绝请求或生成关于请求的报警等的一组可能的动作,或者可以指定要应用到来自客户端的后续请求的逻辑规则,该逻辑规则必须在针对该客户端采取行动之前得到满足。一旦做出针对给定客户端应用强制策略的确定,则服务器可以针对该给定客户端应用强制策略持续预定的时间段(惩罚期),而不管在该时间段期间来自该给定客户端的请求的速率。
在本发明的又一个实施例中,分布式计算系统(诸如CDN)包括:多个内容服务器(典型地是代理服务器)和一个或多个控制服务器,所述多个内容服务器与所述一个或多个控制服务器通过全球计算机网络彼此通信地耦合。所述多个内容服务器中的每一个都参与以下消息交换中的至少一个:(ⅰ)客户端与内容服务器之间的消息交换,和(ii)该内容服务器与另一服务器之间的消息交换,并针对消息交换中的多个消息的内容来应用匹配条件,如前面所描述的。如果匹配条件满足,则内容服务器记录关于消息交换的信息(例如增加计数)。每一个内容服务器可以从所记录的信息确定应当针对与消息交换相关的客户端或URI应用强制策略。内容服务器将所记录的信息和/或关于强制策略的确定发送至所述一个或多个控制服务器。典型地,如前面所解释的,当从特定的客户端或针对特定的URI发现过量的消息速率时,触发强制策略。
控制服务器从单独的内容服务器接收数据,并分析它来确定是否发送指令给内容服务器(包括发送原始信息的服务器之外的服务器),该指令将配置内容服务器来针对客户端或URI应用强制策略。因此,在一个服务器处检测到的威胁可以在系统中的其他服务器上被反击。另选地,在一个服务器处检测到的威胁可以由控制服务器分析并用于指示同一服务器来改变其强制策略(例如升级强制策略)。
附图说明
从下面结合附图的详细描述可以更充分地理解本发明,其中:
图1是示出了配置为内容分发网络(CDN)的公知的分布式计算机系统的一个实施例的示意图;
图2是示出了可以实现图1系统中的CDN服务器的机器的一个实施例的示意图;
图3是示出了分布式的、基于云的防火墙系统的一个实施例的图;
图4是示出了在各种上下文中的消息交换的图;
图5是示出了用于在CDN服务器处对流量进行分类和对流量执行流量核算的体系结构的一个实施例的图;
图6是示出了在采样期期间从特定的客户端IP地址接收到的并使得该客户端IP地址经受惩罚期的流量(在该实例中为客户端请求)的图;
图7是示出了在CDN服务器中的速率核算工作流程的例子的流程图;
图8是示出了汇总合格表的例子的示意图;
图9是示出了用于指定消息交换类别的门户(portal)用户界面的图;
图10是示出了用于基于消息交换类别来指定将针对合格客户端应用的强制规则的用户界面的图;
图11是定义图10中示出的一些消息交换类别的控制文件元数据 的例子,该元数据可以按照用户的类别定义从门户自动生成或明确地编写(如图9所示);以及
图12是示出用于实现此处教导的计算机系统中的硬件的框图。
具体实施方式
下面的描述阐述了本发明的实施例以提供对在此公开的方法和装置的结构、功能、制造和使用的原理的全面理解。在此描述以及在附图中示出的系统、方法和装置是非限制性的示例;本发明的保护范围仅由权利要求书来限定。结合一个示例性实施例描述或示出的特征可以与其他实施例的特征相组合。这些修改和变型旨在包括在本发明的范围之内。本文引用的所有专利、出版物和参考文献都明确地通过引用全部结合于此。
基于云的防火墙
图3示出了美国专利申请第2011/0225647号中所描述的分布式、基于云的防火墙系统300和服务,该专利申请的内容通过引用结合于此。CDN服务器302作为CDN的部分而分布在因特网周围,如前面结合图1-2所讨论的。在系统300中,每个CDN服务器302包括和/或耦合到防火墙302a。防火墙302a检验并过滤流量,并被配置为基于指定的安全标准来阻止或通过流量。
期望从源服务器306获取内容的客户端机器322对CDN服务器302之一做出请求(通常是HTTP或HTTPS请求)。这些请求在网络边缘处由防火墙302a检查,防火墙302a对这些请求应用规则集。通过防火墙302a的请求被正常处理,通常所请求的内容从CDN服务器302的高速缓存服务、或者由CDN服务器302从源服务器306检索从而分发到客户端机器322。被识别为攻击或其他安全威胁(诸如来自攻击者机器324的那些)的请求触发防火墙302a采取防御动作,例如阻止该请求、将其记录用于报警、或以其他方式。因此,威胁在到达源服务器306之前、更靠近于该请求的来源而被系统300识别和解决。这从源服务器306分载了负担。
优选地,如在美国专利申请第2011/0225647号中所描述的,防火墙系统基于一套核心规则(例如,可从Breach Security Labs得到的规则集,例如ModSecurity V1.6)。ModSecurity将一套广泛的匹配标准应用于HTTP请求,以识别可被分类为攻击、信息泄露或其他种类的安全威胁的行为。核心规则集定义了web服务器的配置参数和安全规则。在高层面上,安全规则是与数据相关联的表达式。该表达式通常是操作符、变量和转译的组合,这产生布尔值(Boolean)。表达式也可以是其他表达式之间的逻辑OR或逻辑AND,或另一表达式的非。每个规则的数据由标识符(或“id”)、标签、消息、说明请求是否应当被拒绝的标志、严重性水平等构成。
这些核心规则(或其子集)被转换成元数据功能方案,控制元数据以在美国专利第7,240,100中所描述的方式分发到CDN服务器并在CDN服务器处应用,该专利的公开内容通过引用结合于此。具体而言,优选地,元数据通过面向客户的外联网门户(例如基于Web的界面)被提供并被提供至元数据配置文件内的CDN服务器。因为配置文件可能需要频繁地变化(以应对攻击场景),优选地,防火墙相关的元数据配置使用专用快速的通信信道被分发到CDN服务器进程。可用于该目的的有用的通信基础设施参见美国专利第7,149,807号(其公开内容通过引用结合于此)。优选地,配置文件在整个分布式系统中的部署可以在很短的时间段内完成,有利地使得能够对攻击做出实时响应。
虽然CDN服务提供商可以直接配置防火墙302a,但是系统300也可以允许作为CDN的客户的与源服务器306相关联的内容提供商配置将应用以请求该内容提供商的内容的防火墙设置。这是通过使用上面描述的元数据的方法来实现的。因此,CDN基础设施跨多个CDN客户共享,但每个客户都可以提供并管理自己的防火墙以免受攻击。
速率核算
按照本公开,如上面所描述的CDN服务器防火墙可扩展以执行 “流量速率”核算并且(如果期望的话)防御边缘处的过量速率的请求,从而增强对源服务器和CDN本身给予的保护。典型的场景可能涉及来自特定客户端(即在Y时间段内向CDN服务器发送多于X消息的客户端)的“过量”速率的请求。这样的客户端可以由CDN服务器阻止Z时间段,除了其他可能的防御动作之外。
然而,如下面将要看到的那样,本文中所描述的方法既不限于请求的速率核算,也不限于基于谁(哪个客户端)正在发送请求的速率核算。
这里所描述的示例性系统支持CDN服务器内的速率核算和作为消息交换类别而建模的“过量”速率合格标准。该设计支持内联到CDN服务器(即服务器内部)的消息交换主角(principal)的有状态的、基于速率的归类。随着时间的推移,CDN服务器将核算每内容提供商(或每个域)、归类流量的速率。在稳定状态内,基于单独请求在业务类别上所具有的离散匹配,安全策略规则可以触发防御姿势。可以使用多种多样的身份模型来核算速率。例如,在一个实施例中,速率可以通过请求客户端——例如通过客户端IP地址或其他这样的客户端标识符——而被制表。在其他实施例中,可以使用与主角动作者(其可能或可能不唯一地对应于与服务器进行交互的特定设备)相关的标识符,诸如会话id或cookies(信息记录程序)、用户id、SAML id或属性、令牌、或者从消息头部或主体中提取的其他值。也支持不是基于客户端身份的模型。例如,速率核算可基于与特定的资源标识符(URI)或资源类型相关的消息交换的数目而发生。
本文所描述的示例性系统支持将域流量隔离为消息交换类别,对类别执行速率核算,应用合格标准来识别“过量”速率,然后追踪这些合格者来在安全策略规则和触发的防御姿势中使用。
可经由元数据配置文件来配置系统以及定义类别和强制策略,如以上结合图2所描述的。因此,该系统可基于逐个内容提供商或者基于逐个域被配置。
消息交换
在本节中对消息交换和消息交换归类的概念进行讨论。消息交换(或“mex”)是指特定的交换模式的协议消息的协调交换(或分类(bracket))。在典型的情况HTTP下,存在“请求/响应”消息交换模式。因此,HTTP消息交换指的是HTTP请求消息和HTTP响应消息的这种分类。在trans-GRESS-ion术语方面,存在和通常用在产品中的已有术语的相关性:出口(egress)、入口(ingress)、中间口(midgress)。例如,“出口”指的是在系统的边缘处与终端用户客户端(即在客户端和CDN服务器之间)的mex。“入口”是指与转发源服务器的mex——在这种情况下CDN服务器是“客户端”的角色、源服务器是“服务器”。“中间口”是指在CDN平台中的区域间的中间消息交换,例如使用高速缓存层次结构方法从CDN服务器到父区域CDN服务器的内容请求。对客户端请求的检查和核算是消息交换的出口部分。然而,如前面所指出的,消息交换的中间口和出口部分也被检查并用于核算的目的。
由于如图1所示的CDN方案的分层性质(许多消息交换具有在不同阶段作为客户端和服务器两者的角色的动作者),我们可以使用术语消息交换“主角”来指终端用户客户端的所识别的动作者。例如,坐在浏览器前、也许通过不同的网络基础设施到来的人是“主角”。类似地,控制僵尸的实体也是主角,无论其是如web服务消费者的“好”僵尸还是如攻击者或抓取者(scraper)的“不良”僵尸。
图4提供了消息交换概念的三个说明。框400示出了几个可能发生在客户端和服务器之间的请求/响应事件。
框402示出了在参照图1描述的CDN上下文中的消息交换。在框402中,例如,CDN服务器接收到客户端请求,诸如HTTP GET或POST或者其他HTTP动词(verb)。为了响应该请求,CDN服务器可以核对本地高速缓存中的内容。如果内容在高速缓存中不可得,则CDN服务器(现在是充当客户端)做出对来自源服务器的内容的转发请求,并且接收来自源服务器的响应。CDN服务器然后将 响应发送至客户端,无论该响应是来自本地高速缓存还是源服务器。框402可以被认为是具有两个消息交换(CDN服务器每一侧有一个),它们是反映整个事务链的更大的消息交换的一部分。应当指出,在其他实施例中,可以对网络存储方案而不是源服务器做出转发请求。
框404示出了涉及两个CDN服务器之间的“中间口”部分的消息交换。第一CDN服务器406初始地对父高速缓存CDN服务器408查找所请求的内容。第一CDN服务器406对父高速缓存CDN服务器408做出该请求的事实可以是消息交换分类和核算的触发。如果父CDN服务器408不具有该内容,那么第一CDN服务器406或父CDN服务器408都可以从源410请求内容,这取决于实现方式。在如图4所示的实现方式中,父CDN服务器408向源服务器做出请求,但是这仅仅是一个例子。
体系结构概述
图5提供了在给定的CDN服务器中运行的速率核算系统的一个实施例的示意性概述。该系统可在非CDN服务器中同样地进行如前面所指出的操作。
参照图5,各种消息交换类别示出在框520、522、524中。类别由元数据匹配规则定义,因此是完全可配置的。在本实现中,类别520、522、524表示出于速率核算的目的而正由CDN服务器追踪的消息交换的类别。因此,这些类别表示要在速率核算表520'、522'和524'中进行核算的流量的性质,并且类别可以被认为是“速率类别”。
给定的消息交换类别可基于消息交换的任何方面(或多个方面)被触发,无论其是请求或响应事件还是在请求或响应中的特定内容,还是其他的。例如,类别522可以针对所有HTTP GET请求进行匹配,或针对对特定一组资源的HTTP请求进行匹配。类别524可以捕获导致到源的转发请求的HTTP GET请求。另一类别可以捕获导致来自源服务器的特定状态代码响应(诸如状态代码500——服务器 错误,或状态代码404——资源未找到)的HTTP请求。另一类别可以捕获导致到另一CDN服务器的转发请求的GET请求。
要指出,类别不必是相互排斥的——给定的消息交换可落入多个类别。CDN服务器则将更新多个速率表。还要指出的是,任何数目的规则——诸如在美国专利公开2011/0225647号中描述的规则集,其描述了基于客户端请求消息的内容的已知威胁——可和布尔逻辑连锁(chain)在一起来定义消息交换类别。
图5中的速率核算表520'、522'和524'(有时被称为内联速率核算表或IRA)存储用于计算感兴趣的速率的原始数据。下面是表结构的示例,其中总点击、进入时间、突发点击、和突发窗口ID被重复用于每个类别。
在下面的示例中,客户端标识符(客户端ID)是通过客户端IP地址来表示的,因此下面的表格通过客户端IP地址来核算消息交换速率。如前面提到的,在替代实施例中,速率核算表可以使用其他标识符作为键。例如,标识符可以是会话id、令牌、cookie(信息记录程序)、SAML断言、用户代理或用户代理派生的设备特性、或者从消息头部或主体中提取的其他值。此外,同样如上面所描述的,速率核算不限于客户端身份模型。在替代实施例中,速率核算表可以通过URI或资源类型来对消息交换速率制表。实际上,速率核算表可以使用与网络堆栈中的任何层(具有特定相关性的网络层、传输层和应用层)相关的标识符来核算活动。使用客户端IP地址不是限制性的,并且在下面使用仅作为对概念的说明。
表1

为了便于说明,假定感兴趣的消息交换类别捕获所有客户端请求。当CDN服务器接收到客户端请求时,速率核算功能基于采样期对流量应用合格算法(如下)。
平均——这是在采样期期间每客户端IP地址所接收到的总客户端请求除以该客户端被记录在表格中所经过的时间得到的数学平均。公式=总点击/(采样期-进入时间)。例如,如果采样期为360秒,并且在进入采样期30秒客户端请求第一次匹配类别定义并接着发送660个请求,则平均将是=660/(360-30)=660/330=2请求/秒。
突发——这也是在N秒移动窗口中所接收的点击的数学平均(突发窗口期间的总点击/N秒)。对于采样期内的每个窗口,服务器计算点击,然后在该窗口结束时点击进行平均。如果平均值超过突发阈值,则设置标志。然后,突发点击栏被清除并且计数从1开始。
前N个——整个服务器上对于特定内容提供商或对于特定内容提供商域的前N个客户端。
给定CDN服务器的采样期——至少在一个实施例中——是异步的,这意味着CDN系统中的每个CDN服务器具有采样期的不同的开始和停止时钟时间。这就产生了网络来检测这样的攻击的能力:(1)持续时间小于采样期的短命攻击,以及(2)呈现小于采样期的快速突发的攻击。
对于平均和突发算法,内容提供商客户可以配置阈值,该阈值指 定每个算法可接受的最大速率。速率类别和阈值的组合定义表示速率策略。
在采样期结束时,CDN服务器将表格中的每个客户端IP地址的总计数与为每个速率策略所定义的阈值进行比较。同样,如果在采样期期间突发阈值在窗口中被超出,则突发标记被设置。
在采样期结束时,CDN服务器针对速率核算表520'、522'、524'应用速率策略530,以确定特定客户端IP地址是否应当符合违规者(offender)的资格。CDN服务器通过将表格中每个客户端IP地址的总计数与为每个速率策略所定义的阈值进行比较来应用策略。同样,如果在采样期期间,突发阈值在窗口中被超出,则突发标记被设置。在一种或多种算法下超出阈值的客户端IP被认为是“合格”的。如果合格,则客户端IP地址(连同使其合格的速率、类别和算法)被放置在合格表中持续一段时间。速率核算表然后可被清除并且为下一个采样期开始核算。
客户端IP地址保留在合格表中持续一可配置的时间段——惩罚期。惩罚期通常比采样期长几倍。在这种“惩罚”期期间,速率核算功能在连续的采样期期间继续测量客户端的请求速率。如果客户端IP地址在随后的采样期中再次合格,则合格的最当前的速率、类别和突发算法将以最新的生存时间值输入表中(即惩罚期将重新启动)。然而,如果客户端IP地址在后续采样期中没有再次合格,则惩罚期将到期。在惩罚期结束时,将客户端IP地址从资格表中移除。
总结一下合格:(1)客户端IP地址(在本例中表示客户端身份)将保持合格,如果其继续超出一个或多个速率策略阈值的话。(2)在资格表中输入的速率将是在其中发生合格的最近的采样期。(3)当客户端IP地址停止导致它合格的活动时,它将对于惩罚期(可配置的)保留在合格表中。因此,合格表功能可以被看作是“禁区(penalty box)”,客户端IP地址保留在其中持续可配置的惩罚期。
图6示出了跟随有惩罚期或禁区的采样期的操作。在采样期期间,来自特定客户端的流量被采样(速率被核算),客户端是合格的并被放置在合格表中,并且在惩罚期期间的流量被阻止或经受其他强制策略动作。假设客户端停止导致其合格的活动,则其从禁区被移除,但在随后的采样期中的违规导致重新合格和惩罚期2。
返回到图5,该系统包括强制规则540(有时被称为过量速率控制规则),其定义针对合格客户端(即在“禁区”中的客户端IP地址)的强制策略。可能的动作包括生成关于客户端的报警(不拒绝该请求,只生成报警并继续处理请求)或拒绝该客户端(拒绝来自该客户端IP地址的请求、造成HTTP 403响应、生成报警、并停止处理该请求)。生成报警可意味着关于该客户端的信息被记录并显示在门户显示或日志中、实时报警被发送、或者边缘服务器在到源服务器的转发请求中附加关于报警的信息,或者以其他方式。其他动作包括:对合格的客户端进行响应但修改CDN服务器对响应的行为,诸如生成自定义警告页面、或只从高速缓存完成合格客户端的请求而不做出来自源的转发请求。
拒绝客户端意味着来自客该户端IP地址的该请求在边缘处被拒绝,减轻对CDN服务器本身以及上游的其他CDN服务器和/或源服务器的影响。在一些实施例中,IP地址白名单可以用于防止某些客户端被拒绝或经受报警(即已知的“好”的客户端)。
要指出,要针对合格的客户端IP地址采取强制动作的确定可以取决于和请求的内容(或信息交换的其他方面)有关的进一步规则的应用而做出。例如,强制策略可以指定针对来自合格的客户端IP地址的请求而生成报警,但如果该请求是来自合格的客户端IP地址并且针对特定的URI、或者如果该请求是来自合格的客户端IP地址并且CDN服务器的负荷已超过阈值(服务质量要素),则拒绝该请求。
值得重复的是,虽然客户端IP地址是一种实现方式并在上面已经为了说明的目的而使用,但是在其他实施例中,系统可使用其他种 类的客户端标识符。另选的标识符包括会话id、cookie等,如上面所指出的,甚或是非客户识别数据,诸如所请求的URI。然后针对这样的会话id、用户id、cookie、URI等应用合格和强制处理。例如,来自“合格”的用户id或到“合格”的URI的过量请求将被阻止或以其他方式经受防御动作。
更一般地,虽然上述实施例是基于消息交换“主角”“标识”的(使用客户端IP地址),使用速率过滤和请求阻止规则也切断对等客户端IP地址,在其他实施例中,可以采用不同方式的标识、不同的过滤和复合规则。消息交换流量的归类可用于多种多样的目的,例如用于其他防火墙功能和/或强制规则。例如,人们可以定义以特定方式被阻止或处理的特定消息交换类别,而不论消息交换流量的速率。这样的类别通常会定位网站上某种形式的不期望的活动,或识别不期望的动作者的特性。
更多关于消息交换归类
本节描述消息交换归类功能的示例性实现方式。消息交换归类可以使用元数据配置文件的方式来完成。在请求/响应处理期间,CDN服务器应用如美国专利第7,240,100号中所描述的元数据控制文件。元数据在HTTP请求/响应消息交换模式的专用阶段期间以词法顺序(lexical order)被应用。CDN服务器可以在其行进通过事务的不同阶段时遍历元数据控制文件,导致通过不同阶段时对消息交换的归类。触发匹配规则可影响消息交换的状态,这在某些情况下导致元模型中的进一步变化(状态变化)和进一步的匹配规则被评估(在稍后的阶段),最终导致消息交换的归类。例如,假设元数据与触发的匹配规则的状态相接口,则在客户端请求阶段期间触发的报警可以在后续阶段中或之后词义上地驱动策略的标准。在实践中,这种方法使得消息交换类别能够依赖于发生在整个事务的不同阶段的多个方面或事件,例如,作为初始请求的一部分、作为转发请求的一部分、或者作为从源到CDN服务器或从CDN服务器到客户端的响应的一部分、或者作为各种“边缘服务”(诸如互联网分组路由和请求/响应主体 检验)的一部分。
在操作中,当CDN服务器接收到请求时,它可以核对针对该请求的适当的mex归类标准。如果需要来自稍后阶段(例如来自源响应)的其他标准来满足mex类别,则CDN服务器将需要在稍后的阶段应用这些标准。因此,CDN服务器要么在存储器中作为线程或其他处理构造的一部分、要么通过设置元数据控制文件中的控制变量、或者以其他公知的方式,来保持对至少一些的mex标准已得到满足进行指示的一些状态信息。CDN服务器继续处理请求,并做出到源服务器的转发请求以继续这个例子。当接收到该响应时,CDN服务器查询状态信息,对源响应应用适当的标准(若有必要则遍历元数据控制文件),并做出该消息交换与给定类别匹配的最终确定。
消息交换类别优选地对于内容提供商具有语义。使用前述的元数据的方法,每个内容提供商可以配置对于他们有意义的类别用于速率核算。例如,类别可以表示网站的产品目录上的流量、或对动态web资源的请求、安全端点处的流量、搜索系统、或库存/定价系统。
为了创建和配置消息交换类别,提供了具有用于基于云的防火墙方案的配置管理器的web门户。在下面的示例场景中配置了三个速率类别:全部、目录和顺序。值T、B和S是变量。
例1
类别名称:“全部”
客户端标识:默认(支持客户端ip)(不显示)
域:全部
URI:全部
动词:全部
边缘服务器点击:TRUE(设置请求类型MATCH)
源点击:TRUE(设置请求类型MATCH)
采样窗口:默认T分钟
过量突发速率:B请求/秒
过量汇总速率:S请求/秒
过量速率的自动禁区:默认FALSE
例2
类别名称:“目录”
客户端标识:默认(支持客户端ip)(不显示)
域:www.customer.com
URI:/productspages/*,/search/*
动词:GET
边缘服务器点击:TRUE(设置请求类型MATCH)
源点击:TRUE(设置请求类型MATCH)
采样窗口:默认T分钟(不显示)
过量突发速率:B请求/秒
过量汇总速率:S请求/秒
过量速率的自动禁区:默认FALSE
例3
类别名称:“BuyFlow”
客户端标识:默认(支持客户端ip)(不显示)
域:www.customer.com
URI:/orders/*
动词:POST
边缘服务器点击:TRUE(设置请求类型MATCH)
源点击:TRUE(设置请求类型MATCH)
采样窗口:默认T分钟(不显示)
过量突发速率:B请求/秒
过量汇总速率:S请求/秒
过量速率的自动禁区:默认FALSE
随着上面声明了过量速率类别,用于防火墙的基于速率的控制是可用的。这样的基于速率的控制使得用于每个过量速率类别的“禁区”速率合格规则能够被使能并配置用于“报警”或“拒绝”,如先前关于图5所说明的。
在一些实施例中,门户用户可以指定豁免给定客户经受“报警”或“拒绝”动作的IP白名单,例如因为它们是已知的好的客户端。
使用经由门户所定义的配置,元数据被生成并分发到CDN服务器。对于每个速率类别,速率核算元数据的片段在门户用户已经指定的相应的MATCH条件下(主机名、URI、动词,HIT-类型、变量条件)被插入。如果过量速率的自动禁区是TRUE,则元数据接口将被提供用于将违规者立即提升至禁区的处理。
在一些实施例中,在门户用户有权配置的有限的一组速率类别中,存在优先级顺序。尽管所有速率类别将生效并被报告,但在运行时平台中可以动态或静态地施加限制,这些限制要么限制可用于类别的存储器要么限制报告归类的速率合格的能力。因此,通过设置优先级,门户用户将能够控制该顺序(即哪个类别是第0个以及哪个类别是第n个)。
更多关于CDN服务器工作流程
本节提供关于CDN服务器提供速率核算功能的操作的另外具体细节。这些操作细节旨在是说明性的,而不应被解释为是限制性的。
图7示出了两个子工作流程。一个涉及可应用于已超过允许速率的客户端的速率核算和强制规则。第二个工作流程是基于事件(每采样期)的工作流程,在此期间子线程对在内联速率核算(IRA)表中收集的数据进行操作并将其移动至汇总合格(SQ)表。这意味着,在内联速率核算表中的客户端ID被放置在汇总合格表中,这有效地表示了前面参考图5所述的“禁区”。详情如下:
速率核算工作流程:
在步骤700中,当特定的消息交换事件发生时(例如,接收到来自特定的客户端的请求,接收到来自源服务器的响应),元数据被应 用以确定是否触发特定的消息交换类别。(步骤702)例如,当来自特定的客户端ID“x”的请求进入时,它可以针对定义类别的元数据进行匹配,以确定其是否符合标准以及如果符合则其应该去到哪个表格并应该落入哪个类别。(对于依赖于稍后的事件(诸如来自源服务器的响应内容)的消息交换,归类确定将不得不在稍后阶段发生该事件时完成。)在图7中,块704提供了捕获HTTP POST消息的mex类别的元数据的例子。
在步骤708和712中,如果客户端请求或其他mex事件推动速率高于配置的阈值,那么当它到达时,它会被标记为突发违规者(意味着它在某个突发时间窗口、而不一定是整个采样期期间超过了一定的速率)。
在步骤713中,防火墙执行规则可以从汇总合格表中读取防御姿势,并基于存在于该表格中的条目来应用防御姿势(步骤714、716)。
周期性(采样期)工作流程:
线程在每个采样期的末尾运行。该线程扫描IRA表的所有内容提供商/域,并且其将速率策略阈值标准应用在每个表格上,更新SQ表,并接着清理IRA表。这意味着,违规客户端被放置在SQ表中。从这样的客户端到来的后续请求可以在SQ表中被查找,并且基于此可以引发强制规则。图7中通过步骤706'——712'来表示该线程。
线程将周期性地运行,将从SQ表中删除已过期的条目。该线程将检查SQ表中属于所有内容提供商/域的所有条目。
总体来说,元数据704控制将速率核算数据写入到IRA表中,元数据710指定确定如何从IRA表中读取以将客户端(违规者)从IRA表升级至SQ表的策略,以及元数据716指定如何从SQ表中读取以针对违规客户端应用强制措施。
消息交换表:IRA和SQ
内联速率核算(IRA)表:该表收集采样期、给定时间窗口中的 速率信息。IRA表的例子在前面给出的表1中提供。出现在当前周期中的每个唯一的客户端ID占有该表中的一行。每个类别_点击栏对应于目前为止在CDN服务器上已经查看到具有由元数据定义的一些特定的请求属性的给定客户端ID的次数。为了存储/评估每个类别的精确的汇总速率,进入时间需要与IRA表中的每个类别相关联。为了计算突发窗口中的给定类别中的突发,该窗口中的点击数目连同窗口id一起存储。
汇总合格(SQ)表:随着每个IRA表,由CDN服务器隐含地创建汇总资格(SQ)表。CDN服务器每个采样期将汇总信息复制给该表,其长度由用户可配置的汇总合格元数据定义。存在汇总标准,其对应于具有速率阈值的速率策略530,如上面所描述的。满足该汇总标准(诸如速率>[次数]/秒)的条目在当前采样期结束时从IRA表复制到SQ表。汇总合格表具有不同的水平(“合格水平”)。示例水平包括:(1)汇总,(2)突发,(3)前N个合格水平。在基本配置中,CDN服务器相同地对待所有水平——也就是说,不论其符合的水平如何,合格的客户端经受相同的惩罚期。然而,在一些实现方式中,合格的客户端可以根据他们的合格水平被不同地对待/惩罚。
图8中提供了汇总合格表的示意图。在图8中,客户端ID指示哪些客户端已经在给定的MEX类别中合格以及在给定的合格水平处合格。
速率标注
在进一步的实施例中,源服务器向CDN服务器提供关于如何对待特定的消息交换的指令。通常,源服务器提供这样的指令作为由CDN服务器做出的转发请求的响应的一部分(例如在头部中)。例如,对于给定的响应,源服务器可以指示客户端将立即合格(已知的不良动作者),或者IRA表应增加指定的量(例如,向表“增加10个点击”),这当然导致客户端更快地合格。
系统使用
在此描述的方法和系统具有许多用途。通过适当地配置消息交换类别和系统的其他方面,内容提供者可以能够首先理解点击它们网站的流量的性质,以及其次针对引起该流量的某些活动或动作者采取动作。
例如,通过其来配置防火墙的门户也可被布置成报告关于正被收集的流量的信息。通过时间段、URI、客户端身份等示出流量活动的图表提供了对内容提供商站点上的流量的深入理解。
有了这样的知识,内容提供商可以实现归类,以定位并限制某些页面上的活动,所述页面诸如产品页面、登录页面、新闻订阅、股票报价、或其他数据源,或者自动化代理/内容抓取僵尸被证明是有问题的其他领域。类似地,攻击可以通过该系统的适当配置被分析和/或减轻。
另一种场景涉及检测在线竞赛投票或调查中的欺诈行为。在此应用中,消息交换类别可以被定义来捕获投票请求(在特定的URI处),这些投票请求来自由切断源IP地址的位置服务确定的特定地域。过多的选票来自某些地域可以指示影响选举的外部企图。
代理服务器或网络地址转换(NAT)设备之后的客户端可以对在CDN服务器(以及在非CDN服务器)处的速率核算构成问题。这是因为,来自代理或NAT之后的许多客户端的流量可能看起来像来自一个客户端,也就是,来自代理服务器或NAT的IP地址。本文所描述的系统解决了这个问题。首先,如已经指出的,该系统使得能够使用客户端的IP地址之外的标识符(例如会话id、用户id、cookies等等,如上面指出的)。另外,消息交换模型的丰富性允许定位站点上的特定语义行为(通过消息交换类别定义)和/或定位引起CDN服务器与源之间的某种不期望的活动的流量。该模型允许与传输和网络层标识符(诸如IP地址)解除关联的、或者至少不必定与这样的标识符相关联的流量分析。因此,客户端IP地址可以不必定地仅因为它是来自该地址后的许多客户端的NAT或代理的聚合流量而合格。但是,如果该流量的一些部分正“不良”地做出行为(如 由内容提供商通过mex类别定义的),那么该系统可以是该流量合格并针对该流量进行防御。总之,该系统可以被配置为忽略大型代理的“错误肯定(false positive)”,在该大型代理后面是大量的“好”客户端,同时也使得能够对“隐藏”在代理或类似设备后面的“不良”客户端进行检测。
应当理解,前面的讨论仅仅是示例性的,仅仅是提供此处教导的可能的用途和优点。不应该被看作是限制,也不应将任何特定的用途或优点视为实施本发明所必要的。
集中式威胁评估
在进一步的实施例中,由每个CDN服务器收集到的速率核算信息被报告回到中央数据收集和控制系统,诸如图1中所示的系统108,如此处教导所修改的。优选地,该信息使用专用快速通信信道被报告给后端系统108。美国专利第7,149,807号描述了一种用于此目的合适的控制和通信基础设施(CCI),并且该专利的内容通过引用结合于此。
中央数据收集和控制系统108可以使用该报告的信息来识别网络层面的威胁并推送指令到CDN服务器来配置它们以处理威胁,例如,通过应用特定的强制策略或以其他方式。在许多情况下,中央控制器可以能够主动地配置尚未遇到威胁的CDN服务器。
尽管存在中央数据收集和控制系统108,但是单独的CDN服务器在某些情况下可以继续做出它们自己的合格和强制策略决定,如前面所描述的。例如,图1中的CDN服务器102可以将来自汇总合格(SQ)表或与该表相关的信息报告至系统108中的服务器。该信息可包括时间(时间戳或历元(epoch))、防火墙标识符(标识与数据所应用至的内容提供商相关联的防火墙)、mex类别标识符、和客户端标识符、以及合格水平。要指出的是,每个合格的客户端与指示其合格的原因(突发违规者等)的合格水平相关联,如上面所描述的。总之,根据内容提供商所提供的信息交换类别定义,CDN服务器102可以将识别它们所查看到的合格客户端的信息报告回系统 108。
在其他情况下,CDN服务器102可以从他们的IRA表向中央服务器发送底层数据。IRA表包含通过内容提供者定义的消息交换类别过滤的数据。该信息接着可用于分析,并通过网络向其他CDN服务器102报警。要指出,CDN服务提供商也可以定义表示整个系统感兴趣的类别的“系统范围”的消息交换类别。该信息可以用来对抗对整体平台的安全性和稳定性的威胁。
系统108评估从CDN服务器发送的信息(无论它是合格决定和/或底层数据和/或其他的)以做出关于强制策略的决定。换句话说,系统108评估该信息以确定特定客户端的动作的严重性和性质。在该确定中的因素可以包括:客户端的请求速率、客户端的先前历史、客户端或CDN服务器102的位置、给定客户端是否在多个POP 107处合格等等。内容提供商可以提供驱动该确定的配置信息。在一些情况下,该决定可以是自动并且无条件的——也就是说,在给定CDN服务器102处存在合格客户端自动地触发系统启动对其他CDN服务器102或其特定子集的通知,而无需进一步的条件。另外,攻击场景情报可以驱动该决定。例如,特定客户端已被多个CDN服务器108标记的事实可以指示针对特定内容提供商的僵尸网络攻击的开始。这种攻击可以正在地理上在整个网络上扩散。
根据系统108的分析,系统108可采取多种多样的动作。它可以指示报告该信息的CDN服务器102应用强制策略,如果该CDN服务器102还没有这样做的话。这可能因为系统108正查看到过量的全局速率而在单独的CDN服务器102处的速率太低以至不能保证响应而发生。另选地,系统108可以指示尚未遇到该威胁的CDN服务器102主动地针对客户端应用强制政策。这可以采取到所有CDN服务器102或其子集(例如位于相同或邻近POP 107中的其他CDN服务器102)的网络范围或全局指令的形式。此外,系统108可以指示CDN服务器102发送另外的信息(例如,改变消息交换的阈值水平以使得更多或更少的数据被查看到,或者改变消息交换类别定义), 这样系统可以摄取另外的情报并获得威胁的更精确的描述。
尽管从系统108发送到CDN服务器102的指令可以采取许多形式,但是在一个实现方式中,系统108发送使CDN服务器102在其SQ表中插入记录的配置更新,这将导致防火墙将该特定的客户端作为合格客户端来对待(即使它们还没有遇到该客户端)。系统108还告知CDN服务器102对该特定的客户端使用什么合格水平。正如前面提到的,合格水平通常指示客户端合格作为水平1(汇总)、水平2(突发)还是水平3(前N个)违规者。然而,其他合格水平也是可能的,每个合格水平在如何处理该特定的客户端方面都具有其自身对CDN服务器102的重要性。因此,系统108指示CDN服务器102,合格客户端应当合格作为水平[N]违规者,水平[N]违规者与某一动作步骤相关联。水平[N]可以与增强的惩罚相关联,诸如永久禁止直到从系统108推送后续的配置,或者仅仅是加强监视。
虽然前面已经集中以合格客户端为例,但是应当理解的是,网络威胁评估系统同样适用于系统的其他模型——即,系统可以对合格URI执行网络层面的威胁评估和主动认证,如前所述。
基于计算机的实现
在此描述的客户端、服务器、以及其他设备可以用常规计算机系统实现,如通过此处的教导所修改的,其具有在专用硬件、通用硬件或它们的组合中实现的上述功能特性,所述专用硬件和通用硬件由存储在它们中的用于特殊目的的软件配置。
软件可以包括一个或几个分立的程序。任何给定的功能可以包括任何给定的模块、进程、执行线程、或其他这样的编程构造的一部分。归纳起来,上述各功能可以实现为计算机代码,即作为一组计算机指令,可于一个或多个处理器中执行,以提供特殊目的的机器。代码可以使用常规装置来执行,所述常规装置诸如在计算机中的处理器、数据数字处理设备或其他计算装置,如通过此处的教导所修改的。在一个实施例中,这样的软件可以以编程语言来实现,该编程语言结合运行操作系统(诸如Linux)的标准Intel硬件平台上的代理 而运行。功能可以被构建到代理代码中,或者它可以作为对该代码的附属来执行。
尽管在上面的以下情况中阐述了由某些实施例执行的操作的特定顺序,但是应当理解的是,这样的顺序是示例性的,它们可以以不同的顺序来执行、被组合等等。而且,一些的功能可以在给定的指令、程序序列、代码部分等中组合或共享。在本说明书提到给定的实施例表示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不必定包括该特定的特征、结构或特性。
图12是示出计算机系统1200中的硬件的框图,这样的软件可以在其上运行以实现本发明的实施例。计算机系统1200可以具体实现在客户端设备、服务器、个人计算机、工作站、平板计算机、无线设备、移动设备、网络设备、路由器、集线器、网关、或者其他设备中。在其上提供此处的主题方案的代表性机器上可以是基于Intel Pentium的计算机,其运行Linux或Linux变型的操作系统和一个或多个应用以执行所描述的功能。
计算机系统1200包括耦合到总线1201的处理器1204。在一些系统中,多个处理器和/或处理器核心可被采用。计算机系统1200还包括耦合至总线1201、用于存储要由处理器1204执行的指令和信息的主存储器1210,诸如随机存取存储器(RAM)或其他存储设备。只读存储器(ROM)1208耦合到总线1201,用于存储用于处理器1204的指令和信息。非易失性存储设备1206(诸如磁盘、固态存储器(例如闪速存储器)或光盘)被提供并耦合至总线1201,用于存储信息和指令。其他专用集成电路(ASIC)、现场可编程门阵列(FPGA)或电路系统可以包括在计算机系统1200中,以执行在此所描述的功能。
外围接口1212通信地将计算机系统1200耦合至用户显示器1214和输入设备1215(例如键盘、鼠标、轨迹板、触摸屏),用户显示器1214显示在计算机系统上执行的软件的输出,输入设备1215将用户输入和指令传递至计算机系统1200。外围接口1212可包括用 于本地总线(诸如RS-485、通用串行总线(USB)、IEEE 1394或其他通信链路)的接口电路系统、控制和/或电平移位逻辑。
计算机系统1200被耦合到通信接口1216,通信接口1216提供系统总线1201与外部通信链路之间的链路(例如在物理层、数据链路层或其他处)。通信接口1216提供网络链路1218。通信接口1216可表示以太网或其他网络接口卡(NIC)、无线接口、调制解调器、光接口、或其他种类的输入/输出接口。
网络链路1218提供通过一个或多个网络到其他设备的数据通信。这样的设备包括作为局域网(LAN)1226的一部分的其他计算机系统。此外,网络链路1218提供经由互联网服务提供商(ISP)1220连接至因特网1222的链路。因特网1222转而可以提供到其他计算系统(诸如远程服务器1230和/或远程客户端1231)的链路。网络链路1218和这样的网络可以使用分组交换、电路交换、或其他数据传输方式来传输数据。
在操作中,计算机系统1200可以作为处理器执行代码的结果而实现在此所描述的功能。这样的代码可以从非易失性计算机可读介质(诸如存储器1210、ROM 1208或存储设备1206)中读取或存储在非易失性计算机可读介质中。其他形式的非易失性计算机可读介质包括盘、磁带、磁介质、CD-ROM、光介质、RAM、PROM、EPROM和EEPROM。任何其他的非易失性计算机可读介质可被采用。执行代码也可以从网络链路1218读取(例如,跟从接口缓冲器、本地存储器、或其他电路系统中的存储)。
应当理解,前面已经给出的本发明的特定实施例,其不应当理解为限制。例如,上面出于说明的目的给出了特定的语言、语法和指令,并且它们不应当被解释为限制。可以预见,本领域的技术人员鉴于本公开并根据其范围和精神,将意识到其他可能的实现方式。权利要求限定请求保护的主题。

用于执行消息交换核算的方法和系统.pdf_第1页
第1页 / 共38页
用于执行消息交换核算的方法和系统.pdf_第2页
第2页 / 共38页
用于执行消息交换核算的方法和系统.pdf_第3页
第3页 / 共38页
点击查看更多>>
资源描述

《用于执行消息交换核算的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于执行消息交换核算的方法和系统.pdf(38页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104247340A43申请公布日20141224CN104247340A21申请号201380022085722申请日2013032161/614,31720120322US61/614,31420120322US13/471,10320120514US13/471,07920120514USH04L12/58200601H04L12/2620060171申请人阿卡麦科技公司地址美国马萨诸塞72发明人MJ斯蒂温斯AP申恩达尔卡尔WD利彻特恩斯特因MD斯泽蒂罗74专利代理机构中国国际贸易促进委员会专利商标事务所11038代理人陈新54发明名称用于执行消息交换核算的方法和系统5。

2、7摘要服务器具有对在服务器处查看到的流量执行核算的防火墙模块。流量包括消息交换,诸如HTTP请求和HTTP响应。服务器测试消息交换以确定它们是否匹配若干消息交换类别中的任一个。服务器保持对匹配流量的统计数据,例如由特定的客户端生成的匹配流量的速率。通常,服务器是作为内容分发网络CDN的一部分的代理服务器,消息交换发生在请求内容的客户端、代理服务器、CDN中的其他服务器、和/或代理服务器从其检索所请求的内容的源服务器之间。使用消息交换模型和由此生成的统计数据,服务器可以标记特定的流量或客户端,并采取保护性动作例如拒绝、报警。在替换实施例中,中央控制系统从多个服务器收集统计数据以供分析。30优先权。

3、数据85PCT国际申请进入国家阶段日2014102786PCT国际申请的申请数据PCT/US2013/0333912013032187PCT国际申请的公布数据WO2013/142743EN2013092651INTCL权利要求书8页说明书18页附图11页19中华人民共和国国家知识产权局12发明专利申请权利要求书8页说明书18页附图11页10申请公布号CN104247340ACN104247340A1/8页21一种在服务器中操作的计算机实现的方法,所述服务器包括形成一个或多个处理器的电路系统以及保持用于由所述一个或多个处理器执行的指令的存储器,所述服务器通信地耦合到计算机网络,所述方法包括在所述。

4、服务器处,参与客户端与所述服务器之间的根据协议的消息交换,所述消息交换包括至少一个请求消息以及至少一个响应消息;对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;如果所述一个或多个匹配条件满足,则在所述服务器处记录关于所述消息交换的信息;以及如果所述一个或多个匹配条件不满足,则不记录所述信息。2根据权利要求1所述的方法,其中消息具有头部和主体,并且所述一个或多个匹配条件指定用于消息头部和消息主体的任一者中的字段的匹配值。3根据权利要求1所述的方法,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。4根据权利要。

5、求1所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件描述的流量的所述类别相关联的计数。5根据权利要求1所述的方法,其中记录信息包括增加用于与所述客户端相关联的客户端标识符的计数。6根据权利要求1所述的方法,其中记录信息包括增加与有关所述消息交换的URI相关联的计数。7根据权利要求1所述的方法,其中所述一个或多个匹配条件在所述服务器处接收到的控制文件中指定,所述控制文件与给定的域相关联。8根据权利要求1所述的方法,所述协议是HTTP。9根据权利要求1所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件定义的流量的所述类别相关联的计数,并且还包括使用所记录信息来计算流量落入所述类别。

6、的发生率。10根据权利要求1所述的方法,其中所述匹配条件被应用到的所述多个消息包括至少一个请求消息以及至少一个响应消息。11一种服务器,包括电路系统,所述电路系统形成一个或多个处理器;硬件接口,所述硬件接口通信地耦合到计算机网络;存储器,所述存储器保持用于由所述一个或多个处理器执行的指令,其中所述指令在由所述一个或多个处理器执行时使得所述服务器执行以下操作参与客户端与所述服务器之间的根据协议的消息交换,所述消息交换包括至少一个请求消息以及至少一个响应消息;对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;如果所述一个或多个匹配条件满足,则。

7、在所述服务器处记录关于所述消息交换的信息;以及权利要求书CN104247340A2/8页3如果所述一个或多个匹配条件不满足,则不记录所述信息。12一种在代理服务器处操作的计算机实现的方法,所述代理服务器包括形成一个或多个处理器的电路系统以及保持用于由所述一个或多个处理器执行的指令的存储器,所述代理服务器通信地耦合到计算机网络,所述方法包括在所述代理服务器处,参与以下消息交换的至少一者I客户端与所述代理服务器之间的消息交换,以及II所述代理服务器与源服务器之间的消息交换,所述消息交换是根据协议的;针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量。

8、的类别;如果所述一个或多个匹配条件满足,则在所述代理服务器处记录关于所述消息交换的信息;以及如果所述一个或多个匹配条件不满足,则不记录所述信息。13根据权利要求12所述的方法,其中所述消息交换中的所述多个消息包括由所述代理服务器从所述源服务器接收到的至少一个响应消息。14根据权利要求12所述的方法,其中所述消息交换中的所述多个消息包括从所述代理服务器向所述源服务器发送的至少一个请求消息。15根据权利要求12所述的方法,其中所述一个或多个匹配条件包括由从所述代理服务器到所述源服务器的任何请求消息满足的条件。16根据权利要求12所述的方法,其中所述消息交换中的所述多个消息包括至少一个请求消息以及至。

9、少一个响应消息。17根据权利要求12所述的方法,其中消息具有头部和主体,并且所述一个或多个匹配条件指定用于消息头部和消息主体中的任一者中的字段的匹配值。18根据权利要求12所述的方法,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。19根据权利要求12所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件描述的流量的所述类别相关联的计数。20根据权利要求12所述的方法,其中记录信息包括增加用于与所述客户端相关联的客户端标识符的计数。21根据权利要求12所述的方法,其中记录信息包括增加与有关所述消息交换的URI相关联的计数。22根据权利要求12所述的方法,其中。

10、记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且还包括使用所记录信息来计算落入所述类别的、与特定的客户端或URI相关联的消息流量的发生率。23根据权利要求12所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且还包括使用所记录信息来计算落入所述类别并与特定的客户端或URI相关联的消息流量的发生率;以及将所述发生率与阈值进行比较来确定是否要限制与所述特定的客户端或URI相关联权利要求书CN104247340A3/8页4的请求。24根据权利要求12所述的方法,其中所述协议是HTTP。25一种代理服务器,包括电路系统。

11、,所述电路系统形成一个或多个处理器;硬件接口,所述硬件接口通信地耦合到计算机网络;存储器,所述存储器保持用于由所述一个或多个处理器执行的指令,其中所述指令在由所述一个或多个处理器执行时使得所述代理服务器执行以下操作参与以下消息交换的至少一者I客户端与所述代理服务器之间的消息交换,以及II所述代理服务器与源服务器之间的消息交换,所述消息交换是根据协议的;针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;如果所述一个或多个匹配条件满足,则在所述代理服务器处记录关于所述消息交换的信息;以及如果所述一个或多个匹配条件不满足,则不记录所述信息。2。

12、6根据权利要求25所述的代理服务器,其中所述消息交换中的所述多个消息包括由所述代理服务器从所述源服务器接收到的至少一个响应消息。27根据权利要求25所述的代理服务器,其中所述消息交换中的所述多个消息包括从所述代理服务器向所述源服务器发送的至少一个请求消息。28根据权利要求25所述的代理服务器,其中所述一个或多个匹配条件包括由从所述代理服务器到所述源服务器的任何请求消息满足的条件。29根据权利要求25所述的代理服务器,其中所述多个消息包括至少一个请求消息以及至少一个响应消息。30根据权利要求25所述的代理服务器,其中消息具有头部和主体,并且所述一个或多个匹配条件指定用于消息头部和消息主体中的任一。

13、者中的字段的匹配值。31根据权利要求25所述的代理服务器,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。32根据权利要求25所述的代理服务器,其中所述代理服务器通过增加与由所述一个或多个匹配条件描述的消息流量的所述类别相关联的计数来记录信息。33根据权利要求25所述的代理服务器,其中所述代理服务器通过增加用于与所述客户端相关联的客户端标识符的计数来记录信息。34根据权利要求25所述的代理服务器,其中所述代理服务器通过增加与有关所述消息交换的URI相关联的计数来记录信息。35根据权利要求25所述的代理服务器,其中所述代理服务器通过增加与由所述一个或多个匹配条件定。

14、义的消息流量的所述类别相关联的计数来记录信息,并且所述代理服务器还执行以下操作使用所记录信息来计算落入所述类别并与特定的客户端或URI相关联的消息流量的发生率。36根据权利要求25所述的代理服务器,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且所述代理服务器还执行以下操权利要求书CN104247340A4/8页5作使用所记录信息来计算落入所述类别的、与特定的客户端或URI相关联的消息流量的发生率;以及将所述发生率与阈值进行比较来确定是否要限制与所述特定的客户端或URI相关联的请求。37根据权利要求25所述的代理服务器,其中所述协议是HTTP。38一种在。

15、代理服务器处操作的计算机实现的方法,所述代理服务器包括形成一个或多个处理器的电路系统以及保持用于由所述一个或多个处理器执行的指令的存储器,服务器通信地耦合到计算机网络,所述方法包括I在所述代理服务器处,参与以下消息交换的至少一者I客户端与所述代理服务器之间的消息交换,和II所述代理服务器与源服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;II一经在所述代理服务器处接收到作为所述消息交换的一部分的请求消息或响应消息,从指示所述代理服务器的对所接收到的请求消息或响应消息进行反应的操作的控制文件进行读取;III确定在所述代理服务器处接收到的所接收的请求。

16、消息或响应消息是否满足在所述控制文件中所指定的、定义感兴趣的消息流量的类别的一个或多个条件;IV对多个所接收到的请求消息或响应消息重复步骤III。39根据权利要求38所述的方法,还包括如果步骤III和IV的结果是所述一个或多个条件的全部都已经满足,则在所述代理服务器处记录关于所述消息交换的信息;否则,不记录所述信息。40根据权利要求38所述的方法,其中所述代理服务器是由代表多个内容提供商客户的服务提供商操作的内容分发网络的一部分,所述内容提供商客户的内容经由所述内容分发网络分发至请求客户端,每个内容提供商与至少一个控制文件相关联。41根据权利要求38所述的方法,其中所述控制文件是基于XML的。。

17、42一种代理服务器,包括电路系统,所述电路系统形成一个或多个处理器;硬件接口,所述硬件接口通信地耦合到计算机网络;存储器,所述存储器保持用于由所述一个或多个处理器执行的指令,其中所述指令在由所述一个或多个处理器执行时使得所述代理服务器执行以下操作I参与以下消息交换的至少一者A客户端与所述代理服务器之间的消息交换,和A所述代理服务器与源服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;II一经在所述代理服务器处接收到作为所述消息交换的一部分的请求消息或响应消息,从指示所述代理服务器的对所接收到的请求消息或响应消息进行反应的操作的控制文件进行读取;II。

18、I确定在所述代理服务器处接收到的所接收的请求消息或响应消息是否满足在所述控制文件中所指定的、定义感兴趣的流量的类别的一个或多个条件;IV对多个所接收到的请求消息或响应消息重复步骤III。权利要求书CN104247340A5/8页643一种分布式计算系统,包括多个内容服务器和一个或多个控制服务器,所述多个内容服务器以及所述一个或多个控制服务器通信地耦合到全球计算机网络;其中所述多个内容服务器中的每一个执行以下操作A参与以下消息交换的至少一者I客户端与所述内容服务器之间的消息交换,以及II所述内容服务器与另一服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应。

19、消息;B针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的流量的类别;C如果所述一个或多个匹配条件满足,则在所述内容服务器处记录关于所述消息交换的信息;以及D将以下中的任一者发送到所述一个或多个控制服务器I所记录的信息,和II由所述内容服务器基于所记录信息做出的关于应用强制策略的确定;并且其中所述一个或多个控制服务器执行以下操作E从所述多个内容服务器中的第一内容服务器接收以下中的任一者I第一内容服务器的所记录的信息,以及II第一内容服务器的关于应用所述强制策略的确定;F将指令发送到所述多个内容服务器中的第二内容服务器,所述指令配置所述第二内容服务器来针。

20、对与从所述第一内容服务器接收到的所记录信息和/或所述确定有关的客户端或URI应用强制策略。44根据权利要求43所述的系统,其中,在步骤F中,在所述第二内容服务器处应用的所述强制策略操作以减小来自所述客户端或对于所述URI的请求消息的速率。45根据权利要求43所述的系统,其中所述第二内容服务器在接收到来自所述一个或多个控制服务器的所述指令之前不针对所述客户端或所述URI应用强制策略。46根据权利要求43所述的系统,其中所述第二内容服务器所应用的所述强制策略包括动作,所述动作包括拒绝来自所述客户端或对于所述URI的请求消息。47根据权利要求43所述的系统,其中记录消息包括增加用于与所述客户端相关联。

21、的客户端标识符的计数。48根据权利要求47所述的系统,其中所述客户端由客户端IP地址、会话ID、用户ID、令牌以及COOKIE中的任一者标识。49根据权利要求43所述的系统,其中所述多个内容服务器是代理服务器。50根据权利要求43所述的系统,其中所述多个内容服务器是由内容分发网络服务提供商操作以代表多个内容提供商客户分发内容的代理高速缓存服务器,并且定义流量的所述类别的所述一个或多个匹配条件是基于逐个内容提供商可配置的。51根据权利要求43所述的系统,其中所述协议是HTTP。52根据权利要求43所述的系统,其中所述第一内容服务器和所述第二内容服务器位于不同的地理位置。53一种操作分布式计算机系。

22、统的方法,所述分布式计算机系统包括多个内容服务器和一个或多个控制服务器,所述多个内容服务器和所述一个或多个控制服务器通信地耦合到全球计算机网络,所述方法包括权利要求书CN104247340A6/8页7所述多个内容服务器中的每一个执行以下操作A参与以下消息交换的至少一者I客户端与所述内容服务器之间的消息交换,以及II所述内容服务器与另一服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;B针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的流量的类别;C如果所述一个或多个匹配条件满足,则在所述内容服务器处记录关于。

23、所述消息交换的信息;以及D将以下中的任一者发送到所述一个或多个控制服务器I所记录的信息,和II由所述内容服务器基于所记录信息做出的关于应用强制策略的确定;并且所述一个或多个控制服务器执行以下操作E从所述多个内容服务器中的第一内容服务器接收以下中的任一者I第一内容服务器的所记录的信息,以及II第一内容服务器的关于应用所述强制策略的确定;F将指令发送到所述多个内容服务器中的第二内容服务器,所述指令配置所述第二内容服务器来针对与从所述第一内容服务器接收到的所记录信息和/或所述确定有关的客户端或URI应用强制策略。54根据权利要求53所述的方法,其中,在步骤F中,在所述第二内容服务器处应用的所述强制策。

24、略操作以减小来自所述客户端或对于所述URI的请求消息的速率。55根据权利要求53所述的方法,其中所述第二内容服务器在接收到来自所述一个或多个控制服务器的所述指令之前不针对所述客户端或所述URI应用强制策略。56根据权利要求53所述的方法,其中所述第二内容服务器所应用的所述强制策略包括动作,所述动作包括拒绝来自所述客户端或对于所述URI的请求消息。57根据权利要求53所述的方法,其中记录消息包括增加用于与所述客户端相关联的客户端标识符的计数。58根据权利要求57所述的方法,其中所述客户端由客户端IP地址、会话ID、用户ID、令牌以及COOKIE中的任一者标识。59根据权利要求53所述的方法,其中。

25、所述多个内容服务器是代理服务器。60根据权利要求53所述的方法,其中所述多个内容服务器是由内容分发网络服务提供商操作以代表多个内容提供商客户分发内容的代理高速缓存服务器,并且定义流量的所述类别的所述一个或多个匹配条件是基于逐个内容提供商可配置的。61根据权利要求53所述的方法,其中所述协议是HTTP。62根据权利要求53所述的方法,其中所述第一内容服务器和所述第二内容服务器位于不同的地理位置。63一种在代理服务器处操作的计算机实现的方法,所述代理服务器包括形成一个或多个处理器的电路系统以及保持用于由所述一个或多个处理器执行的指令的存储器,所述代理服务器通信地耦合到计算机网络,所述方法包括在所述。

26、代理服务器处,参与以下消息交换的至少一者I客户端与所述代理服务器之间的消息交换,以及II所述代理服务器与高速缓存服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;权利要求书CN104247340A7/8页8针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;如果所述一个或多个匹配条件满足,则在所述代理服务器处记录关于所述消息交换的信息;以及如果所述一个或多个匹配条件不满足,则不记录所述信息。64根据权利要求63所述的方法,其中所述消息交换中的所述多个消息包括由所述代理服务器从所述高速缓存服务器。

27、接收到的至少一个响应消息。65根据权利要求63所述的方法,其中所述消息交换中的所述多个消息包括从所述代理服务器发送到所述高速缓存服务器的至少一个请求消息。66根据权利要求63所述的方法,其中所述一个或多个匹配条件包括由从所述代理服务器到所述高速缓存服务器的任何请求消息满足的条件。67根据权利要求63所述的方法,其中所述消息交换中的所述多个消息包括至少一个请求消息以及至少一个响应消息。68根据权利要求63所述的方法,其中消息具有头部和主体并且所述一个或多个匹配条件指定用于消息头部和消息主体中的任一者中的字段的匹配值。69根据权利要求63所述的方法,其中所述协议包括HTTP并且所述一个或多个匹配条。

28、件指定用于HTTP方法的匹配值。70根据权利要求63所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件描述的流量的所述类别相关联的计数。71根据权利要求63所述的方法,其中记录信息包括增加用于与所述客户端相关联的客户端标识符的计数。72根据权利要求63所述的方法,其中记录信息包括增加与有关所述消息交换的URI相关联的计数。73根据权利要求63所述的方法,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且还包括使用所记录信息来计算落入所述类别的、与特定的客户端或URI相关联的消息流量的发生率。74根据权利要求63所述的方法,其中记录信息包括增加与由所。

29、述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且还包括使用所记录信息来计算落入所述类别并与特定的客户端或URI相关联的消息流量的发生率;以及将所述发生率与阈值进行比较来确定是否要限制与所述特定的客户端或URI相关联的请求。75根据权利要求63所述的方法,其中所述协议是HTTP。76一种代理服务器,包括电路系统,所述电路系统形成一个或多个处理器;硬件接口,所述硬件接口通信地耦合到计算机网络;存储器,所述存储器保持用于由所述一个或多个处理器执行的指令,其中所述指令在由所述一个或多个处理器执行时使得所述代理服务器执行以下操作权利要求书CN104247340A8/8页9参与以下消息交换的。

30、至少一者I客户端与所述代理服务器之间的消息交换,以及II所述代理服务器与高速缓存服务器之间的消息交换,其中所述消息交换是根据协议的并且包括至少一个请求消息以及至少一个响应消息;针对所述消息交换中的多个消息的内容应用一个或多个匹配条件,所述一个或多个匹配条件定义感兴趣的消息流量的类别;如果所述一个或多个匹配条件满足,则在所述代理服务器处记录关于所述消息交换的信息;以及如果所述一个或多个匹配条件不满足,则不记录所述信息。77根据权利要求76所述的代理服务器,其中所述消息交换中的所述多个消息包括由所述代理服务器从所述高速缓存服务器接收到的至少一个响应消息。78根据权利要求76所述的代理服务器,其中所。

31、述消息交换中的所述多个消息包括从所述代理服务器发送到所述高速缓存服务器的至少一个请求消息。79根据权利要求76所述的代理服务器,其中所述一个或多个匹配条件包括由从所述代理服务器到所述高速缓存服务器的任何请求消息满足的条件。80根据权利要求76所述的代理服务器,其中所述多个消息包括至少一个请求消息以及至少一个响应消息。81根据权利要求76所述的代理服务器,其中消息具有头部和主体并且所述一个或多个匹配条件指定用于消息头部和消息主体中的任一者中的字段的匹配值。82根据权利要求76所述的代理服务器,其中所述协议包括HTTP并且所述一个或多个匹配条件指定用于HTTP方法的匹配值。83根据权利要求76所述。

32、的代理服务器,其中所述代理服务器通过增加与由所述一个或多个匹配条件描述的消息流量的所述类别相关联的计数来记录信息。84根据权利要求76所述的代理服务器,其中所述代理服务器通过增加用于与所述客户端相关联的客户端标识符的计数来记录信息。85根据权利要求76所述的代理服务器,其中所述代理服务器通过增加与有关所述消息交换的URI相关联的计数来记录信息。86根据权利要求76所述的代理服务器,其中所述代理服务器通过增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数来记录信息,并且所述代理服务器还执行以下操作使用所记录信息来计算落入所述类别并与特定的客户端或URI相关联的消息流量的发生率。8。

33、7根据权利要求76所述的代理服务器,其中记录信息包括增加与由所述一个或多个匹配条件定义的消息流量的所述类别相关联的计数,并且所述代理服务器还执行以下操作使用所记录信息来计算落入所述类别的、与特定的客户端或URI相关联的消息流量的发生率;以及将所述发生率与阈值进行比较来确定是否要限制与所述特定的客户端或URI相关联的请求。88根据权利要求76所述的代理服务器,其中所述协议是HTTP。权利要求书CN104247340A1/18页10用于执行消息交换核算的方法和系统0001相关申请的引用0002本申请要求2012年3月22日提交的美国临时申请第61/614,317号以及2012年3月22日提交的美国。

34、临时申请第61/614,314号的优先权。该申请还要求2012年5月14日提交的美国申请第13/471,079号以及2012年5月14日提交的美国申请第13/471,103号的优先权,并且是其继续申请。所有上述申请的内容通过引用全部结合于此。0003本专利文件包含受版权保护的资料。版权所有者不反对任何人按照专利文档或专利公开在专利商标局专利文件或记录中所呈现的样子而对其进行传真复制,但在其它情况下则保留所有版权。技术领域0004本申请一般地涉及分布式数据处理系统,以及涉及网络流量的分析和核算ACCOUNTING。背景技术0005分布式计算机系统是现有技术所已知的。一种这样的分布式计算机系统是由。

35、服务提供商操作和管理的“内容分发网络”或“CDN”。该服务提供商通常代表第三方提供内容分发服务。这种类型的“分布式系统”通常指的是由单个网络或多个网络链接的自律AUTONOMOUS计算机的集合连同被设计为有利于各种服务的软件、系统、协议和技术,所述各种服务诸如内容分发或支持外包站点基础设施。通常,“内容分发”指的是代表内容提供商的内容诸如网页、流媒体和应用存储、高速缓存或传输,以及与其一起使用的辅助技术,所述辅助技术包括但不限于DNS查询处理、供应、数据监视以及报告、内容定向、个性化和商业智能INTELLIGENCE。0006在诸如图1所示的已知系统中,分布式计算机系统100被配置为内容分发网。

36、络CDN并且假设具有一组分布在因特网上的机器102AN。典型地,大部分的机器是位于因特网边缘附近即在终端用户接入网络处或靠近终端用户接入网络的服务器。网络操作命令中心NOCC104可以被用来监管ADMINISTER和管理系统中的各种机器的操作。隶属于内容提供商的第三方站点诸如网站106分载OFFLOAD内容例如HTML、嵌入式页面对象、流媒体和软件下载等等的分发到分布式计算机系统100,具体地是到服务器有时被称作“边缘”服务器,这是因为它们可以位于因特网的“边缘”附近的事实。这样的服务器可以被分组在一起成为入网点POP107。0007通常,内容提供商通过将给定的内容提供商域或子域别名例如,通过。

37、DNSCNAME为由服务提供商的授权域名服务管理的域来分载它们的内容分发。期望这样的内容的终端用户客户端机器122可以被指向分布式计算机系统中的服务器来更可靠和高效地获取该内容。例如,CDN服务器通常提供代理高速缓存功能,通过从本地高速缓存、从另一CDN服务器高速缓存分层结构、经由转发请求从源服务器106、或从另一源获取所请求的内容来响应客户端请求。说明书CN104247340A102/18页110008尽管没有在图1中具体示出,分布式计算机系统还可以包括其他基础设施,诸如分布式数据收集系统108,其从服务器收集使用和其他数据,聚合整个区域或区域组的数据,以及将该数据传递至其他后端系统110、。

38、112、114和116以有利于监视、记录、报警、计费、管理以及其他操作和监管功能。分布式网络代理118监视网络以及服务器负荷并提供网络、流量和负荷数据至DNS查询处理机制115,其对于由CDN管理的内容域是授权的。分布式数据传送机制120可以被用来将控制信息例如管理内容、有利于负荷平衡等的元数据分布至CDN服务器。0009如图2所示,CDN中的给定机器200有时被称作“边缘机器”包括运行操作系统核心诸如LINUX或变型204的商用硬件例如因特尔奔腾处理器202,其支持一种或多种应用206AN。为了便利于内容分发服务,例如,给定机器通常运行一组应用,诸如HTTP代理207、名称服务器208、本地。

39、监视进程210、分布式数据收集进程212等等。HTTP代理207在此有时被称作全局主机或“GHOST”通常包括管理器进程,用于对来自该机器的内容的分发和高速缓存进行管理。对于流媒体,该机器可以包括一个或多个媒体服务器,诸如WINDOWS媒体服务器WMS或FLASH20服务器,根据所支持的媒体格式的需要。0010图2中所示的机器可以被配置为提供一个或多个扩展的内容分发特征,优选地基于特定域、特定客户,优选地使用用配置系统而分布至CDN服务器的配置文件。给定的配置文件优选地是基于XML的,并且包括便利于一个或多个先进内容处理特征的一组内容处理规则和指令。配置文件可以通过数据传送机制分发至CDN服务。

40、器。美国专利第7,111,057号示出了用于分发和管理服务器内容控制信息的有用的基础设施,并且这种和其他服务器控制信息有时被称作“元数据”由CDN服务提供商本身提供,或通过外联网等由操作源服务器的内容提供商客户提供。0011CDN可以包括网络存储子系统有时被称作“网络存储NETSTORAGE”,其可以位于可由CDN服务器访问的网络数据中心中,诸如在美国专利第7,472,178号中所描述的,其公开通过引用结合于此。0012CDN可以操作服务器高速缓存层次结构来提供客户内容的中间高速缓存;一个这样的高速缓存层次结构子系统在美国专利第7,376,716号中描述,其公开通过引用结合于此。例如,CDN可。

41、以通过具有一组CDN服务器来提供分层的分布服务,该组CDN服务器被组织为多个区域并代表参与的内容提供商而提供内容分发。高速缓存层次结构建立在包括给定CDN服务器区域和以下之一的CDN中A单个父PARENT区域,BCDN服务器区域的子集。响应于确定给定对象请求不可在给定CDN区域中被服务,作为对联系源服务器的代替,该请求被提供至单个父区域或CDN服务器区域的子集中的给定区域来进行处理,优选地作为与给定对象请求相关联的元数据的功能。如果可能的话,给定的对象请求然后由在单个父区域或给定子集区域中的给定CDN服务器服务。如果原始请求不可由中间节点服务,则该请求通常仅被继续转发至源服务器。0013对于实。

42、况流分发,CDN可以包括实况分发子系统,诸如在美国专利第7,296,082号和美国公开第2011/0173345号中所描述的,其公开通过引用结合于此。0014CDN还可以为其客户提供分布式防火墙系统,利用CDN服务器基础设施以分析和阻止来自边缘处的可疑或有害客户端的流量。防火墙系统和服务在美国专利申请第2011/0225647号中描述,其内容通过引用结合于此。如在此所描述的,在某些实施例中,该说明书CN104247340A113/18页12系统通过使CDN服务器对到来的客户端请求应用匹配规则并且一经检测到安全威胁或攻击就采取某些行动诸如拒绝请求或生成报警来进行操作。0015尽管这样的系统是非常。

43、有用和有价值的,但是需要关于点击特定网站的流量的更多信息。这样的信息不仅对于检测攻击和反攻击例如使用上述防火墙机制是有用的,而且在分析和解决站点的其他使用诸如不期望的僵尸BOT活动例如不期望的数据抓取方面也是有用的。另外,这样的信息可以用于获得终端用户在站点上的行为的观察。0016本文的教导针对这些和其他需求,它们通过本公开将变得明晰。发明内容0017根据在下面更详细地公开的某些实施例,CDN服务器的功能扩展有速率核算模块,速率核算模块对客户端与服务器之间和/或服务器与另一服务器例如源服务器之间的流量进行归类,对在一段时间内的落入这些类别中的流量执行核算,使用可配置的阈值标准来识别在该时间段期。

44、间的过量或有其他问题的流量,以及对识别出的这样的流量应用强制策略。通常,识别出的流量有时在此被称为“合格流量”表示来自特定客户端的过量请求速率。在这种情况下,可以采取策略定义的动作来针对该特定客户端如由诸如特定的客户端IP地址、会话ID或其他之类的客户端标识符所表示的。然而,在其他情况下,例如,系统可以识别特定的通用资源标识符URI的过量流量。事实上,流量统计数据STATISTICS可以通过客户端标识符、URI或关于多种多样的其他键KEY中的任一个来保持,这将从下面的讨论而变得更清晰。0018在此描述的速率核算系统和方法扩展了基于云的防火墙模块的能力,基于云的防火墙的能力诸如与在美国专利申请第。

45、2011/0225647号中所描述的,其内容通过引用结合于此。0019流量归类功能优选地利用语义消息交换模型,语义消息交换模型使得能够基于接触CDN服务器的消息交换的一个或多个方面进行归类。例如,消息交换可以涉及在客户端与CDN服务器之间以及/或者在客户端与CDN服务器之间和CDN服务器与源服务器即,在CDN服务器通过转发请求从源服务器检索客户端所请求的内容时之间流动的消息。消息交换还可以包括在两个CDN服务器争取满足客户端请求例如,在高速缓存层次结构方案中时在这两个CDN服务器之间流动的消息。0020实际上,消息交换的任何方面可以用于驱动归类。例如,流量归类可以基于到CDN服务器的初始客户端。

46、请求的内容。在这种情况下,服务器检查客户端请求中的信息,诸如客户端IP地址、会话标识符、用户代理头部、该请求是否包括诸如GET或POST等的HTTP方法、所请求的资源URI或所请求的资源类型、特定URI参数的使用、用户名、其他HTTP头部或主体信息等等。0021流量归类还可以基于消息交换中的其他事件,诸如CDN服务器响应于客户端请求必须执行什么内部/中间动作。例如,该请求是否导致CDN服务器在本地高速缓存中寻找内容、是否针对内容向源服务器转发请求高速缓存缺失、或者所请求的内容是否为非可高速缓存的内容等。类似地,归类可以基于来自源服务器例如HTTP4XX或5XX状态代码,或从源服务器返回的其他错。

47、误消息或来自父CDN服务器的响应的内容。说明书CN104247340A124/18页130022复合标准可以被用来驱动归类脱离上面消息交换的各方面之一。0023优选地,特定的归类的定义是可配置的。可配置性使得CDN的每个内容提供商客户能够定义服务器应保持统计数据所针对的它们网站上的流量的种类归类策略,然后定义在给定类别中查看到过量的该流量时CDN服务器应当做什么加强策略。0024在利用集中式威胁评估和防御的实现中,CDN服务器可将关于归类的消息交换和/或它们所遇到的“合格”客户端的信息报告至中央数据收集和控制系统。中央系统分析来自多个CDN服务器的数据以确定网络应当进行什么防御姿势。然后,中央。

48、系统可以指示CDN服务器尤其包括尚未遇到任何过量的流量的服务器针对识别出的威胁主动应用的策略。0025如本领域技术人员将认识到的,前面的描述仅仅提及本发明的实例,而不是限制性的。而且,在此的教导可以以多种多样的系统、方法、装置和非易失性计算机可读介质来实现。还应当指出的是,功能到不同机器的分配不是限制性的,因为在此记载的功能在不同机器中可以以多种多样的方式组合或分割。0026还要指出,虽然在此的教导应用于CDN,在CDN内实现不是利用这些教导所必要的。因此,任何服务器不是CDN的一部分可以被修改以基于服务器正遇到的请求和响应的消息交换归类来执行速率核算。0027通过进一步举例的方式,在本发明的。

49、一个实施例中,服务器参与在该服务器与客户端之间和/或该服务器与源服务器之间流动的消息的交换。消息交换是根据提供某些种类的请求消息和某些种类的响应消息的协议诸如HTTP的。服务器对消息交换中的消息应用匹配条件,例如测试客户端请求的内容,或者测试来自源的响应的内容,或者测试从服务器本身至这些其他服务器之一所发送或接收的消息的内容。匹配条件定义可以发生在服务器处并且感兴趣的流量的类别。如果匹配条件满足并且当匹配条件满足时,服务器将记录关于消息交换的信息。通常,这包括增加计数以反映已经遇到匹配消息。如上面所指出的,可以基于每客户端ID、每URI、或其他来保持计数。如果匹配条件不满足,则服务器不增加计数。

50、。该计数可用于计算特定流量的速率,然后与可配置的阈值进行比较,以确定该特定流量是否是过量的。如果是这样,则服务器可以采取步骤来限制该流量即通过拒绝其至少一些,或者产生报警或应用一些其他的强制策略。0028匹配条件经常需要服务器检查多个消息,包括在客户端/服务器之间流动的请求和响应两者,以确定整个消息交换是否落入由匹配条件所定义的类别内。例如,匹配条件可以指定某个URI来针对请求进行匹配,但还要求服务器做出到源的转发请求以满足该请求即,由从服务器至源服务器的任何请求消息满足的匹配条件。0029匹配条件可以指定用于消息头部或消息主体的匹配值。对于HTTP,匹配条件可以指定客户端正使用的HTTP方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1