一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

攻击溯源装置、方法与系统及代理链路表学习装置和方法与流程

2021-12-15 01:46:00 来源:中国专利 TAG:


1.公开涉及应用于web网络的攻击溯源装置、方法与系统,尤其是涉及应用层代理环境下的攻击溯源装置、方法与系统以及用于它们的代理链路表学习装置和方法。


背景技术:

2.在大量web应用中,客户端浏览器通常利用超文本传输协议http协议与服务器进行数据传输。在客户端访问服务器的过程中,所有经过http代理服务器或者负载均衡服务器的连接只会显示代理服务器的ip地址,而非连接发起的原始ip地址,如果连接的原始ip地址不可得,恶意访问的检测和预防难度将大大增加。
3.图1示出了一种典型web网络的示意图。如图1所示,该web网络包括一个或多个客户端110、一个或多个代理服务器120以及一个或多个web服务器或应用服务器130。图1中附图标记的后缀“_1”、“_a”用于区分多个部件中的一个。例如客户端110_a、110_b分别表示多个客户端中的一个。客户端110向代理服务器120或web服务器130发送http请求以请求访问服务器内容。代理服务器120在接收到客户端110发送的http请求时,会在http请求头上加上一个x

forwarded

for请求头,并将其值设为客户端110的ip地址。x

forwarded

for(xff)是一个http扩展头部,它被认为是客户端110通过http代理服务器120或者负载均衡器连接到web服务器130获取源ip地址的一个标准。
4.更具体地说,一般的客户端110发送http请求是没有x

forwarded

for头的,当请求到达第一个代理服务器120时,该代理服务器120会加上x

forwarded

for请求头,并将其值设为客户端110的ip地址,后面如果还有多个代理服务器120,会依次将代理服务器120的ip地址追加到x

forwarded

for头最右边,ip地址之间通过一个“逗号 空格”区分开。正常情况下,最终请求到达web服务器130,通过获取x

forwarded

for头取左边第一个ip即为客户端110的真实ip。但是,这种技术方案由于直接获取http报文头部字段为x

forwarded

for的值中左边的第一个ip地址作为客户端ip,所以利用浏览器插件或者burp suite等软件非常容易实现对x

forwarded

for字段的伪造。如果客户端110在发起请求时,请求头上带上一个伪造的x

forwarded

for,由于后续每层代理服务器120只会追加而不会覆盖,那么最终到达web服务器130时,获取的左边第一个ip地址将会是客户端110伪造的ip地址。
5.因此,需要一种方法,来针对经过http代理服务器或者负载均衡服务器的请求报文,识别请求报文头部中x

forwarded

for字段是否被伪造,以确保通过x

forwarded

for字段能够获取到真实的客户端ip地址。


技术实现要素:

6.本公开就是为了解决上述技术问题而提出的一种应用层代理环境下的攻击溯源方法,其基于现有通过学习生成的习得代理链路表,对http报文头部的x

forwarded

for字段进行检查,进而识别x

forwarded

for是否被伪造。当识别出x

forwarded

for字段被伪造时,根据通过学习生成的习得代理链路表与x

forwarded

for字段,查找出攻击源的真实
ip。
7.根据本公开的一个方面,提供一种用于应用层代理环境的代理链路表学习装置,该应用层代理环境包括客户端、代理服务器、web服务器以及潜在的攻击者客户端,该攻击者客户端会伪造自身的ip地址,该代理链路表学习装置包括:报文头部提取保存单元,用于提取报文头部x

forwarded

