DoS/DDoS攻击检测方法和装置与流程

文档序号:11138664阅读:1832来源:国知局
DoS/DDoS攻击检测方法和装置与制造工艺

本发明涉及计算机网络安全技术领域,特别是涉及一种DoS/DDoS攻击检测方法和装置。



背景技术:

拒绝服务(Denial of Service,DoS)攻击和分布式拒绝服务(Distributed Denial of Service,DDoS)攻击均是一种阻止合法用户正常访问服务的网络攻击,DoS/DDoS攻击的实质是向目标持续发送大量无用报文以占用目标的带宽和主机资源、产生庞大的攻击流量的恶意攻击。为保证网络安全以及确保服务的正常运行,准确及时地进行攻击检测至关重要。

传统的针对DoS/DDoS攻击检测的方法一般是根据经验设定一个固定的流量阈值,当检测到业务的流量超过该设定的流量阈值时,则进行流量的清洗。上述简单的通过固定的流量阈值进行攻击检测,很可能出现攻击漏检和攻击错检,即带来了正常流量进行非必要清洗所造成的业务平台服务不稳定,以及攻击漏检导致资源恶意消耗甚至系统瘫痪等问题。



技术实现要素:

基于此,有必要针对上述的问题,提供一种能够使攻击检测更加精准的DoS/DDoS攻击检测方法和装置。

一种DoS/DDoS攻击检测方法,所述方法包括:

获取预设业务在设定时间段内的流量数据,其中,所述流量数据为所述业务的总体流量与时间的对应关系数据;

获取根据所述业务的历史流量数据计算的所述业务在不同时间区间对应的总体流量阈值数据,其中,所述时间区间的历史流量数据越大,对应的所述业务总体流量阈值越大;

确定获取的所述流量数据所对应的时间区间,根据确定的所述时间区间查找与其对应的所述总体流量阈值;

将所述流量数据与查找的所述总体流量阈值进行对比,当所述流量数据持续超过所述总体流量阈值的时间超过设定值时,对所述业务进行攻击检测。

在一个实施例中,所述业务在不同时间区间对应的总体流量阈值数据是根据所述业务的历史流量数据和为所述业务分配的计算资源数据计算得到的,其中,所述业务的历史流量数据越大,分配的所述计算资源数据越大,得到的所述业务总体流量阈值越大。

在一个实施例中,所述进行攻击流量定位的步骤包括:

定位出现攻击流量的异常时间信息;

获取对应所述异常时间信息的所述业务包含的各个业务模块的模块流量数据;

将获取的所述模块流量数据与预先计算的与所述异常时间信息对应的模块流量阈值进行比较,确定超过所述模块流量阈值的业务模块标识;

其中,与所述异常时间信息对应的模块流量阈值是根据各个所述业务模块的历史流量数据计算得到的。

在一个实施例中,所述方法还包括:

采集所述业务的历史流量值与时间的对应关系数据;

将相邻的且差异小于设定值的所述历史流量值作为同一时间区间的区间流量值;

计算所述区间流量值的平均流量值,并根据所述平均流量值确定所述时间区间的总体流量阈值;

获取为所述业务分配的计算资源数据;

根据获取的所述计算资源数据在线调整所述时间区间的总体流量阈值。

在一个实施例中,所述方法还包括:

当监控到所述业务中出现新增业务模块时,获取所述新增业务模块的属性信息,其中,所述属性信息包括类型信息和持续时间信息;

根据所述类型信息获取为所述新增业务模块配置的新增流量阈值数据;

根据所述新增流量阈值数据调整与所述持续时间信息对应的所述时间区间的总体流量阈值。

一种DoS/DDoS攻击检测装置,所述装置包括:

流量获取模块,用于获取预设业务的设定时间段内的流量数据,其中,所述流量数据为所述业务的总体流量与时间的对应关系数据;

