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

攻击防御方法及防护设备与流程

2022-06-01 17:38:49 来源:中国专利 TAG:


1.本技术涉及网络技术领域,特别涉及一种攻击防御方法及防护设备。


背景技术:

2.拒绝服务(denial of service,dos)攻击是一种网络攻击手段。拒绝服务攻击的目的在于使目标计算机的网络资源或者系统资源耗尽,使目标计算机提供的服务暂时中断或停止,导致正常用户无法访问目标计算机。当攻击者(也被称为黑客)使用网络上两个或两个以上受控计算机作为攻击发起方向目标计算机发动dos攻击时,这种攻击方式被称为分布式拒绝服务攻击(distributed denial-of-service attack,ddos)。
3.用户数据报协议(user datagram protocol,udp)flood攻击(udp洪泛)是ddos攻击中一种危害大而防御难度高的一种攻击方式。攻击者通过向目标计算机发送大量的udp报文,从而发起udp flood攻击。
4.传统的udp flood攻击防御方案依赖于防火墙的限速机制。具体地,防火墙以目标计算机的互联网协议(internet protocol,ip)地址为统计对象,对目的地为该ip地址的报文速率进行统计。如果速率超过阈值,则防火墙丢弃后续访问该互联网协议(internet protocol,ip)地址的报文。
5.然而采用上述方式时,防护设备无法区分报文是来自于用户的正常业务报文还是来自于攻击者的攻击报文,导致正常业务报文也可能被防护设备丢弃,造成正常业务受损。


技术实现要素:

6.本技术实施例提供了一种攻击防御方法、装置、设备及存储介质,能够在不影响正常业务的前提下,降低ddos攻击对业务服务器的影响。所述技术方案如下。
7.第一方面,提供了一种攻击防御方法,在该方法中,防护设备拦截报文,所述报文的目的ip地址为业务服务器的ip地址,所述报文用于请求访问所述业务服务器提供的服务;所述防护设备根据计算规则以及所述报文的目的地址信息对应的第一水印关键词,生成第一水印,所述目的地址信息包括目的ip地址;如果所述报文中的水印与所述第一水印不同,所述防护设备丢弃所述报文。
8.通过该方法,为受保护的业务服务器提供对应的水印关键词,防护设备和客户端设备使用相同的计算规则以及水印关键词生成水印。客户端设备在报文中添加通过水印关键词得出的水印。防护设备校验报文中的水印是否正确,丢弃水印不正确的报文,从而阻断攻击报文的传输。由于依据水印是否正确能够准确区分正常业务报文与攻击报文,从而避免正常业务报文被误丢弃造成正常业务受损,并有助于避免攻击报文透过防护设备到达业务服务器,增强了业务服务器的安全性。
9.可选地,所述计算规则包括算法标识、输入参数定义以及排序方式,所述算法标识用于标识哈希算法,所述输入参数定义用于描述输入所述哈希算法的至少一个参数,所述至少一个参数包括水印关键词,所述排序方式用于指示所述至少一个参数输入所述哈希算
法时的排序顺序,所述防护设备根据计算规则以及所述报文的目的地址信息对应的第一水印关键词,生成第一水印,包括:所述防护设备根据所述排序方式将包括所述第一水印关键词在内的至少一个参数输入所述算法标识表示的哈希算法,将所述哈希算法的输出作为所述第一水印。
10.通过这种可选方式,能够降低生成水印的实现复杂度,并便于结合算法硬件化的手段提升处理性能。
11.可选地,所述至少一个参数还包括所述报文中携带的用户标识。
12.通过这种可选方式,能够保证不同用户标识对应的水印不同,提升了水印校验机制的安全性。
13.可选地,所述至少一个参数还包括所述报文中携带的地址标识、或所述报文的载荷内容,所述地址标识包括以下至少一个:目的ip、源ip、目的端口号、源端口号。
14.通过这种可选方式,充分考虑了报文中多种关键的字段,提高哈希算法的输入参数的混杂度,因此哈希算法输出的水印能够融合报文中多种关键的字段的内容,加强了破解水印的难度,从而强化防护设备对业务服务器的防护效果,显著提高业务服务器的安全性。
15.可选地,所述防护设备根据计算规则以及所述报文的目的地址信息对应的第一水印关键词,生成第一水印之前,所述方法还包括:所述防护设备从所述报文中获得所述目的地址信息;所述防护设备根据获得的所述目的地址信息,从保存的关键词查询表中,查询得到所述第一水印关键词,所述关键词查询表包括至少一组业务服务器描述信息与水印关键词的对应关系,所述业务服务器描述信息包括业务服务器的ip地址、或业务服务器的ip地址与提供所述服务所基于的端口号段的组合,所述第一水印关键词是所述关键词查询表中所述获得的所述目的地址信息对应的水印关键词。
16.通过这种可选方式,将水印关键词与业务服务器描述信息绑定起来,有助于保证不同的业务服务器具有不同的水印关键词,提升灵活性和安全性。
17.可选地,所述防护设备根据获得的所述目的地址信息,从保存的关键词查询表中,查询得到所述第一水印关键词之前,所述方法还包括:所述防护设备接收来自于登录服务器的所述计算规则或所述关键词查询表,所述登录服务器用于向客户端设备提供所述服务对应的登录服务。
18.通过这种可选方式,实现了水印关键词和计算规则在客户端设备和防护设备之间自动同步,有助于确保客户端设备算出的水印校验成功,提高水印校验的准确率。
19.可选地,所述报文中的目的地址信息还包括所述报文的目的端口号。
20.通过这种可选方式,将水印关键词、目的ip地址以及目的端口号均关联起来,能够为不同端口的业务服务器分别使用不同的水印关键词校验水印,从而提升灵活性和安全性。
21.可选地,所述防护设备接收来自于登录服务器的所述计算规则或所述关键词查询表之后,所述方法还包括:所述防护设备根据来自于所述登录服务器的更新消息,更新所述计算规则或所述关键词查询表中的水印关键词。
22.通过这种可选方式,能够对水印关键词或者计算规则动态更新,增强对重放攻击的防护效果,进一步提高业务服务器的安全性。
23.可选地,所述报文中的水印携带在所述报文的指定字段中,所述如果所述报文中的水印与所述第一水印不同,所述防护设备丢弃所述报文之前,所述方法还包括:所述防护设备提取所述报文在所述指定字段的内容,作为所述报文中的水印。
24.通过这种可选方式,降低了从报文提取水印的实现复杂度。
25.可选地,所述指定字段为业务载荷部分中的一个或多个字段。
26.通过这种可选方式,有助于避免防护设备将报文视为畸形包而误丢弃。
27.可选地,所述关键词查询表中还包括所述报文的目的地址信息对应的第二水印关键词,所述防护设备丢弃所述报文之前,所述方法还包括:所述防护设备根据计算规则以及所述报文的所述目的地址信息对应的第二水印关键词,生成第二水印;所述防护设备确定所述报文中的水印与所述第二水印不同。
28.通过这种可选方式,能够避免误报。
29.可选地,所述防护设备包括硬件加速器,所述防护设备根据计算规则以及所述报文的目的地址信息对应的第一水印关键词,生成第一水印,包括:所述防护设备将所述第一水印关键词输入所述硬件加速器,接收所述硬件加速器生成的所述第一水印,所述硬件加速器用于根据计算规则以及水印关键词生成水印。
30.通过这种可选方式,由硬件加速器提供生成水印所需的算力,生成水印的任务卸载至硬件加速器,从而降低防护设备的处理时延。
31.可选地,所述报文为udp报文或者传输控制协议(transmission control protocol,tcp)报文。
32.通过这种可选方式,能够更有效地防御udp flood攻击或者tcp flood(tcp洪泛)攻击。
33.可选地,所述防护设备根据计算规则以及所述报文的目的地址信息对应的第一水印关键词,生成第一水印之后,所述方法还包括:如果所述报文中的水印与所述第一水印相同,所述防护设备向所述业务服务器转发所述报文。
34.通过这种可选方式,能够准确地识别出来自正常用户的业务报文,将业务报文放行到业务服务器,从而提高业务服务器为正常用户提供服务的稳定性。
35.第二方面,提供了一种防护设备,该防护设备包括存储器、网络接口和至少一个处理器,该防护设备具有实现上述第一方面或第一方面任一种可选方式的功能。
36.第三方面,提供了一种登录服务器,登录服务器包括存储器、网络接口和至少一个处理器,该登录服务器具有实现上述第一方面或第一方面任一种可选方式中登录服务器对应的功能。
37.第四方面,提供了一种攻击防御装置,该攻击防御装置具有实现上述第一方面、或上述第一方面的任意一种可选方式所述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
38.第五方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
39.第六方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计
算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
40.第七方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
附图说明
41.图1是本技术实施例提供的一种应用场景的示意图;
42.图2是本技术实施例提供的一种防护设备的结构示意图;
43.图3是本技术实施例提供的一种登录服务器的结构示意图;
44.图4是本技术实施例提供的一种攻击防御方法的流程图;
45.图5是本技术实施例提供的一种生成水印的示意图;
46.图6是本技术实施例提供的一种生成水印的示意图;
47.图7是本技术实施例提供的一种应用场景的示意图;
48.图8是本技术实施例提供的一种应用场景的示意图;
49.图9是本技术实施例提供的一种攻击防御方法的流程图;
50.图10是本技术实施例提供的一种攻击防御方法的流程图;
51.图11是本技术实施例提供的一种攻击防御装置的结构示意图。
具体实施方式
52.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
53.分布式拒绝服务攻击(distributed denial of service attack,ddos)攻击是一种网络攻击手段。ddos攻击的原理是攻击者控制僵尸网络中的大量僵尸主机向目标计算机发送大量报文,使得目标计算机忙于处理来自攻击者的大量报文,从而耗尽目标计算机的计算资源、网络资源等系统资源,导致目标计算机无法响应来自正常用户的服务请求。其中,攻击者发送的大量报文包括传输控制协议(transmission control protocol,tcp)的同步序列编号(synchronize sequence numbers,syn)和确认(acknowledgement,ack)报文、用户数据报协议(user datagram protocol,udp)报文、域名系统(domain name system,dns)报文、超文本传输协议(hyper text transfer protocol,http)、超文本传输安全协议(hyper text transfer protocol over secure socket layer,https)报文等。
54.udp洪泛(udp flood)攻击是一种典型的ddos攻击方式。顾名思义,udp flood攻击的特点是使用大量的udp报文像洪水一样淹没目标计算机。udp flood攻击的原理是攻击者向目标计算机发送大量的udp报文。
55.udp flood攻击的防御难度很高。具体而言,udp协议是基于无连接的协议,udp协议不提供可靠性和完整性校验,这就造成防火墙难以像防御tcp类型的flood攻击,如syn flood攻击一样,通过源认证等手段防御udp flood攻击,因为udp协议不建立连接。其中,无连接是指使用udp协议传输数据之前,客户端和服务器之间不建立连接。此外,基于udp协议的应用层流量种类繁多,这些因素都使得udp flood攻击的防御成为本领域的技术难点之
一。
56.udp flood攻击通常会造成以下危害。一方面,udp flood攻击的一般攻击后果是消耗网络带宽资源,严重时造成链路拥塞。另一方面,大量变源互联网协议(internet protocol,ip)地址变端口的udp flood会导致依靠会话转发的网络设备,性能降低甚至会话耗尽,从而导致网络瘫痪。再一方面,如果攻击报文达到服务器开放的udp业务端口,服务器检查报文的正确性需要消耗计算资源,影响正常业务。
57.在一些研究中,通过指纹学习的手段防御udp flood攻击。基于指纹学习的防御技术的基本原理是,防护设备从udp报文的载荷部分中提取出固定的字段内容,将提取出的字段内容作为指纹。防护设备后续收到udp报文时,如果udp报文匹配指纹,则防护设备阻断udp报文的传输。然而,在采用指纹学习的手段时,如果正常业务报文的载荷部分存在固定的字段内容,防护设备可能会误将正常业务报文包含的字段内容也提取到指纹中,导致提取错误的指纹。这种情况会导致防护设备收到正常业务报文时,将正常业务报文阻断,造成正常业务受损。并且,在攻击报文的载荷内容随机变化的场景下,攻击报文的指纹不容易提取。由此可见,基于指纹学习的方案的防护效果不尽完善。
58.在另一些研究中,通过限速的手段防御udp flood攻击。基于限速的防御技术的基本原理是,防护设备通过对udp流量进行限速处理,从而将udp流量的速率控制在合理范围之内。限速的方案通常是基于目的ip来控制流量。具体地,防护设备以某个ip地址作为统计对象,对到达这个ip地址的udp流量的速率进行统计。如果udp流量的速率超过阈值,则防护设备丢弃udp流量中的报文。然而,采用这方式时,由于难以区分正常业务报文和攻击报文,正常报文也可能被防护设备丢弃,同样造成正常业务受损。
59.有鉴于此,本技术实施例提供了一种基于报文水印功能来防御ddos攻击的方案。防护设备实施本技术方案,能够通过校验报文中携带的水印,准确地识别出报文是正常报文还是攻击报文,放行正常报文,阻断攻击报文,从而保护业务服务器免受ddos攻击。尤其是,应用在防御udp flood攻击的场景下,有助于在不影响业务服务器的正常业务的前提下,降低udp flood攻击对业务服务器的影响,增强了防护设备针对udp flood攻击的防护效果以及业务服务器的安全性。
60.具体地,本技术方案的一些实现方式中,通过将水印关键词与报文的目的方(受保护的业务服务器)关联起来,为每个业务服务器提供对应的水印关键词,防护设备以及正常用户的客户端设备使用相同的水印关键词以及相同的计算规则来计算水印。当客户端设备要访问业务服务器时,客户端设备会在报文中添加客户端设备算出的水印。防护设备收到报文时,防护设备会校验报文中携带的水印是否与防护设备算出的水印一致。如果报文中的水印与防护设备算出的水印不一致,则防护设备丢弃报文。如果报文中的水印与防护设备算出的水印一致,则防护设备允许报文通过。
61.上述实现方式防御ddos攻击的基本原理在于,由于客户端设备与防护设备使用的水印关键词以及计算规则相同,因此客户端设备算出的水印与防护设备算出的水印能够具备一致性;由于攻击者难以知晓计算规则以及业务服务器对应的水印关键词,因此攻击者难以和防护设备算出相同的水印。因此,水印有助于区分来自客户端设备的正常报文和来自攻击者的攻击报文。如果报文中的水印与防护设备算出的水印一致,表明报文是来自客户端设备的正常报文;如果报文中的水印与防护设备算出的水印不一致,表明报文是来自
攻击者的攻击报文。
62.进一步地,由于水印关键词与报文的目的方(业务服务器)相关,每个业务服务器分别具有对应的水印关键词,保证不同业务服务器的水印不同,避免一个水印关键词被破解而造成防御机制全盘破解,提升灵活性和安全性。
63.下面从应用场景、硬件装置、软件装置、方法流程等多个角度,对本技术方案进行详细介绍。
64.下面结合附图1对本技术实施例的应用场景进行介绍。
65.请参考附图1,附图1是本技术实施例的典型应用场景的示意图。该应用场景包括客户端设备、业务服务器以及防护设备。例如,结合附图1来看,以附图1中的客户端设备11为例的客户端设备,以附图1中的业务服务器121、业务服务器122、业务服务器123中三个业务服务器为例的至少一个业务服务器,以附图1中的防护设备13为例的防护设备。
66.下面结合附图1对应用场景中的各个设备分别进行介绍,详见以下(a)至(c)。
67.(a)客户端设备11
68.客户端设备11例如位于外部网络。客户端设备11是已安装业务客户端软件或者浏览器软件的终端设备。业务客户端软件包括而不限于游戏客户端、网络购物客户端、即时通讯应用、新闻推送应用、在线视频应用、音频播放应用、社交应用等等。客户端设备11包括但不限于个人计算机、移动电话、服务器、笔记本电脑、ip电话、摄像头、平板电脑、可穿戴设备等。在实际网络系统中,可选地有大量客户端设备,为了简明起见,附图1仅以一个客户端设备为例进行说明。
69.(b)业务服务器121
70.业务服务器121例如位于内部网络。业务服务器121用于向客户端设备11或者其他设备提供服务。业务服务器121包括而不限于应用服务器或者网页服务器。应用服务器包括而不限于游戏服务器、视频应用服务器、文件服务器、搜索引擎服务器、即时通信服务器等等。例如,在业务服务器121为应用服务器的情况下,业务服务器121用于响应客户端设备11中业务客户端的业务处理请求,从而为业务客户端提供后台服务。网页服务器也称万维网(world wide web,web)服务器或者网站服务器。例如,在业务服务器121为网页服务器的情况下,业务服务器121用于为客户端设备11中的浏览器软件提供访问网页所需的资源。
71.业务服务器122以及业务服务器123具有与业务服务器121类似的功能和形态,可参考对业务服务器121的描述。在实际网络系统中,可选地有大量业务服务器,为了简明起见,附图1仅以三个业务服务器为例进行说明。
72.(c)防护设备13
73.防护设备13部署于业务服务器121与客户端设备11之间。例如,请参考附图1,防护设备13位于外部网络与内部网络之间。防护设备13用于对内部网络中的业务服务器121与外部网络中的客户端设备11之间交互的数据进行安全防护。防护设备13用于保护内部网络中的业务服务器121免受外部网络中的攻击者14的攻击。防护设备13的具体部署方式包括而不限于直路部署、旁路部署等。
74.防护设备13用于对业务服务器121与客户端设备11之间传输的报文进行安全检测。防护设备13包括而不限于防火墙、抗ddos(anti-ddos)设备、入侵检测系统(intrusion detection system,ids)类设备、入侵防御系统(intrusion prevention system,ips)类设
备、安全网关、统一威胁管理(unified threat management,utm)设备、服务器、主机或个人计算机等等。防护设备13通过软件、硬件或者软件硬件相结合的方式实现。
75.可选地,该应用场景还包括至少一个数据库。例如,结合附图1来看,至少一个数据库包括附图1中与业务服务器121相连的数据库161、与业务服务器122相连的数据库162、与业务服务器123相连的数据库163。以数据库161为例,数据库161用于保存业务服务器121所需的业务数据。在客户端设备11访问业务服务器121的过程中,业务服务器121访问数据库161,业务服务器121读取数据库161存储的业务数据从而进行业务处理。可选地,该应用场景还包括网关设备15。网关设备15分别与业务服务器121、业务服务器122、业务服务器123相连。网关设备15用于转发防护设备13与业务服务器121、业务服务器122或者业务服务器123之间传输的数据。网关设备15包括而不限于服务器、主机、个人计算机、路由器、交换机等。可选地,在一些场景中,防护设备13和网关设备15的功能集成在一个设备中。
76.下面结合附图1,对应用场景涉及的数据交互进行举例说明。
77.请参考附图1,客户端设备11向业务服务器121发送正常业务报文(如udp报文),从而请求业务服务器121进行业务处理。同时,攻击者14向业务服务器121发送攻击报文,从而发起攻击。例如,攻击者14发送大量的udp报文,从而发起udp flood攻击。客户端设备11发送的正常业务报文以及攻击者14发送的攻击报文分别通过网络传输至防护设备13。防护设备13收到的报文中,既包含来自于客户端设备11发送的正常业务报文,又包含攻击者14发送的攻击报文。防护设备13通过执行下述实施例中的方法,能够将正常业务报文转发给网关设备15,阻断攻击报文,从而保证正常业务报文到达业务服务器121,避免攻击报文到达业务服务器121。
78.附图2是本技术实施例提供的防护设备的结构示意图。可选地,具有附图2所示结构的防护设备是附图1中的防护设备13。
79.参见附图2,附图2示出了本技术一个示例性实施例提供的防护设备200的结构示意图,该防护设备200由一般性的总线体系结构来实现。
80.防护设备200包括至少一个处理器201、通信总线202、存储器203以及至少一个网络接口204。
81.处理器201例如是通用中央处理器(central processing unit,cpu)、网络处理器(network processer,np)、图形处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing units,npu)、数据处理单元(data processing unit,dpu)、微处理器或者一个或多个用于实现本技术方案的集成电路。例如,处理器201包括专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。pld例如是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
82.通信总线202用于在上述组件之间传送信息。通信总线202可以分为地址总线、数据总线、控制总线等。为便于表示,附图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
83.存储器203例如是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,ram)或者可
存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203例如是独立存在,并通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。
84.网络接口204使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口204包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,wlan)接口,蜂窝网络通信接口或其组合等。
85.在具体实现中,作为一种实施例,处理器201可以包括一个或多个cpu,如附图2中所示的cpu0和cpu1。
86.可选地,防护设备200还包括硬件加速器205。在一些实施例中,硬件加速器205包括加解密处理器。硬件加速器205用于执行哈希算法或其他生成水印所使用的算法。硬件加速器205包括而不限于现场可编程门阵列(field programmable gate array,fpga)、专用集成芯片(application specific integrated circuit,asic)、系统芯片(system on chip,soc)、中央处理器(central processor unit,cpu)、网络处理器(network processor,np)、数字信号处理电路(digital signal processor,dsp)、微控制器(micro controller unit,mcu)、可编程控制器(programmable logic device,pld)或其他集成芯片。
87.处理器201和硬件加速器205中的每一个例如是一个单核处理器(single-cpu),又如是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
88.在具体实现中,作为一种实施例,防护设备200还可以包括输出设备和输入设备。输出设备和处理器201通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
89.在一些实施例中,存储器203,用于保存计算规则以及至少一个水印关键词;存储器203还用于存储执行本技术方案的程序代码210,处理器201执行存储器203中存储的程序代码210后,执行以下操作:拦截网络接口204接收的报文,报文的目的ip地址为业务服务器的ip地址,报文用于请求访问业务服务器提供的服务;根据计算规则以及报文的目的地址信息对应的第一水印关键词,生成第一水印,目的地址信息包括目的ip地址;如果报文中的水印与第一水印不同,丢弃报文。
90.在一些实施例中,处理器201读取存储器203中存储的程序代码210后,执行以下操作:根据排序方式将包括第一水印关键词在内的至少一个参数输入算法标识表示的哈希算法,将哈希算法的输出作为第一水印。
91.在一些实施例中,存储器203用于保存关键词查询表,处理器201读取存储器203中存储的程序代码210后,还执行以下操作:从报文中获得目的地址信息;根据获得的目的地址信息,从存储器203保存的关键词查询表中,查询得到第一水印关键词。
92.在一些实施例中,网络接口204,还用于接收来自于登录服务器的计算规则或关键词查询表。
93.在一些实施例中,处理器201读取存储器203中存储的程序代码210后,还执行以下操作:根据网络接口204接收的来自于登录服务器的更新消息,更新计算规则或关键词查询表中的水印关键词。
94.在一些实施例中,处理器201读取存储器203中存储的程序代码210后,还执行以下操作:提取报文在指定字段的内容,作为报文中的水印。
95.在一些实施例中,处理器201读取存储器203中存储的程序代码210后,还执行以下操作:根据计算规则以及报文的目的地址信息对应的第二水印关键词,生成第二水印;确定报文中的水印与第二水印不同。
96.在一些实施例中,处理器201将第一水印关键词输入硬件加速器205,接收硬件加速器205生成的第一水印。
97.在一些实施例中,处理器201读取存储器203中存储的程序代码210后,还执行以下操作:如果报文中的水印与第一水印相同,指示网络接口204向业务服务器转发报文。
98.处理器201、网络接口204、存储器203、硬件加速器205等实现上述功能的更多细节请参考后面方法实施例中的描述。
99.附图3是本技术实施例提供的登录服务器的结构示意图。可选地,具有附图3所示结构的服务器是附图7中的登录服务器18。
100.参见附图3,附图3示出了本技术一个示例性实施例提供的登录服务器300的结构示意图。该登录服务器300可以由一般性的总线体系结构来实现。
101.登录服务器300包括至少一个处理器301、通信总线302、存储器303以及至少一个网络接口304。
102.处理器301例如是通用中央处理器(central processing unit,cpu)、网络处理器(network processer,np)、图形处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing units,npu)、数据处理单元(data processing unit,dpu)、微处理器或者一个或多个用于实现本技术方案的集成电路。例如,处理器301包括专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。pld例如是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
103.通信总线302用于在上述组件之间传送信息。通信总线302可以分为地址总线、数据总线、控制总线等。为便于表示,附图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
104.存储器303例如是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器
(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器303例如是独立存在,并通过通信总线302与处理器301相连接。存储器303也可以和处理器301集成在一起。
105.网络接口304使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口304包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,wlan)接口,蜂窝网络通信接口或其组合等。
106.在具体实现中,作为一种实施例,处理器301可以包括一个或多个cpu,如附图3中所示的cpu0和cpu1。
107.在具体实现中,作为一种实施例,登录服务器300可以包括多个处理器,如附图3中所示的处理器301和处理器305。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
108.在具体实现中,作为一种实施例,登录服务器300还可以包括输出设备和输入设备。输出设备和处理器301通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备和处理器301通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
109.在一些实施例中,存储器303用于存储执行本技术方案的程序代码310,处理器301执行存储器303中存储的程序代码310后,执行以下操作:获取水印关键词;指示网络接口304将水印关键词分别发送至防护设备以及客户端设备;或者,获取计算规则;指示网络接口304将计算规则分别发送至防护设备以及客户端设备。
110.在一些实施例中,处理器301执行存储器303中存储的程序代码310后,还用于执行以下操作:生成更新消息,更新消息包括更新后的计算规则或更新后的关键词查询表;指示网络接口304向防护设备以及客户端设备分别发送更新消息。
111.处理器301、网络接口304、存储器303等实现上述功能的更多细节请参考后面方法实施例中的描述。
112.下面结合附图4对本技术实施例提供的攻击防御方法进行介绍。
113.附图4是本技术实施例提供的攻击防御方法400的流程图。方法400包括步骤s410至步骤s430。
114.可选地,方法400中涉及的客户端设备、业务服务器以及防护设备的网络部署场景如附图1所示。方法400中涉及的客户端设备为附图1中的客户端设备11,方法400中业务服务器为附图1中的业务服务器121,方法400中防护设备为附图1中的防护设备13。
115.可选地,方法400中防护设备的硬件具备附图2所示结构。
116.步骤s410、防护设备拦截报文。
117.报文用于请求访问业务服务器提供的服务。报文的源端包括多种情况。例如,报文来自于正常用户的客户端设备或者攻击者。比如,请参考附图1所示的场景,防护设备13收到的报文可能来自于客户端设备11,也可能来自于攻击者14。报文包括目的地址信息。目的地址信息包括报文的目的端口号以及目的ip地址。
118.在一些实施例中,防护设备根据报文的目的ip地址,拦截目的方为业务服务器的报文。例如,如果报文的目的ip地址为业务服务器的ip地址,则防护设备拦截报文。可选地,防护设备还根据报文的目的端口号拦截报文。例如,如果报文的目的ip地址为业务服务器的ip地址且目的端口号属于业务服务器的端口号段,则防护设备拦截报文。
119.在一些实施例中,防护设备根据报文的协议类型拦截预定协议的报文。例如防护设备拦截的报文为udp报文,防护设备通过对udp报文执行后续步骤,支持防御udp flood攻击的功能。在一些实施例中,防护设备拦截的报文为tcp报文,防护设备通过对tcp报文执行后续步骤,支持防御tcp flood攻击的功能。
120.在一些实施例中,防护设备结合报文的目的ip地址以及协议类型拦截报文。例如防护设备拦截目的方为业务服务器的udp报文。
121.步骤s420、防护设备根据计算规则以及报文的目的地址信息对应的第一水印关键词,生成第一水印,目的地址信息包括目的ip地址。
122.计算规则是指生成水印时依据的规则。防护设备预先保存计算规则,当收到报文时,防护设备使用保存的计算规则以及水印关键词生成水印。
123.在防护设备保护多个业务服务器的情况下,在一些实施例中,为各个业务服务器设置相同的计算规则,防护设备在校验发往各个业务服务器的报文时,使用相同的计算规则生成水印。在另一些实施例中,为每个业务服务器分别设置对应的计算规则,防护设备保存多个计算规则,防护设备在校验发往各个业务服务器的报文时,使用业务服务器对应的计算规则生成水印。本实施例对防护设备上保存的计算规则的数量不作限定,本实施例也不限定计算规则是否与业务服务器对应。
124.计算规则的内容包括多种情况。在一些实施例中,计算规则包括算法标识、输入参数定义以及排序方式,下面通过(1)至(3)进行具体说明。
125.(1)算法标识
126.算法标识用于标识生成水印所基于的算法。例如,算法标识包括而不限于算法的名称、算法的编号、算法的版本号中的至少一项。计算规则中通过包含算法标识,从而向防护设备或者客户端设备指明具体使用哪种算法生成水印。
127.在一些实施例中,选择哈希算法作为生成水印所使用的算法,水印为通过哈希算法算出的哈希值。计算规则中的算法标识具体用于标识哈希算法。哈希算法(hash algorithm)是一种用来将任意大小的数据映射到固定大小的值的算法。哈希算法有时也称为哈希函数(hash function)。生成水印所使用的哈希算法包括而不限于循环冗余校验(cyclic redundancy check,crc)32、安全散列算法(secure hash algorithm,sha)或者md5信息摘要算法(message-digest algorithm)等。
128.在一些实施例中,具体选择加密哈希算法作为生成水印所使用的哈希算法,水印为通过加密哈希算法算出的加密哈希值。
129.加密哈希算法(cryptographic hash function,chf,也称加密哈希函数)即消息
摘要算法(message-digest algorithm)。和普通的加密算法相比,加密哈希算法的主要特征是,加密哈希算法是一个单向函数,也就是说,是一个实际上不可反求的函数。加密哈希值有时也称为摘要值或(数字)指纹。通过选用加密哈希算法生成水印,能够提高破解水印的难度,从而提高安全性。
130.在一些实施例中,选择除哈希算法之外的其他算法作为生成水印所使用的算法。例如,对作为算法输入参数的二进制内容进行逻辑运算等等。
131.(2)输入参数定义
132.输入参数定义用于描述输入哈希算法的至少一个参数。输入哈希算法的参数有时也被称为哈希因子。输入参数定义包括输入哈希算法的至少一个参数的标识。计算规则通过包含输入参数定义,从而向防护设备或者客户端设备指明使用哪些参数生成水印。
133.输入参数定义描述的参数包括水印关键词。在一些实施例中,水印关键词是通过随机数算法生成的随机数。在另一些实施例中,水印关键词是系统管理员配置的数据。水印关键词例如是字符串或数字。
134.在一些实施例中,输入参数定义描述的参数还包括报文中携带的用户标识(identity,id)。采用这种方式时,输入哈希算法的参数不仅包括水印关键词,还包括用户标识。防护设备或者客户端设备根据该输入参数定义,会根据水印关键词以及用户标识生成水印。通过选择用户标识作为输入哈希算法的参数,能够保证哈希算法针对不同用户标识的输出不同,也即是不同用户标识对应的水印不同,提升了水印校验机制的安全性。
135.在一些实施例中,输入参数定义描述的参数还包括报文中携带的地址标识、或报文的载荷内容。其中,地址标识包括而不限于ip或者端口号。地址标识包括而不限于报文的源端的地址标识或者报文的目的方的地址标识。例如,地址标识包括以下至少一个:目的ip、源ip、目的端口号、源端口号。通过这种方式,水印的计算规则充分考虑了报文中多种关键的字段,结合报文中多种关键的字段的内容作为哈希算法的输入参数,提高哈希算法的输入参数的混杂度,因此哈希算法输出的水印能够融合报文中多种关键的字段的内容,加强了破解水印的难度,从而强化防护设备对业务服务器的防护效果,显著提高业务服务器的安全性。
136.(3)排序方式
137.排序方式用于指示至少一个参数输入哈希算法时的排序顺序。参数的排序方式有时也称为数据结构。防护设备或者客户端设备根据计算规则中的排序方式,会按照排序方式所指定的排序顺序,对参数进行依次排序后输入哈希算法。
138.例如,输入参数定义描述的哈希算法的参数包括水印关键词、用户标识以及目的ip。水印关键词为7uik34rtyu,用户标识为alice,目的ip为201.0.1.2。如果排序方式指示的排列顺序是,第一个是水印关键词,第二个是用户标识,第三个是目的ip,那么输入哈希算法的数据类似于“7uik34rtyu alice 201.0.1.2”。如果排序方式指示的排列顺序是,第一个是目的ip,第二个是用户标识,第三个是水印关键词,那么输入哈希算法的数据类似于“201.0.1.2alice7uik34rtyu”。
139.通过在水印的计算规则中设置排序方式,能够进一步提高安全性。这一效果的技术原理在于,通过哈希算法计算时,如果打乱输入数据中不同参数的排列顺序,哈希算法的输出结果就会不同,即得出的具体水印不同。那么,即使攻击者知道了使用哪些参数计算水
印,攻击者不清楚参数的排序方式,也就难以计算出正确的水印,因此加强了破解水印的难度,从而提高业务服务器的安全性,强化防护设备对业务服务器的防护效果。
140.结合以上(1)至(3)描述的算法标识、输入参数定义以及排序方式,防护设备例如采用这样的实现方式生成水印:防护设备根据计算规则中的排序方式,将计算规则中输入参数定义描述的至少一个参数,输入到计算规则中算法标识表示的哈希算法,将哈希算法的输出作为生成的一个水印。其中,输入到哈希算法的至少一个参数至少包括报文的目的地址信息对应的一个水印关键词。在一些实施例中,输入到哈希算法的至少一个参数还包括报文中携带的用户标识、报文中携带的地址标识、或报文的载荷内容中的至少一项。
141.请参考附图5,下面结合附图5对生成水印的实现方式举例说明。在生成水印时,哈希算法选择crc32算法。哈希算法的输入参数依次选择用户标识、4字节的业务载荷、目的端口号、目的ip和水印关键词。相应地,计算规则中的算法标识具体为crc32算法的标识。计算规则中的输入参数定义描述输入crc32算法的参数为用户标识、4字节的业务载荷、目的端口号、目的ip和水印关键词。计算规则中排序方式指示的排序顺序为用户标识-4字节的业务载荷-目的端口号-目的ip-水印关键词。防护设备拦截到一个发往业务服务器的报文之后,防护设备按照该计算规则,从报文中提取用户标识、4字节的业务载荷、目的端口号以及目的ip,并且从本地保存的关键词查询表中根据报文的目的ip地址查询得到对应的水印关键词。防护设备按照用户标识-4字节的业务载荷-目的端口号-目的ip-水印关键词这样的顺序,将提取的数据以及查询的水印关键词输入crc32算法,将crc32算法的输出作为生成的水印。
142.本实施例通过提供上述计算规则,在实现基于水印防御攻击的基础上,有助于结合算法硬件化的手段提升处理性能。具体地,从以上对计算规则的介绍不难看出,计算水印的方式简单、模式固定,并且哈希算法适于通过专用硬件加速。在一些实施例中,防护设备包括硬件加速器,防护设备将包括水印关键词在内的至少一个参数输入硬件加速器,硬件加速器执行上述生成水印的步骤,防护设备接收硬件加速器生成的水印。其中,硬件加速器用于根据计算规则以及水印关键词生成水印。通过这种方式,由硬件加速器提供生成水印所需的算力,生成水印的任务从cpu卸载至硬件加速器,从而降低防护设备的处理时延。
143.在一些实施例中,同一个目的地址信息对应于多个水印关键词。防护设备根据报文中的目的地址信息对应的多个水印关键词,生成多个水印。例如,报文中的目的地址信息同时对应于第一水印关键词以及第二水印关键词。防护设备根据计算规则以及第一水印关键词,生成第一水印。防护设备根据计算规则以及第二水印关键词,生成第二水印。其中,生成第一水印的过程包括:防护设备根据排序方式将包括第一水印关键词在内的至少一个参数输入算法标识表示的哈希算法,将哈希算法的输出作为第一水印。生成第二水印的过程包括:防护设备根据排序方式将包括第二水印关键词在内的至少一个参数输入算法标识表示的哈希算法,将哈希算法的输出作为第二水印。生成第一水印和第二水印的细节请参考上文的介绍,在此不做赘述。
144.在一些实施例中,水印关键词是通过查表获得的。具体而言,防护设备收到报文之后,防护设备从报文中获得目的地址信息。防护设备根据获得的目的地址信息,从保存的关键词查询表中,查询得到至少一个水印关键词,以便根据至少一个水印关键词生成至少一个水印。例如,防护设备根据目的地址信息,从关键词查询表中查询得到第一水印关键词以
及第二水印关键词,以便根据第一水印关键词以及第二水印关键词分别生成第一水印和第二水印。其中,第一水印关键词和第二水印关键词均是关键词查询表中获得的目的地址信息对应的水印关键词。
145.关键词查询表包括至少一组业务服务器描述信息与水印关键词的对应关系。关键词查询表用于查询水印关键词。关键词查询表的查询索引为业务服务器描述信息。其中,业务服务器描述信息用于描述业务服务器(报文的目的方)。在一些实施例中,关键词查询表中不同业务服务器描述信息对应的水印关键词不同。通过设置关键词查询表,从而将水印关键词与业务服务器描述信息绑定起来,有助于保证不同的业务服务器具有不同的水印关键词。
146.关键词查询表中的业务服务器描述信息至少包括业务服务器的ip地址。在采用这种方式时,防护设备根据报文中的目的ip地址查询关键词查询表。具体地,如果报文中的目的ip地址命中关键词查询表中的ip地址,防护设备将关键词查询表命中的ip地址对应的水印关键词,作为查询结果。
147.可选地,业务服务器描述信息还包括业务服务器提供服务所基于的端口号段,也即是,业务服务器描述信息包括业务服务器的ip地址与提供服务所基于的端口号段的组合。在采用这种方式时,防护设备根据报文中的目的ip地址以及目的端口号查询关键词查询表。具体地,如果报文中的目的ip地址命中关键词查询表中的ip地址,且报文中的目的端口号命中关键词查询表中该ip地址的端口号段,防护设备将关键词查询表同时与命中的ip地址以及端口号段对应的水印关键词,作为查询结果。
148.例如,请参考下表1,表1是对关键词查询表的举例说明。表1所示的关键词查询表中的业务服务器描述信息包括业务服务器的ip地址以及端口号段。表1所示的关键词查询表包括2个表项,分别为表项1和表项2。表项1的查询索引为ip地址201.0.1.2以及端口段3000~6000。表项1中的水印关键词为7uik34rtyu以及7ytf0okj2ws。表项2的查询索引为ip地址201.0.1.3以及端口段8000~12000。表项2中的水印关键词为edc6tg3s2qs以及8ik7ujm4rf。当通过表1查询水印关键词时,例如,报文的目的ip地址是201.0.1.2,报文的目的端口号是3001,防护设备从报文中获得的目的地址信息包括201.0.1.2以及3001。防护设备根据201.0.1.2以及3001查询表1,发现201.0.1.2与表项1中的ip地址相同,3001属于表项1中的端口号段3000~6000。防护设备从表项1中获得两个水印关键词,分别为7uik34rtyu以及7ytf0okj2ws。防护设备使用这两个水印关键词生成水印。
149.表1
[0150][0151]
其中,表1中业务服务器的端口号段这一列是可选的。
[0152]
通过保存表1所示的关键词查询表,从而将ip地址为201.0.1.2的业务服务器与7uik34rtyu以及7ytf0okj2ws这2个水印关键词绑定,将ip地址为201.0.1.3的业务服务器
与edc6tg3s2qs以及8ik7ujm4rf这2个水印关键词绑定,使得ip地址分别为201.0.1.2、201.0.1.3的两台业务服务器分别具有对应的一个或多个水印关键词。
[0153]
步骤s430、如果报文中的水印与第一水印不同,防护设备丢弃报文。
[0154]
防护设备从报文中提取水印。防护设备对报文提取的水印与防护设备生成的水印进行匹配。如果报文中的水印与防护设备生成的水印不同,防护设备丢弃报文,从而阻断报文的传输。如果报文中的水印与防护设备生成的水印不同,防护设备允许报文通过防护设备。例如,防护设备将报文转发给目的地址信息对应的业务服务器。可选地,报文中的水印由客户端设备添加至报文中。
[0155]
在一些实施例中,报文中的水印携带在报文的指定字段中。例如,客户端设备在报文的指定字段添加水印。防护设备提取报文在指定字段的内容,作为报文中的水印。
[0156]
在一些实施例中,携带水印的指定字段为业务载荷部分中的一个或多个字段。换句话说,水印在报文中位于业务载荷部分。水印在报文中的具体位置包括而不限于业务载荷部分的头部、中间或者尾部。通过在业务载荷部分中携带水印,相对于在ip标准头、ip扩展头或者其他位置携带水印的方式而言,有助于避免防护设备将报文视为畸形包而误丢弃。
[0157]
请参考附图6,下面结合附图6对携带水印的报文格式、以及防护设备对水印的校验过程进行举例说明。在附图6中,携带水印的指定字段为业务载荷部分中用户id字段之后的字段。防护设备收到附图6所示的报文之后,防护设备从ip头部提取目的ip地址,从udp头部或tcp头部提取目的端口号,从业务载荷部分中提取用户id以及水印。防护设备根据由ip头部提取目的ip地址以及从udp头部提取目的端口号组成的目的地址信息,从表1所示的关键词表中查找到对应的水印关键词。防护设备根据计算规则中的排序方式,将从ip头部提取目的ip地址、从udp头部提取目的端口号、从业务载荷部分中提取用户id以及查找到的水印关键词输入计算规则中算法标识表示的哈希算法,将哈希算法输出结果作为生成的一个水印。防护设备将生成的水印与从报文业务载荷部分中提取的水印进行比较。
[0158]
在一些实施例中,携带水印的指定字段为业务载荷部分中分布在不同位置的多个字段。具体地,同一个水印分为多个段,每个段分别携带在业务载荷部分中的不同字段。例如,业务载荷部分依次包含字段a、用户id字段以及字段b。携带水印的指定字段为字段a和字段b。水印一共包括(m n)个比特。水印分为两段。一段包括m个比特,携带在字段a中。另一段包括n个比特,携带在字段b中。防护设备提取水印信息时,从字段a提取m个比特,从字段b提取n个比特,将总共的(m n)个比特作为报文中的水印。其中m和n均表示正整数。
[0159]
在一些实施例中,通过计算规则描述水印在报文中的携带位置。例如,计算规则包括指定字段的标识。客户端设备根据计算规则将水印添加至报文中的指定字段。防护设备根据计算规则在报文中提取指定字段中的水印。例如,如果计算规则包括字段a的标识,客户端设备将生成的水印添加至报文中的字段a,防护设备提取报文在字段a的内容,作为报文中的水印。
[0160]
在同一个目的地址信息对应于多个水印关键词,防护设备根据多个水印关键词生成多个水印的情况下,防护设备对报文提取的水印与生成的多个水印分别进行匹配。如果报文中的水印与防护设备生成的多个水印均不同,防护设备丢弃报文。如果报文中的水印与防护设备生成的一个水印相同,防护设备允许报文通过防护设备。
[0161]
例如,报文中的目的地址信息同时对应于第一水印关键词以及第二水印关键词。防护设备根据计算规则以及第二水印关键词,生成第二水印。防护设备对第二水印与报文中的水印进行匹配。如果报文中的水印与第二水印不同,防护设备根据计算规则以及第一水印关键词,生成第一水印。如果报文中的水印与第一水印不同,防护设备丢弃报文。
[0162]
防护设备通过使用多个水印关键词检查发往一个业务服务器的报文,有助于避免误报。达到这一效果的基本原理在于,如果只有一个水印关键词,在更新水印关键词的时候,可能会由于客户端设备使用原有的水印关键词造成误杀。而通过设置多个水印关键词,在报文中的水印与一个水印关键词对应的水印相同的情况下,允许报文通过,有助于降低这种情况造成误杀的概率。
[0163]
本实施例提供的方法,为受保护的业务服务器提供对应的水印关键词,防护设备和客户端设备使用相同的计算规则以及水印关键词生成水印。客户端设备在报文中添加通过水印关键词得出的水印。防护设备校验报文中的水印是否正确,丢弃水印不正确的报文,从而阻断攻击报文的传输。由于依据水印是否正确能够准确区分正常业务报文与攻击报文,从而避免正常业务报文被误丢弃造成正常业务受损,并有助于避免攻击报文透过防护设备到达业务服务器,增强了业务服务器的安全性。
[0164]
可选地,上述附图4所示的方法中,水印关键词和计算规则能够在客户端设备和防护设备之间保持同步,使得客户端设备和防护设备使用相同的水印关键词和计算规则生成水印,保证客户端设备生成的水印和防护设备生成的水印保持一致。其中,客户端设备生成水印的方式与防护设备生成水印的方式同理,技术细节请参考附图4所示的方法中的相应描述。
[0165]
同步的实现方式包括很多种,下面通过实现方式一至实现方式三举例说明。
[0166]
实现方式一、登录服务器将相同的水印关键词或相同的计算规则中的至少一项分别下发给客户端设备和防护设备。
[0167]
请参考附图7,附图7是本技术实施例提供的一种部署了登录服务器的场景示意图。登录服务器例如为附图7中的登录服务器18。下面对附图7中的登录服务器18进行介绍。附图7中登录服务器18之外的其他设备请参考对附图1的介绍。
[0168]
登录服务器18例如位于内部网络。登录服务器18用于向客户端设备11提供登录服务。例如,业务服务器121向客户端设备11提供游戏服务,而登录服务器18向客户端设备11提供游戏中的登录服务。在一些实施例中,登录服务器18与业务服务器121单独设置在不同计算机上。在另一些实施例中,登录服务器18与业务服务器121合设在同一计算机上。登录服务包括而不限于通过输入用户名和密码进行登录的服务以及通过第三方授权登录的服务。可选地,附图7所示的应用场景还包括与登录服务器18相连的数据库164。数据库164用于保存登录服务器18执行登录服务所需的信息。例如,数据库164保存用户名和密码。
[0169]
上述附图4所示的方法400中,能够通过登录服务器实现水印关键词和计算规则的自动配置。例如,结合附图7所示的场景,防护设备13保存的计算规则以及关键词查询表来自于登录服务器18。具体地,登录服务器18向防护设备13发送计算规则以及关键词查询表。并且,登录服务器18向客户端设备11发送计算规则以及关键词查询表。防护设备13收到登录服务器18发送的计算规则以及关键词查询表之后,防护设备13保存计算规则以及关键词查询表。客户端设备11收到登录服务器18发送的计算规则以及关键词查询表之后,客户端
设备11保存计算规则以及关键词查询表。通过这种手段,客户端设备11和防护设备13都获得了计算规则以及关键词查询表。并且,客户端设备11和防护设备13获得的计算规则是一致的,客户端设备11和防护设备13获得的关键词查询表是一致的。
[0170]
通过上述实现方式一,实现了客户端设备、防护设备和登录服务器的联动防护。登录服务器通过将水印关键词和计算规则分别下发给客户端设备和防护设备,实现了水印关键词和计算规则在客户端设备和防护设备之间自动同步,有助于确保客户端设备算出的水印校验成功,提高水印校验的准确率。
[0171]
登录服务器下发水印关键词和计算规则的时机包括很多种情况。在一些实施例中,当客户端设备请求登录时,登录服务器向客户端设备发送水印关键词和计算规则。具体地,客户端设备向登录服务器发送登录请求。登录服务器接收来自于客户端设备的登录请求,对登录请求进行验证。如果验证成功,登录服务器向客户端设备发送水印关键词和计算规则。可选地,登录请求包括用户名和密码。对登录请求进行验证的具体方式是判断密码是否正确。可选地,登录请求是通过tcp协议发送的tcp报文。
[0172]
在一些实施例中,登录服务器向客户端设备发送请求登录的业务服务器对应的水印关键词。换句话说,客户端设备请求登录哪台业务服务器,登录服务器向客户端设备发送哪台业务服务器对应的水印关键词,从而节省下发水印关键词所需的资源。
[0173]
水印关键词和计算规则都由登录服务器下发是可选的。在另一些实施例中,登录服务器下发水印关键词和计算规则中的一者。
[0174]
实现方式二、运维人员分别为客户端设备和防护设备配置相同的水印关键词或相同的计算规则中的至少一项。
[0175]
具体地,运维人员手动执行配置操作,在客户端设备上配置水印关键词和计算规则,并且,运维人员在防护设备上配置水印关键词和计算规则。其中,在客户端设备上配置的水印关键词与在防护设备上配置的水印关键词相同。在客户端设备上配置的计算规则与在防护设备上配置的计算规则相同。例如,运维人员通过命令行界面或者web界面为客户端设备和防护设备配置水印关键词或计算规则。
[0176]
实现方式三、客户端设备和防护设备中预置相同的水印关键词或相同的计算规则中的至少一项。
[0177]
在一些实施例中,上述实现方式一至实现方式三结合使用。具体地,水印关键词和计算规则中的一者通过采用实现方式一至实现方式三中的一种实现方式在客户端设备和防护设备之间保持同步,水印关键词和计算规则中的另一者通过采用实现方式一至实现方式三中的另一种实现方式在客户端设备和防护设备之间保持同步。例如,针对水印关键词采用实现方式一或实现方式二,针对计算规则采用实现方式三,即,水印关键词是可配置的,计算规则是预置的。
[0178]
可选地,上述附图4所示的方法中,水印关键词和计算规则会动态更新,从而防止重放攻击(replay attacks),提升安全性。更新水印关键词和计算规则的实现方式包括很多种,下面通过实现方式a和实现方式b举例说明。
[0179]
实现方式a、通过登录服务器自动更新水印关键词或计算规则中的至少一项。
[0180]
以更新水印关键词的过程为例,在一种可能的实现中,登录服务器获得更新后的水印关键词。登录服务器根据更新后的水印关键词,生成更新消息。更新消息用于通知客户
端设备或防护设备更新水印关键词。更新消息包括更新后的水印关键词。登录服务器向客户端设备和防护设备分别发送更新消息。客户端设备和防护设备分别接收来自于登录服务器的更新消息。客户端设备和防护设备根据更新消息,分别更新各自保存的水印关键词。具体地,客户端设备将保存的关键词查询表中的水印关键词更新为更新消息中的水印关键词。防护设备将保存的关键词查询表中的水印关键词更新为更新消息携带的水印关键词。如此,客户端设备和防护设备都将历史使用的水印关键词平滑切换为登录服务器重新下发的水印关键词。
[0181]
计算规则的更新过程与上述水印关键词的更新过程同理,例如,将水印关键词的更新过程中的水印关键词替换为计算规则。
[0182]
在一些实施例中,水印关键词和计算规则均更新。在另一些实施例中,水印关键词和计算规则中的一者更新。
[0183]
可选地,登录服务器向客户端设备和防护设备发送更新后的水印关键词或计算规则的时间点相同,从而确保客户端设备和防护设备同时更新水印关键词或计算规则,保证客户端设备和防护设备上的水印关键词或计算规则保持同步。
[0184]
更新水印关键词或计算规则的时机包括很多种。在一些实施例中,登录服务器定期通知客户端设备和防护设备更新水印关键词和计算规则。例如,登录服务器每隔预设时间周期,向客户端设备和防护设备分别发送更新后的水印关键词或计算规则,从而更新一次客户端设备和防护设备上的水印关键词或计算规则。
[0185]
实现方式b、通过运维人员手动更新水印关键词或计算规则中的至少一项。
[0186]
例如,运维人员执行配置操作,在客户端设备和防护设备分别配置更新后的水印关键词或计算规则。
[0187]
通过动态更新水印关键词或者计算规则提升安全性的基本原理在于,由于水印关键词或者计算规则是动态更新的,一方面,即使攻击者利用网络监听或者其他方式捕获了客户端设备发送的报文,一直向业务服务器重复发送该报文来发起重放攻击,通过刷新水印关键词和计算规则之后,攻击者之前捕获的报文对应的水印关键词和计算规则会失效,报文中的水印校验不通过,从而被防护设备阻断。另一方面,即使攻击者破解了水印关键词或者计算规则,更新水印关键词或者计算规则能让攻击者破解的水印关键词或者计算规则失效。
[0188]
在一些实施例中,上述实现方式a和实现方式b结合使用。具体地,水印关键词和计算规则中的一者通过登录服务器自动更新,另一者通过运维人员手动更新。或者,运维人员通过命令行界面或者web界面手动更新防护设备上的水印关键词和计算规则,在更新完成后生成更新日志(例如,更新日志中包括更新时间、水印关键词的发布时间或版本信息、或计算规则的发布时间或版本信息)并将更新日志同步到登录服务器中。登录服务器根据更新日志,在确定防护设备上的水印关键词和计算规则更新完成后,自动更新客户端设备上的水印关键词或计算规则。
[0189]
下面结合一个实例,对附图7所示的应用场景以及附图4所示的攻击防御方法进行举例说明。以下介绍的实例以游戏场景为例进行说明。
[0190]
请参考附图8,附图8是本技术实施例的游戏场景的网络部署示意图。附图7所示场景中客户端设备11为附图8所示场景中游戏客户端。附图7所示场景中正常业务报文为附图
8所示场景中udp类型的游戏请求报文。
[0191]
附图7所示场景中业务服务器121为附图8所示场景中游戏服务器1。附图7所示场景中业务服务器122为附图8所示场景中游戏服务器2。附图7所示场景中业务服务器123为附图8所示场景中游戏服务器3。附图7所示场景中数据库161为附图8所示场景中地图数据库1。附图7所示场景中数据库162为附图8所示场景中地图数据库2。附图7所示场景中数据库163为附图8所示场景中地图数据库3。附图7所示场景中数据库164为附图8所示场景中用户数据库。用户数据库保存了游戏客户端登录的游戏账号,用户数据库还保存了游戏账号对应的密码。
[0192]
在附图8所示的场景中,游戏客户端首先需要通过tcp协议向登录服务器发送登录请求,从而请求登录游戏服务。登录服务器验证成功后,游戏客户端向游戏服务器发送游戏请求报文,从而请求游戏服务器为游戏客户端选择房间或是地图进行游戏。其中,游戏客户端与游戏服务器之间使用udp报文进行数据交互,游戏请求报文为udp报文。同时,攻击者14通过向游戏服务器发起udp flood攻击,通过占用链路带宽和游戏服务器的资源,导致游戏客户端无法正常进行游戏,以达到拒绝服务的效果。而通过执行附图9所示的攻击防御方法,有助于降低udp flood攻击对游戏服务器的影响,避免游戏服务器由于遭受udp flood攻击而拒绝游戏客户端的游戏服务。
[0193]
请参考附图9,附图9是游戏场景下攻击防御方法的流程图。附图9中的交互主体包括游戏客户端、登录服务器、防护设备以及游戏服务器。游戏场景下攻击防御方法例如包括以下步骤s51至步骤s55。
[0194]
步骤s51.游戏客户端通过tcp协议发送用户名和密码请求登录服务器。
[0195]
步骤s52.登录服务器在对游戏客户端验证成功后,登录服务器给游戏客户端下发水印关键词和计算规则。
[0196]
游戏客户端接收到水印计算规则和关键词表之后,游戏客户端在本地保存水印计算规则和关键词表,若本地已有水印计算规则和关键词表,则更新本地的水印计算规则和关键词表,以便后续使用登录服务器下发的水印计算规则和关键词表在报文中添加水印。
[0197]
步骤s53.登录服务器在对游戏客户端验证成功后,将水印计算规则和关键词表下发给防护设备。
[0198]
防护设备接收到水印计算规则和关键词表之后,防护设备更新本地的水印计算规则和关键词表,以便后续使用更新后的水印计算规则和关键词表检查游戏客户端发来的报文。
[0199]
例如,登录服务器发给游戏客户端的关键词表包含如表1所示的包含目的ip、目的端口段和水印关键词绑定关系。登录服务器发给防护设备的关键词表也包含如表1所示的包含目的ip、目的端口段和水印关键词绑定关系。这样,游戏客户端以及防护设备更新关键词表之后,游戏客户端以及防护设备上都会保存如表1所示的关键词表,达成了游戏客户端以及防护设备上关键词表的同步。
[0200]
附图9所示的步骤s52在先、步骤s53在后是示意性的。在另一些实施例中,登录服务器先执行步骤s53,后执行步骤s52;或者,登录服务器同时执行步骤s53和步骤s52。本实施例对登录服务器向游戏客户端下发水印关键词和计算规则、登录服务器向防护设备下发水印关键词和计算规则这两种动作的时序不做限定。
[0201]
步骤s52以及步骤s53中登录服务器下发水印关键词和计算规则是附图9所示方法中可选的实现方式。在另一些实施例中,水印关键词或计算规则预置在游戏客户端和防护设备中。在另一些实施例中,运维人员通过命令行界面或者web界面手动向游戏客户端和防护设备定期通知更新计算规则。
[0202]
步骤s54.游戏客户端使用udp报文请求游戏服务器提供游戏服务时,游戏客户端先根据水印关键词和计算规则计算水印,游戏客户端将水印添加到udp报文后将向游戏服务器发送添加了水印的udp报文。其中,udp报文例如为游戏请求。
[0203]
步骤s55.游戏客户端的udp报文到达防护设备时,防护设备根据水印关键词和计算规则来检查udp报文中的水印是否正确。如果udp报文中的水印错误,则防护设备会直接丢弃udp报文;如果udp报文中的水印正确,则防护设备正常放行udp报文,这样udp报文到达游戏服务器。游戏服务器接收到游戏请求后,处理游戏请求。
[0204]
其中,防护设备详细的处理流程如附图10所示,包括以下步骤s55-1至步骤s55-6。
[0205]
步骤s55-1.防护设备接收到udp报文后,防护设备先检查udp报文中的目的ip0是否匹配目的ip表。如果udp报文中的目的ip0不匹配目的ip表,则防护设备放行udp报文。
[0206]
其中,目的ip0表示udp报文中的目的ip地址。目的ip0是对附图4所示方法涉及的报文的目的ip地址的举例说明。
[0207]
在防护设备中预置有目的ip表,目的ip表中保存了作为防护对象的多个业务服务器的ip地址。这样防护设备只需要对目的方为防护对象的udp报文进行后续的检查,而无需对所有udp报文都进行检查,从而提高了防护设备的执行效率。
[0208]
步骤s55-2.防护设备检查udp报文的目的端口号port是否在端口号段《port
min
,port
max
》的范围内。如果目的端口号port不在端口号段《port
min
,port
max
》的范围内,则防护设备放行udp报文。
[0209]
其中,目的端口号port表示udp报文中的目的端口号。min的含义是最小值(minimum)。port
min
表示游戏服务器提供游戏服务所基于的端口号段中最小的端口号。max的含义是最大值。port
max
表示游戏服务器提供游戏服务所基于的端口号段中最大的端口号。
[0210]
步骤s55-3.防护设备根据报文的目的ip0以及目的端口号port,获取水印关键词key1、水印关键词key2。
[0211]
其中,key的含义是关键词(keyword)。水印关键词key1表示关键词查询表中目的ip0以及目的端口号port对应的一个水印关键词。水印关键词key2表示关键词查询表中目的ip0以及目的端口号port对应的另一个水印关键词。水印关键词key1是对附图4所示方法涉及的第二水印关键词的举例说明。水印关键词key2是对附图4所示方法涉及的第一水印关键词的举例说明。
[0212]
步骤s55-4.防护设备提取出udp报文中的水印w0。
[0213]
其中,水印w0表示udp报文携带的水印。水印w0是对附图4所示方法涉及的报文中的水印的举例说明。
[0214]
步骤s55-5.防护设备根据水印关键词key1以及计算规则计算出水印w1。防护设备判断水印w0是否与水印w1相等。如果水印w0与水印w1相等,则防护设备放行udp报文。如果水印w0与水印w1不等,防护设备执行以下步骤s55.6。
[0215]
其中,水印w1表示根据水印关键词key1算出的水印。水印w1是对附图4所示方法涉及的第二水印的举例说明。
[0216]
步骤s55-6.防护设备根据水印关键词key2以及计算规则计算出水印w2。防护设备判断水印w0是否与水印w2相等。如果水印w0与水印w2相等,则防护设备放行udp报文。如果水印w0与水印w2不等,防护设备丢弃udp报文。
[0217]
其中,水印w2表示根据水印关键词key2算出的水印。水印w2是对附图4所示方法涉及的第一水印的举例说明。
[0218]
附图11是本技术实施例提供的一种攻击防御装置600的结构示意图。可选地,具有附图11所示结构的攻击防御装置600是附图2中的防护设备200。可选地,具有附图11所示结构的攻击防御装置600是附图1中的防护设备13。攻击防御装置600包括拦截模块601和处理模块602。拦截模块601,用于执行s410;处理模块602,用于执行s420和s430。
[0219]
在一些实施例中,处理模块602,用于根据排序方式将包括第一水印关键词在内的至少一个参数输入哈希算法,将哈希算法的输出作为第一水印。
[0220]
在一些实施例中,处理模块602,还用于从报文中获得目的地址信息;根据获得的目的地址信息,从保存的关键词查询表中,查询得到第一水印关键词。
[0221]
在一些实施例中,攻击防御装置还包括:接收模块,用于接收来自于登录服务器的计算规则或关键词查询表。
[0222]
在一些实施例中,处理模块602,还用于更新计算规则或关键词查询表中的水印关键词。
[0223]
在一些实施例中,处理模块602,还用于提取报文在指定字段的内容,作为报文中的水印。
[0224]
在一些实施例中,处理模块602,还用于根据计算规则以及报文的目的地址信息对应的第二水印关键词,生成第二水印;确定报文中的水印与第二水印不同。
[0225]
在一些实施例中,攻击防御装置还包括:发送模块,用于如果报文中的水印与第一水印相同,向业务服务器转发报文。
[0226]
附图11所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。攻击防御装置中各个模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。例如,采用软件实现时,拦截模块601、处理模块602、可选方式涉及的接收模块、发送模块可以是由附图2中的处理器201读取存储器203中存储的程序代码后,生成的软件功能模块来实现。图11中上述各个模块也可以由防护设备中的不同硬件分别实现,例如拦截模块601由附图2中的网络接口204和处理器201配合实现,处理模块602由附图2中的处理器201实现,可选方式涉及的接收模块、发送模块由附图2中的网络接口204实现,或者采用现场可编程门阵列(field-programmable gate array,fpga)、或协处理器等可编程器件来完成。显然上述功能模块也可以采用软件硬件相结合的方式来实现,例如拦截模块601由硬件可编程器件实现,而处理模块602是由处理器201读取存储器203中存储的程序代码后,生成的软件功能模块。
[0227]
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0228]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
[0229]
本技术中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。例如,在不脱离各种示例的范围的情况下,第一水印可以被称为第二水印,并且类似地,第二水印可以被称为第一水印。第一水印和第二水印都可以是水印,并且在某些情况下,可以是单独且不同的水印。
[0230]
本技术中术语“至少一个”的含义是指一个或多个。
[0231]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
[0232]
该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd)、或者半导体介质(例如固态硬盘)等。前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0233]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

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

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

相关文献