for字段的值并将左边第一个ip地址去掉后保存,并且获取并保存与web服务器交互的最后一级代理服务器的ip地址;代理链路产生单元,其将报文头部提取保存单元保存的值拼接在一起,作为请求报文在网络传输过程中经过的一条完整的代理链路;以及代理链路表生成单元,其将代理链路产生单元所产生的代理链路添加到习得代理链路表中。
8.根据本公开的一个实施例,该代理链路表学习装置还可以包括代理服务器ip地址段设置单元,用于配置允许代理服务器所在的ip地址段,所配置的ip地址段用于检查代理链路中每一级代理服务器是否处于该ip地址段,其中所述代理链路表生成单元对代理链路产生单元所产生的代理链路进行检查,判断链路中每一级代理服务器的ip地址是否在代理服务器ip地址段设置单元配置的ip地址范围内,对于通过检查的链路,则添加到所述习得代理链路表中,而对于未通过检查的链路,则不会被添加到该习得代理链路表中。
9.根据本公开的一个实施例,所述代理链路产生单元通过“逗号 空格”格式将报文头部提取保存单元保存的值拼接在一起。
10.根据本公开的另一个方面,提供一种用于应用层代理环境的代理链路表学习方法,该应用层代理环境包括客户端、代理服务器、web服务器以及潜在的攻击者客户端,该攻击者客户端会伪造自身的ip地址,该代理链路表学习方法包括以下步骤:提取报文头部x

forwarded

for字段的值并将左边第一个ip地址去掉后保存,并且获取并保存与web服务器交互的最后一级代理服务器的ip地址;将所保存的报文头部x

forwarded

for字段值以及与web服务器交互的最后一级代理服务器的ip地址拼接在一起,作为请求报文在网络传输过程中经过的一条完整的代理链路;并且将所产生的代理链路添加到习得代理链路表中。
11.根据本公开的一个实施例,在提取并保存步骤之前还包括以下步骤:配置允许代理服务器所在的ip地址段,所配置的ip地址段用于检查代理链路中每一级代理服务器是否处于该ip地址段,其中在将所产生的代理链路添加到习得代理链路表中之前,对所产生的代理链路进行检查,判断链路中每一级代理服务器的ip地址是否在代理服务器ip地址段设置单元配置的ip地址范围内,对于通过检查的链路,则添加到所述习得代理链路表中,而对于未通过检查的链路,则不会被添加到该习得代理链路表中。
12.根据本公开的又一个方面,提供一种用于应用层代理环境的攻击溯源装置,该应用层代理环境包括客户端、代理服务器、web服务器以及潜在的攻击者客户端,该攻击者客户端会伪造自身的ip地址,该攻击溯源装置包括:http请求接收与解析单元,当在业务处理阶段,从客户端发出的http请求报文到达web服务器时,解析http报文;报文头部检查单元,用于检查报文头部是否含有x

forwarded

for字段;代理链路生成单元,用于提取出x

forwarded

for字段的值并将左边第一个ip地址去掉后保存,获取并保存与服务器交互的最后一级代理服务器的ip地址,并且将所保存的两部分值进行拼接,以得到请求报文从客户端到web服务器所经过的实际链路;代理链路查找单元,用于在学习期间所生成的习得代理链路表中查找是否有代理链路生成单元所生成的该链路;以及攻击者客户端ip地址确定
单元,其根据代理链路查找单元的查找结果来确定攻击者客户端ip地址。
13.根据本公开的一个实施例,所述代理链路生成单元通过“逗号 空格”格式将所保存的报文头部x

forwarded

for字段值以及与web服务器交互的最后一级代理服务器的ip地址拼接在一起。
14.根据本公开的一个实施例,所述攻击者客户端ip地址确定单元在代理链路查找单元查找到所述链路时,确定为该x

forwarded

for字段未被伪造并将x

forwarded

for字段中左边第一个ip地址作为真实的客户端ip地址,而在代理链路查找单元未查找到所述链路时,确认这是一次攻击行为并在这条伪造的链路中按照最长链路匹配原则,从学习阶段生成的习得代理链路表中进行查找,匹配到的链路前一个ip地址为攻击者真实的ip。
15.根据本公开的再又一个方面,提供一种用于应用层代理环境的攻击溯源方法,该应用层代理环境包括客户端、代理服务器、web服务器以及潜在的攻击者客户端,该攻击者客户端会伪造自身的ip地址,该攻击溯源方法包括以下步骤:当在业务处理阶段从客户端发出的http请求报文到达web服务器时,解析http报文;检查报文头部是否含有x

forwarded

for字段;提取出x

forwarded