多流量阈值获取模块,用于获取根据所述业务的历史流量数据计算的所述业务在不同时间区间对应的总体流量阈值数据,其中,所述时间区间的历史流量数据越大,对应的所述业务总体流量阈值越大;

比对阈值确定模块,用于确定获取的所述流量数据所对应的时间区间,根据确定的所述时间区间查找与其对应的所述总体流量阈值;

攻击流量检测模块,用于将所述流量数据与查找的所述总体流量阈值进行对比,当所述流量数据持续超过所述总体流量阈值的时间超过设定值时,对所述业务进行攻击检测。

在一个实施例中,所述业务在不同时间区间对应的总体流量阈值数据是根据所述业务的历史流量数据和为所述业务分配的计算资源数据计算得到的,其中,所述业务的历史流量数据越大,分配的所述计算资源数据越大,得到的所述业务总体流量阈值越大。

在一个实施例中,所述攻击流量检测模块还用于定位出现攻击流量的异常时间信息;获取对应所述异常时间信息的所述业务包含的各个业务模块的模块流量数据;将获取的所述模块流量数据与预先计算的与所述异常时间信息对应的模块流量阈值进行比较,确定超过所述模块流量阈值的业务模块标识;其中,与所述异常时间信息对应的模块流量阈值是根据各个所述业务模块的历史流量数据计算得到的。

在一个实施例中,所述装置还包括:

历史流量采集模块,用于采集所述业务的历史流量值与时间的对应关系数据;

时间区间划分模块,用于将相邻的且差异小于设定值的所述历史流量值作为同一时间区间的区间流量值;

区间阈值计算模块,用于计算所述区间流量值的平均流量值,并根据所述平均流量值确定所述时间区间的总体流量阈值;

计算资源获取模块,用于获取为所述业务分配的计算资源数据;

流量阈值调整模块,用于根据获取的所述计算资源数据在线调整所述时间区间的总体流量阈值。

在一个实施例中,所述装置还包括:

新增模块信息获取模块,用于当监控到所述业务中出现新增业务模块时,获取所述新增业务模块的属性信息,其中,所述属性信息包括类型信息和持续时间信息;

新增模块流量确定模块,用于根据所述类型信息获取为所述新增业务模块配置的新增流量阈值数据。

流量阈值更新模块,用于根据所述新增流量阈值数据调整与所述持续时间信息对应的所述时间区间的总体流量阈值。

上述DoS/DDoS攻击检测方法和装置,通过统计分析业务的历史流量数据分析得到业务在不同时间的流量特性,进而得到不同时间区间对应的不同的历史流量值,根据不同时间区间的历史流量值确定每个时间区间的业务总体流量阈值,在进行攻击检测时,获取业务当前的流量数据,并判断获取的流量数据所处的时间区间,并将获取的流量数据与其所处的时间区间对应的总体流量阈值进行比对,当前的流量数据超过对应的总体流量阈值且超过时间维持一定时间,则判定产生了流量攻击。上述方法和装置在分时间区间设定多个流量阈值,该设定的多个流量阈值能够更好的反映业务在各个时间区间的流量特征,分时间区间的多流量阈值能够使流量的检测更加精准,有效地减少了错检和漏检的现象。

附图说明

图1为一个实施例中DoS/DDoS攻击检测方法的应用环境图;

图2为一个实施例中服务器的内部结构示意图;

图3为一个实施例中DoS/DDoS攻击检测方法的流程图;

图4为一个实施例中定位攻击流量定位步骤涉及的流程图;

图5为一个实施例中不同时间区间的总体流量阈值数据准备步骤;

图6为一个实施例中新增业务模块调整总体流量阈值所涉及方法的流程图;

图7为一个实施例中DoS/DDoS攻击检测装置的结构框图;

图8为另一个实施例中DoS/DDoS攻击检测装置的结构框图;

