CN111565203A - 业务请求的防护方法、装置、系统和计算机设备 - Google Patents

业务请求的防护方法、装置、系统和计算机设备 Download PDF

Info

Publication number
CN111565203A
CN111565203A CN202010683468.0A CN202010683468A CN111565203A CN 111565203 A CN111565203 A CN 111565203A CN 202010683468 A CN202010683468 A CN 202010683468A CN 111565203 A CN111565203 A CN 111565203A
Authority
CN
China
Prior art keywords
operating system
type
request
service request
protected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010683468.0A
Other languages
English (en)
Other versions
CN111565203B (zh
Inventor
陈国�
彭晨晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010683468.0A priority Critical patent/CN111565203B/zh
Publication of CN111565203A publication Critical patent/CN111565203A/zh
Application granted granted Critical
Publication of CN111565203B publication Critical patent/CN111565203B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及一种业务请求的防护方法、装置、系统和计算机设备。所述方法包括:获取待防护业务请求,提取待防护业务请求中携带的请求系统指纹特征;基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定请求系统指纹特征对应的请求操作系统类型;获取参考操作系统类型,基于请求操作系统类型与参考操作系统类型的匹配性获取待过滤请求操作系统类型;从待防护业务请求中,将待过滤请求操作系统类型对应的业务请求进行过滤。上述方案,不需要APP、API等返回报文,在APP、API和网站等场景下都具有很好的兼容性,能有效减少对业务请求的误杀。

Description

业务请求的防护方法、装置、系统和计算机设备
技术领域
本申请涉及网络防护技术领域,特别是涉及一种业务请求的防护方法、装置、系统、计算机设备和存储介质。
背景技术
DDoS攻击(Distributed Denial of Service attack,分布式拒绝服务攻击),是黑客通过控制分布在互联网各处的僵尸网络对目的服务器发起大量恶意请求,导致服务器无法响应正常业务请求,造成拒绝服务的攻击手法。随着互联网高速发展,DDoS攻击威胁愈加严重,成为严重威胁互联网稳定发展的重大难题。
对于目前已有的反向挑战(例如JS挑战)算法和人机校验(例如图片验证)算法等DDoS算法,只能用于网站防护,如果用在APP(Application,应用软件)或者API(Application Programming Interface,应用程序接口)服务器防护,则会对业务请求存在严重误杀。因此,传统的业务请求防护方法在APP、API等业务场景下存在误杀严重的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效减少对业务请求的误杀的业务请求的防护方法、装置、系统、计算机设备和存储介质。
一种业务请求的防护方法,所述方法包括:
获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;
基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;
获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;
从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
一种业务请求的防护装置,所述装置包括:
指纹特征提取模块,用于获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;
系统类型确定模块,用于基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;
待过滤类型确定模块,用于获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;
业务请求过滤模块,用于从所述待防护业务请求中,过滤与所述目标请求操作系统类型对应的业务请求。
一种业务请求的防护系统,所述系统包括:防护单元和控制单元;
所述控制单元,用于:向所述防护单元发送操作系统指纹库;所述操作系统指纹库中包含有操作系统类型与系统指纹特征的对应关系;
所述防护单元,用于:获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;基于所述操作系统指纹库中的所述对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
在一个实施例中,所述控制单元,还用于:
确定当前防护所针对的目标访问地址;
获取所述目标访问地址被攻击时对应的历史攻击时间段;
过滤所述历史攻击时间段对应的所述系统指纹特征和所述系统类型标识;
对经过过滤处理的所述系统指纹特征和所述系统类型标识进行匹配分析后生成所述操作系统指纹库。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;
基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;
获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;
从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;
基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;
获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;
从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
上述业务请求的防护方法、装置、系统、计算机设备和存储介质,通过操作系统指纹库直接确定待防护业务请求所对应的请求操作系统类型,进而根据所确定的请求操作系统类型从待防护业务请求中过滤符合条件的业务请求,不需要APP、API等返回报文,在APP、API和网站等场景下都具有很好的兼容性,能有效减少对业务请求的误杀,实现同时兼容APP、API、网站等场景下的DDoS防护。
附图说明
图1为一个实施例中业务请求的防护方法的应用环境图;
图2为一个实施例中业务请求的防护方法的流程示意图;
图3为另一个实施例中业务请求的防护方法的流程示意图;
图4为一个实施例中业务请求的防护装置的结构框图;
图5为一个实施例中业务请求的防护系统的结构框图;
图6为一个实施例中业务请求的防护系统的结构框图;
图7为一个实施例中业务请求的防护系统的防护流程图;
图8为一个实施例中操作系统指纹库的实现流程图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本发明实施例提供的业务请求的防护方法、装置、系统、计算机设备和存储介质能够通过云安全的相关技术实现。其中,云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1. 云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2. 安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3. 云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
本申请提供的业务请求的防护方法,可以应用于如图1所示的应用环境中。该应用环境中包含有防护服务器101和客户端102(图1中示出了一个客户端,在实际的应用场景中,客户端的数量可以不止一个)。其中,客户端102向防护服务器101发送待防护业务请求,防护服务器101从待防护业务请求中过滤异常业务请求。防护服务器101以及客户端102可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。进一步的,防护服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。在某些情况下,防护服务器也可以替换为终端设备。客户端102可以通过终端设备、APP、API、网站、浏览器等实现。更进一步的,终端设备可以但不限于是各种智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等。
客户端在运行过程中,往往需要向业务服务器发送业务请求,以触发业务服务器(该业务服务器与本发明实施例中的防护服务器可以不同)执行相应的业务流程。但是,在实际的应用场景中,会存在肉鸡(也称傀儡机,是指可以被黑客远程控制的机器)向业务服务器发起大量恶意请求,使得业务服务器拒绝响应正常业务请求的问题。因此,有必要对这些业务请求进行安全防护。
在一个实施例中,如图2所示,提供了一种业务请求的防护方法,以该方法应用于图1中的防护服务器101为例进行说明,包括以下步骤:
S201,获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征。
其中,待防护业务请求指的是当前防护流程所针对的业务请求,可以是向某一目的访问地址(可以是业务服务器所在的IP地址)发送的业务请求,而当前防护流程就是针对该目的访问地址的防护流程。例如:通过DDoS攻击检测系统发现某个dstip(DestinationIP,目的IP,即待防护业务请求所访问的业务服务器的IP地址)出现DDoS告警,则将该dstip确定为目的访问地址,将发送给该dstip的业务请求确定为待防护业务请求。待防护业务请求可以由分光交换机等从业务请求的发送路径(客户端向业务服务器发送业务请求的路径)中旁路得到。进一步的,待防护业务请求的数量可以不止一个,可以由同一客户端发送,也可以由不同客户端发送。
操作系统(Operation System)可以指客户端所配置的各种类型的操作系统。具体的,可以为Windows、iPhone、Android、Mac OS X、Linux等类型的操作系统。待防护业务请求可以在报文中携带对应的系统指纹特征,作为请求系统指纹特征。其中,系统指纹特征指的是唯一表示操作系统类型的特征,可以是业务请求中特定报文的特征字段,例如:SYN(Synchronize Sequence Numbers,同步序列编号)报文的Tcp Option(头部选项)、TTL(Time To Live,存活时间)、Window Size(接收窗口)、Window Scale(窗口扩大系数)字段。
下表1中详细说明了SYN报文中系统指纹特征对应的字段:
Figure 769737DEST_PATH_IMAGE001
表1 系统指纹特征列表和说明
S202,基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型。
对于正常客户端,它在发送业务请求(一个业务请求可以认为是一个业务流量)时往往在报文中会如实带上自己的操作系统标识;而对于肉鸡,它不是真实的业务请求方,因此需要伪造报文,它们往往会在报文中随机伪造操作系统标识。因此,发明人发现,可以构建操作系统指纹库来对业务请求所对应的客户端操作系统类型进行识别,进而根据所识别的操作系统类型判断对应的业务请求是否为正常业务请求,也即判断对应的客户端是否为真实客户端。需要说明的是,客户端与业务请求是对应的,因此,业务请求对应的操作系统类型可以认为是客户端对应的操作系统类型。
操作系统指纹库(可以简称为指纹库)指的是能够唯一表示各个操作系统类型的数据库,该操作系统指纹库中可以包含各个操作系统类型对应的特征标识。进一步的,操作系统指纹库可以是对历史业务请求(即设定历史时间段内的业务请求,历史时间段的长短可以根据实际情况确定,本发明实施例对此不做限定)中的系统指纹特征和系统类型标识进行匹配分析后生成。其中,系统类型标识能够唯一标识客户端操作系统类型。
在某些实施例中操作系统指纹库可以由防护服务器生成,也可以由其他的电子设备生成之后发送给防护服务器。
操作系统指纹库包含有系统指纹特征与操作系统类型的对应关系。因此,在S202中,防护服务器在获取到请求系统指纹特征后,通过查询该对应关系就能确定与请求系统指纹特征对应的操作系统类型,得到请求操作系统类型。
对操作系统指纹库举例如下:
##Windows
2,1,1,4:64:0:8192
2,1,1,4:64:2:16384
##iPhone
2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,4,0:64:5:65535
2,1,3,1,1,8,4,0:64:6:65535
##Android
2,4,1,1,1,1,1,1,1,1,1,1,1,3:64:8:65535
2,4,8,1,3:64:0:65535
##linux
2,1,1,4,1,3:64:6:16384
2:64:6:16384
##Mac OS X
2,1,3,1,1,8,4,0:64:7:65535
2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,4,0:64:0:65535
上述操作系统指纹库中包含有系统指纹特征与操作系统类型的对应关系,具体的,包含有Windows、iPhone、Android、Mac OS X、Linux这五种操作系统类型对应的系统指纹特征。其中,系统指纹特征通过四个参数来表示(这四个参数被“:”间隔),以Windows对应的2,1,1,4:64:0:8192为例,“2,1,1,4”表示Tcp Options,“64”表示TTL,“0”表示Window Scale,“8192”表示Window Size。
从上述操作系统指纹库的示例可以明显看出,当待防护业务请求中获取到系统指纹特征F1时,可以将系统指纹特征F1与操作系统指纹库中各个操作系统类型对应的系统指纹特征进行逐一比对,当在操作系统指纹库中存在与系统指纹特征F1一致的系统指纹特征F2时,则判定系统指纹特征F2对应的操作系统类型为请求操作系统类型。
S203,获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型。
其中,参考操作系统类型为预先获取的用于对请求操作系统类型进行评价的操作系统类型,能够确定对应的请求操作系统类型正常与否。
请求操作系统类型与参考操作系统类型的匹配性可以指两者的一致性或者对应关系。若请求操作系统类型和参考操作系统类型均为一个,则匹配性可以指两者是否一致;若请求操作系统类型为一个而参考操作系统类型为多个(包括两个的情况),则匹配性可以指请求操作系统类型是否在参考操作系统类型范围内;若请求操作系统类型和参考操作系统类型均为多个(包括两个的情况),则匹配性可以指对于某一请求操作系统类型,是否存在与之对应一致的参考操作系统类型。
待过滤请求操作系统类型可以指从请求操作系统类型中确定的符合条件的操作系统类型。进一步的,可以确定请求操作系统类型与参考操作系统类型的匹配性,若某一请求操作系统类型没有与之匹配的参考操作系统类型,则将其确定为待过滤请求操作系统类型。
在某些实施例中,参考操作系统类型可以为正常操作系统类型,如果请求操作系统类型与之不匹配,则可以判定该请求操作系统类型为待过滤请求操作系统类型,进而从待防护业务请求中过滤与之对应的业务请求(此时,该业务请求可以称为待过滤业务请求、攻击业务请求或者异常业务请求)。
在另一些实施例中,参考操作系统类型也可以是待防护业务请求自身携带的操作系统类型。待防护业务请求中携带有系统指纹特征和参考操作系统类型,对于正常客户端发送的待防护业务请求,根据系统指纹特征确定的请求操作系统类型与所携带的参考操作系统类型应该是一致的。因此,当请求操作系统类型与参考操作系统类型不一致时,将其确定为待过滤请求操作系统类型,进而从待防护业务请求中过滤与之对应的业务请求。
S204,从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
在一个实施例中,一个待防护业务请求对应一个请求系统指纹特征,而一个请求系统指纹特征对应一个请求操作系统类型。因此,在确定待过滤请求操作系统类型之后,可以从待防护业务请求中确定出与该待过滤请求操作系统类型唯一对应的业务请求,该业务请求可以认为是异常业务请求(对应的流量可以称为攻击流量),进而将其从待防护业务请求中去除,以实现过滤异常业务请求的目的。
对待防护业务请求进行过滤处理后,就可以得到正常业务请求,此时防护服务器可以将正常业务请求回注到其发送路径中,以触发业务服务器执行对应的业务流程。
上述实施例提供的业务请求的防护方法,通过操作系统指纹库直接确定待防护业务请求所对应的请求操作系统类型,进而根据所确定的请求操作系统类型从待防护业务请求中过滤符合条件的业务请求,不需要APP、API等进行报文的返回,不会因为业务场景不兼容导致误杀,能有效减少对业务请求的误杀,因此,在APP、API和网站等场景下都具有很好的兼容性,扩展了业务请求防护的应用场景,能实现同时兼容APP、API、网站等场景下的应用层DDoS防护。
在一个实施例中,所述获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型,包括:提取所述待防护业务请求中携带的系统类型标识;获取所述系统类型标识对应的操作系统类型,作为所述参考操作系统类型;将与所述参考操作系统类型不匹配的请求操作系统类型确定为所述待过滤请求操作系统类型。
待防护业务请求可以在报文的字段中携带系统类型标识。该报文可以指HTTP(超文本传输协议)报文等,其中能够对操作系统进行标识的字段就可以确定为系统类型标识。具体的,该字段可以指用户代理字段(User_agent,可以简称为UA)等。User_agent是一种客户端向服务器提供自身所使用的CPU类型、操作系统类型及版本、浏览器类型及版本、浏览器内核、浏览器渲染引擎、浏览器语言、浏览器插件等信息的字段。另外,真实客户端会在User_agent中真实宣告操作系统信息,也就是说如果是一个Windows客户端,那么它发出的请求User_agent就会如实填写Windows的类型标识,而攻击客户端则会随机伪造操作系统信息。因此,可以根据待防护业务请求的系统类型标识来确定出对应的业务请求是否为异常业务请求。
攻击者喜欢控制僵尸网络的肉鸡伪造不同的User_agent来发起HTTP请求,进行攻击,这样就可以避免攻击请求出现User_agent集聚被防护单元拦截。但每个肉鸡都有自己本身的操作系统类型,并可以通过肉鸡发出的SYN报文识别,而且如果黑客想修改肉鸡SYN报文的特征字段成本非常高(需要自己构造SYN报文头部,而且需要自己重写TCP三次握手行为),因此攻击者往往不注意SYN报文的特征字段(系统指纹特征)和User_agent的一致性,例如利用一个linux的操作系统发起请求,但User_agent里却是一个Windows客户端的信息。所以防护服务器在防护的时候可以提取SYN报文中的特征字段,并通过对比OS指纹库,识别请求操作系统类型,然后再跟User_agent中的操作系统类型做对比,如果不一致说明该客户端很有可能在伪造User_agent攻击,为假客户端,将其发出的待防护业务请求过滤掉。
上述实施例,根据待防护业务请求携带的系统类型标识确定参考操作系统类型标识,将与参考操作系统类型不匹配的请求操作系统类型所对应的待过滤业务请求从待防护业务请求中过滤。基于业务请求自身携带的信息来进行过滤,减少其中的处理过程,能有效保证防护过滤的准确性。
进一步的,在一个实施例中,所述提取所述待防护业务请求中携带的系统类型标识,包括:获取所述待防护业务请求中的超文本传输协议报文;从所述超文本传输协议报文的头部确定用户代理字段;基于所述用户代理字段提取得到所述系统类型标识。
具体的,本实施例中,防护服务器从待防护业务请求中获取HTTP报文,获取HTTP报文头的UA字段,将UA字段值作为系统类型标识。
操作系统类型和UA字段的对应关系如下表2:
Figure 857778DEST_PATH_IMAGE002
表2User_agent和操作系统类型的对应关系
从上表2可以看出,不同操作系统类型对应的UA字段值是不一样的,因此可以将UA字段值作为唯一标识操作系统类型的系统类型标识,进而根据该系统类型标识确定参考操作系统类型。
上述实施例在确定请求操作系统类型后,根据待防护业务请求自身携带的报文字段确定参考操作系统类型,进而将请求操作系统类型和参考操作系统类型不匹配的请求操作系统类型确定为待过滤请求操作系统类型,以便从待防护业务请求中过滤与待过滤请求操作系统类型对应的业务请求。
在一个实施例中,所述获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型,包括:获取正常操作系统基线;将所述正常操作系统基线范围内的操作系统类型确定为所述参考操作系统类型;将与所述参考操作系统类型不匹配的请求操作系统类型确定为所述待过滤请求操作系统类型。
其中,正常操作系统基线(也可以称为OS基线或者客户端OS基线)指的是由正常操作系统类型所构成的范围。进一步的,OS基线指的是某个目的访问地址在没有攻击的情况下,正常客户端自身的操作系统类型。OS基线的本质含义是目的访问地址业务正常的客户端操作系统列表。例如,某个目的访问地址:1.1.1.1,平常的业务请求都是来自Windows和Linux客户端,那么就会生成OS基线:
Dstip:1.1.1.1OS:Windows
Dstip:1.1.1.1OS:Linux
进一步的,如果某个待防护业务请求对应的请求操作系统类型为Android,在OS基线中没有Android这一操作系统类型,因此可以认为该待防护业务请求为异常业务请求。
进一步的,正常操作系统基线范围内的操作系统类型为正常操作系统类型,将这些正常操作系统类型确定为参考操作系统类型。更进一步的,正常操作系统基线可以对历史业务请求进行学习分析后得到,例如,学习历史业务请求中正常业务请求对应的操作系统类型,将这些操作系统类型整合为一个整体,作为参考操作系统类型。如果待防护业务请求对应的请求操作系统类型不在参考操作系统类型范围内,则说明该请求操作系统类型对应的业务请求很可能不是正常业务请求,因此,将该业务请求过滤掉。
上述实施例,根据正常操作系统基线确定参考操作系统类型标识,将与参考操作系统类型不匹配的请求操作系统类型所对应的待过滤业务请求从待防护业务请求中过滤。基于正常操作系统基线来进行过滤,能有效减少操作系统类型的比对过程,在保证防护过滤的准确性的情况下提高防护过滤的效率。
进一步的,在一个实施例中,所述获取正常操作系统基线,包括:接收控制单元根据正常操作系统类型构建的正常操作系统基线;所述正常操作系统为在正常时间段内访问目标访问地址的操作系统,所述正常时间段为所述目标访问地址未被攻击的时间段。
控制单元指的是能够生成正常操作系统基线的功能单元,可以通过独立于防护服务器的计算机设备实现,也可以是防护服务器中的一个部件。进一步的,控制单元确定目的访问地址各个时间段被攻击的情况,从中确定出未被攻击的正常时间段,进而确定在正常时间段内访问目的访问地址的操作系统,这些操作系统即为正常操作系统,进而将这些正常操作系统对应的类型进行整合,得到正常操作系统基线。在生成正常操作系统基线后,控制单元将其发送给防护服务器,防护服务器据此判断请求操作系统类型对应的待防护业务请求是否正常。
上述实施例根据预先构建的正常操作系统基线来过滤异常业务请求,其确定过程简单,能有效提高业务请求的防护效率。
在一个实施例中,还包括:接收控制单元发送的所述操作系统指纹库;所述操作系统指纹库,由所述控制单元对历史业务请求中的系统指纹特征和系统类型标识进行匹配分析后生成。
其中,历史业务请求中携带有系统指纹特征和系统类型标识,控制单元对这两个信息进行匹配分析后,可以得到各个操作系统类型所对应的系统指纹特征,进而生成操作系统指纹库。进一步的,控制单元可以通过机器学习等方法对系统指纹特征和系统类型标识进行学习分析,以得到操作系统类型与系统指纹特征之间的对应关系。
控制单元可以实时(或者定期)获取历史业务请求,并生成对应的操作系统指纹库,将新生成的操作系统指纹库定期发送给防护服务器。
上述实施例中,控制单元对历史业务请求进行匹配分析后生成准确、稳定的操作系统指纹库,所得到的操作系统指纹库能对各种操作系统类型进行标识,在获取到请求系统指纹特征的情况下能从操作系统指纹库中确定出与之唯一对应的请求操作系统类型,确定过程简单且准确性高,能有效减少对业务请求的误杀。
在一个实施例中,控制单元可以通过旁路的方式从客户端向业务服务器发送的业务请求中获取历史业务流量,进而学习海量的流量数据,并生成准确度高、覆盖率大的操作系统指纹库。这是一种基于被动式的指纹识别,通过分析流量,被动识别客户端对应的操作系统类型指纹(即前述请求操作系统类型),不会对正常客户端访问有任何影响,所以对于正常客户端而言,是完全没有感知的。
在一个实施例中,所述获取待防护业务请求,包括:确定当前防护所针对的目标访问地址;向目标交换机发送与所述目标访问地址对应的主机路由,以使所述目标交换机根据所述主机路由返回与所述目标访问地址对应的业务流量,将所述业务流量对应的业务请求确定为所述待防护业务请求。
其中,目标交换机可以指在客户端和业务服务器之间进行信号转发的交换机,可以通过核心交换机等实现。
进一步的,防护服务器可以与目标交换机建立BGP(BorderGatewayProtocol,边界网关协议)邻居。当需要对某个目标访问地址进行保护时,防护服务器向目标交换机发送该目标访问地址对应的32位主机路由,使目标交换机根据这个32位主机路由将目标访问地址的流量转发到防护服务器中。防护服务器获取流量中的业务请求并作为待防护业务请求。
在进行防护时,目标交换机可以暂停向业务服务器发送该待防护业务请求,当接收到防护服务器返回的过滤后的业务请求时,再将过滤后的业务请求发送给业务服务器。
上述实施例从目标交换机中通过旁路的方式获取待防护业务请求,能对待防护业务进行分析,进而确定出其中是否存在异常业务请求,当存在时,将异常业务请求进行过滤,实现对业务请求的准确防护,同时不影响客户端业务请求的正常发送。
在一个实施例中,所述从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤,之后还包括:获取过滤之后剩余的待防护业务请求;将所述剩余的待防护业务请求对应的剩余业务流量回注到所述目标交换机中,以使所述目标交换机将所述剩余业务流量转发到对应的业务服务器中。
在上述实施例中,防护服务器将攻击流量丢弃后,会将合法正常流量回注到目标交换机,目标交换机再将正常流量转发到业务服务器,完成整个防护过程,使得业务服务器能够接收到经过防护处理的正常业务请求,有效提高服务器的处理效率,解决传统应用层DDoS防护误杀和透传的难题。
在一个实施例中,所述提取所述待防护业务请求中携带的请求系统指纹特征,包括:获取所述待防护业务请求中的连接建立报文(SYN报文);从所述连接建立报文中获取头部选项、存活时间、接收窗口大小、最大报文段长度以及窗口扩大系数中的至少一项,作为所述请求系统指纹特征。
上述业务请求的防护方法中,根据SYN报文中的特征字段确定系统指纹特征,系统指纹特征能唯一表示待防护业务请求对应的请求操作系统类型,据此可以针对性地判定出待防护业务请求是否为正常业务请求。
在一个实施例中,如图3所示,提供一种业务请求的防护方法,以该方法应用于图1中的防护服务器101为例进行说明,包括以下步骤:
S301、接收控制单元发送的操作系统指纹库;所述操作系统指纹库中包含有系统指纹特征与操作系统类型的对应关系。
S302、确定当前防护所针对的目标访问地址。
S303、向目标交换机发送与所述目标访问地址对应的主机路由,以使所述目标交换机根据所述主机路由返回与所述目标访问地址对应的业务流量,将所述业务流量对应的业务请求确定为待防护业务请求。
S304、提取所述待防护业务请求中携带的请求系统指纹特征;基于所述操作系统指纹库中的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型。
S305、获取所述待防护业务请求中的超文本传输协议报文;从所述超文本传输协议报文的头部确定用户代理字段;基于所述用户代理字段提取得到系统类型标识。
S306、获取所述系统类型标识对应的操作系统类型,作为参考操作系统类型;将与所述参考操作系统类型不匹配的请求操作系统类型确定为待过滤请求操作系统类型。
S307、接收控制单元根据正常操作系统类型构建的正常操作系统基线。
S308、将所述正常操作系统基线范围内的操作系统类型确定为参考操作系统类型;将与所述参考操作系统类型不匹配的请求操作系统类型确定为待过滤请求操作系统类型。
S309、从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
S310、获取过滤之后剩余的待防护业务请求;将所述剩余的待防护业务请求对应的剩余业务流量回注到所述目标交换机中,以使所述目标交换机将所述剩余业务流量转发到对应的业务服务器中。
DDoS攻击手法非常多,而从ISO七层模型上区分可以分为网络层DDoS攻击和应用层DDoS攻击,网络层DDoS攻击一般以SYNFLOOD、UDPFLOOD、ACKFLOOD等通过发送大量网络层报文阻塞服务器带宽或者耗尽服务器资源为主,而应用层DDoS(HTTPFLOOD,又称为CC攻击)则是肉鸡建立TCP连接后发送大量应用层请求(例如HTTP GET请求)使得服务器应用程序忙于处理大量攻击请求而耗尽服务器资源,造成拒绝服务。相比网络层DDoS,应用层DDoS防护难度更高,危害性更大。另外,应用层DDoS攻击防护是业界难题,这主要是由于应用层DDoS防护跟业务深度耦合,而且目前已有的应用层DDoS算法对API、APP等业务场景无法兼容。
当前业界防护应用层DDoS的方案主要有两大类:
(1)反向挑战(例如JS挑战)算法和人机校验(例如图片验证)算法:其主要原理是,部署在服务器前面的防护系统会代替服务器返回应用层的response报文,报文中会携带特定的JS代码或者图片验证码代码,需要客户端收到该response报文执行其中代码后,将代码执行结果放在第二个请求报文中,当防护系统收到该客户端的第二个请求报文,并且检查携带的执行结果,确认正确后,才将客户端加入信任列表,只有在信任列表中客户端的请求才会被放行,最终实现攻击防护;实际上,反向挑战算法和人机校验虽然可以有效拦截大部分应用层DDoS攻击请求,但是它们这些算法都要求正常客户端是浏览器(浏览器才能兼容反向挑战、人机校验等算法),如果防护的业务场景是API、APP等时根本无法兼容这些算法,也就无法返回有效的执行结果,最终造成严重误杀,正常业务请求也会被误拦。
(2)请求限速+特征拦截:主要思路就是,在了解每个正常客户端的请求频率后,制定每个源IP的请求频次限制。对所有来源IP做应用层的请求限速,即单位时间内,只允许每个来源IP请求固定次数。而特征拦截是指当攻击请求出现跟正常业务不一致的特征时,将该特征拦截,例如攻击请求经常携带某个特定的referer(引用来源),而正常业务不会携带,那么就可以拦截携带该referer的请求。但是这种策略其实防护效果很不稳定,当肉鸡数量庞大时,即使对每个肉鸡做限速,所有肉鸡透传的请求量加起来仍然非常大,防护效果难以保证,而且很多如NAT等出口IP请求频率本来就很高,如果限速会明显误杀正常业务。特征拦截太过依赖攻击请求携带异常特征,而实际上特征的伪造对攻击者来说几乎没有成本,所以现网的应用层DDoS特征经常随机变化,通过特征拦截很难达到很好的效果。
另外,传统的防护算法针对识别的维度一般是srcip(source IP,即源IP地址),也就是说通过反向挑战算法、人机校验后,会判定某个srcip是非法,从而将整个srcip封禁。这样就会存在一个风险,如果该srcip是NAT、网关的IP,那么其实这个IP有很多正常用户在使用,封禁整个srcip就会影响其他正常用户。
上述实施例提供的业务请求的防护方法,通过操作系统指纹库确定待防护业务请求所对应的请求操作系统类型,进而根据所确定的请求操作系统类型确定出待过滤请求操作系统类型,从待防护业务请求中确定与待过滤请求操作系统类型对应的业务请求,进而将其从待防护业务请求中过滤掉,实现对异常业务请求的过滤。相对于传统技术至少具有以下有益效果:(1)基于流量的被动指纹识别,不需要用户填写验证码等,不会影响客户端体验;(2)可以兼容API/APP/网站等应用层场景,误杀概率很小,增强了防护系统的防护能力,保障业务稳定。(3)在判定非法客户端时,可以基于srcip+ttl+操作系统指纹的方式进行封禁。所以如果出现NAT、网关等场景,同一个srcip既有攻击者又有正常用户的情况也能兼容,因为攻击者使用的操作系统指纹跟正常用户的往往并不一样,即使正常客户端和非法客户端使用同一个IP也不会造成误杀。因此能实现对正常请求和攻击请求的识别准确,所以不会对正常请求造成影响,所以对NAT、网关等场景也有很好的兼容性。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于与上述实施例中的业务请求的防护方法相同的思想,本发明还提供业务请求的防护装置,该装置可用于执行上述业务请求的防护方法。为了便于说明,业务请求的防护装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在一个实施例中,如图4所示,提供了一种业务请求的防护装置400,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:指纹特征提取模块401、系统类型确定模块402、待过滤类型确定模块403和业务请求过滤模块404,其中:
指纹特征提取模块401,用于获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征。
系统类型确定模块402,用于基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型。
待过滤类型确定模块403,用于获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型。
业务请求过滤模块404,用于从所述待防护业务请求中,过滤与所述目标请求操作系统类型对应的业务请求。
上述业务请求的防护装置中,通过操作系统指纹库确定待防护业务请求所对应的请求操作系统类型,进而根据所确定的请求操作系统类型从待防护业务请求中过滤符合条件的业务请求,不需要APP、API等返回报文,在APP、API和网站等场景下都具有很好的兼容性,能有效减少对业务请求的误杀,实现同时兼容APP、API、网站等场景下的应用层DDoS防护。
在一个实施例中,待过滤类型确定模块,包括:类型标识提取子模块,用于提取所述待防护业务请求中携带的系统类型标识;第一参考类型确定子模块,用于获取所述系统类型标识对应的操作系统类型,作为所述参考操作系统类型;第一待过滤类型确定子模块,用于将与所述参考操作系统类型不匹配的请求操作系统类型确定为所述待过滤请求操作系统类型。
在一个实施例中,类型标识提取子模块,包括:报文获取单元,用于获取所述待防护业务请求中的超文本传输协议报文;字段确定单元,用于从所述超文本传输协议报文的头部确定用户代理字段;类型标识提取单元,用于基于所述用户代理字段提取得到所述系统类型标识。
在一个实施例中,待过滤类型确定模块,包括:系统基线获取子模块,用于获取正常操作系统基线;第二参考类型确定子模块,用于将所述正常操作系统基线范围内的操作系统类型确定为所述参考操作系统类型;第二待过滤类型确定子模块,用于将与所述参考操作系统类型不匹配的请求操作系统类型确定为所述待过滤请求操作系统类型。
在一个实施例中,系统基线获取子模块,还用于接收控制单元根据正常操作系统类型构建的正常操作系统基线;所述正常操作系统为在正常时间段内访问目标访问地址的操作系统,所述正常时间段为所述目标访问地址未被攻击的时间段。
在一个实施例中,还包括:指纹库获取模块,用于接收控制单元发送的所述操作系统指纹库;所述操作系统指纹库,由所述控制单元对历史业务请求中的系统指纹特征和系统类型标识进行匹配分析后生成。
在一个实施例中,指纹特征提取模块,包括:访问地址确定子模块,用于确定当前防护所针对的目标访问地址;业务请求确定子模块,用于向目标交换机发送与所述目标访问地址对应的主机路由,以使所述目标交换机根据所述主机路由返回与所述目标访问地址对应的业务流量,将所述业务流量对应的业务请求确定为所述待防护业务请求。
在一个实施例中,所述装置还包括:剩余请求获取模块,用于获取过滤之后剩余的待防护业务请求;流量回注模块,用于将所述剩余的待防护业务请求对应的剩余业务流量回注到所述目标交换机中,以使所述目标交换机将所述剩余业务流量转发到对应的业务服务器中。
在一个实施例中,指纹特征提取模块,包括:报文获取子模块,用于获取所述待防护业务请求中的连接建立报文;指纹特征获取子模块,用于从所述连接建立报文中获取头部选项、存活时间、接收窗口大小、最大报文段长度以及窗口扩大系数中的至少一项,作为所述请求系统指纹特征。
关于业务请求的防护装置的具体限定可以参见上文中对于业务请求的防护方法的限定,在此不再赘述。上述业务请求的防护装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种业务请求的防护系统,如图5所示,所述系统500包括:防护单元501和控制单元502;防护单元(也可以称为防护系统)和控制单元(也可以称为控制系统)可以通过独立的计算机设备实现,可以是集成为某个计算机设备上的两个功能模块。其中,防护单元执行的步骤以及实现的效果都可以与前述实施例中的防护服务器对应。
所述控制单元,用于:向所述防护单元发送操作系统指纹库;所述操作系统指纹库中包含有操作系统类型与系统指纹特征的对应关系。
所述防护单元,用于:获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;基于所述操作系统指纹库中的所述对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
上述业务请求的防护系统中,通过操作系统指纹库确定待防护业务请求所对应的请求操作系统类型,进而根据所确定的请求操作系统类型从待防护业务请求中过滤符合条件的业务请求,不需要APP、API等返回报文,在APP、API和网站等场景下都具有很好的兼容性,能有效减少对业务请求的误杀,实现同时兼容APP、API、网站等场景下的应用层DDoS防护。
在一个实施例中,如图6所示,系统600除了包括防护单元601和控制单元602,还包括业务请求分析单元603;所述业务请求分析单元,用于:接收分光交换机拷贝的从运营商网络到目标交换机的历史业务流量,获取所述历史业务流量对应的历史业务请求;提取所述历史业务请求中的系统指纹特征和系统类型标识;将所提取的所述系统指纹特征和所述系统类型标识发送给所述控制单元;所述控制单元,还用于:对所述系统指纹特征和所述系统类型标识进行匹配分析后生成所述操作系统指纹库。
其中,客户端在向业务服务器发送业务请求时,可以通过运营商网络(ISP,可以为电信、移动、联通等)来实现,也可以通过WIFI等实现。
进一步的,在客户端通过运营商网络和目标交换机向业务服务器发送业务请求时,分光交换机对业务流量进行镜像分光,也就是将业务流量拷贝一份发到业务请求分析单元(也可以称为流量分析系统)。业务请求分析单元对分光交换机发送过来的分光流量进行采集和分析,提取分光流量中的系统指纹特征和系统类型标识,具体的,采集HTTP头的UA字段,作为系统类型标识,采集SYN报文的TcpOption、TTL、Window Size、Window Scale字段,作为系统指纹特征。业务请求分析单元将所采集的系统指纹特征和系统类型标识组合成特征向量存放到控制单元中。
上述实施例中,业务请求分析单元通过分光交换机旁路历史业务请求,并从中提取系统指纹特征和系统类型标识,将系统指纹特征和系统类型标识发送给控制单元,以便控制单元据此生成操作系统指纹库,操作系统指纹库的学习过程不会影响到正常客户端的访问。
在一个实施例中,业务请求分析单元还可以对每个dstip的正常操作系统类型进行学习,并将学习结果存储在控制单元中,以便控制单元生成对应的OS基线。
在一个实施例中,所述业务请求分析单元,还用于:获取所述历史业务请求中的报文,作为历史报文;将源访问地址(源IP)、目的访问地址(目的IP)、源端口、目的端口以及协议相同的所述历史报文确定为同一个会话(即TCP会话);提取所述历史业务请求中各个会话对应的系统指纹特征和系统类型标识;将所提取的所述系统指纹特征和所述系统类型标识发送给所述控制单元;所述控制单元,还用于:获取任意一个会话对应的目标系统指纹特征和目标系统类型标识;根据所述目标系统类型标识对应的目标操作系统类型,对所述任意一个会话中的所述目标系统指纹特征进行标记;对标记后的所述目标系统指纹特征进行统计;根据统计结果确定所述目标操作系统类型与所述目标系统指纹特征的目标对应关系;根据所述目标对应关系生成所述操作系统指纹库。
TCP是一个可靠的连接定向的发送服务以及数据分段传送。连接定向意味着在主机交换数据之前必须建立会话。TCP使用字节流(byte-stream)通信。TCP会话可以通过五元组:源IP、目的IP、源端口、目的端口、协议来标记。因此,业务请求分析单元将源IP、目的IP、源端口、目的端口、协议这五元组相同的报文判定为同一个TCP会话。而且以SYN报文作为会话的开始、以RST/FINACK报文作为结束。
进一步的,以TCP会话为统计维度,从提取历史业务请求中提取各个TCP会话的系统指纹特征和系统类型标识。
上述实施例通过业务请求分析单元进行会话汇聚,进而根据操作系统类型对各个会话打上标签,因此,会话中各个系统指纹特征就包含了操作系统类型的标识信息。基于此,控制单元就能据此生成各种操作系统类型对应的系统指纹特征,进而得到操作系统指纹库。
在一个实施例中,所述待防护业务请求根据从所述目标交换机中获取的业务流量确定;所述控制单元,还用于:获取过滤之后剩余的待防护业务请求;将所述剩余的待防护业务请求对应的剩余业务流量回注到所述目标交换机中,以使所述目标交换机将所述剩余业务流量转发到对应的防护服务器中。
在上述实施例中,防护服务器将攻击流量丢弃后,会将合法正常流量回注到目标交换机,目标交换机再将正常流量转发到业务服务器,完成整个防护过程,使得业务服务器能够接收到经过防护处理的正常业务请求,有效提高服务器的处理效率,解决传统应用层DDoS防护误杀和透传的难题。
在一个实施例中,提供了一种业务请求的防护系统,如图7所示,包括流量分析单元(即前述业务请求分析单元)、控制单元以及防护单元。核心交换机和防护单元之间的实线箭头表示正常业务请求,虚线箭头表示异常业务请求。在实现业务请求的防护时,这些组成部分之间的配合关系如下:
(1)分光交换机将ISP网络到核心交换机的入流量进行镜像分光,也就是将流量拷贝一份发到流量分析单元。
(2)流量分析单元对流量进行解析并采集流量特征数据,并以TCP会话为统计维度将流量特征数据汇聚,详细说明如下:
a. 以TCP会话作为统计维度:源IP、目的IP、源端口、目的端口、协议这五元组的相同的报文会被判定为同一个会话。而且是以SYN报文作为会话的开始、RST/FINACK报文作为结束。
b. 对各个会话的SYN报文和HTTP报文做特征提取。SYN报文主要为了采集特征字段作为系统指纹特征,HTTP主要为了采集User_agent字段作为系统类型标识,得到指纹数据的学习结果。
c. 确定各个目的IP对应的操作系统类型,完成OS基线的学习,得到OS基线的学习结果。
d. 将指纹数据的学习结果和OS基线的学习结果发送给控制单元。
(3)控制单元将流量分析单元采集的流量特征数据进行记录和分析并生成操作系统指纹库(实现过程如图8所示):
a. 数据采集和预处理。
a1、获取SYN报文和HTTP报文的特征字段,将相同五元组的报文汇聚为同一个会话。(数据采集)
a2、过滤有攻击时间段的数据。如果某个dstip在某个时间段有其他攻击告警,说明这个dstip在该时间段内的数据会存在攻击流量,所以需要去除,以获得纯净的正常业务请求。(预处理)
b.数据处理和指纹库生成。
b1、基于HTTP的User_agent中的操作系统类型对同一个会话中的SYN特征字段打上操作系统标签,为后面指纹学习提供基础。(数据处理)
b2、积累到大量不同操作系统的客户端发出的SYN报文,然后针对SYN报文中的特征字段进行统计,生成Windows、Android、Mac OS X、Linux等操作系统类型的指纹库(OS指纹库)。生成稳定的OS指纹库之后,基于一个SYN报文就可以判断客户端的操作系统类型。(指纹库生成)
(4)控制单元基于OS基线的学习结果生成客户端OS基线。
(5)控制单元每天将学习到的OS指纹库和客户端OS基线下发到防护单元上。防护单元可以根据这些数据进行防护,具体的逻辑如下:
a.假客户端识别:防护单元在防护的时候可以提取SYN报文中的特征字段,并通过对比OS指纹库,识别客户端OS类型,然后再跟User_agent中的操作系统类型做对比,如果不一致说明该客户端很有可能在伪造User_agent攻击,为假客户端,将该客户端发出的待防护业务请求过滤掉。
b.操作系统过滤:由于控制单元会下发dstip对应的客户端OS基线,所以当防护的时候,防护单元可以基于SYN报文识别客户端的OS类型,如果不在OS基线里面,说明对应的待防护业务请求并非正常业务请求,将其拦截。
(6)防护单元具体的防护逻辑是:防护单元跟核心交换机建立BGP邻居,当需要对某个dstip进行保护时,向核心交换机发送32位主机路由,使核心交换机将对应dstip的流量转发到防护单元。防护单元根据防护逻辑,将攻击流量丢弃后,将合法正常流量回注到核心交换机。核心交换机再将正常流量转发到业务服务器,完成整个防护过程。
本发明实施例的业务请求的防护系统,相比传统的JS挑战、图片验证码等防护算法兼容性更强、防护体验更好,而且在网站场景下的应用层DDoS防护还可以跟JS挑战算法形成互补,进一步提高应用层的DDoS防护能力,解决传统应用层DDoS防护误杀和透传的难题。
业务请求的防护方法、装置和系统的实施例中的各个技术特征可以进行组合,例如业务请求的防护方法的具体限定可以参见上文中对于业务请求的防护系统的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储操作系统指纹库。该计算机设备的网络接口用于与外部的终端通过网络连接通信,例如:与核心交换机通信,用于从核心交换机中获取待防护业务请求。该计算机程序被处理器执行时以实现一种业务请求的防护方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种业务请求的防护方法,其特征在于,所述方法包括:
获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;
基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;
获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;
从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
2.根据权利要求1所述的方法,其特征在于,所述获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型,包括:
提取所述待防护业务请求中携带的系统类型标识;
获取所述系统类型标识对应的操作系统类型,作为所述参考操作系统类型;
将与所述参考操作系统类型不匹配的请求操作系统类型确定为所述待过滤请求操作系统类型。
3.根据权利要求2所述的方法,其特征在于,所述提取所述待防护业务请求中携带的系统类型标识,包括:
获取所述待防护业务请求中的超文本传输协议报文;
从所述超文本传输协议报文的头部确定用户代理字段;
基于所述用户代理字段提取得到所述系统类型标识。
4.根据权利要求1所述的方法,其特征在于,所述获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型,包括:
获取正常操作系统基线;
将所述正常操作系统基线范围内的操作系统类型确定为所述参考操作系统类型;
将与所述参考操作系统类型不匹配的请求操作系统类型确定为所述待过滤请求操作系统类型。
5.根据权利要求4所述的方法,其特征在于,所述获取正常操作系统基线,包括:
接收控制单元根据正常操作系统类型构建的正常操作系统基线;所述正常操作系统为在正常时间段内访问目标访问地址的操作系统,所述正常时间段为所述目标访问地址未被攻击的时间段。
6.根据权利要求1所述的方法,其特征在于,还包括:
接收控制单元发送的所述操作系统指纹库;所述操作系统指纹库,由所述控制单元对历史业务请求中的系统指纹特征和系统类型标识进行匹配分析后生成。
7.根据权利要求1所述的方法,其特征在于,所述获取待防护业务请求,包括:
确定当前防护所针对的目标访问地址;
向目标交换机发送与所述目标访问地址对应的主机路由,以使所述目标交换机根据所述主机路由返回与所述目标访问地址对应的业务流量,将所述业务流量对应的业务请求确定为所述待防护业务请求。
8.根据权利要求7所述的方法,其特征在于,所述从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤,之后还包括:
获取过滤之后剩余的待防护业务请求;
将所述剩余的待防护业务请求对应的剩余业务流量回注到所述目标交换机中,以使所述目标交换机将所述剩余业务流量转发到对应的业务服务器中。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述提取所述待防护业务请求中携带的请求系统指纹特征,包括:
获取所述待防护业务请求中的连接建立报文;
从所述连接建立报文中获取头部选项、存活时间、接收窗口大小、最大报文段长度以及窗口扩大系数中的至少一项,作为所述请求系统指纹特征。
10.一种业务请求的防护装置,其特征在于,所述装置包括:
指纹特征提取模块,用于获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;
系统类型确定模块,用于基于操作系统指纹库中系统指纹特征与操作系统类型的对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;
待过滤类型确定模块,用于获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;
业务请求过滤模块,用于从所述待防护业务请求中,过滤与所述目标请求操作系统类型对应的业务请求。
11.一种业务请求的防护系统,其特征在于,所述系统包括:防护单元和控制单元;
所述控制单元,用于:向所述防护单元发送操作系统指纹库;所述操作系统指纹库中包含有操作系统类型与系统指纹特征的对应关系;
所述防护单元,用于:获取待防护业务请求,提取所述待防护业务请求中携带的请求系统指纹特征;基于所述操作系统指纹库中的所述对应关系,确定所述请求系统指纹特征对应的请求操作系统类型;获取参考操作系统类型,基于所述请求操作系统类型与所述参考操作系统类型的匹配性获取待过滤请求操作系统类型;从所述待防护业务请求中,将所述待过滤请求操作系统类型对应的业务请求进行过滤。
12.根据权利要求11所述的系统,其特征在于,所述系统还包括业务请求分析单元;
所述业务请求分析单元,用于:接收分光交换机拷贝的从运营商网络到目标交换机的历史业务流量,获取所述历史业务流量对应的历史业务请求;提取所述历史业务请求中的系统指纹特征和系统类型标识;将所提取的所述系统指纹特征和所述系统类型标识发送给所述控制单元;
所述控制单元,还用于:对所述系统指纹特征和所述系统类型标识进行匹配分析后生成所述操作系统指纹库。
13.根据权利要求12所述的系统,其特征在于,所述业务请求分析单元,还用于:
获取所述历史业务请求中的报文,作为历史报文;
将源访问地址、目的访问地址、源端口、目的端口以及协议相同的所述历史报文确定为同一个会话;
提取所述历史业务请求中各个会话对应的系统指纹特征和系统类型标识;
将所提取的所述系统指纹特征和所述系统类型标识发送给所述控制单元;
所述控制单元,还用于:
获取任意一个会话对应的目标系统指纹特征和目标系统类型标识;
根据所述目标系统类型标识对应的目标操作系统类型,对所述任意一个会话中的所述目标系统指纹特征进行标记;
对标记后的所述目标系统指纹特征进行统计;
根据统计结果确定所述目标操作系统类型与所述目标系统指纹特征的目标对应关系;
根据所述目标对应关系生成所述操作系统指纹库。
14.根据权利要求12所述的系统,其特征在于,所述待防护业务请求根据从所述目标交换机中获取的业务流量确定;
所述控制单元,还用于:
获取过滤之后剩余的待防护业务请求;
将所述剩余的待防护业务请求对应的剩余业务流量回注到所述目标交换机中,以使所述目标交换机将所述剩余业务流量转发到对应的服务器中。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。
CN202010683468.0A 2020-07-16 2020-07-16 业务请求的防护方法、装置、系统和计算机设备 Active CN111565203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010683468.0A CN111565203B (zh) 2020-07-16 2020-07-16 业务请求的防护方法、装置、系统和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010683468.0A CN111565203B (zh) 2020-07-16 2020-07-16 业务请求的防护方法、装置、系统和计算机设备

Publications (2)

Publication Number Publication Date
CN111565203A true CN111565203A (zh) 2020-08-21
CN111565203B CN111565203B (zh) 2020-10-23

Family

ID=72072791

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010683468.0A Active CN111565203B (zh) 2020-07-16 2020-07-16 业务请求的防护方法、装置、系统和计算机设备

Country Status (1)

Country Link
CN (1) CN111565203B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021082834A1 (zh) * 2019-10-31 2021-05-06 华为技术有限公司 报文处理方法、装置、设备及计算机可读存储介质
CN112995186A (zh) * 2021-03-09 2021-06-18 上海明略人工智能(集团)有限公司 适用于mqtt服务安全保障的改善方法及系统
CN114172980A (zh) * 2021-12-08 2022-03-11 北京天融信网络安全技术有限公司 一种识别操作系统类型的方法、系统、装置、设备及介质
CN116915653A (zh) * 2023-09-11 2023-10-20 北京格尔国信科技有限公司 一种基于网络地址转换的设备数量检测方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1643876A (zh) * 2002-03-29 2005-07-20 思科技术公司 用于降低网络入侵检测系统的误报率的方法和系统
CN1864182A (zh) * 2003-10-15 2006-11-15 思科技术公司 用于降低网络入侵检测系统的虚假警报率的方法和系统
US20100031357A1 (en) * 2006-10-12 2010-02-04 International Business Machines Corporation Defending Smart Cards Against Attacks by Redundant Processing
KR20140044974A (ko) * 2012-09-17 2014-04-16 주식회사 인프라웨어테크놀러지 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN105933290A (zh) * 2016-04-08 2016-09-07 杭州华三通信技术有限公司 一种虚拟机防攻击方法及装置
JP2018169643A (ja) * 2017-03-29 2018-11-01 株式会社日立製作所 セキュリティ運用システム、セキュリティ運用管理装置およびセキュリティ運用方法
CN109040044A (zh) * 2018-07-25 2018-12-18 郑州云海信息技术有限公司 一种远程系统安全规则自动化验证方法与系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1643876A (zh) * 2002-03-29 2005-07-20 思科技术公司 用于降低网络入侵检测系统的误报率的方法和系统
CN1864182A (zh) * 2003-10-15 2006-11-15 思科技术公司 用于降低网络入侵检测系统的虚假警报率的方法和系统
US20100031357A1 (en) * 2006-10-12 2010-02-04 International Business Machines Corporation Defending Smart Cards Against Attacks by Redundant Processing
KR20140044974A (ko) * 2012-09-17 2014-04-16 주식회사 인프라웨어테크놀러지 권한탐지 기반의 안드로이드 어플리케이션 보안강화 방법, 그리고 이를 위한 권한탐지 기반의 안드로이드 보안 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN105933290A (zh) * 2016-04-08 2016-09-07 杭州华三通信技术有限公司 一种虚拟机防攻击方法及装置
JP2018169643A (ja) * 2017-03-29 2018-11-01 株式会社日立製作所 セキュリティ運用システム、セキュリティ運用管理装置およびセキュリティ運用方法
CN109040044A (zh) * 2018-07-25 2018-12-18 郑州云海信息技术有限公司 一种远程系统安全规则自动化验证方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王佳佳: "DDoS攻击检测技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021082834A1 (zh) * 2019-10-31 2021-05-06 华为技术有限公司 报文处理方法、装置、设备及计算机可读存储介质
CN112995186A (zh) * 2021-03-09 2021-06-18 上海明略人工智能(集团)有限公司 适用于mqtt服务安全保障的改善方法及系统
CN114172980A (zh) * 2021-12-08 2022-03-11 北京天融信网络安全技术有限公司 一种识别操作系统类型的方法、系统、装置、设备及介质
CN116915653A (zh) * 2023-09-11 2023-10-20 北京格尔国信科技有限公司 一种基于网络地址转换的设备数量检测方法及系统
CN116915653B (zh) * 2023-09-11 2024-02-02 北京格尔国信科技有限公司 一种基于网络地址转换的设备数量检测方法及系统

Also Published As

Publication number Publication date
CN111565203B (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
CN111565203B (zh) 业务请求的防护方法、装置、系统和计算机设备
CN112019574B (zh) 异常网络数据检测方法、装置、计算机设备和存储介质
US9787700B1 (en) System and method for offloading packet processing and static analysis operations
CN112383546B (zh) 一种处理网络攻击行为的方法、相关设备及存储介质
Osanaiye Short Paper: IP spoofing detection for preventing DDoS attack in Cloud Computing
CN109194680B (zh) 一种网络攻击识别方法、装置及设备
CN109474568B (zh) 针对利用域前置技术实现恶意攻击的检测方法及系统
US10218733B1 (en) System and method for detecting a malicious activity in a computing environment
CN112995151B (zh) 访问行为处理方法和装置、存储介质及电子设备
CN110417717B (zh) 登录行为的识别方法及装置
CA3159619C (en) Packet processing method and apparatus, device, and computer-readable storage medium
CN110213212A (zh) 一种设备的分类方法和装置
Arukonda et al. The innocent perpetrators: reflectors and reflection attacks
CN112600852B (zh) 漏洞攻击处理方法、装置、设备及存储介质
CN107204965B (zh) 一种密码破解行为的拦截方法及系统
CN110266650B (zh) Conpot工控蜜罐的识别方法
CN111800401A (zh) 业务报文的防护方法、装置、系统和计算机设备
CN114826663A (zh) 蜜罐识别方法、装置、设备及存储介质
Huang et al. An authentication scheme to defend against UDP DrDoS attacks in 5G networks
CN108737344B (zh) 一种网络攻击防护方法和装置
Jeyanthi Internet of things (IoT) as interconnection of threats (IoT)
JP6592196B2 (ja) 悪性イベント検出装置、悪性イベント検出方法および悪性イベント検出プログラム
CN111131309A (zh) 分布式拒绝服务检测方法、装置及模型创建方法、装置
CN114500026A (zh) 一种网络流量处理方法、装置及存储介质
Salim et al. Preventing ARP spoofing attacks through gratuitous decision packet

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40027854

Country of ref document: HK