for字段的值并将左边第一个ip地址去掉后保存,获取并保存与服务器交互的最后一级代理服务器的ip地址,并且将所保存的两部分值进行拼接,以得到请求报文从客户端到web服务器所经过的实际链路;在学习期间所生成的习得代理链路表中查找是否有该链路;以及根据查找结果来确定攻击者客户端ip地址。
16.根据本公开的再又一个方面,提供一种用于应用层代理环境的攻击溯源系统,该应用层代理环境包括客户端、代理服务器、web服务器以及潜在的攻击者客户端,该攻击者客户端会伪造自身的ip地址,该攻击溯源系统包括:报文头部提取保存单元,用于提取报文头部x

forwarded

for字段的值并将左边第一个ip地址去掉后保存,并且获取并保存与web服务器交互的最后一级代理服务器的ip地址;代理链路产生单元,其将报文头部提取保存单元保存的值拼接在一起,作为请求报文在网络传输过程中经过的一条完整的代理链路;代理链路表生成单元,其将代理链路产生单元所产生的代理链路添加到习得代理链路表中;http请求接收与解析单元,当在业务处理阶段,从客户端发出的http请求报文到达web服务器时,解析http报文;报文头部检查单元,用于检查报文头部是否含有x

forwarded

for字段;代理链路生成单元,用于提取出x

forwarded

for字段的值并将左边第一个ip地址去掉后保存,获取并保存与服务器交互的最后一级代理服务器的ip地址,并且将所保存的两部分值进行拼接,以得到请求报文从客户端到web服务器所经过的实际链路;代理链路查找单元,用于在代理链路表生成单元所生成的习得代理链路表中查找是否有代理链路生成单元所生成的该链路;以及攻击者客户端ip地址确定单元,其根据代理链路查找单元的查找结果来确定攻击者客户端ip地址。
17.本公开的上述装置、方法和系统本针对http代理服务器或者负载均衡服务器的请求,识别请求报文是否伪造x

forwarded

for字段。对于伪造x

forwarded

for字段的攻击行为,可获取攻击源的真实ip地址。
附图说明
18.通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术
人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1示出了一种典型web网络的示意图;
20.图2示出了根据本公开的一个实施例的应用层代理环境的示意图;
21.图3示出了根据本公开的一个实施例的在图2所示的应用层代理环境中通过学习生成代理链路表的方法的流程图;
22.图4示出了根据本公开的一个实施例的在图2所示的应用层代理环境中通过学习生成代理链路表的装置的框图;
23.图5示出了根据本公开一个实施例的在图2所示的应用层代理环境带中生成代理链路的示例性过程示意图;
24.图6示出了根据本公开一个实施例的在图2所示的应用层代理环境带中生成代理链路的示例性过程示意图;
25.图7示出了根据本公开一个实施例的在图2所示的应用层代理环境带中生成代理链路的示例性过程示意图;
26.图8示出了根据本公开一个实施例的在图2所示的应用层代理环境带中生成代理链路的示例性过程示意图;
27.图9示出了根据本公开一个实施例的习得代理链路表;
28.图10示出了根据本公开一个实施例的应用层代理环境下的攻击溯源方法的流程图;
29.图11示出了根据本公开的实施例的应用层代理环境下的攻击溯源装置的框图;
30.图12示出了根据本公开的实施例的实施应用层代理环境下的攻击溯源方法的示意性示例过程示意图;
31.图13示出了根据本公开的实施例的实施应用层代理环境下的攻击溯源方法的示意性示例过程示意图;
32.图14示出了根据本公开的实施例的实施应用层代理环境下的攻击溯源方法的示意性示例过程示意图;
33.图15示出了根据本公开的实施例的实施应用层代理环境下的攻击溯源方法的示意性示例过程示意图;以及
34.图16示出了根据本公开的一个实施例的伪造链路与查找到的习得代理链路对照表。
具体实施方式
35.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
36.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方
法、装置、实现或者操作以避免模糊本公开的各方面。
37.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
38.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
39.应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
40.本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
41.根据本公开的一个实施例,应用层代理环境下的攻击溯源方法基于现有通过学习生成的代理链路表,对http报文头部的x

forwarded

for字段进行检查,进而识别x

forwarded

for是否被伪造。当识别出x

forwarded

for字段被伪造时,根据通过学习生成的习得代理链路表与x

forwarded

