CN110213393A - 报文处理方法及计算机设备 - Google Patents
报文处理方法及计算机设备 Download PDFInfo
- Publication number
- CN110213393A CN110213393A CN201810345316.2A CN201810345316A CN110213393A CN 110213393 A CN110213393 A CN 110213393A CN 201810345316 A CN201810345316 A CN 201810345316A CN 110213393 A CN110213393 A CN 110213393A
- Authority
- CN
- China
- Prior art keywords
- domain name
- list
- access number
- chained list
- filtering
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种报文处理方法及计算机设备,该方法包括接收第一报文请求,第一报文请求携带请求访问的第一域名;根据第一报文请求,确定记录的与第一域名对应的第一域名访问数目;在当前所处的第一时间周期结束时,根据记录的第一时间周期内的各域名以及各域名分别对应的第二域名访问数目,确定第一过滤域名名单,各域名包括第一域名,第二域名访问数目包括第一域名访问数目;第一过滤域名名单,用以在第一时间周期之后的相邻第二时间周期内接收到第二报文请求时,根据第一过滤域名名单,对第二报文请求进行过滤或放行处理。采用本方法能够快速确定第一过滤域名名单。
Description
技术领域
本申请涉及网络安全技术领域,特别涉及一种报文处理方法及计算机设备。
背景技术
CC(Challenge Collapsar)攻击是一种以网站页面为主要攻击目标的应用层的DDOS(Distributed Denial of Service,分布式拒绝服务攻击)攻击。具体攻击原理为攻击者控制某些代理服务器不停地向目标服务器发送大量报文请求,造成目标服务器性能下降,消耗大量资源,使目标服务器无法继续正常工作,直到服务器崩溃。
由于CC攻击是一种攻击者借助代理服务器生成指向受害服务器的合法请求,实现DDoS和伪装的网络攻击方式,CC攻击的报文请求难以被快速检测,无法快速对攻击的报文进行处理,导致服务器不安全。
发明内容
基于此,有必要针对无法快速检测攻击的报文请求的问题,提出一种报文处理方法及计算机设备。
一种报文处理方法,包括步骤:
接收第一报文请求,所述第一报文请求携带请求访问的第一域名;
根据所述第一报文请求,确定记录的与所述第一域名对应的第一域名访问数目;
在当前所处的第一时间周期结束时,根据记录的第一时间周期内的各域名以及各所述域名分别对应的第二域名访问数目,确定第一过滤域名名单,各所述域名包括所述第一域名,所述第二域名访问数目包括所述第一域名访问数目;
所述第一过滤域名名单,用以在所述第一时间周期之后的相邻第二时间周期内接收到第二报文请求时,根据所述第一过滤域名名单,对所述第二报文请求进行过滤或放行处理。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述方法的步骤。
上述报文处理方法及计算机设备,将记录的各域名以及各所述域名分别对应的第二域名访问数目作为依据,可快速确定第一过滤域名名单,即可快速确定攻击的域名。后续利用第一过滤域名名单,在所述第一时间周期之后的相邻第二时间周期内接收到第二报文请求时,根据所述第一过滤域名名单,即可快速对所述第二报文请求进行过滤或放行处理,提高报文处理效率。
附图说明
图1为一个实施例中报文处理方法的应用环境示意图;
图2为一个实施例中报文处理方法的流程示意图;
图3为另一个实施例中报文处理方法的子流程示意图;
图4为一个实施例中报文处理方法的流程示意图;
图5为现有Netfilter框架示意图;
图6为图5中的CC防御模块的整体框架原理图;
图7为一个实施例中通过链表记录的原理图;
图8为一个实施例中报文处理装置的模块示意图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本申请,并不限定本申请的保护范围。
本申请提供的报文处理方法,可以应用于如图1所示的应用环境中。其中,终端10通过网络与服务器20(例如,CDN服务器,即内容分发网络服务器)通过网络进行通信。报文处理方法可应用于服务器20中,即服务器20可接收终端10发送的第一报文请求,第一报文请求携带请求访问的第一域名。服务器20再根据第一报文请求,确定记录的与第一域名对应的第一域名访问数目。在当前所处的第一时间周期结束时,服务器20根据记录的各域名以及各域名分别对应的第二域名访问数目,确定第一过滤域名名单,各域名包括第一域名,第二域名访问数目包括第一域名访问数目。第一过滤域名名单,用以在第一时间周期之后的相邻第二时间周期内接收到第二报文请求时,根据第一过滤域名名单,对第二报文请求进行过滤或放行处理。
该服务器20可以用独立的服务器或者是多个服务器组成的服务器集群来实现。该终端10可以是任何一种能够实现智能输入输出以及启动应用的设备,例如,台式电脑或移动终端,移动终端可以是智能手机、平板电脑、车载电脑、穿戴式智能设备等。
在一个实施例中,如图2所示,提供了一种报文处理方法。以该方法应用于图1中的服务器20为例进行说明,包括如下步骤:
S210:接收第一报文请求,第一报文请求携带请求访问的第一域名。
域名又称网域,是由一串用点分隔的名字组成的Internet(网络)上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。报文是网络中交换与传输的数据单元,报文请求即请求报文,可以理解为请求数据的报文。终端可通过报文请求访问对应的服务器以请求数据,例如,在终端需要从服务器上获取数据A时,终端可向服务器发送请求该数据A的报文请求,服务器在接收到该请求报文,进行响应,可向终端返回请求报文对应的数据A。
第一报文请求中携带请求访问的第一域名,即在获取到第一报文请求之后,可获知其携带的第一域名,根据第一域名可定位到对应的第一报文请求需要访问的服务器,即接收第一报文请求并响应该第一报文请求下发对应数据的服务器,如此,第一报文请求可依据携带的第一域名传输至对应的服务器以请求数据。
S220:根据第一报文请求,确定记录的与第一域名对应的第一域名访问数目。
在接收到报文请求时,即接收了第一报文请求中携带的第一域名,则第一域名的域名访问数目加一。在实施例中,在接收到第一报文请求后,可记录第一报文请求中以及第一报文请求的第一域名对应的第一域名访问数目,可以理解,一旦接收到第一报文请求,即可记录其第一域名对应的第一域名访问数目,从而,根据接收的第一报文请求,可确定记录的与第一域名对应的第一域名访问数目。
例如,针对当前还记录的第一报文请求a(第一域名访问数目为3),其携带第一域名a1,当前又接收到了第一报文请求a(携带第一域名a1),重新记录该第一报文请求a的第一域名a1的第一域名访问数目,数目加一,即可确定记录的第一报文请求a对应的第一域名访问数目为4。
S230:在当前所处的第一时间周期结束时,根据记录的第一时间周期内的各域名以及各域名分别对应的第二域名访问数目,确定第一过滤域名名单。
其中,各域名包括第一域名,第二域名访问数目包括第一域名访问数目。
上述已对第一报文请求的第一域名的第一域名访问数据进行了确定,在进行第一过滤域名名单过程中,所依赖的各域名包括第一域名,则各域名对应的第二域名访问数量就包括第一域名对应的第一域名访问数目。例如,针对行数第一域名a1,其第一域名访问数目为4,则第二域名访问数目中包括第一域名a对应的第一域名数目4。
除接收第一报文请求以外,可以接收其他报文请求,在每接收到一个报文请求时,可对其携带的域名的数目进行记录统计,如此,可记录各域名的域名访问数目。即上述各域名还可以包括第一域名之外的其他报文请求携带的其他域名,则第二域名访问数目还可以包括第一域名访问数目之外的其他域名访问数目。例如,各域名中还包括域名a2和域名a3,则各域名分别对应的第二域名访问数目包括域名a2对应的第二域名访问数目和域名a3对应的第二域名访问数目。即第一域名访问数目和第二域名访问数目的性质相同,均是表示域名访数目,不同之处在于是针对不同域名的域名访问数目,域名的第二域名访问数目越大表示对应的携带该域名的报文请求量越大。
为减少资源的占用和浪费,每隔一个时间周期进行一次过滤域名名单的确定。比如,当前正处在第一时间周期,在第一时间周期未结束时,不进行第一过滤域名名单的确定,在当前所处的第一时间周期结束时,再进行第一过滤域名名单的确定。具体地,将记录的第一时间周期内的各域名以及各域名分别对应的第二域名访问数目作为确定第一过滤域名名单的依据,以快速准确确定第一过滤域名名单。记录的第一时间周期内的各域名可以理解为在第一时间周期结束时还记录的各域名。例如,在第一时间周期内接收了5个不同域名的报文请求,并分别记录了这5个域名的第二域名访问数目,在第一时间周期结束时,会有记录的第一时间周期内的上述5各域名的第二域名访问数目,如果在第一时间周期之前,也记录了其他一个域名的第二域名访问数目,但在第一时间周期内该域名没有被召回(可以理解为删除),即在第一时间周期结束时,还记录着该域名的第二域名访问数目,则该域名也属于各域名,各域名对应的第二域名访问数目也包括该域名对应的第二域名访问数目。
过滤域名指需要进行过滤的域名,也可以理解,过滤域名指攻击域名(设备(如服务器)的域名,可对设备造成攻击),考虑安全问题,需要将这些攻击域名过滤,防止其对设备的攻击。过滤域名名单中包括各过滤域名,第一过滤域名名单为当前所处的第一时间周期结束时确定的各需要过滤的域名。在本实施例中,第一过滤域名名单,用以在第一时间周期之后的相邻第二时间周期内接收到第二报文请求时,根据第一过滤域名名单,对第二报文请求进行过滤或放行处理。
可以理解,在当前所处的第一时间周期内,由于第一时间周期未结束,对饮的第一过滤域名名单还未确定,此时,可将在第一时间周期前与其相邻的一个时间周期结束时已确定的过滤域名名单作为对第二报文处理的依据,对第二报文请求进行过滤或放行处理。在当前所处的第一时间周期结束时,可进行第一过滤域名名单的确定,确定的第一过滤域名名单即可作为下一个时间周期(第一时间周期之后的与其相邻的第二时间周期)进行报文处理的依据。其中,对报文请求进行放行处理可以理解为让报文请求进行正常的传输,不对其进行过滤。
上述报文处理方法,将记录的各域名以及各所述域名分别对应的第二域名访问数目作为依据,可快速确定第一过滤域名名单,即可快速确定攻击的域名。后续利用第一过滤域名名单,在所述第一时间周期之后的相邻第二时间周期内接收到第二报文请求时,根据所述第一过滤域名名单,可快速对所述第二报文请求进行过滤或放行处理,提高报文处理效率。
另一个实施例中,上述报处理方法,还包括步骤:在第一域名属于第二过滤域名名单时,过滤第一报文请求。
第二过滤域名名单根据第三时间周期结束时记录的各域名以及各域名分别对应的第三域名访问数目确定,第三时间周期在第一时间周期之前,且与第一时间周期相邻;
第二过滤域名名单和第一过滤域名名单的性质相同,均是作为对报文进行过滤或放行处理的依据。区别在于其确定的时间不同,即第二过滤域名名单和第一过滤域名名单对应的确定时刻不同,如前所述,第一过滤域名名单是在当前所处的第一时间周期结束时确定的,是作为处理第一时间周期后的相邻第二时间周期内收到的第二报文请求的依据。第二过滤域名名单是作为处理第一时间周期内收到的第一报文请求的依据,第二过滤域名名单时在当前所处的第一第一时间周期之前的与其相邻的第三时间周期结束时确定的。第二过滤域名名单在第一过滤域名名单之前确定,可以理解,第一过滤域名名单是更新后的第二过滤域名名单,例如,在第二过滤域名名单的基础上,可将在第一时间周期结束时记录的各域名中需要过滤的域名增加到第二过滤域名名单,更新第二过滤域名名单,记得到第一过滤域名名单。
例如,第二过滤域名名单中包括域名e和域名f,在第一时间周期结束时,需要确定第一过滤域名名单,通过分析,域名g是需要过滤的,且第二过滤域名名单中没有包含域名g,可将需要过滤的域名g添加到第二过滤域名名单中,实现对第二过滤域名名单的更新,更新后的第二过滤域名名单中包括域名e、域名f和域名g,即在第一时间周期结束时确定的第一过滤域名名单,可作为下一个相邻时间周期结束时进行对应的第一过滤域名名单确定时所需的第二过滤域名名单。
在第一域名属于第二过滤域名名单时,表示第一域名满足过滤要求,需要将对其对应的第一报文请求进行过滤处理,不再将其继续传输,以免对服务器造成攻击,提高服务器安全。
例如,在过滤域名名单中包括域名B和域名C,即表示域名B和域名C分别对应的报文请求是需要过滤的。在收到第一报文请求b时,其携带的第一域名为B,第一域名B与域名B是相同的域名,即第一域名B属于过滤域名名单,则需要将该第一报文请求b进行过滤处理,防止其进行后续传输,对服务器造成攻击。
一个实施例中,上述报处理方法,还包括步骤:在第一域名不属于第二过滤域名名单时,放行第一报文请求。
在第一域名不属于第二过滤域名名单时,表示其不满足过滤要求,对第一域名对应的第一报文请求进行传输即可,无需过滤,即将第一报文请求放行,可使其传输至下一个报文处理位置进行下一步报文处理。
例如,在过滤域名名单中包括域名B和域名C,即表示域名B和域名C分别对应的报文请求是需要过滤的。在收到第一报文请求a时,其携带的第一域名为a1,第一域名a1与域名B和域名C均不同,即第一域名a1不属于过滤域名名单,可将其放行。
一个实施例中,如图3所示,上述根据记录的第一时间周期内的各域名以及各域名分别对应的第二域名访问数目,确定第一过滤域名名单的步骤S230,包括:
S331:获取记录的第一时间周期内的各域名以及各域名分别对应的第二域名访问数目。
已对第一时间周期内的各域名以及各域名分别对应的第二域名访问数目记录,在需要据此确定第一过滤域名名单时即可使用,则获取记录的第一时间周期内的各域名以及各域名分别对应的第二域名访问数目即可。
S332:根据各域名分别对应的第二域名访问数目,确定各域名的第一域名访问量占比,第一域名访问量占比为该域名的第二域名访问数目与域名总访问量的比值,域名总访问量为各域名的第二域名访问数目之和。
域名的第一域名访问量占比表示该域名的第二域名访问数目在域名总访问量中的份量,第一域名访问量占比越大,表示该域名的第一域名访问数目在总域名访问量中的份量越大,在总域名访问量确定的情况下,表示在第一时间周期结束时,接收了越多的携带该域名的报请请求,即对该域名进行了大量的访问。
S333:根据各域名分别对应的第二域名访问数目以及第一域名访问量占比,确定第一过滤域名名单。
第一域名访问量占比有第二域名访问数确定,将各域名分别对应的第二域名访问数目以及第一域名访问量占比作为确定第一过滤域名名单的依据,能快速确定第一过滤域名名单。在短时间内发送大量对同一域名的报文请求,以实现攻击的特点,通过第二域名访问数和第一域名访问量占比,可准确确定第一过滤域名名单,为后续报文处理提供精确依据。
一个实施例中,上述根据各域名分别对应的第二域名访问数目以及第一域名访问量占比,确定第一过滤域名名单的步S333,包括:在域名对应的第二域名访问数目和第一域名访问量占比满足域名过滤条件时,将该域名添加到第一过滤域名名单。
域名对应的第二域名访问数目和第一域名访问量占比满足域名过滤条件时,即表示需要过滤该域名,将其添加到第一过滤域名名单中。域名依附于报文请求,后续通过将携带该域名的报文请求过滤。
一个实施例中,在域名对应的第二域名访问数目和第一域名访问量占比满足域名过滤条件之后,将该域名添加到第一过滤域名名单之前,还包括:检测该域名是否属于第一时间周期之前已确定的过滤域名名单,若否,则进入将该域名添加到第一过滤域名名单的步骤。
在该域名不属于第一时间周期之前已确定的过滤域名名单,表示之前从未将该域名确定为需要过滤的域名,此时,才将其添加到第一过滤域名名单中。在该域名属于第一时间周期之前已确定的过滤域名名单,表示该域名之前已被确认过,为需要过滤的名单,为提高报文处理效率,无需再重复添加。上述以确定的过滤域名名单、确定的第一过滤域名名单以及确定的第二过滤域名名单均表示有记录的名单,若在执行方法的过程中,将有删除过滤域名,则删除的过滤域名不在其中,不存在于已确定的过滤域名名单、确定的第一过滤域名名单以及确定的第二过滤域名名单中。
第一时间周期之前已确定的过滤域名名单和第一过滤域名名单性质相同,不同之处在于对应确定的时间不同,如前所述,第一过滤域名名单为在第一时间周期结束时确定的过滤域名名单,第一时间周期之前已确定的过滤域名名单以理解为上述第二过滤域名名单。
一个实施例中,域名过滤条件包括:域名对应的第二域名访问数目大于预设数目阈值、且对应的第一域名访问量占比大于预设占比阈值。
即只有在第二域名访问数目大于预设数目阈值和对应的第一域名访问量占比大于预设占比阈值都满足的情况下,确定该域名为需要过滤的域名,将其添加到第一过滤域名名单中。如此,可避免偶然性,确第一过滤域名名单的精确性。
一个实施例中,通过内核接收第一报文请求、根据第一报文请求确定记录的与第一域名对应的第一域名访问数目、以及根据各域名分别对应的第二域名访问数目确定各域名的第一域名访问量占比。
内核是操作系统的核心,为众多应用程序提供对计算机硬件的安全访问的一部分软件,是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。在本实施例中,确定第一报文的第一域名访问数目和各域名的第一域名访问量占比的过程在内核中处理。在内核中,可快速安全进行数目和占比的确定,进而可提高后续整个第一过滤域名名单确定过程的效率、报文处理过程的效率以及整个处理过程的安全性。在一个示例中,内核采用Linux(一种操作系统)内核。
一个实施例中,通过应用层从内核获取各域名分别对应的第二域名访问数目以及第一域名访问量占比,确定第一过滤域名名单,并将第一过滤域名名单发送至内核。
应用层是由若干个特定应用服务元素(SASE)和一个或多个公用应用服务元素(CASE)组成。每个SASE提供特定的应用服务,例如文件运输访问和管理(FTAM)、电子文电处理(MHS)、虚拟终端协议(VAP)等。CASE提供一组公用的应用服务,例如联系控制服务元素(ACSE)、可靠运输服务元素(RTSE)和远程操作服务元素(ROSE)等。
在本实施例中,通过内核与应用层之间的配合,在应用层中确定第一过滤域名名单。具体地,第二域名访问数目以及第一域名访问量占比在内核中确定,第一过滤域名名单的确定需要其作为依据,通过内核和应用层之间的通信,内核可将确定额第二域名访问数目以及第一域名访问量占比发送给应用层,即应用层从内核获取各域名分别对应的第二域名访问数目以及第一域名访问量占比,然后依此确定第一过滤域名名单。由于第一过滤域名名单是用于对报文请求进行过滤或放行的依据,报文请求在内核中,从而,需要将第一过滤域名名单发送给内核,内核可依此进行报文的过滤或放行处理。
在本实施例中,应用层可通过PROC文件系统与内核进行通信。PROC文件系统是Linux上的/proc目录,与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),其存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。PROC文件系统包含了一些目录(用作组织信息的方式)和虚拟文件。虚拟文件可以向用户呈现内核中的一些信息,也可以用作一种从用户空间向内核发送信息的手段。
一个实施例中,上述通过应用层从内核获取各域名分别对应的第二域名访问数目以及第一域名访问量占比,包括:通过应用层从内核获取第一预设数目个域名对应的第二域名访问数目以及第一域名访问量占比,第一预设数目个域名为第一预设数目个最大的第二域名访问数目对应的域名。
域名的第二域名访问数目表示该域名,第二域名访问数目越大的域名表示访问该域名越频繁,而CC攻击的特点就是在时间内发送大量携带域名的报文请求,对携带的域名频繁访问。如此,域名的第二域名访问数目越大,该域名为攻击的域名的可能性越大,则需要过滤的可能性越大。为了减少工作量,内核将第一预设数目个域名对应的第二域名访问数目以及第一域名访问量占比发送给应用层,即应用层从内核获取第一预设数目个域名对应的第二域名访问数目以及第一域名访问量占比。
一个实施例中,内核的数目为两个以上。可以理解为,有两个以上的CPU分别执行内核进行记录,则执行内核的次数为两个以上。
在本实施例中,上述通过应用层从内核获取的各域名分别对应的第二域名访问数目为:根据单个内核中记录的第二预设数目个域名以及分别对应的第三域名访问数目,以及所述第二预设数目个域名在各内核中所述当个内核外的其他内核中记录的第三域名访问数目确定,第二预设数目个域名,为该单个内核中记录的第二预设数目个最大的域名访问数目对应的域名。
上述通过应用层从内核获取的各域名分别对应第一域名访问量占比为:在所述单个内核中第二预设数目个域名分别对应的第三域名访问数目在该单个内核中的第二域名访问量占比。
其中,第二预设数目个域名为从单个CPU执行上述单个内核记录的第二域名访问数目最大的第二预设数目个域名,第三域名访问数目为在上述单个CPU执行上述单个内核记录的第二预设数目个域名分别对应的域名访问数目。第二域名访问量占比为在上述单个CPU执行单个内核记录的第三域名访问数目在该单个CPU执行单个内核记录的总域名访问量中的占比。上述单个内核可以是各内核中任意一个内核。
在服务器可以包括两个以上的CPU,内核被CPU执行即可记录各域名的第二域名访问数目。每个CPU执行的内核可以相同。例如,服务器通过N个CPU分别执行内核,各自记录接收的报文请求携带域名的域名访问数目。
在一个示例中,上述第二预设数目可以与上述第一预设数目相同,例如,均可为3。
一个实施例中,上述根据各所述域名分别对应的第二域名访问数目以及第一域名访问量占比,确定所述第一过滤域名名单的步骤,包括:当域名对应的第二域名访问数目大于预设数目阈值、且在任意一个内核中的第二域名访问量占比大于预设占比阈值时,将该域名添加到第一过滤域名名单。
可以理解为当域名对应的第二域名访问数目大于预设数目阈值、且任意一个CPU执行内核记录的第二域名访问量占比大于预设占比阈值时,将该域名添加到第一过滤域名名单,即将单个CPU执行的一个内核所记录的第二域名访问量占比作为依据进行判断,减少工作量。
例如,针对2个PCU记录的数据,域名e的第二域名访问数目大于预设数目阈值,其中,第一个CPU执行内核记录的域名e的第二域名访问量占比为P1,第二个CPU执行内核记录的域名e的第二域名访问量占比为P2,可从P1和P2中任意选择一个与预设占比阈值进行比较,P1或P2大于预设占比阈值时,将该域名e添加到第一过滤域名名单。
一个实施例中,域名对应的第二域名访问数目,为该域名在各内核中的第三域名访问数目之和。
由于单个CPU执行内核记录的域名的第二域名访问量占比基本可表示各CPU执行内核记录的该域名的整体占比。然而,各CPU执行内核记录的整体域名访问数目才能精确反映域名的数量情况,在本实施例中,域名对应的第二域名访问数目,为该域名在各内核中的第三域名访问数目之和,依此确定第一过滤域名名单,可提高确定的第一过滤域名名单的精确性。
一个实施例中,内核维护有链表,内核通过维护的链表记录各域名以及各域名对应的第二域名访问数目。
链表中包括各链表统计节点,用于记录域名以及域名对应的第二域名访问数目,一个链表统计节点对应一个存储区域。各链表统计节点分别对应有存储地址,相邻链表统计节点之间的存储地址相邻。例如,链表中包括链表统计节点1、链表统计节点2和链表统计节点3,在链表统计节点1中记录域名e以及对应的第二域名访问量,在链表统计节点2中记录域名f以及对应的第二域名访问量,在链表统计节点3中记录域名g以及对应的第二域名访问量。若某个链表统计节点中的域名以及对应的第二域名访问数目被删除,则删除的内容不再是上述记录的各域名以及各所述域名分别对应的第二域名访问数目,即记录的域名以及域名对应的第二域名访问数目表示存储在链表统计节点的各域名以及域名对应的第二域名访问数目。
通过链表记录各域名以及对应的第二域名访问数目,一方面便于记录,另一方面便于后续的查找。在一个示例中,该链表可以是LRU(Least Recently Used,最近最少使用)链表,即通过LRU算法进行统计的链表。
在本实施例中,上述根据第一报文请求,确定记录的与第一域名对应的第一域名访问数目的步骤,包括:在链表存在与第一域名对应的第一链表统计节点时,更新第一链表统计节点记录的域名访问数目,获得记录的与第一域名对应的第一域名访问数目;在链表不存在与第一域名对应的第一链表统计节点、且存在未占用的为空的第二链表统计节点时,在第二链表统计节点记录与第一域名对应的第一域名访问数目;在链表不存在与第一域名对应的第一链表统计节点、且不存在未占用的为空的第二链表统计节点时,回收链表中符合回收条件的第三链表统计节点后,在第三链表统计节点记录第一域名以及与第一域名对应的第一域名访问数目。
在链表存在与第一域名对应的第一链表统计节点时,表示在链表中的第一链表统计节点中已记录了第一域名,当收到携带第一域名的第一报文请求时,需要对第一链表统计节点中第一域名对应的域名访问数目加1,以更新第一链表统计节点记录的域名访问数目,从而获得记录的与第一域名对应的第一域名访问数目。
在链表不存在与第一域名对应的第一链表统计节点、且存在未占用的为空的第二链表统计节点时,表示在链表中,链表统计节点未记录第一域名,但存在有空的第二链表统计节点,即第二链表统计节点中未记录任何域名以及对应的第二域名访问数目。如此,可在第二链表统计节点中记录第一域名以及与第一域名对应的第一域名访问数目。
一个示例中,可以存在两个以上的未占用的为空的第二链表统计节点,可从各第二链表统计节点中任意选择一个第二链表统计节点记录第一域名以及与第一域名对应的第一域名访问数目。另一个示例中,可通过其他选择规则从各第二链表统计节点中选择一个第二链表统计节点进行记录,例如,在链表中存在有记录域名的链表统计节点时,可从各第二链表统计节点中选择一个与上述有记录域名的链表统计节点最近的一个第二链表统计节点记录第一域名以及与第一域名对应的第一域名访问数目。
在链表不存在与第一域名对应的第一链表统计节点、且不存在未占用的为空的第二链表统计节点时,表示在链表中,链表统计节点未记录第一域名,且没有空的第二链表统计节点,即链表中各链表统计节点中均有记录域名。此时,可回收链表中符合回收条件的第三链表统计节点,在第三链表统计节点记录第一域名以及与第一域名对应的第一域名访问数目,即从各链表统计节点中回收一个链表统计节点,用于记录第一域名以及第一域名对应的第一域名访问数目。节点回收指将节点空间归还系统,回收后,节点不再被占用,此时,可在回收的第三链表统计节点中记录第一域名以及与第一域名对应的第一域名访问数目。
一个实施例中,各内核分别维护链表,各内核分别通过维护的链表记录各域名对应的第三域名访问数目。
一个实施例中,根据第一报文请求,确定记录的与第一域名对应的第一域名访问数目,还包括:根据第一域名的消息摘要,索引确定与第一域名对应的链表统计节点。与第一域名对应的链表统计节点为第一链表统计节点、链表统计节点或第三链表统计节点。
消息摘要指一个唯一对应一个消息或文本的固定长度的值,第一域名的消息摘要指一个唯一对应该第一域名的固定长度的值。
一个示例中,计算第一域名的消息摘要,可以包括:通过哈希(Hash)算法对第一域名进行处理获得对应哈希值,将哈希值作为第一域名的消息摘要。哈希算法的种类较多,例如,哈希算法包括但不限于MD4算法、MD5算法(MD4算法的升级版)以及SHA-1算法(安全哈希算法),可以通过上述哈希算法中的任意一种算法进对第一域名进行处理。
由于上述记录第一域名的节点可以是第一链表统计节点、链表统计节点或第三链表统计节点,对应地,在第一域名的消息摘要确定后,可将第一域名的消息摘要作为记录第一域名对应的第一链表统计节点、链表统计节点或第三链表统计节点的索引,即可通过第一域名的消息摘要,索引确定与所述第一域名对应的链表统计节点。在第一域名记录在第一链表统计节点时,索引确定与所述第一域名对应的第一链表统计节点,在第一域名记录在第二链表统计节点时,索引确定与所述第一域名对应的第二链表统计节点,在第一域名记录在第三链表统计节点时,索引确定与所述第一域名对应的第三链表统计节点。
一个实施例中,回收条件包括下述三项(第一项、第二向和第三项)中的任意一项:
第一项:在链表的各链表统计节点最近一次记录域名访问数目的时间均在预设访问时间范围内,且第三链表统计节点中记录的域名访问数目,在链表的各链表统计节点记录的域名访问数目中最小。
例如,链表的各链表统计节点包括链表统计节点1、链表统计节点2和链表统计节点3,在预设访问时间范围内(例如,离当前时间最近的1秒内,即前1秒内)链表统计节点1、链表统计节点2和链表统计节点3分别记录了一次。回收的第三链表统计节点为上述各链表统计节点中记录的域名访问数目在链表的各链表统计节点记录的域名访问数目中最小。比如,链表统计节点1最近一次记录的时间为t1、链表统计节点2最近一次记录的时间为t2,链表统计节点3最近一次记录的时间为t3。t1、t2和t3均在预设访问时间内,链表统计节点1中记录的域名访问数目为2,小于链表统计节点2和链表统计节点3分别记录的域名访问数目,链表统计节点1即为第三链表统计节点。
第二项:第三链表统计节点的首次记录域名访问数目的时间,在链表的各链表统计节点首次记录域名访问数目的时间中最早。
以首次记录域名访问数目的时间为依据进行回收。例如,上述链表统计节点1首次记录的时间为t11、链表统计节点2首次记录的时间为t22,链表统计节点3首次记录的时间为t33,其中,t22早于t11和t33,则链表统计节点2即为第三链表统计节点。
第三项:第三链表统计节点的最近一次记录域名访问数目的时间,在链表的各链表统计节点最近一次记录域名访问数目的时间中最早。
以最近一次记录域名访问数目的时间为依据进行回收。例如,上述链表统计节点1最近一次记录的时间为t111、链表统计节点2最近一次记录的时间为t221,链表统计节点3最近一次记录的时间为t331,其中,t33早于t11和t22,则链表统计节点3即为第三链表统计节点。
一个实施例中,上述报文处理方法,还包括步骤:接收域名解禁指令,域名解禁指令中携带第二域名;在第一过滤域名名单中包含第二域名时,将第二域名从第一过滤域名名单中删除。
上述在第一时间周期结束时需要确定第一过滤域名名单,即是确定需要过滤的域名,若接收的报文请求携带的第二域域名是属于第一过滤域名名单时,会过滤该报文请求,但在最近预设时间段内该第二域名的攻击已过,即在最近预设时间内第二域名的域名访问数目小于预设阈值,表示对该第二域名的访问很少,无需对其进行过滤,则需要将第二域名从第一过滤域名名单删除,以便放行携带第二域名的报文请求。
一个示例中,可通过在服务器本机上进行操作,生成携带第二域名的域名解禁指令,即可接收到该域名解禁指令。另一个示例中,可通过远程发送携带第二域名的域名解禁指令,即可通过接收远程发送的携带第二域名的域名解禁指令。又一个示例中,服务器本机可通过获取在最近预设时间段内接收的携带第二域名的报文请求的域名访问数量,在最近预设时间内第二域名的域名访问数量小于预设阈值时,生成携带第二域名的域名解禁指令,将第二域名从第一过滤域名名单中删除。
一个实施例中,上述时间周期可以为1秒,即上述第一时间周期为1秒、第二时间周期为1秒,第三时间周期为1秒。如此,确定第一过滤域名名单的间隔较短,可快速地得到最新的第一域名名单,以确保后续的报文精确过滤或放行。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以一个实施例对上述报文处理方法的流程加以具体说明。
如图4所示,本申请采用内核与应用层配合的方式进行实现,内核是在已有的过滤模块基础上,新增域名统计模块。内核执行图4中的报文请求解析以及域名统计,由应用层进行决策分析,即每间隔时间周期定时从内核中获取域名访问数目(可以理解为QPS,即Query Per Second,每秒钟请求量)最大的三个域名,依据统计到的域名访问量及该域名的域名访问数目在记录的各域名对应的总域名访问量中的占比来决定该域名是否可能是攻击域名,如果是,则下发相应的封禁策略给内核的过滤模块,实现攻击流量的过滤。
如图5所示,在实现框架上,现有的过滤模块是在内核Netfilter框架(Linux内核中进行数据包过滤、连接跟踪、地址转换等的主要实现框架)中的LOCAL_IN挂载点根据封禁策略对接收的报文请求进行过滤检测,本申请中的内核中也嵌入图5所示的Netfilter框架。其中,PRE_ROUTING,LOCAL_IN,FORWARD,LOCAL_OUT以及POST_ROUTING为Netfilter框架中的挂载点。通过在LOCAL_IN挂载点设置CC防御模块,对报文请求进行过滤检测。其中,上层协议为TCP/IP协议栈。
图6为图5中的CC防御模块的整体框架原理图,在工作过程中,是应用层模块与内核模块相互配合进行工作,应用层负责监控内核统计数据并进行决策下发封禁策略(即下发第一过滤域名名单),内核负责实时统计报文请求并实施应用层下发的封禁策略。应用层通过PROC文件系统与内核进行通信,来获取内核的统计结果并依据该结果来决定是否下发封禁策略。封禁策略的具体实施过程,检测接收的报文请求中携带的域名是否属于第一过滤域名名单,若属于,则执行过滤,在资源充足的情况下,也可向终端返回错误信息,以告知终端,报文请求出现错误。若不属于,放行报文请求。
如图7所示,实现在内核中较为高效的统计出单位时间如1s内所有报文请求中域名访问量最高的域名以及其在所有总域名访问量中的占比,本申请采用的方案:
1.使用HASH+LRU链表双层数据结构,其中LRU链表负责将域名访问数目较多的一部分域名保留在该链表中,而HASH负责访问该链表时能够快速的索引到。
2.为避免多个CPU在访问统计数据结构时的竞争问题,使用内核中的per-CPU变量来作为统计结构的索引,这样每个CPU都有自己单独统计结构,在应用层轮询的时候,对各个CPU分别执行内核统计的结果进行汇总,并将结果反馈给应用层。
3.在汇总各个CPU的统计结果时,需要获取各个CPU统计结果汇总后,为了避免对所有链表都扫描一遍,采用的方式是扫描任意一个CPU执行内核建立的链表,并获取其中域名访问量最大的前三个域名,此时,也就获得了这三个域名在该CPU统计结果中的占比,这三个域名在整体统计数据中的占比(依据是由于单个域名的请求,尤其在量较大的情况下,被多个CPU处理的数量基本是平均的),也就等同于该域名在整个统计数据中的占比,然后在其他CPU的链表中查询这三个域名的统计到的域名访问数目并累加起来,就得到了这三个域名的总域名访问量,将三个域名以及总域名访问量传递给应用层进行决策分析。
例如,图7所示,上述三个域名分别为www.aaa.com(总域名访问量:10000,占比:75%)、www.bbb.com(总域名访问量:666,占比:5%)和www.ccc.com(总域名访问量:323,占比:2%)。
本申请提供了各实施例,在CC攻击发生时能够准确快速的识别出攻击域名,并自动下发封禁策略将该域名的请求报文过滤,整个过程可以在5s内自动完成,无需人工干预,保证了突发攻击时平台的安全性和稳定性。在内核中进行统计对单机性能无明显的新增消耗,保证在内核中部署了统计方案后平台的整体性能不受影响。
在一个实施例中,如图8所示,提供一种报文处理装置,包括:
报文接收模块810,用于接收第一报文请求,所述第一报文请求携带请求访问的第一域名;
第一数目确定模块820,用于根据所述第一报文请求,确定记录的与所述第一域名对应的第一域名访问数目;
名单确定模块830,用于在当前所处的第一时间周期结束时,根据记录的第一时间周期内的各域名以及各所述域名分别对应的第二域名访问数目,确定第一过滤域名名单,各所述域名包括所述第一域名,所述第二域名访问数目包括所述第一域名访问数目;
所述第一过滤域名名单,用以在所述第一时间周期之后的相邻第二时间周期内接收到第二报文请求时,根据所述第一过滤域名名单,对所述第二报文请求进行过滤或放行处理。
一个实施例中,上述装置,还包括:
过滤模块,用于在所述第一域名属于第二过滤域名名单时,过滤所述第一报文请求,所述第二过滤域名名单根据第三时间周期结束时记录的各域名以及各所述域名分别对应的第三域名访问数目确定,所述第三时间周期在所述第一时间周期之前,且与所述第一时间周期相邻;
放行模块,用于在所述第一域名不属于所述第二过滤域名名单时,放行所述第一报文请求。
一个实施例中,名单确定模块,包括:
数目获取模块,用于获取记录的第一时间周期内的各域名以及各所述域名分别对应的第二域名访问数目;
占比确定模块,用于根据各所述域名分别对应的第二域名访问数目,确定各域名的第一域名访问量占比,所述第一域名访问量占比为该域名的第二域名访问数目与域名总访问量的比值,所述域名总访问量为各所述域名的第二域名访问数目之和;
域名名单确定模块,用于根据各所述域名分别对应的第二域名访问数目以及第一域名访问量占比,确定所述第一过滤域名名单。
一个实施例中,域名名单确定模块,用于在域名对应的第二域名访问数目和第一域名访问量占比满足域名过滤条件时,将该域名添加到第一过滤域名名单。
域名名单确定模块所述域名过滤条件包括:域名对应的第二域名访问数目大于预设数目阈值、且对应的第一域名访问量占比大于预设占比阈值。
一个实施例中,报文接收模块,用于通过内核接收所述第一报文请求、根据所述第一报文请求确定记录的与所述第一域名对应的第一域名访问数目、以及根据各所述域名分别对应的第二域名访问数目确定各域名的第一域名访问量占比。
一个实施例中,占比确定模块,用于通过应用层从所述内核获取各所述域名分别对应的第二域名访问数目以及第一域名访问量占比,确定所述第一过滤域名名单,并将所述第一过滤域名名单发送至所述内核。
一个实施例中,报文接收模块,用于通过应用层从所述内核获取第一预设数目个域名对应的第二域名访问数目以及第一域名访问量占比,所述第一预设数目个域名为第一预设数目个最大的第二域名访问数目对应的域名。
一个实施例中,所述内核的数目为两个以上;
所述通过应用层从内核获取的各域名分别对应的第二域名访问数目为:根据单个内核中记录的第二预设数目个域名以及分别对应的第三域名访问数目,以及所述第二预设数目个域名在各内核中所述当个内核外的其他内核中记录的第三域名访问数目确定,第二预设数目个域名,为该单个内核中记录的第二预设数目个最大的域名访问数目对应的域名;
所述通过应用层从内核获取的各域名分别对应第一域名访问量占比为:在所述单个内核中第二预设数目个域名分别对应的第三域名访问数目在该单个内核中的第二域名访问量。
一个实施例中,占比确定模块,用于当域名对应的第二域名访问数目大于预设数目阈值、且在任意一个内核中的第二域名访问量占比大于预设占比阈值时,将该域名添加到第一过滤域名名单。
一个实施例中,域名对应的第二域名访问数目,为该域名在各内核中的第三域名访问数目之和。
一个实施例中,所述内核维护有链表,所述内核通过维护的链表记录各域名对应的第二域名访问数目;
第一数目确定模块,用于:
在链表存在与所述第一域名对应的第一链表统计节点时,更新所述第一链表统计节点记录的域名访问数目,获得记录的与所述第一域名对应的第一域名访问数目;
在链表不存在与所述第一域名对应的第一链表统计节点、且存在未占用的为空的第二链表统计节点时,在所述第二链表统计节点记录所述第一域名以及与所述第一域名对应的第一域名访问数目;
在链表不存在与所述第一域名对应的第一链表统计节点、且不存在未占用的为空的第二链表统计节点时,回收所述链表中符合回收条件的第三链表统计节点后,在所述第三链表统计节点记录所述第一域名以及与所述第一域名对应的第一域名访问数目。
一个实施例中,第一数目确定模块,还包括:
摘要计算模块,用于计算所述第一域名的消息摘要;
索引模块,用于根据所述第一域名的消息摘要,索引确定与所述第一域名对应的链表统计节点,与所述第一域名对应的链表统计节点为所述第一链表统计节点、所述链表统计节点或第三链表统计节点。
一个实施例中,所述回收条件包括下述三项中的任意一项:
第一项:在所述链表的各链表统计节点最近一次记录域名访问数目的时间均在预设访问时间范围内,且所述第三链表统计节点中记录的域名访问数目,在所述链表的各链表统计节点记录的域名访问数目中最小;
第二项:所述第三链表统计节点的首次记录域名访问数目的时间,在所述链表的各链表统计节点首次记录域名访问数目的时间中最早;
第三项:所述第三链表统计节点的最近一次记录域名访问数目的时间,在所述链表的各链表统计节点最近一次记录域名访问数目的时间中最早。
一个实施例中,上述装置,还包括:
指令接收模块,用于接收域名解禁指令,所述域名解禁指令中携带第二域名;
删除模块,用于在所述第一过滤域名名单中包含所述第二域名时,将所述第二域名从所述第一过滤域名名单中删除。
关于报文处理装置的具体限定可以参见上文中对于报文处理装置的限定,在此不再赘述。上述报文处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是图1中的服务器20,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种报文处理装置。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种报文处理方法,其特征在于,包括步骤:
接收第一报文请求,所述第一报文请求携带请求访问的第一域名;
根据所述第一报文请求,确定记录的与所述第一域名对应的第一域名访问数目;
在当前所处的第一时间周期结束时,根据记录的第一时间周期内的各域名以及各所述域名分别对应的第二域名访问数目,确定第一过滤域名名单,各所述域名包括所述第一域名,所述第二域名访问数目包括所述第一域名访问数目;
所述第一过滤域名名单,用以在所述第一时间周期之后的相邻第二时间周期内接收到第二报文请求时,根据所述第一过滤域名名单,对所述第二报文请求进行过滤或放行处理。
2.根据权利要求1所述的方法,其特征在于,还包括步骤:
在所述第一域名属于第二过滤域名名单时,过滤所述第一报文请求,所述第二过滤域名名单根据第三时间周期结束时记录的各域名以及各所述域名分别对应的第三域名访问数目确定,所述第三时间周期在所述第一时间周期之前,且与所述第一时间周期相邻;
在所述第一域名不属于所述第二过滤域名名单时,放行所述第一报文请求。
3.根据权利要求1所述的方法,其特征在于,根据记录的第一时间周期内的各域名以及各所述域名分别对应的第二域名访问数目,确定第一过滤域名名单,包括:
获取记录的第一时间周期内的各域名以及各所述域名分别对应的第二域名访问数目;
根据各所述域名分别对应的第二域名访问数目,确定各域名的第一域名访问量占比,所述第一域名访问量占比为该域名的第二域名访问数目与域名总访问量的比值,所述域名总访问量为各所述域名的第二域名访问数目之和;
根据各所述域名分别对应的第二域名访问数目以及第一域名访问量占比,确定所述第一过滤域名名单。
4.根据权利要求3所述的方法,其特征在于,根据各所述域名分别对应的第二域名访问数目以及第一域名访问量占比,确定所述第一过滤域名名单,包括:
在域名对应的第二域名访问数目和第一域名访问量占比满足域名过滤条件时,将该域名添加到第一过滤域名名单。
5.根据权利要求3所述的方法,其特征在于,通过内核接收所述第一报文请求、根据所述第一报文请求确定记录的与所述第一域名对应的第一域名访问数目、以及根据各所述域名分别对应的第二域名访问数目确定各域名的第一域名访问量占比。
6.根据权利要求5所述的方法,其特征在于,通过应用层从所述内核获取各所述域名分别对应的第二域名访问数目以及第一域名访问量占比,确定所述第一过滤域名名单,并将所述第一过滤域名名单发送至所述内核。
7.根据权利要求6所述的方法,其特征在于,通过应用层从所述内核获取各所述域名分别对应的第二域名访问数目以及第一域名访问量占比,包括:
通过应用层从所述内核获取第一预设数目个域名对应的第二域名访问数目以及第一域名访问量占比,所述第一预设数目个域名为第一预设数目个最大的第二域名访问数目对应的域名。
8.根据权利要求6所述的方法,其特征在于,所述内核的数目为两个以上;
所述通过应用层从内核获取的各域名分别对应的第二域名访问数目为:根据单个内核中记录的第二预设数目个域名以及分别对应的第三域名访问数目,以及所述第二预设数目个域名在各内核中所述当个内核外的其他内核中记录的第三域名访问数目确定,第二预设数目个域名,为该单个内核中记录的第二预设数目个最大的域名访问数目对应的域名;
所述通过应用层从内核获取的各域名分别对应第一域名访问量占比为:在所述单个内核中第二预设数目个域名分别对应的第三域名访问数目在该单个内核中的第二域名访问量。
9.根据权利要求8所述的方法,其特征在于,所述根据各所述域名分别对应的第二域名访问数目以及第一域名访问量占比,确定所述第一过滤域名名单的步骤,包括:
当域名对应的第二域名访问数目大于预设数目阈值、且在任意一个内核中的第二域名访问量占比大于预设占比阈值时,将该域名添加到第一过滤域名名单。
10.根据权利要求5至9任意一项所述的方法,其特征在于,所述内核维护有链表,所述内核通过维护的链表记录各域名对应的第二域名访问数目;
根据所述第一报文请求,确定记录的与所述第一域名对应的第一域名访问数目,包括:
在链表存在与所述第一域名对应的第一链表统计节点时,更新所述第一链表统计节点记录的域名访问数目,获得记录的与所述第一域名对应的第一域名访问数目;
在链表不存在与所述第一域名对应的第一链表统计节点、且存在未占用的为空的第二链表统计节点时,在所述第二链表统计节点记录所述第一域名以及与所述第一域名对应的第一域名访问数目;
在链表不存在与所述第一域名对应的第一链表统计节点、且不存在未占用的为空的第二链表统计节点时,回收所述链表中符合回收条件的第三链表统计节点后,在所述第三链表统计节点记录所述第一域名以及与所述第一域名对应的第一域名访问数目。
11.根据权利要求10所述的方法,其特征在于,根据所述第一报文请求,确定记录的与所述第一域名对应的第一域名访问数目,还包括:
计算所述第一域名的消息摘要;
根据所述第一域名的消息摘要,索引确定与所述第一域名对应的链表统计节点,与所述第一域名对应的链表统计节点为所述第一链表统计节点、所述链表统计节点或第三链表统计节点。
12.根据权利要求10所述的方法,其特征在于,所述回收条件包括下述三项中的任意一项:
第一项:在所述链表的各链表统计节点最近一次记录域名访问数目的时间均在预设访问时间范围内,且所述第三链表统计节点中记录的域名访问数目,在所述链表的各链表统计节点记录的域名访问数目中最小;
第二项:所述第三链表统计节点的首次记录域名访问数目的时间,在所述链表的各链表统计节点首次记录域名访问数目的时间中最早;
第三项:所述第三链表统计节点的最近一次记录域名访问数目的时间,在所述链表的各链表统计节点最近一次记录域名访问数目的时间中最早。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-15中任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810345316.2A CN110213393B (zh) | 2018-04-17 | 2018-04-17 | 报文处理方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810345316.2A CN110213393B (zh) | 2018-04-17 | 2018-04-17 | 报文处理方法及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110213393A true CN110213393A (zh) | 2019-09-06 |
CN110213393B CN110213393B (zh) | 2021-09-17 |
Family
ID=67779055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810345316.2A Active CN110213393B (zh) | 2018-04-17 | 2018-04-17 | 报文处理方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110213393B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101437030A (zh) * | 2008-11-29 | 2009-05-20 | 成都市华为赛门铁克科技有限公司 | 一种防止服务器被攻击的方法、检测装置及监控设备 |
CN101572701A (zh) * | 2009-02-10 | 2009-11-04 | 中科正阳信息安全技术有限公司 | 针对DNS服务的抗DDoS攻击安全网关系统 |
US7797738B1 (en) * | 2005-12-14 | 2010-09-14 | At&T Corp. | System and method for avoiding and mitigating a DDoS attack |
CN104009983A (zh) * | 2014-05-14 | 2014-08-27 | 杭州安恒信息技术有限公司 | 一种cc攻击的检测方法及其检测系统 |
US9338184B1 (en) * | 2014-03-11 | 2016-05-10 | Sprint Communications Company L.P. | Systems, methods, and software for improving resistance to distributed denial of service attacks |
CN106789849A (zh) * | 2015-11-24 | 2017-05-31 | 阿里巴巴集团控股有限公司 | Cc攻击识别方法、节点及系统 |
-
2018
- 2018-04-17 CN CN201810345316.2A patent/CN110213393B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797738B1 (en) * | 2005-12-14 | 2010-09-14 | At&T Corp. | System and method for avoiding and mitigating a DDoS attack |
CN101437030A (zh) * | 2008-11-29 | 2009-05-20 | 成都市华为赛门铁克科技有限公司 | 一种防止服务器被攻击的方法、检测装置及监控设备 |
CN101572701A (zh) * | 2009-02-10 | 2009-11-04 | 中科正阳信息安全技术有限公司 | 针对DNS服务的抗DDoS攻击安全网关系统 |
US9338184B1 (en) * | 2014-03-11 | 2016-05-10 | Sprint Communications Company L.P. | Systems, methods, and software for improving resistance to distributed denial of service attacks |
CN104009983A (zh) * | 2014-05-14 | 2014-08-27 | 杭州安恒信息技术有限公司 | 一种cc攻击的检测方法及其检测系统 |
CN106789849A (zh) * | 2015-11-24 | 2017-05-31 | 阿里巴巴集团控股有限公司 | Cc攻击识别方法、节点及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110213393B (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6949249B2 (ja) | 最小限の検証クライアントを使用したトラストレスステートレスインセンティブ型リモートノードネットワーク | |
CN103607385B (zh) | 基于浏览器进行安全检测的方法和装置 | |
US10924281B2 (en) | Method and apparatus for inter-blockchain transmission of authenticable message | |
CN113094396B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
CN110519240B (zh) | 一种单点登录方法、装置及系统 | |
CN111901249A (zh) | 业务限流方法、装置、设备及存储介质 | |
CN101226542B (zh) | 一种报表缓存的方法 | |
CN110311855B (zh) | 用户消息处理方法、装置、电子设备及存储介质 | |
CN110197075A (zh) | 资源访问方法、装置、计算设备以及存储介质 | |
CN106936907B (zh) | 一种文件处理方法、逻辑服务器、接入服务器及系统 | |
CN106161519B (zh) | 一种信息获取方法和装置 | |
CN113572746A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20100036892A1 (en) | Determination of an updated data source from disparate data sources | |
CN110430062B (zh) | 登录请求处理方法、装置、设备及介质 | |
EP2224381A1 (en) | Method and apparatus for case-based service composition | |
CN114490826A (zh) | 请求响应方法、数据存储方法、装置、服务器及存储介质 | |
CN113259449A (zh) | 分布式存储方法、装置、设备及存储介质 | |
CN104125254B (zh) | 获取平台用户资料的方法和系统 | |
CN117390020A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN110213393A (zh) | 报文处理方法及计算机设备 | |
CN115277599B (zh) | 限流场景下的回流方法、装置、计算机设备及存储介质 | |
CN116132528B (zh) | 一种航班管理消息的推送方法、装置及电子设备 | |
CN116860862B (zh) | 低代码平台的前端缓存方法及相关设备 | |
CN111291296B (zh) | 一种内容下发方法和装置 | |
CN118779091A (zh) | 区块链网络的数据处理方法、装置、设备、介质及产品 |
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 |