掌桥专利:专业的专利平台
掌桥专利
首页

基于sketch的DDoS洪泛攻击检测方法及装置

文献发布时间:2023-06-19 10:03:37


基于sketch的DDoS洪泛攻击检测方法及装置

技术领域

本申请涉及互联网技术领域,特别涉及一种基于sketch的DDoS洪泛攻击检测方法及装置。

背景技术

自互联网诞生起,网络安全威胁一直是学术界的重要研究课题。而分布式拒绝服务 (Distributed denial of service,简称DDoS)洪泛攻击是当前非常普遍且严重威胁网络安全的一种攻击方式,给人们和社会经济带来了重大损失。这些攻击通常是通过耗尽带宽,网络资源或服务器资源来发起的。DDoS洪泛攻击发生迅速且后果严重,因此高效地检测DDoS泛洪攻击至关重要。

目前,很多有关DDoS检测的研究工作都会维持每流状态来进行检测分析,然而在实际应用时,为了维持每流状态,这些方法通常无法满足吞吐率要求,或者是空间开销过大,很难针对一个大型网络进行在线检测,有待解决。

申请内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的第一目的在于提出一种基于sketch的DDoS洪泛攻击检测方法,可以在有限的空间消耗下快速有效地检测DDoS洪泛攻击,并且通过滑动操作以获取异常bucket,可以有效识别攻击者。

本发明的第二个目的在于提出一种基于sketch的DDoS洪泛攻击检测装置。

本发明的第三个目的在于提出一种电子设备。

本发明的第四个目的在于提出一种计算机可读存储介质。

为达到上述目的,本申请第一方面实施例提供一种基于sketch的DDoS洪泛攻击检测方法,包括以下步骤:

在系统开始运行时,控制所述系统进入第一预设状态,并学习系统参数;

当所述第一预设状态结束,控制所述系统进入第二预设状态,其中,在每一检测周期,生成相应的Sketch,以统计该检测周期的网络流量,S

当所述系统处于所述第三预设状态时,生成相应的异常Sketch,其中,每一行均包含由滑动操作所产生的若干异常bucket,其中,检查每一个数据包的源IP(InternetProtocol,网际互连协议),若经过sketch中每一行的哈希函数哈希后,均落入到该行的异常bucket中,则认为该源IP是DDoS的攻击者,并发出相应的告警。

另外,根据本发明上述实施例的基于sketch的DDoS洪泛攻击检测方法还可以具有以下附加的技术特征:

可选地,所述动态阈值的生成公式为:

EH

θ

其中,θ

可选地,还包括:

计算S

可选地,所述学习系统参数,包括:

将所有小于预设滑动距离的数值存储在数组中,并通过预设的IQR算法去除明显的异常值,以根据所述数组中剩余最大的值为学习到的所述系统参数。

可选地,所述第一预设状态Train状态,所述第二预设状态为Normal状态,所述第三预设状态为Alert状态。

为达到上述目的,本申请第二方面实施例提供一种基于sketch的DDoS洪泛攻击检测装置,包括:

学习模块,用于在系统开始运行时,控制所述系统进入第一预设状态,并学习系统参数;

控制模块,用于当所述第一预设状态结束,控制所述系统进入第二预设状态,其中,在每一检测周期,生成相应的Sketch,以统计该检测周期的网络流量,S

生成模块,用于在所述系统处于所述第三预设状态时,生成相应的异常Sketch,其中,每一行均包含由滑动操作所产生的若干异常bucket,其中,检查每一个数据包的源IP,若经过sketch中每一行的哈希函数哈希后,均落入到该行的异常bucket中,则认为该源IP是DDoS的攻击者,并发出相应的告警。

可选地,所述动态阈值的生成公式为:

EH

θ

其中,θ

可选地,还包括:

计算模块,用于计算S

为达到上述目的,本申请第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的基于sketch的DDoS洪泛攻击检测方法。

为达到上述目的,本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的基于sketch的DDoS洪泛攻击检测方法。

由此,通过利用sliding sketch计算sketch之间的差异,可以在有限的空间消耗下快速有效地检测DDoS洪泛攻击,并且通过滑动操作以获取异常bucket,可以有效识别攻击者,与现有技术相比,无需进行额外的反向哈希计算或键值存储,同时设计了有效的动态阈值计算方案和自适应参数学习方案,使得本申请的鲁棒性更高且易于部署,对于在线检测和实际部署至关重要。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为根据本申请实施例提供的一种基于sketch的DDoS洪泛攻击检测方法的流程图;

图2为根据本申请一个实施例的基于sketch的DDoS洪泛攻击检测方法的示意图;

图3为根据本申请一个实施例的自适应参数学习示意图;

图4为根据本申请一个实施例的Outside slide和Inside slide在sketch的某一行经过排序后的流量上进行滑动操作示意图;