for字段,查找出攻击源的真实ip。
42.下面将详细描述本公开的上述技术方案。首先示出实施该技术方案的web网络环境。图2示出了根据本公开的一个实施例的应用层代理环境下的示意图。如图2所示,该web网络200类似于图1所示的web网络环境,包括一个或多个客户端210、一个或多个代理服务器220以及一个或多个web服务器或应用服务器230。然而,web网络200上可能有攻击者客户端,也就是说,该web网络200还可能包括一个或多个攻击者客户端240。需要注意,在图2及以后的各图中附图标记的后缀“_1”、“_a”用于区分多个部件中的一个。例如客户端210_a表示多个客户端中的一个。
43.正常客户端210和攻击者客户端240都可能向代理服务器220或web服务器230发送http请求以请求访问服务器内容。代理服务器220在接收到客户端210和攻击者客户端240发送的http请求时,都会在http请求头上加上一个x

forwarded

for请求头,并将其值设为相应客户端210或相应攻击者客户端240的ip地址。
44.一般的客户端210发送http请求是没有x

forwarded

for头的,当请求到达第一个代理服务器220时,该代理服务器220会直接在请求上加上一个x

forwarded

for请求头,并将其值设为客户端210的ip地址,后面如果还有多个代理服务器220,会依次将代理服务器220的ip地址追加到x

forwarded

for头最右边,ip地址之间通过一个“逗号 空格”区分开。
45.然而,攻击者客户端240发送的http请求往往会伪造一个x

forwarded

for头,当该请求到达第一个代理服务器220时,该代理服务器220会在伪造的x

forwarded

for头上加一个x

forwarded

for请求头,并将其值设为攻击者客户端240的ip地址(在请求头中,ip地址之间通过一个“逗号 空格”区分开),从而形成“伪造的x

forwarded

for头,攻击者客户端240的ip地址”头。后面如果还有多个代理服务器220,会依次将代理服务器220的ip地址追加到“伪造的x

forwarded

for头,攻击者客户端240的ip地址”头最右边。
46.因此,在正常情况下,最终请求到达web服务器230时,通过获取x

forwarded

for
头取左边第一个ip即为客户端110的真实ip。然而,这种技术方案由于直接获取http报文头部字段为x

forwarded

for如果攻击者客户端240在发起请求时,请求头上带上一个伪造的x

forwarded

for,由于后续每层代理服务器220只会追加而不会覆盖,那么最终到达web服务器230时,获取的左边第一个ip地址将会是攻击者客户端240伪造的ip地址。
47.因为请求报文从客户端210到达web服务器230所经过的每一级代理服务器220的ip地址将会记录在请求报文头部的x

forwarded

for字段中,所以在学习阶段,可以通过请求报文的头部x

forwarded

for字段来生成每条代理链路。
48.图3示出了根据本公开的一个实施例的在图2所示的应用层代理环境中通过学习生成习得代理链路表的方法的流程图。如图所示,在步骤s310中,web服务器230需要配置允许代理服务器220所在的ip地址段。配置的ip地址段用于检查代理链路中每一级代理服务器220是否处于该ip地址段。若一条链路中存在不属于该ip地址段范围内的代理服务器220,则认为这条链路不是一条合法的链路,该链路将不被添加到习得代理链路表中。
49.接下来,在步骤s320中,当报文到达web服务器230时,提取报文头部x

forwarded

for字段的值并将左边第一个ip地址去掉后保存。正常情况下,x

forwarded

for字段的左边第一个ip地址为客户端ip,所以需要将保存的x

forwarded

for值左边第一个ip地址去掉。
50.在步骤s330中,获取并保存与web服务器230交互的最后一级代理服务器的ip地址。因为最后一级代理服务器220的ip地址不会追加到x

forwarded