图9为又一个实施例中DoS/DDoS攻击检测装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,在一个实施例中,提供了一种DoS/DDoS攻击检测方法的应用环境图,该应用环境图包括终端110和服务器120,其中,终端110可为智能手机、平板电脑、笔记本电脑、台式计算机中的至少一种,但并不局限于此。服务器120可以独立的物理服务器,也可以是多个物理服务器构成的服务器集群。终端获取用户作用在业务终端页面上的操作事件,即用户行为信息,并将获取的用户行为信息上传至服务器以获取服务器的响应,服务器记录终端上传的用户行为信息,并根据用户行为信息计算得到业务的流量数据,服务器进行业务流量数据的统计,得到不同时间区间的流量阈值,并分时间区间对当前业务流量进行监控,当业务流量超过该时间区间的流量阈值,则判定该业务产生了攻击流量。

如图2所示,在一个实施例中,提供了一种服务器120,该服务器120包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该后台服务器120的存储介质存储有操作系统、数据库和一种DoS/DDoS攻击检测装置,该装置用于实现一种DoS/DDoS攻击检测方法。数据库用于存储数据,如存储收集的业务流量数据等。处理器用于提供计算和控制能力,支撑整个服务器120的运行。内存为存储介质中的DoS/DDoS攻击检测装置的运行提供环境。网络接口用于与外部的终端110通过网络连接通信。

如图3所示,在一个实施例中,提供了一种DoS/DDoS攻击检测方法,该包括具体包括如下步骤:

步骤S202:获取预设业务在设定时间段内的流量数据,其中,流量数据为业务的总体流量与时间的对应关系数据。

这里的业务是指通过计算机程序能够实现特定的完整功能的线上网站、应用等,业务系统响应用户对业务前端页面的访问操作以及在业务前端页面中的其它事件操作时,将占用业务的带宽和计算资源,这里占用的带宽和计算资源即为业务的流量。

举例来说,业务可以是游戏论坛、理财应用等,当终端用户登录游戏论坛、理财应用,并进行一系列其他操作时,将产生该业务的业务流量。

在一个实施例中,通过在计算机网络系统中的若干关键节点或者日志记录中采集用户行为信息,并通过用户行为信息计算业务的流量数据。

具体的,服务器每隔设定时间获取该设定时间段内的流量数据,例如,服务器每隔10分钟获取最近10分钟内的流量数据,其中,该流量数据中携带对应的时间信息,即流量数据为业务的总体流量与时间的对应关系数据。这里的时间可以为一天中具体的时间段,如上午8:00-8:10,还可以包括星期属性,如周一上午8:00-8:10时间段内的业务的总体流量数据。

需要说明的是,获取流量数据的设定时间段可根据攻击检测的及时度需要进行设定,当需要进行攻击的快速检测时,减少设定时间段的长度,增加获取流量数据的频率。

步骤S204:获取根据业务的历史流量数据计算的业务在不同时间区间对应的总体流量阈值数据,其中,时间区间的历史流量数据越大,对应的业务总体流量阈值越大。

具体的,服务器预先根据业务的历史流量数据对业务的流量特征进行分析统计,并根据业务的流量特征设定该业务的总体流量阈值。在本实施例中,根据历史流量数据计算得到的总体流量阈值数据为对应不同时间区间的多个总体流量阈值。举例来说,业务的总体流量数据显示8:00-10:00、10:00-15:00、15:00-18:00 18:00-24:00以及24:00-8:00所对应的总体流量值存在差异,则将上述区间作为流量阈值区间(不同业务所对应的流量阈值区间不相同),并根据上述的各流量阈值区间对应的流量数据计算对应的总体流量阈值,区间内的历史流量数据越大,为该区间内设定的总体流量阈值越大。

在一个实施例中,流量阈值数据还区分星期属性,即不同的星期属性对应的不同的总体流量阈值数据。例如星期一至星期五各流量阈值区间与星期六和星期日的各流量阈值区间各不相同,流量阈值区间对应的总体流量阈值也不尽相同。在另一个实施例中,也可以根据历史流量数据,细分一周中每天的流量阈值区间和总体流量阈值。