图5为根据本申请一个实施例Outside slide的示意图;

图6为根据本申请一个实施例的Inside slide的示例图;

图7为根据本申请实施例的基于sketch的DDoS洪泛攻击检测装置的示例图;

图8为本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参照附图描述根据本发明实施例提出的基于sketch的DDoS洪泛攻击检测方法及装置,首先将参照附图描述根据本发明实施例提出的基于sketch的DDoS洪泛攻击检测方法。

具体而言,图1为本申请实施例所提供的一种基于sketch的DDoS洪泛攻击检测方法的流程示意图。

如图1所示,该基于sketch的DDoS洪泛攻击检测方法包括以下步骤:

在步骤S101中,在系统开始运行时,控制系统进入第一预设状态,并学习系统参数。

具体而言,如图2所示,第一预设状态可以为Train状态,例如在系统刚开始运行时,进入Train状态,维持Train状态的时间由管理员指定。当系统在Train状态时,默认所有流量都是良性流量,系统在这个阶段会自动化的学习参数且不会发出任何告警。

可选地,在一些实施例中,学习系统参数,包括:将所有小于预设滑动距离的数值存储在数组中,并通过预设的IQR算法去除明显的异常值,以根据数组中剩余最大的值为学习到的系统参数。

可以理解的是,如表1所示,表1中显示了本申请的主要运行参数,其中,像H,K等参数与检测算法或者使用的sketch数据结构高度相关,通常会在运行前设定一个合适的值。但是θs是控制系统在滑动阶段是否滑动的关键参数,其与当时运行的网络环境高度相关,不同的网络环境会有一个不同的最佳参数θs。因此,为了使得本申请能够更加方便的在实际环境中部署,为θs设计了自适应参数学习模块,其算法如图3所示。

此外,由于将小于θsd的滑动距离视为正常,因此在Train状态下,会将所有小于θsd的最小的正的滑动距离存储在数组Vs中,并通过IQR算法去除明显的异常值,数组中剩余最大的值即为学习到的参数θs。

表1

在步骤S102中,当第一预设状态结束,控制系统进入第二预设状态,其中,在每一检测周期,生成相应的Sketch,以统计该检测周期的网络流量,S

可以理解的是,第二预设状态可以为Normal状态,第三预设状态可以为Alert状态,当Train状态结束,系统会进入Normal状态。在每一检测周期,系统都会生成相应的Sketch,用来统计该检测周期的网络流量,S

需要说明的是,由于在每个检测周期,所有输入的网络流量都会通过一个sketch来进行统计。因此,sketch可以表示为该周期的网络流量的分布情况。在正常情况下,网络流量通常不会在短时间内发生剧烈的变化。而当发生DDoS攻击后,网络流量的分布情况会发生明显的变化,这就会导致正常情况下与攻击情况下的sketch有比较大的差异。

具体而言,本申请提出一种新的数据结构,sliding sketch,其使用滑动操作和Hellinger距离来度量两个sketch的差异。对于sketch的某一行来说,先将所有的bucket按照流量从高到低排序,然后执行两个滑动操作:Outside slide和Inside slide。最后将每个bucket的流量都除以这一行的总流量,可以得到一个向量,将两个sketch得到的两个滑动距离最小的向量使用Hellinger距离即可得到两个sketch之间的差异。

下面具体阐述两个滑动操作:Outside slide和lnside slide:

如图4所示,图4(a)和图4(b)分别为Outside slide和lnside slide在sketch 的某一行经过排序后的流量上进行滑动操作。

具体而言,对于Outside slide来说,图4(a)显示了遭受high-volume DDoS攻击后sketch中一行的流量示意图,可以看到攻击流量不在良性流量之内;应将攻击流量滑动到该行的最右边,以使良性流量的位置保持不变。如图5所示,为了确定要滑动的流量,本申请可以将Δs表示为当前sketch某一行中最左边的桶的流量与上一个正常周期sketch对应行最左边的桶的流量之差,当Δs小于一定阈值时,滑动操作停止。

对于Inside slide来说,若攻击流量比较低,则攻击流量经过排序后会夹杂在正常流量的中间,如图4(b)。这种情况相比于图4(a)要更加复杂,检测也更加困难。因此,尽管攻击流量可能会夹杂在正常流量的中间,本申请只考虑那些流量大小相似的攻击流量,即图4(b)中坡度较平缓的橘黄色区域。本申请的目标不是找出所有攻击流量,而是找到尽可能聚集在一起的low-volume攻击流量。因此,inside slide的核心思想是试图找到一块坡度较为平缓的区域,若其宽度超过一定的阈值,则将其滑动到末尾。若定义(i,j) 处的梯度为G

可选地,在一些实施例中,动态阈值的生成公式为:

EH