for字段中。
51.在步骤s340中,通过“逗号 空格”格式,将步骤s320、s330保存的值拼接在一起,作为请求报文在网络传输过程中经过的一条完整的代理链路。
52.最后,在步骤s350中,对步骤s340中得到的代理链路进行检查,判断链路中每一级代理服务器220的ip地址是否在web服务器230配置的ip地址范围内。对于通过检查的链路,则会添加到一习得代理链路表中,而对于未通过检查的链路,则不会被添加到习得代理链路表中。
53.图4示出了根据本公开的一个实施例的在图2所示的应用层代理环境中通过学习生成习得代理链路表的装置的框图。如图4所示,该代理链路表学习装置包含在图2的web网络环境中,并且包括代理服务器ip地址段设置单元410、报文头部提取保存单元420、代理链路产生单元430以及代理链路表生成单元440。
54.该代理服务器ip地址段设置单元410用于配置允许代理服务器220所在的ip地址段。配置的ip地址段用于检查代理链路中每一级代理服务器220是否处于该ip地址段。若一条链路中存在不属于该ip地址段范围内的代理服务器220,则认为这条链路不是一条合法的链路,该链路将不被添加到习得代理链路表中,习得代理链路表将在下文中详细描述。
55.报文头部提取保存单元420用于提取报文头部x

forwarded

for字段的值将左边第一个ip地址去掉后保存。正常情况下,x

forwarded

for字段的左边第一个ip地址为客户端ip,所以需要将保存的x

forwarded

for值左边第一个ip地址去掉。报文头部提取保存单元420还用于获取并保存与web服务器230交互的最后一级代理服务器的ip地址。因为最后一级代理服务器220的ip地址不会追加到x

forwarded

for字段中。
56.代理链路产生单元430通过“逗号 空格”格式,将报文头部提取保存单元420保存的值拼接在一起,作为请求报文在网络传输过程中经过的一条完整的代理链路。
57.代理链路表生成单元440对代理链路产生单元430产生的代理链路进行检查,判断链路中每一级代理服务器220的ip地址是否在该代理服务器ip地址段设置单元410配置的ip地址范围内。对于通过检查的链路,则会添加到一习得代理链路表中,而对于未通过检查的链路,则不会被添加到习得代理链路表中。
58.图5

8示出了根据本公开一个实施例的在图2所示的应用层代理环境带中生成代理链路的示例性过程示意图。如图5所示,请求报文将从客户端_a(ip_pc)发出,分别经过代理服务器220_1(ip_1)、220_2(ip_2)、220_3(ip_3),最终到达web服务器230_a(ip_server)。请求从客户端_a到达代理服务器220_1时,代理服务器220_1将客户端_a的ip地址ip_pc追加到报文头部的x

forwarded

for字段中,形成新的报文头部x

forwarded

for:ip_pc。
59.如图6所示,请求从代理服务器220_1到达代理服务器220_2时,代理服务器220_2将代理服务器220_1的ip地址ip_1追加到报文头部的x

forwarded

for字段中,形成新的报文头部x

forwarded

for:ip_pc,ip_1。
60.如图7所示,请求从代理服务器220_2到达代理服务器220_3时,代理服务器220_3将代理服务器220_2的ip地址ip_2追加到报文头部的x

forwarded

for字段中,形成新的报文头部x

forwarded

for:ip_pc,ip_1,ip_2。
61.如图8所示,请求从代理服务器220_3到达web服务器服务器230_a时,并不会将代理服务器220_3的ip地址追加到x

forwarded

for字段中。当请求报文到达web服务器时,报文头部x

forwarded

for字段仍然为x

forwarded

for:ip_pc,ip_1,ip_2。
62.在图5

8所示的具体示例的情况下,请求报文到达web服务器230时,提取x

forwarded

for字段的值,并将左边的第一个ip地址去掉,得到ip_1,ip_2。然后获取与web服务器230交互的最后一级代理服务器220_3的ip地址,即ip_3。将得到的两个值ip_1,ip_2与ip_3通过“逗号 空格”格式进行拼接,以得到报文在网络传输过程中实际经过的代理链路,即ip_1,ip_2,ip_3。
63.然后,对代理链路中每一级代理服务器220的ip地址进行检查,依次判断ip_1,ip_2,ip_3这三个代理服务器220的ip地址是否属于web服务器230配置的ip范围。现假设三台代理服务器220均通过检查,属于服务器230配置的ip地址段,则将这一条链路添加到习得代理链路表中。
64.图9示出了根据本公开一个实施例的习得代理链路表。图9的链路表中具体示出了三条链路,分别是最后一级代理服务器220_3的ip地址,即ip_3;最后一级代理服务器220_3的ip地址和倒数第二级代理服务器220_2的ip地址,即ip_2,ip_3;以及最后一级代理服务器220_3的ip地址、倒数第二级代理服务器220_2的ip地址和倒数第三级代理服务器220_1的ip地址,即ip_1,ip_2,ip_3。
65.图10示出了根据本公开一个实施例的应用层代理环境下的攻击溯源方法的流程图。如图10所示,在步骤s1010中,当在业务处理阶段从客户端发出的http请求报文到达web服务器时,解析http报文。
66.接下来,在步骤s1020中,检查报文头部是否含有x