需要说明的是,进行总体流量阈值计算的历史流量数据不包括历史时间内出现的攻击的异常历史流量。

步骤S206:确定获取的流量数据所对应的时间区间,根据确定的时间区间查找与其对应的总体流量阈值。

具体的,确定获取的流量数据对应的时间归属的流量阈值区间,查找该流量阈值区间对应的总体流量阈值。例如,当获取的流量数据所在时间段对应A流量阈值区间,则将A流量阈值区间对应的预先计算的总体流量阈值作为当前获取流量的对比阈值。

在一个实施例中,当获取的流量数据的时间对应两个流量阈值区间时,分别查找上述两个流量阈值区间对应的总体流量阈值,并将位于第一流量阈值区间的总体流量数据与第一流量阈值进行比对,将位于第二流量阈值区间的总体流量数据与第二流量阈值进行对比。

步骤S208:将流量数据与查找的总体流量阈值进行对比,当流量数据持续超过总体流量阈值的时间超过设定值时,对业务进行攻击检测。

确定待比对的总体流量阈值后,将获取的流量数据与确定的总体流量阈值进行对比,当检测到获取的当前流量数据超过总体流量阈值且维持设定时间时,则认为检测到了攻击流量,启动攻击流量定位和处理程序。

在一个实施例中,当检测到获取的当前流量超过总体流量阈值且维持设定时间时,进行攻击流量报警。

本实施例中,在不同的时间区间设定多个流量阈值,该设定的多个流量阈值能够更好的反映业务在该时间区间的流量特征,分时间区间的多流量阈值能够使流量的检测更加精准,有效的减少了错检和漏检的现象。

在一个实施例中,步骤S204:获取根据业务的历史流量数据计算的业务在不同时间区间对应的总体流量阈值数据步骤中的业务在不同时间区间对应的总体流量阈值数据是根据业务的历史流量数据和为业务分配的计算资源数据计算得到的,其中,业务的历史流量数据越大,分配的计算资源数据越大,得到的业务总体流量阈值越大。

具体的,首先,统计分析业务的历史流量数据,离线计算不同时间区间对应的中间流量阈值,其中,该中间流量阈值为由历史流量数据直接计算得到的非攻击状态下的业务总体流量的经验估计值。其次,获取当前为该业务分配的计算资源数据,根据该计算资源数据对中间流量阈值进行在线调整得到最终确认的总体流量阈值,其中,最终确认的总体流量阈值不小于中间流量阈值,计算资源数据所表征的计算资源愈大,调整中间流量阈值的幅度越高。

举例来说,根据历史流量数据计算的中间流量阈值数据为:A时间区间的中间流量阈值为100G,B时间区间的中间流量阈值为150G,若为该业务分配的计算资源能够承担的负载流量是300G,可调整A时间区间对应的总体流量阈值为200G,B时间区间对应的总体流量阈值为300G,即确定的总体流量阈值为中间流量阈值的两倍;若为该业务分配的计算资源能够承担的负载流量是200G时,可调整A时间区间的对应的总体流量阈值为150G,B时间区间的对应的总体流量阈值为200G。

上述调整的规则为将最大的中间流量阈值调整为计算资源能够承担的负载流量,计算调整的比例,按照该比例进行其他中间流量阈值的调整。当然,还可以采用其他调整规则,只要调整后的总体流量阈值不超过计算资源能够承载的负载流量即可。

本实施例中,根据当前为业务分配的计算资源数据进行流量阈值的调整,在计算资源足够的情况下,尽可能的增大流量阈值,减少检测出攻击流量的几率,在一定程度上减少了流量清洗对正常业务运行的影响。

在一个实施例中,如图4所示,步骤S208:将流量数据与查找的总体流量阈值进行对比,当流量数据持续超过总体流量阈值的时间超过设定值时,对业务进行攻击检测的步骤包括:

步骤S302:定位出现攻击流量的异常时间信息。

异常时间是指超过总体流量阈值的总体流量数据所对应的时间段。在一个实施例中,异常时间还可以是出现攻击流量的起始时间。

步骤S304:获取对应异常时间信息的业务包含的各个业务模块的模块流量数据。

具体的,获取该业务包含的业务模块标识,并获取各个业务模块标识下且与异常时间信息对应的模块流量数据。

步骤S306:将获取的模块流量数据与预先计算的与异常时间信息对应的模块流量阈值进行比较,确定超过模块流量阈值的业务模块标识;其中,与异常时间信息对应的模块流量阈值是根据各个业务模块的历史流量数据计算得到的。

具体的,在获取各模块在异常时间的模块流量数据时,还获取对应该异常时间的各模块的模块流量阈值,其中,获取的各模块的模块流量阈值是预先根据各模块的历史流量数据计算得到的,与上述的计算总体流量阈值的方式类似,各模块的模块流量阈值也是分时间区间的多阈值。

将均与异常时间对应的模块流量数据与预先计算的模块流量阈值进行对比,定位超过设定阈值的模块标识,该模块在异常时间产生的流量即为攻击流量,定位攻击流量后,即可对攻击流量进行清洗。

以游戏论坛业务为例,假设游戏论坛包括登录模块、发帖模块、金币兑换模块,获取上述各模块在异常时间段内的模块流量数据,并获取各模块与异常时间内对应的流量阈值,将模块流量数据与流量阈值进行对比,当检测到金币兑换模块的流量数据远远大于该模块的流量阈值时,则确定金币兑换模块遭遇了流量攻击,可对金币兑换模块的流量进行清洗,同时检测攻击源信息。

在一个实施例中,可以根据攻击流量的特性基于深度学习方法得到产生该攻击流量的攻击源信息。

在一个实施例中,如图5所示,DoS/DDoS攻击检测方法还包括:

步骤S402:采集业务的历史流量值与时间的对应关系数据。

步骤S404:将相邻的且差异小于设定值的历史流量值作为同一时间区间的区间流量值。

步骤S406:计算区间流量值的平均流量值,并根据平均流量值确定时间区间的总体流量阈值。

具体的,采集业务在历史时间的历史流量数据,该历史流量数据是历史流量与时间的对应关系数据。

以一天24小时为时间周期,分析获取的历史流量数据在每个时间周期的流量数据特征。具体的,将时间周期中相邻时间点且流量差异小于设定值的历史流量数据划分为同一时间区间。

进一步的,获取多个时间周期进行流量数据特征分析,进而找到流量的时间区间规律,以更加准确的进行时间区间的划分。

划分完时间区间后,获取时间区间内的历史流量值,计算时间区间内的所有历史流量值的平均值,根据该计算的流量平均值确定该区间的总体流量阈值。确定的总体流量阈值应不小于计算的时间区间内流量的平均值。

在一个实施例中,在进行流量平均值计算之间,去除时间区间内的最大历史流量值和最小历史流量值,并将时间区间内最大流量值和最小流量值之外的历史流量值的平均值作为确定总体流量阈值的基础。

在一个实施例中,在步骤S204:获取根据业务的历史流量数据计算的业务在不同时间区间对应的总体流量阈值数据,其中,时间区间的历史流量数据越大,对应的业务总体流量阈值越大之前,还包括:

获取为业务分配的计算资源数据,根据计算资源数据确定最大流量阈值;

根据确定的最大流量阈值,调整根据历史流量数据计算的时间区间的总体流量阈值。

步骤S204中获取的不同区间内对应的总体流量阈值数据为调整后的总体流量阈值数据。

本实施例中,根据当前为业务分配的计算资源数据进行流量阈值的调整,在计算资源足够的情况下,尽可能的增大流量阈值,减少检测出攻击流量的几率,在一定程度上减少了流量清洗对正常业务运行的影响。

