发明内容
为了解决上述技术问题,本申请提供了一种攻击防护系统、方法、装置和网络设备。
第一方面,提供了一种攻击防护系统。该攻击防护系统包括检测设备和惩罚设备,惩罚设备为在终端和检测设备之间传输数据的设备;
所述检测设备用于在确定待惩罚的终端后,将用于指示惩罚所述终端的第一惩罚参数添加至第一报文中,并向所述终端发送所述第一报文,所述第一报文的报文头中有预定标识;
所述惩罚设备用于拦截报文头中有所述预定标识的所述第一报文,在所述第一报文包括所述第一惩罚参数时,生成包括第二惩罚参数的第二报文,所述第二报文的报文头中有所述预定标识,并向所述终端发送所述第二报文,并在发送所述第二报文后的第一预定时长内未接收到第一惩罚结果时,根据所述第一惩罚参数执行对所述终端的惩罚操作,所述第一惩罚结果用于指示所述终端已被惩罚。
由于惩罚设备可以将惩罚参数发送给下游设备,这样可以由离终端较近的设备控制终端的攻击,可以防御不经过检测设备的攻击报文,达到了精准惩罚的目的。
结合第一方面,在第一方面的第一种实现中,所述第一惩罚参数包括取值用于指示等待时长的时长参数,所述惩罚设备还用于将所述第一惩罚参数中的时长参数的取值确定为所述第一预定时长;
或者,
所述第一惩罚参数包括用于计算等待时长的时长计算参数,所述惩罚设备还用于根据所述第一惩罚参数中的时长计算参数的取值计算等待时长,将计算得到的所述等待时长确定为所述第一预定时长。
结合第一方面或第一方面的第一种实现,在第一方面的第二种实现中,当所述第一惩罚参数包括取值用于指示等待时长的时长参数时,所述惩罚设备还用于将所述时长参数的取值减少后作为所述第二惩罚参数的时长参数;
当所述第一惩罚参数包括用于计算等待时长的时长计算参数时,所述惩罚设备还用于将所述时长计算参数减少后作为所述第二惩罚参数的时长计算参数。
结合第一方面的第二种实现,在第一方面的第三种实现中,当所述第一惩罚参数包括取值用于指示等待时长的时长参数时,所述惩罚设备还用于将所述第二惩罚参数的时长参数确定为所述第一预定时长;
或者,
当所述第一惩罚参数包括用于计算等待时长的时长计算参数时,所述惩罚设备还用于,根据所述第二惩罚参数的时长计算参数计算等待时长,将得到的等待时长确定为所述第一预定时长。
结合第一方面的第二种实现,在第一方面的第四种实现中,当所述第一惩罚参数包括取值用于指示等待时长的时长参数时,所述惩罚设备还用于将所述第一惩罚参数的时长参数确定为所述第一预定时长;当所述第一惩罚参数包括用于计算等待时长的时长计算参数时,所述惩罚设备还用于根据所述第一惩罚参数计算等待时长,将得到的等待时长确定为所述第一预定时长。
由于从检测设备到待惩罚终端路径上各个设备的等待时长不断减少,因此离待惩罚终端最近的具备惩罚能力的设备的等待时长最先到达,执行对终端的惩罚操作,而离待惩罚设备较远的具备惩罚能力的设备不再执行对终端的惩罚操作。
结合第一方面、第一方面的第一种实现至第一方面的第四种实现中的一种,在第一方面的第五种实现中,所述惩罚设备还用于在发送所述第二报文后的第一预定时长内接收到所述第一惩罚结果时,忽略执行对所述终端的惩罚操作,并转发所述第一惩罚结果。
本接收到惩罚结果的惩罚设备不执行对终端的惩罚操作,可以避免重复执行另一惩罚设备已执行过的惩罚操作。
结合第一方面以及第一方面的第一种实现至第一方面的第五种实现中的一种,在第一方面的第六种实现中,所述惩罚设备还用于在执行了对所述终端的惩罚操作后,生成第二惩罚结果,向所述检测设备发送所述第二惩罚结果,所述第二惩罚结果用于指示所述终端已被惩罚。
惩罚设备对终端执行惩罚操作后,生成惩罚结果,可以避免检测设备及可能存在的其它惩罚设备重复执行惩罚操作。
结合第一方面以及第一方面的第一种实现至第一方面的第六种实现中的一种,在第一方面的第七种实现中,所述检测设备还用于在发送所述第一报文后的第二预定时长内未接收到惩罚结果时,执行对所述终端的惩罚操作,所述第二预定时长为所述第一惩罚参数中的等待时长,或者所述第二预定时长大于所述第一惩罚参数所限定的等待时长。
检测设备在没有惩罚设备返回惩罚结果时执行对终端的惩罚操作,可以在缺乏惩罚设备配合时,保证对终端的惩罚操作。
结合第一方面以及第一方面的第一种实现至第一方面的第七种实现中的一种,在第一方面的第八种实现中,惩罚设备还用于根据第一惩罚参数建立惩罚任务;在接收到第一惩罚结果后,删除该惩罚任务。
建立与终端对应的惩罚任务,便于惩罚设备对惩罚任务的管理。
结合第一方面以及第一方面的第一种实现至第一方面的第八种实现中的一种,在第一方面的第九种实现中,所述第一报文的目的地址为待惩罚的终端的地址;所述第二报文的目的地址为待惩罚的终端的地址;所述第一惩罚结果包括被惩罚的终端的地址,所述第一惩罚结果的源地址为惩罚所述终端的惩罚设备的地址;所述第二惩罚结果包括被惩罚的终端的地址,所述第二惩罚结果的源地址为惩罚所述终端的惩罚设备的地址。
结合第一方面以及第一方面的第一种实现至第一方面的第九种实现中的一种,在第一方面的第十种实现中,惩罚设备还用于获取第一惩罚参数中指示的惩罚动作,根据所述惩罚设备自身的处理能力,判定是否具备惩罚所述终端的惩罚能力。
根据惩罚动作判定自身是否具有惩罚该终端的惩罚能力,避免在不具备惩罚能力时,因执行惩罚操作造成对处理器的过度负担。
第二方面,提供了一种攻击防护方法。该攻击防护方法应用于攻击防护系统的检测设备中,该攻击防护系统还包括惩罚设备,惩罚设备为在终端和检测设备之间传输数据的设备,该方法包括:
检测设备在确定待惩罚的终端后,将用于指示惩罚所述终端的惩罚参数添加至报文中;
所述检测设备向所述终端发送所述报文,所述报文的报文头中有预定标识,所述报文用于触发惩罚设备拦截所述报文,所述惩罚设备为在终端和所述检测设备之间传输数据的设备;
所述检测设备在发送所述报文后的预定时长内未接收到所述惩罚设备发送的惩罚结果时,执行对所述终端的惩罚操作,所述预定时长和所述惩罚参数中的等待时长相关,所述惩罚结果用于指示所述终端已被惩罚。
第三方面,提供了一种攻击防护方法。该方法包括:
惩罚设备拦截报文头中有预定标识的第一报文,所述第一报文包括第一惩罚参数,其中,所述第一报文来自检测设备,所述惩罚设备为在终端和所述检测设备之间传输数据的设备;
所述惩罚设备在所述第一报文包括第一惩罚参数时,生成包括第二惩罚参数的第二报文,所述第二报文的报文头中有所述预定标识;
所述惩罚设备向待惩罚的终端发送所述第二报文;
在发送所述第二报文后的预定时长内未接收到第一惩罚结果时,所述惩罚设备根据所述第一惩罚参数执行对所述终端的惩罚操作,所述第一惩罚结果用于指示所述终端已被惩罚。
结合第三方面,在第三方面的第一种实现中,所述方法还包括:
当所述第一惩罚参数包括取值用于指示等待时长的时长参数时,所述惩罚设备将所述第一惩罚参数中的时长参数的取值确定为所述预定时长;
或者,
当所述第一惩罚参数包括用于计算等待时长的时长计算参数时,所述惩罚设备根据所述第一惩罚参数中的时长计算参数的取值计算等待时长,将计算得到的所述等待时长确定为所述预定时长。
结合第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述方法还包括:
当所述第一惩罚参数包括取值用于指示等待时长的时长参数时,所述惩罚设备将所述时长参数的取值减少后作为所述第二惩罚参数的时长参数;
当所述第一惩罚参数包括用于计算等待时长的时长计算参数时,所述惩罚设备将所述时长计算参数减少后作为所述第二惩罚参数的时长计算参数。
结合第三方面以及第三方面的第一种实现至第三方面的第二种实现中的一种,在第三方面的第三种实现中,所述方法还包括:
在发送所述第二报文后的预定时长内接收到所述第一惩罚结果时,所述惩罚设备忽略执行对所述终端的惩罚操作,并转发所述第一惩罚结果。
结合第三方面以及第三方面的第一种实现至第三方面的第三种实现中的一种,在第三方面的第四种实现中,该方法还包括:
在执行了对所述终端的惩罚操作后,所述惩罚设备生成第二惩罚结果,向所述检测设备发送所述第二惩罚结果,所述第二惩罚结果用于指示所述终端已被惩罚。
第四方面,提供了一种攻击防护装置。该攻击防护装置包括至少一个单元,每个单元用于实现上述第二方面的攻击防护方法中的对应步骤。
第五方面,提供了一种网络设备。该网络设备包括:处理器,该处理器用于实现上述第二方面的攻击防护方法的对应步骤。
第六方面,提供了一种网络设备。该网络设备包括:转发面、控制面,
转发面,用于拦截报文头中有第一预定标识的第一报文,所述第一报文包括第一惩罚参数;
控制面,用于生成包括第二惩罚参数的第二报文,所述第二报文的报文头中有所述第一预定标识,向待惩罚的终端发送所述第二报文,在所述转发面发送所述第二报文后的预定时长内未接收到第一惩罚结果时,根据所述第一惩罚参数执行对所述终端的惩罚操作,所述第一惩罚结果用于指示所述终端已被惩罚。
结合第六方面,在第六方面的第一种实现中,所述控制面,还用于当所述第一惩罚参数包括取值用于指示等待时长的时长参数时,将所述第一惩罚参数中的时长参数的取值确定为所述预定时长;
或者,
所述控制面,还用于当所述第一惩罚参数包括用于计算等待时长的时长计算参数时,所述惩罚设备还用于根据所述第一惩罚参数中的时长计算参数的取值计算等待时长,将计算得到的所述等待时长确定为所述预定时长。
结合第六方面或第六方面的第一种实现,在第六方面的第二种实现中,所述控制面,还用于当所述第一惩罚参数包括取值用于指示等待时长的时长参数时,将所述时长参数的取值减少后作为所述第二惩罚参数的时长参数;
所述控制面,还用于当所述第一惩罚参数包括用于计算等待时长的时长计算参数时,将所述时长计算参数减少后作为所述第二惩罚参数的时长计算参数。
结合第六方面以及第六方面的第一种实现至第六方面的第二种实现中的一种,在第六方面的第三种实现中,所述控制面,还用于在执行了对所述终端的惩罚操作后,生成第二惩罚结果,所述第二惩罚结果用于指示所述终端已被惩罚;
所述转发面,还用于向所述检测设备发送所述第二惩罚结果。
结合第六方面以及第六方面的第一种实现至第六方面的第三种实现中的一种,在第六方面的第四种实现中,所述转发面,还用于拦截报文头中包含第二预定标识的所述第一惩罚结果,并将拦截的所述第一惩罚结果发送至所述控制面。
第七方面,提供了一种计算机可读介质,该计算机可读介质用于实现第二方面所提供的攻击防护方法的指令,或者,该计算机可读介质用于实现第三方面所提供的攻击防护方法的指令。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一示例性实施例提供的攻击防护系统的结构示意图。该攻击防护系统包括:检测设备110和惩罚设备120。
在一个攻击防护系统中,存在终端130和检测设备110,终端130的数据可以依次经过至少一个网络设备被传输至检测设备110,或者,检测设备110发出的数据可以依次经过这些网络设备被传输至终端130。在终端130和检测设备110之间传送数据的网络设备中具有惩罚能力的网络设备被称为惩罚设备120。
可选的,攻击防护系统中可以包括多个检测设备和多个终端,本实施例中仅以利用一个检测设备和一个终端之间的传输路径上的网络设备作为惩罚设备为例进行说明。
请参考图2A,其示出了本发明一示例性实施例提供的攻击防护方法的流程图。本实施例以该方法用于如图1所示的攻击防护系统中来举例说明,该方法包括以下几个步骤:
步骤201,检测设备在确定待惩罚的终端后,将用于指示惩罚该终端的第一惩罚参数添加至第一报文中。
检测设备可以根据接收到的报文,确定出待惩罚的终端,比如,当某一终端发送特定类型的报文的速率超过预定速率阈值时,则可以判定该终端存在攻击行为,此时可以将该终端认定为待惩罚的终端。
第一报文包括第一惩罚参数,这里的第一惩罚参数用于指示需要对待惩罚的终端进行惩罚。
为了找到离待惩罚的终端最近的具有惩罚能力的设备,检测设备向待惩罚的终端发送该第一报文。第一报文中的目的地址为待惩罚的终端的地址。
以地址解析协议(英文:Address Resolution Protocol,ARP)攻击为例,在检测设备根据ARP报文确定待惩罚的终端时,可以记录待惩罚终端的媒体访问控制(英文:Media Access Control,MAC)地址。还可以记录相应的虚拟局域网(英文:virtual local area network,VLAN)标识。例如,检测设备可以将该终端的MAC地址以及VLAN标识存储至检测设备的待惩罚列表中。检测设备的待惩罚列表用于存储各个待惩罚终端的信息。
表1为待惩罚列表的一个例子。
表1
对每一个待惩罚终端,检测设备均在待惩罚列表中记录一组第一类参数,每组第一类参数至少包括待惩罚的终端的地址,比如可以为待惩罚的终端的MAC地址,每组第一类参数还可以包括惩罚动作、用于指示待惩罚终端尚未被惩罚的待惩罚状态以及用于计算等待时长的时长计算参数。表1中的时长计算参数还可以被替换为用于指示等待时长的时长参数。
为了便于后期的统计,检测设备还可以存储已惩罚列表。在每个终端被惩罚后,检测设备均在已惩罚列表中记录一组第二类参数,每组第二类参数可以包括被惩罚的终端的地址,比如可以为被惩罚的终端的MAC地址,每组第二类参数还可以包括对终端进行惩罚的惩罚设备的地址、对待惩罚终端进行惩罚的实际惩罚动作等。已惩罚列表和待惩罚列表可以被独立维护,也可以共存在一张表中并被统一维护。
检测设备可以根据待惩罚列表中每组第一类参数分别生成第一报文,第一报文中的第一惩罚参数至少包括待惩罚的终端的地址。当生成第一报文的第一类参数中包括时长计算参数时,第一惩罚参数还可以包括该时长计算参数;当生成第一报文的参数中包括时长参数时,第一惩罚参数还可以包括该时长参数。可选的,第一惩罚参数还可以包括惩罚动作,该惩罚动作用于指示对待惩罚终端执行惩罚操作时的惩罚方式。
为了让其他接收到该第一报文的设备得知该第一报文为用于指示惩罚终端的报文,检测设备可以在第一报文的报文头中添加第一预定标识。可选的,第一预定标识可以作为第一惩罚参数的一部分。
在一种可选的实现中,添加有第一预定标识的第一报文的报文头可以如图2B所示,图2B中惩罚报文的报文头中的字段含义如下:目的MAC地址、源MAC地址、第一预定标识等。如果惩罚报文包括网际协议(英文:InternetProtocol,IP)头,第一报文还包括目的IP地址。第一预定标识在报文头中的位置并不局限于图2B中所示出的位置。
可选的,第一报文包括的第一惩罚参数均在第一报文的报文头中。比如,第一报文的第一惩罚参数中的待惩罚的终端的地址、时长计算参数(或时长参数)、第一预定标识等均在第一报文的报文头中。其中,以第一报文的目的MAC地址作为待惩罚的终端的地址。可替换的,第一惩罚参数的部分参数在第一报文的报文头中,第一惩罚参数的另一部分参数在第一报文的报文体中。比如,以第一报文的目的MAC地址作为待惩罚的终端的地址,即第一报文的第一惩罚参数中的待惩罚的终端的地址在第一报文的报文头中,而时长计算参数(或时长参数)、第一预定标识在第一报文的报文体中。可替换的,第一惩罚参数均在第一报文的报文体中。比如,第一报文的报文体携带待惩罚的终端的地址、时长计算参数(或时长参数)、第一预定标识。报文体中的待惩罚的终端的地址可以是待惩罚的终端的MAC地址或IP地址。如果惩罚报文包括IP头,待惩罚的终端的地址可以是IP头中的目的IP地址。
检测设备生成第一报文的目的是将该第一报文向待惩罚的终端的方向发送,因此,第一报文的目的地址为待惩罚的终端的地址。
另外,检测设备将检测设备的MAC地址作为第一报文的源MAC地址,以便在惩罚设备对终端执行惩罚操作后,将惩罚结果发送至检测设备。
步骤202,检测设备向该终端发送该第一报文。
检测设备向待惩罚的终端发送该第一报文,第一报文的目的地址为待惩罚终端的地址。
可选的,检测设备可以将发送该第一报文的发送时刻记录到待惩罚列表中,该发送时刻作为第一预定时长的起始时刻;或者检测设备在发送该第一报文时,开启与该第一报文对应的定时器,该定时器的定时时长为第一预定时长。第一预定时长可以为第一报文中第一惩罚参数所限定的等待时长,或者大于第一报文中第一惩罚参数所限定的等待时长。当第一报文的第一惩罚参数包括用于指示等待时长的时长参数时,该等待时长可以等于或大于第一惩罚参数中时长参数的取值;当第一报文的第一惩罚参数包括时长计算参数时,该等待时长可以等于或大于根据第一报文的第一惩罚参数中时长计算参数计算得到的时长。
在一种实现中,结合检测设备的具体结构对上述步骤201和步骤202进行举例说明。检测设备的结构可以参见图3所示,请参考图3,其示出了本发明一示例性实施例提供的检测设备的结构示意图。该检测设备包括:处理器31、网络接口32和存储器33。
处理器31可以是CPU,网络处理器(英文:network processor,NP)或者CPU和NP的组合。处理器31还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,ASIC),可编程逻辑器件(英文:programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,FPGA),通用阵列逻辑(英文:generic array logic,GAL)或其任意组合。
网络接口32可以是有线通信接口,无线通信接口或其组合。有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。
存储器33用总线或其它方式与处理器31相连。
存储器33可以为易失性存储器(英文:volatile memory),非易失性存储器(英文:non-volatile memory)或者它们的组合。易失性存储器可以为随机存取存储器(英文:random-access memory,RAM),例如静态随机存取存储器(英文:static random access memory,SRAM),动态随机存取存储器(英文:dynamicrandom access memory,DRAM)。非易失性存储器可以为只读存储器(英文:readonly memory image,ROM),例如可编程只读存储器(英文:programmable readonly memory,PROM),可擦除可编程只读存储器(英文:erasable programmableread only memory,EPROM),电可擦除可编程只读存储器(英文:electricallyerasable programmable read-only memory,EEPROM)。非易失性存储器也可以为快闪存储器(英文:flash memory),磁存储器,例如磁带(英文:magnetic tape),软盘(英文:floppy disk),硬盘。非易失性存储器也可以为光盘。
其中,存储器33中可以存储上述的待惩罚列表,处理器31在确定一个待惩罚的终端后,可以为其生成一组参数并添加至待惩罚列表中。处理器31根据待惩罚列表确定每个待惩罚终端所对应的第一惩罚参数,并将用于指示惩罚该终端的第一惩罚参数添加至第一报文中,具体实现可以参见对步骤201的描述;处理器31还利用网络接口32向终端发送第一报文,具体实现可以参见对步骤202的描述。
由于检测设备与待惩罚终端之间可能会有一个或多个惩罚设备,每个惩罚设备执行的操作均类似,这里仅以检测设备与待惩罚设备之间的一个惩罚设备举例,说明该惩罚设备执行的操作。
在一种实现中,惩罚设备的结构可以参见图4所示,其示出了本发明一示例性实施例提供的惩罚设备的结构示意图。该惩罚设备包括:转发面41、控制面42和网络接口43。
转发面41可以包括转发芯片411,转发面41可以与其他网络设备或终端进行通信,转发芯片411可以选择不同的网络接口43。
控制面42可以是控制芯片。例如,控制面42可以由CPU实现,也可以由有控制面功能的网络处理器NP实现。
转发面41可以包括独立的转发芯片,也可以和控制面42一起由单个芯片实现。例如,转发面41可以由ASIC,PLD,NP,多核CPU中用于实现转发面的核心或其任意组合实现。为了识别报文,转发面41还可以包括内容可寻址存储器(英文:content-addressable memory,CAM)412,例如三态CAM(英文:ternary CAM,TCAM)。为了识别待惩罚的终端发送来的报文,CAM 412存储有用于匹配报文头中源地址为待惩罚的终端的地址的访问控制列表(英文:access control list,ACL);为了识别检测设备发送的包括第一预定标识的报文,CAM 412存储有匹配第一预定标识的访问控制列表(英文:access control list,ACL);为了识别设备发送的包括第二预定标识的报文,CAM 412存储有匹配第二预定标识的访问控制列表(英文:access control list,ACL)。转发芯片411从网络接口43获取到报文后,会将报文的报文头发送至CAM 412,CAM 412利用存储的ACL对报文头进行识别,将识别结果发送给转发芯片411,转发芯片411根据识别结果确定是丢弃报文,还是将报文发送至控制面42。如果转发面41包括NP或多核CPU中用于实现转发面的核心,也可以不使用CAM 412识别上述各类报文,而由NP或CPU识别上述各类报文。
为了能更清楚的说明惩罚设备在攻击防护过程中的实现过程,下面结合图4中惩罚设备的具体结构对步骤203至步骤207进行说明。
步骤203,惩罚设备拦截报文头中有第一预定标识的第一报文,在第一报文包括第一惩罚参数时,生成包括第二惩罚参数的第二报文。
对于目的地址不是自身地址的报文,一般的网络设备会直接根据报文的目的地址转发该报文。为了拦截第一报文,惩罚设备用第一预定标识尝试匹配接收到的报文。惩罚设备拦截报文头中有第一预定标识的报文,并可以直接转发报文头中不包括第一预定标识的报文。例如,惩罚设备的CAM 412中可以存储匹配项为第一预定标识的ACL,当惩罚设备的网络接口43接收到报文后,会将报文发送给惩罚设备的转发芯片411,惩罚设备的转发芯片411将包括报文的报文头发送给CAM 412时,CAM 412利用匹配项为第一预定标识的ACL,可以识别出报文头中是否包括第一预定标识,并将识别结果发送给转发芯片411,当识别结果指示报文的报文头中包括第一预定标识,转发芯片411则将该报文发送到控制面42。
惩罚设备可以根据第一报文中的第一惩罚参数,生成包括第二惩罚参数的第二报文,第二报文的报文头中有第一预定标识。
第二惩罚参数所限定的等待时长与第一惩罚参数所限定的等待时长不同,通常,第二惩罚参数所限定的等待时长小于第一惩罚参数所限定的等待时长。这里的等待时长是设备在惩罚该待惩罚终端需要等待的时长。第二惩罚参数中的其它信息和第一惩罚参数中的相同。
可选的,当第一惩罚参数包括取值用于指示等待时长的时长参数时,惩罚设备将该时长参数的取值减少后作为第二惩罚参数的时长参数,并将第一惩罚参数中的其他参数作为第二惩罚参数中的参数。可选的,当第一惩罚参数包括用于计算等待时长的时长计算参数时,惩罚设备将该时长计算参数减少后作为第二惩罚参数的时长计算参数,并将第一惩罚参数中的其他参数作为第二惩罚数中的参数。
当时长计算参数与等待时长成正相关时,将时长计算参数减少用于指示将时长计算参数的取值减少,从而使得通过时长计算参数计算得到的等待时长减小;当时长计算参数与等待时长成负相关时,将时长计算参数减少用于指示将时长计算参数的取值增大,从而使得通过时长计算参数计算得到的等待时长减小。
可选的,惩罚设备拦截报文头中有第一预定标识的第一报文后,在判定自身具有惩罚能力时,利用第一报文包括的第一惩罚参数,生成包括第二惩罚参数的第二报文。
当第一惩罚参数包括惩罚动作时,惩罚设备还可以根据惩罚动作以及惩罚设备自身的处理能力,判定是否具备惩罚终端的惩罚能力。惩罚动作可以是攻击防护系统中预先定义的惩罚动作,也可以是第一惩罚参数中指示的惩罚动作。举例来讲,当惩罚设备的惩罚动作为阻塞终端时,根据惩罚设备对报文的处理能力,判定惩罚设备是否具备惩罚能力。再举例来讲,当惩罚设备的惩罚动作为阻塞接口时,根据惩罚设备所存储的拦截规则,判定惩罚设备是否具备惩罚能力。一般来讲,惩罚设备已存储的拦截规则超过预定阈值,或者惩罚设备的处理负担较大,则可以判定惩罚设备的转发面41不具有惩罚能力。若惩罚设备的转发面41具有惩罚能力,控制面42则生成第二报文,若惩罚设备的转发面41不具有惩罚能力,则将第一报文发送至转发面41,由转发面41根据第一报文的目的地址选择对应的网络接口,将该第一报文发送出去。
惩罚设备根据惩罚动作判定自身是否具有惩罚该终端的惩罚能力,避免在不具备惩罚能力时,因执行惩罚操作造成对惩罚设备的过度负担。
步骤204,惩罚设备向该终端发送第二报文。
惩罚设备向该终端发送包括第二惩罚参数的第二报文,第二报文中的目的地址仍旧为第一报文中的目的地址,也即待惩罚的终端的地址。
惩罚设备的控制面42在生成第二报文后,会将第二报文发送至惩罚设备的转发面41,比如发送至转发芯片411,转发芯片411根据第二报文的目的地址选择发送该第二报文的网络接口43,通过选择的网络接口43将该第二报文发送出去。
步骤205,惩罚设备在发送第二报文后的第二预定时长内未接收到第一惩罚结果时,根据第一惩罚参数执行对终端的惩罚操作,生成第二惩罚结果。
第二预定时长等于第二惩罚参数限定的等待时长,或大于第二惩罚参数限定的等待时长。
以第一惩罚参数中包括时长参数为例,检测设备将第一惩罚参数中的时长参数的取值确定为第一预定时长,惩罚设备将获取的第一惩罚参数中的时长参数的取值减少,将减少的时长参数确定为第二预定时长,将减少的时长参数作为第二惩罚参数包括的时长参数。或者,检测设备将第一预定时长减少后确定第一惩罚参数中的时长参数,惩罚设备将获取的第一惩罚参数中的时长参数的取值确定为第二预定时长,将第一惩罚参数包括的时长参数减少后作为第二惩罚参数包括的时长参数。
以惩罚参数中包括时长计算参数为例,检测设备根据第一惩罚参数中的时长计算参数计算等待时长,将得到的等待时长确定为第一预定时长,惩罚设备将获取的第一惩罚参数中的时长计算参数减少,根据减少的时长计算参数计算等待时长,将得到的等待时长确定为第二预定时长。或者,检测设备将第一预定时长对应的时长计算参数减少,将减少后的时长计算参数作为第一惩罚参数中的时长计算参数,惩罚设备根据第一惩罚参数中的时长计算参数计算等待时长,将该等待时长确定为第二预定时长,将第一惩罚参数包括的时长计算参数减少后作为第二惩罚参数包括的时长计算参数。
第一惩罚结果用于指示该终端已被惩罚。一般的,第一惩罚结果中可以包括被惩罚的终端的地址,第一惩罚结果的目的地址为检测设备的地址,第一惩罚结果还可以包括惩罚该终端的设备的地址以及第二预定标识。第二预定标识可以与第一预定标识相同或不同。在第二预定标识与第一预定标识相同时,惩罚设备可以根据报文的报文头中的其他字段确定报文是否为惩罚结果。
类似的,对于目的地址不是自身地址的报文,一般的网络设备会直接根据报文的目的地址转发该报文。为了拦截第一惩罚结果,惩罚设备用第二预定标识尝试匹配接收到的报文。惩罚设备拦截报文头中有第二预定标识的报文,并可以直接转发报文头中不包括第二预定标识的报文。例如,惩罚设备的CAM 412中可以存储匹配项为第二预定标识的ACL,当惩罚设备的网络接口43接收到报文后,会将报文发送给惩罚设备的转发芯片411,惩罚设备的转发芯片411将包括报文的报文头发送给CAM 412时,CAM 412利用匹配项为第二预定标识的ACL,可以识别出报文头中是否包括第二预定标识,并将识别结果发送给转发芯片411,当识别结果指示报文的报文头中包括第二预定标识,转发芯片411则将该报文发送到控制面42。如果第二预定标识与第一预定标识不同,控制面42可以根据第二预定标识或者根据报文的报文头中的其他字段确定报文是否为惩罚结果。如果第二预定标识与第一预定标识相同,控制面42可以根据报文的报文头中的其他字段确定报文是否为惩罚结果。
惩罚设备在发送第二报文后的第二预定时长内未接收到第一惩罚结果,表明下游的设备并没有执行惩罚该待惩罚的终端的操作,此时惩罚设备则根据第一惩罚参数执行对终端的惩罚操作,生成第二惩罚结果。
这里的第二惩罚结果用于指示该终端已被惩罚。一般的,第二惩罚结果中可以包括被惩罚的终端的地址,惩罚该终端的设备的地址(也即该惩罚设备的地址)和第二预定标识。
为了能够使得第二惩罚结果可以发送至检测设备,一般的,惩罚设备可以从第一报文中得到检测设备的地址,将检测设备的地址作为第二惩罚结果的目的地址。
惩罚结果中的目的地址可以是检测设备的地址。
本步骤实现时,惩罚设备的转发面41可以将包括第二预定标识的报文进行拦截,在发送第二报文后的第二预定时长内未接收到被控制面42判定为第一惩罚结果的报文时,控制面42则可以根据第一惩罚参数执行对终端的惩罚操作,生成第二惩罚结果。
惩罚设备在对待惩罚终端发送来的报文进行惩罚时,可以根据惩罚动作进行不同的惩罚操作。比如,惩罚动作为阻塞终端,惩罚设备的CAM 412中可以添加ACL,该ACL的匹配项用于匹配报文头中源地址为待惩罚终端的地址,当惩罚设备的网络接口43接收到报文后,会将报文发送给惩罚设备的转发芯片411,惩罚设备的转发芯片411将包括报文的报文头发送给CAM 412时,CAM412利用匹配项为用于匹配报文头中源地址为待惩罚终端的地址的ACL,可以识别出报文头中的源地址是否为待惩罚终端的地址,并将识别结果发送给转发芯片411,当识别结果指示报文的报文头中源地址为待惩罚终端的地址,转发芯片411则丢弃该报文。
还比如,惩罚动作为阻塞接口,惩罚设备在确定出接收待惩罚终端发送的报文的网络接口时,禁止该网络接口继续接收报文,也即关闭接收待惩罚终端发送的报文的网络接口。
步骤206,惩罚设备向检测设备发送第二惩罚结果。
由于第二惩罚结果的目的地址为检测设备的地址,因此惩罚设备的转发面41会向检测设备发送该第二惩罚结果。
惩罚设备的控制面42将生成的第二惩罚结果发送至转发面41的转发芯片411,转发芯片411根据第二惩罚结果的目的地址选择对应的网络接口43,由被选择的网络接口43发送该第二惩罚结果。
步骤207,惩罚设备在发送第二报文后的第二预定时长内接收到第一惩罚结果时,忽略执行对该终端的惩罚操作,并转发第一惩罚结果。
惩罚设备在发送第二报文后的第二预定时长内接收到第一惩罚结果时,则表明下游的设备已经成功对待惩罚的终端执行了惩罚操作,此时惩罚设备不再对该终端进行惩罚操作,也即忽略执行对该终端的惩罚操作,并转发第一惩罚结果。
一种实现中,第二预定标识和第一预定标识可以相同也可以不同。惩罚设备的转发面41拦截包括第二预定标识的报文,并将拦截到的报文发送至控制面42,控制面42根据报文头中的第二预定标识或者根据其他字段判定接收到的报文是否为惩罚结果。如果接收到的报文是惩罚结果,即第一惩罚结果,则忽略执行对该终端的第一惩罚操作。控制面42可以将该第一惩罚结果发送至转发面41,转发面41的转发芯片411根据第一惩罚结果中的目的地址选择对应的网络接口43,由被选择的网络接口43发送该第一惩罚结果。
另一种实现中,第二预定标识和第一预定标识不同,因此转发面41可以区分用于指示对待惩罚终端进行惩罚的报文和惩罚结果。转发面41拦截包括第二预定标识的报文,复制该包括第二预定标识的报文,并继续转发原报文。转发面41将复制得到的报文发送至控制面42。控制面42接收到复制得到的报文后判定该报文为惩罚结果,即第一惩罚结果,则忽略执行对该终端的第一惩罚操作。
步骤208,检测设备在发送第一报文后的第一预定时长内未接收到惩罚结果时,执行对该终端的惩罚操作。
检测设备若在发送第一报文后的第一预定时长内未接收到惩罚结果,表明其他设备并未成功完成对待惩罚终端的惩罚操作,此时检测设备在可以执行对待惩罚终端的惩罚操作。
这里的第一预定时长可以参考步骤202中的描述,这里就不再赘述。
可选的,检测设备开启了与第一报文对应的定时器,检测设备在与该第一报文对应的定时器超时,且尚未接收到与该第一报文对应的惩罚结果时,则对该第一报文对应的终端进行惩罚。或者,检测设备的待惩罚列表中记录了第一报文的发送时刻,检测从该发送时刻起是否达到第一预定时长,若检测到从该发送时刻起达到第一预定时长,且尚未接收到与该第一报文对应的惩罚结果,则对该第一报文对应的终端进行惩罚。
若检测设备在发送第一报文后的第一预定时长内接收到惩罚结果,则可以将与惩罚结果对应的第二类参数记录至已惩罚列表中。比如,已惩罚列表中需要记录的第二类参数包括被惩罚的终端的地址和对终端进行惩罚的惩罚设备的地址等,检测设备可以从接收到的该惩罚结果获取被惩罚的终端的地址和对终端进行惩罚的惩罚设备的地址等,并将获取的这些参数添加至已惩罚列表中。可选的,检测设备可以将待惩罚列表中与该惩罚结果所涉及的被惩罚终端相关的第一类参数删除。
需要说明的是,检测设备中存储的与攻击终端的惩罚操作相关的记录信息并不局限于记录在上述的待惩罚列表和已惩罚列表中。在另一种实现中,检测设备中可以存储惩罚记录列表,该惩罚记录列表的每组第三类参数用于记录对攻击终端的进行惩罚操作的相关信息。比如,第三类参数包括攻击终端的地址、惩罚状态、对该攻击终端进行惩罚的惩罚设备的地址等,当该攻击终端尚未被惩罚时,惩罚状态为“待惩罚”,对该攻击终端进行惩罚的惩罚设备的地址为空;当该攻击终端被惩罚后,将该终端的第三类参数中的惩罚状态修改为“已惩罚”,将对该攻击终端进行惩罚的惩罚设备的地址设置为惩罚该终端的设备的地址。
上述实施例中记载的“第一”、“第二”等词语用来表示名称,而并不表示任何特定的顺序。
综上所述,本公开实施例提供的攻击防护方法,检测设备在确定出待惩罚终端后,会向该待惩罚终端发送携带有惩罚参数的报文,在该报文向该待惩罚终端发送时会经过位于检测设备和待惩罚终端之间的设备,这些设备在具备惩罚能力的情况下,减少惩罚参数所限定的等待时长后,继续生成带有更新后的惩罚参数的报文,并向待惩罚终端发送生成的报文,从而使得检测设备、待惩罚终端以及两者中间的设备形成一条惩罚线路,且由于每经过一个设备,惩罚参数所限定的等待时长均会减少,因此离待惩罚终端最近的具有惩罚能力的设备的等待时长会最先到达,从而执行对待惩罚终端的惩罚操作。通过上述攻击防护方法可以防御不经过检测设备的攻击报文,达到了精准惩罚的目的。
请参考图5,其示出了本发明一个实施例提供的攻击防护装置的框图。该攻击防护装置可以通过软件、硬件或者两者的结合实现成为检测设备的全部或者一部分。该攻击防护装置可以包括:执行单元510和发送单元520。
执行单元510,用于实现上述步骤201、步骤208功能。
发送单元520,用于实现上述步骤202功能。
相关细节可结合参考上述方法实施例。
本发明再一个实施例中还公开一种攻击防护装置。该攻击防护装置可以通过软件、硬件或者两者的结合实现成为检测设备的全部或者一部分。该攻击防护装置可以包括:处理器,该处理器用于实现上述步骤201、步骤202和步骤208的功能。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此。本发明的保护范围应该以权利要求的保护范围为准。