forwarded

for字段,若报文头部不含有x

forwarded

for字段,则表明客户端与服务器直接交互,并没有经过代理服务器,不进行检查。
67.若报文头部含有x

forwarded

for字段,则在接下来的步骤s1030中提取出x

forwarded

for字段的值,并将左边第一个ip地址去掉。
68.然后,在步骤s1040中获取与服务器交互的最后一级代理服务器的ip地址。
69.在步骤s1050中,将得到的两部分值通过“逗号 空格”的方式进行拼接,以得到请求报文从客户端到web服务器所经过的实际链路。
70.然后在步骤s1060中,在学习生成的习得代理链路表(图8)中查找是否有该链路。若查找到(即完全匹配)该链路,则进程转移到步骤s1070,确定x

forwarded

for字段未被伪造,x

forwarded

for字段中左边第一个ip地址作为真实的客户端ip地址。
71.若在步骤s1060中未查找到该链路,则在步骤s1080中将其确认为是一次攻击行为,并在步骤s1090中在这条伪造的链路中按照最长链路匹配原则,从学习阶段生成的习得代理链路表中进行查找,匹配到的链路前一个ip地址为攻击者真实的ip。
72.根据本公开的实施例的应用层代理环境下的攻击溯源方法也可以用专门的装置来实现。
73.图11示出了根据本公开的实施例的应用层代理环境下的攻击溯源装置的框图。如图11所示,该装置基于图2所示的web网络应用,并且包括http请求接收与解析单元1110,报文头部检查单元1120,代理链路生成单元1130,代理链路查找单元1140,以及客户端ip地址确定单元1150。
74.http请求接收与解析单元1110当在业务处理阶段,从客户端210发出的http请求报文到达web服务器230时,解析http报文。
75.报文头部检查单元1120用于检查报文头部是否含有x

forwarded

for字段,若报文头部不含有x

forwarded

for字段,则表明客户端210与服务器230直接交互,并没有经过代理服务器230,不进行检查。
76.若报文头部检查单元1120检查到报文头部含有x

forwarded

for字段,则由代理链路生成单元1130提取出x

forwarded

for字段的值,并将左边第一个ip地址去掉。然后,代理链路生成单元1130进一步获取并保存与服务器230交互的最后一级代理服务器230的ip地址。代理链路生成单元1130将所保存的两部分值通过“逗号 空格”的方式进行拼接,以得到请求报文从客户端210到web服务器230所经过的实际链路。
77.然后,代理链路查找单元1140在学习期间所生成的习得代理链路表(图9)中查找是否有代理链路生成单元1130生成的该链路。
78.攻击者客户端ip地址确定单元1150根据代理链路查找单元1140的查找结果来确定攻击者客户端ip地址。具体来说,若代理链路查找单元1140查找到(即完全匹配)该链路,则攻击者客户端ip地址确定单元1150认定x

forwarded

for字段未被伪造,x

forwarded

for字段中左边第一个ip地址作为真实的客户端ip地址。而若代理链路查找单元1140未查找到该链路,则攻击者客户端ip地址确定单元1150确认这是一次攻击行为,并在这条伪造的链路中按照最长链路匹配原则,从学习阶段生成的习得代理链路表中进行查找,匹配到的链路前一个ip地址为攻击者真实的ip。
79.图12

15示出了根据本公开的实施例的实施应用层代理环境下的攻击溯源方法的示意性示例过程示意图。如图12所示,请求报文从客户端_a发出。当请求报文到达服务器230_a时的报文头部x

forwarded

for字段为x