θ

其中,θ

可以理解的是,在实际环境中,网络流量是随着时间动态变化的,设定一个固定阈值是不合适的,因此,本申请实施例可以将基于指数加权移动平均(ExponentiallyWeighted Moving-Average,简称EWMA)的方式设定一个动态阈值。考虑到HellingerDistance的变化范围为[0,1],本申请可以将动态阈值的变化范围也控制在[0,1]之中。

具体地,令h

EH

θ

其中,θ

另外,由于本申请检测DDoS攻击的核心思想是检测不同检测周期的Sketch之间是否发生剧烈变化,因此每次总是将当前周期与上一个正常状态下的的Sketch使用滑动技术计算Hellinger距离,并且当距离超过阈值之后,阈值不会再被更新。

在步骤S103中,当系统处于第三预设状态时,生成相应的异常Sketch,其中,每一行均包含由滑动操作所产生的若干异常bucket,其中,检查每一个数据包的源IP,若经过sketch中每一行的哈希函数哈希后,均落入到该行的异常bucket中,则认为该源IP是DDoS的攻击者,并发出相应的告警。

可以理解的是,当系统处于Alert状态,系统会生成相应的异常Sketch,即S

可选地,在一些实施例中,上述的基于sketch的DDoS洪泛攻击检测方法,还包括:计算S

可以理解的是,在发出告警信息的同时,本申请实施例仍然会计算S

根据本申请实施例提出的基于sketch的DDoS洪泛攻击检测方法,通过利用sliding sketch计算sketch之间的差异,可以在有限的空间消耗下快速有效地检测DDoS洪泛攻击,并且通过滑动操作以获取异常bucket,可以有效识别攻击者,与现有技术相比,无需进行额外的反向哈希计算或键值存储,同时设计了有效的动态阈值计算方案和自适应参数学习方案,使得本申请的鲁棒性更高且易于部署,对于在线检测和实际部署至关重要。

其次参照附图描述根据本申请实施例提出的基于sketch的DDoS洪泛攻击检测装置。

图7是本申请实施例的基于sketch的DDoS洪泛攻击检测装置的方框示意图。

如图7所示,该基于sketch的DDoS洪泛攻击检测装置10包括:学习模块100、控制模块200和生成模块300。

其中,学习模块100用于在系统开始运行时,控制系统进入第一预设状态,并学习系统参数;

控制模块200用于当第一预设状态结束,控制系统进入第二预设状态,其中,在每一检测周期,生成相应的Sketch,以统计该检测周期的网络流量,S

生成模块300用于在系统处于第三预设状态时,生成相应的异常Sketch,其中,每一行均包含由滑动操作所产生的若干异常bucket,其中,检查每一个数据包的源IP,若经过sketch中每一行的哈希函数哈希后,均落入到该行的异常bucket中,则认为该源IP是DDoS的攻击者,并发出相应的告警。

可选地,在一些示例中,动态阈值的生成公式为:

EH

θ

其中,θ

可选地,在一些示例中,上述的基于sketch的DDoS洪泛攻击检测装置10,还包括:

计算模块,用于计算S

需要说明的是,前述对基于sketch的DDoS洪泛攻击检测方法实施例的解释说明也适用于该实施例的基于sketch的DDoS洪泛攻击检测装置,此处不再赘述。

根据本申请实施例提出的基于sketch的DDoS洪泛攻击检测装置,通过利用sliding sketch计算sketch之间的差异,可以在有限的空间消耗下快速有效地检测DDoS洪泛攻击,并且通过滑动操作以获取异常bucket,可以有效识别攻击者,与现有技术相比,无需进行额外的反向哈希计算或键值存储,同时设计了有效的动态阈值计算方案和自适应参数学习方案,使得本申请的鲁棒性更高且易于部署,对于在线检测和实际部署至关重要。

图8为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:

存储器1201、处理器1202及存储在存储器1201上并可在处理器1202上运行的计算机程序。

处理器1202执行程序时实现上述实施例中提供的基于sketch的DDoS洪泛攻击检测方法。

进一步地,电子设备还包括:

通信接口1203,用于存储器1201和处理器1202之间的通信。

存储器1201,用于存放可在处理器1202上运行的计算机程序。

存储器1201可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

如果存储器1201、处理器1202和通信接口1203独立实现,则通信接口1203、存储器1201和处理器1202可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(PeripheralComponent,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器1201、处理器1202及通信接口1203,集成在一块芯片上实现,则存储器1201、处理器1202及通信接口1203可以通过内部接口完成相互间的通信。

处理器1202可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。

本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的基于sketch的DDoS洪泛攻击检测方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或N个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 基于sketch的DDoS洪泛攻击检测方法及装置
  • 基于sketch的DDoS洪泛攻击检测方法及装置
技术分类

06120112407121