在一个实施例中,如图6所示,DoS/DDoS攻击检测方法还包括:

步骤S502:当监控到业务中出现新增业务模块时,获取新增业务模块的属性信息,其中,属性信息包括类型信息和持续时间信息。

服务器中预先存储了多种新增业务模块类型,在进行新增模块发布时,为该新增模块分配相应的类型信息,例如,业务模块的类型可以包括广告类、抽奖类等。新增业务模块属性中的持续时间信息可以为业务模块开始时间信息和结束时间信息。

步骤S504:根据类型信息获取为新增业务模块配置的新增流量阈值数据。

服务器预先为每种新增业务模块类型配置相应的新增流量阈值数据,具体的,配置的新增流量阈值可根据相同类型的业务模块的历史流量数据进行确定。

步骤S506:根据新增流量阈值数据调整与持续时间信息对应的时间区间的总体流量阈值。

将新增业务模块的持续时间信息与时间区间进行匹配,并将新增流量阈值数据增加到匹配的时间区间的总体流量阈值上,以使该时间区间的总体流量阈值能够反映新增业务模块的流量,总体流量阈值可根据业务模块的增减进行动态调整,避免了由于新模块流量带来的攻击错检的情况发生。

在一个实施例中,如图7所示,提供了一种DoS/DDoS攻击检测装置,该装置包括:

流量获取模块602,用于获取预设业务的设定时间段内的流量数据,其中,流量数据为业务的总体流量与时间的对应关系数据。

多流量阈值获取模块604,用于获取根据业务的历史流量数据计算的业务在不同时间区间对应的总体流量阈值数据,其中,时间区间的历史流量数据越大,对应的业务总体流量阈值越大。

比对阈值确定模块606,用于确定获取的流量数据所对应的时间区间,根据确定的时间区间查找与其对应的总体流量阈值。

攻击流量检测模块608,用于将流量数据与查找的总体流量阈值进行对比,当流量数据持续超过总体流量阈值的时间超过设定值时,对业务进行攻击检测。

在一个实施例中,业务在不同时间区间对应的总体流量阈值数据是根据业务的历史流量数据和为业务分配的计算资源数据计算得到的,其中,业务的历史流量数据越大,分配的计算资源数据越大,得到的业务总体流量阈值越大。

在一个实施例中,攻击流量检测模块608还用于定位出现攻击流量的异常时间信息;获取对应异常时间信息的业务包含的各个业务模块的模块流量数据;将获取的模块流量数据与预先计算的与异常时间信息对应的的模块流量阈值进行比较,确定超过模块流量阈值的业务模块标识;其中,与异常时间信息对应的模块流量阈值是根据各个业务模块的历史流量数据计算得到的。

在一个实施例中,如图8所示,DoS/DDoS攻击检测装置还包括:

历史流量采集模块702,用于采集业务的历史流量值与时间的对应关系数据。

时间区间划分模块704,用于将相邻的且差异小于设定值的历史流量值作为同一时间区间的区间流量值。

区间阈值计算模块706,用于计算区间流量值的平均流量值,并根据平均流量值确定时间区间的总体流量阈值;

计算资源获取模块708,用于获取为业务分配的计算资源数据;

流量阈值调整模块710,用于根据获取的计算资源数据在线调整时间区间的总体流量阈值。

在一个实施例中,如图9所示,DoS/DDoS攻击检测装置还包括:

新增模块信息获取模块802,用于当监控到业务中出现新增业务模块时,获取新增业务模块的属性信息,其中,属性信息包括类型信息和持续时间信息。

新增模块流量确定模块804,用于根据类型信息获取为新增业务模块配置的新增流量阈值数据。

流量阈值更新模块806,用于根据新增流量阈值数据调整与持续时间信息对应的时间区间的总体流量阈值。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1