forwarded

for:ip_pc,ip_1,ip_2。
80.如图12所示,代理链路生成单元1130提取x

forwarded

for字段的值,并去掉左边第一个ip地址,得到ip_1,ip_2。代理链路生成单元1130进一步获取并保存与服务器230_a交互的最后一级代理服务器220_3的ip地址:ip_3。然后,代理链路生成单元1130通过“逗号 空格”拼装ip_1,ip_2和ip_3,得到请求报文在网络传输过程中经过的实际链路为:ip_1,ip_2,ip_3。
81.接下来,在图12中,代理链路查找单元1140在习得代理链路表(图9)中进行查找该链路,经过查找流程,在习得代理链路表中找到匹配的链路(ip_1,ip_2,ip_3),则认为本次请求客户端未对x

forwarded

for进行伪造,ip_pc为客户端的真实ip地址。
82.在图13中,请求报文从攻击者客户端240发出,攻击者并未伪造报文头部x

forwarder

for字段。当请求报文到达服务器230_a时的报文头部x

forwarded

for字段为:x

forwarded

for:ip_attacker,ip_1,ip_2。
83.代理链路生成单元1130提取x

forwarded

for字段的值,并去掉左边第一个ip地址,得到ip_1,ip_2。代理链路生成单元1130继续获取与服务器交互的最后一级代理服务器的ip地址:ip_3,并通过“逗号 空格”拼装ip_1,ip_2和ip_3,得到请求报文在网络传输过程中经过的实际链路为:ip_1,ip_2,ip_3。
84.在图13中,接下来代理链路查找单元1140在习得代理链路表(图9)中查找是否存在该链路,经过查找流程,在习得代理链路表中找到匹配的链路(ip_1,ip_2,ip_3),则认为本次请求攻击者未对x

forwarded

for进行伪造,ip_attacker为攻击者的真实ip地址。
85.在图14中,攻击者客户端240伪造报文头部x

forwarder

for字段。请求报文携带攻击者伪造的x

forwarded

for:ip_5,ip_4从攻击者客户端240发出。在图15中,当请求报文到达服务器230_a时的报文头部x

forwarded

for字段为:
86.x

forwarded

for:ip_5,ip_4,ip_attacker,ip_1,ip_2
87.在此情况下,代理链路生成单元1130提取x

forwarded

for字段的值,并去掉左边第一个ip地址,得到ip_4,ip_attacker,ip_1,ip_2,进一步获取与服务器交互的最后一级代理服务器的ip地址:ip_3,然后通过“逗号 空格”拼装ip_4,ip_attacker,ip_1,ip_2和ip_3,得到请求报文在网络传输过程中经过的实际链路为:
88.ip_4,ip_attacker,ip_1,ip_2,ip_3
89.代理链路查找单元1140根据所获得的链路ip_4,ip_attacker,ip_1,ip_2,ip_3,在习得代理链路表(图9)中查找是否存在该链路。经过查找流程,在习得代理链路表中未能找到与之完匹配的链路,则判定本次请求报文x

forwarded

for被攻击者进行了伪造,服务器获取的链路是一条伪造链路,本次请求为一次攻击行为。
90.攻击者客户端ip地址确定单元1150基于习得代理链路表(图9)按照最长匹配原则,查找攻击者真实ip地址。
91.在这种情况下,通过查找流程,习得代理链路表中有三条链路与伪造链路部分匹配,这三条链路如图16所示。按照最长匹配原则,选取匹配链路1,提取伪造链路中位于匹配链路1之前一个ip地址ip_attacker,该ip地址为攻击者的真实ip地址。
92.需要注意,本公开的攻击溯源装置和代理链路表学习装置可以合并到一个系统中,当然也可以是单独的部分存在。
93.综上所述,本公开的装置、方法和系统本针对http代理服务器或者负载均衡服务
器的请求,识别请求报文是否伪造x

forwarded

for字段。对于伪造x

forwarded

for字段的攻击行为,可获取攻击源的真实ip地址。
94.以上结合具体实施例描述了本公开的基本原理,但是需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和系统的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
95.因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者系统的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
96.还需要指出的是,在本公开的系统和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
97.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、部分组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献