一种DDOS攻击检测方法 【技术领域】
本发明属于计算机网路安全领域,具体涉及一种DDOS攻击检测方法。
背景技术
拒绝服务攻击,英文Denial of Service(DOS),作为互联网上的一种攻击手段,已经有很长的历史了,主要是利用TCP/IP协议的缺陷,将提供服务的网络的资源耗尽,导致不能提供正常服务,是一种对网络危害巨大的恶意攻击,有些拒绝服务攻击是消耗带宽,有些是消耗网络设备的cpu和内存,也有一些是导致系统崩溃,其中具有代表性的攻击手段包括SYN flood,ICMP flood、UDP flood等。
最初,攻击一般以单台电脑向目标发起攻击为主,即我们常说的DOS攻击,随着技术的发展,现在的攻击技术已经由DOS模式发展到了DDOS模式,即由统一控制的多台电脑,使用分布式技术,同时向攻击目标发起拒绝服务攻击,称为分布式拒绝服务攻击。
到目前为止,还没有一种很好的技术能彻底检测并防御拒绝服务攻击。
【发明内容】
针对目前分布式拒绝服务攻击对互联网的威胁,本发明的目的在于提出一种DDOS攻击检测方法,其可以实时的对DDOS攻击进行检测。本发明综合DDOS攻击的多个网络特征,综合分析完成对DDOS攻击的检测。
本发明的技术方案为:
一种DDOS攻击检测方法,其步骤为:
1)数据包截取模块对接入的网络数据包信息进行解析;所述网络数据包信息包括:数据包类型、IP地址、端口;
2)数据包特征统计模块对解析出的网络数据包信息进行统计,得到单位时间内截获到的数据包总数、网络层不同类型的数据包数量、传输层不同类型的数据包数量、应用层不同类型的数据包数量、数据包的IP地址总数和端口总数;
3)统计数据处理模块计算出单位时间内各类型数据包占数据包总数的比例分布;
4)数据分析模块根据存储的步骤2)和步骤3)所计算出的历史数据,计算网络数据的报警阈值;
5)数据分析模块判断当前单位时间内的网络数据值是否超过对应网络数据的报警阈值,如果超过则将该网络数据值提交到攻击分析模块;
6)攻击分析模块根据接收到的网络数据值生成检测报告。
进一步的,所述网络数据包信息还包括各种类型数据包的数据包长度;同时所述数据包特征统计模块对解析出的各类型数据包的数据包长度进行统计。
进一步的,所述统计数据处理模块计算出单位时间内各类型数据包的平均长度。
进一步的,所述数据分析模块实时更新各类型数据包的报警阈值;所述报警阈值的计算方法为:首先计算某类型数据包某一时刻前后一时间段内该类型数据包占总数据包比例的平均值F1;然后计算在该时刻前几天、前几周和前几月的同一时刻中,该类型数据包占总数据包的比例的平均值Fn;最后根据公式F=k1F1+k2F2······+knFnn×Q]]>计算该类型数据包的报警阈值F;其中n时间段数,kn为Fn对应的权重,Q为一倍数因子,且Q>1。
进一步的,所述网络层的数据包类型包括:IP数据包、ICMP数据包、ARP数据包;所述传输层的数据包类型包括:TCP数据包、TCPsyn数据包、TCPsyn-ack数据包、UDP数据包;所述应用层的数据包类型包括:DNS数据包、RTP数据包、QQ数据包、HTTP数据包。
进一步的,所述检测报告为网络攻击报告,其包括:攻击类型、攻击目标、攻击源头、攻击规模。
进一步的,所述攻击类型包括:
1)UDPfloor攻击类型,其识别方法为:总的网络流量超过总流量报警阈值,且UDP数据包的流量超过UDP包流量报警阈值,且UDP数据包占网络数据包总数的比例达到UDP包占比报警阈值,且UDP数据包的包平均长度减小到设定UDP包长报警阈值,且UDP数据包的包平均长度减小到设定UDP包长报警阈值;
2)TCPsynfloor攻击类型,其识别方法为:总的网络流量超过总流量报警阈值,且TCPsyn数据包流量超过TCPsyn包流量报警阈值,且TCPsyn数据包和TCPsynack数据包地比例超过TCPsyn-ACK包占比报警阈值,且TCPsyn数据包与TCP数据包总量的比例超过TCPsyn包占比报警阈值,且TCP数据包的平均长度超过TCP包长度报警阈值;
3)TCPfloor攻击类型,其识别方法为:总的网络流量超过总流量报警阈值,且TCP网络流量超过TCP包流量报警阈值,且TCP数据包占网络数据包总数的比例超过TCP包占比报警阈值;
4)DNS攻击类型,其实别方法为:DNS数据包流量超过DNS包流量报警阈值,且DNS数据包流量占总流量的比例超过DNS流量占比报警阈值。
进一步的,所述攻击规模的确定方法为:首先根据确定的攻击类型,获得对应类型目前的攻击流量;然后综合对比该类型数据包的流量报警阈值和历史正常流量,来评估出当前该攻击类型的攻击规模。
进一步的,所述攻击目标的确定方法为:首先对发往同一目的IP地址的数据包个数进行统计;然后对比较集中的目的IP进行排名,将排名靠前的IP确定为被攻击的目标;所述攻击源IP的确定方法为:对数据包的源IP地址进行统计,并根据发送数据包个数进行从高到低的排列,将排名靠前的IP确定为攻击源IP。
进一步的,所述检测报告为网络监测日报,其包括:当天不同时间点网络流量的折线图;当天各种类型数据包所占比例的折线图;当天各类型数据包所占比例平均值的饼状图;当天不同时间点网络中各类型数据包平均长度的折线图。
本发明的系统分为三个子系统,网络数据检测子系统、网络数据显示子系统、攻击报警子系统。
1、网络数据检测子系统
主要功能是负责对网路数据的检测的功能,分为以下模块:
(1)数据包截取模块。
将设备接到被检测网络上,将网络数据接入检测设备,该模块负责对接入的数据包进行解析,解析深度可以根据网络流量、当前设备的性能、以及检测安全等级来决定,解析的深度越深要求设备性能越高,安全等级越高需要检测的深度越深。根据以上因素可以将数据包信息解析到网络层、也可以传输层、甚至可以解析到应用层。
(2)数据包特征统计模块。
对解析出的数据包信息进行统计,具体工作包括:
A、对单位时间内截获到的数据包的总数进行统计。
B、对单位时间内截获到的网络层不同类型的数据包的数量进行统计,包括IP数据包的数量、ICMP数据包的数量、ARP等数据包的数量。
C、对单位时间内截获到的传输层不同类型的数据包的数量进行统计,包括TCP数据包的数量、TCPsyn数据包的数量,TCPsyn-ack数据包的数量,UDP数据包的数量。
D、对单位时间内截获到的应用层的不同类型的数据包的数量进行统计,包括DNS数据包、RTP数据包、QQ数据包、HTTP数据包等。
E、对单位时间内截获到的数据包的IP地址和端口进行计数。
F、对各种类型数据包的数据包长度进行记录。
(3)统计数据处理模块。
1)计算出单位时间内,各类型数据包占数据包总数的比例分布。
2)计算单位时间内,各类型数据包的平均长度。
(4)数据存储模块
对(2)、(3)步骤中,获得的数据进行存储。存储时以时间为关键字来保存。
(5)数据分析模块。
根据(4)中保存下来的历史(是指上一年、前几个月、前几周、前几天)上的各种数据,计算出各时间段的报警阈值。
比如计算数据包中UDP数据包占总数据包比例在某一时刻t时的阈值:
首先,可以去数据库中查找该时刻前后一段时间,(t-a,t+a)这个时间段中,UDP数据包占总数据包比例的平均值F1。
再计算在该(t-a,t+a)时段前几天的同一时时间段中,UDP数据包占总数据包的比例的平均值F2。
用类似的方法计算前几周、前几个月该时刻比例的平均值Fn。
然后,为各平均值赋一系列的权值k1、k2……kn。
阈值Fudp的计算公式是:
Fudp=k1F1+k2F2······+knFnn×Q]]>
这里的Q是一个大于1的值,是将阈值F设为之前计算出来的平均值的一个倍数。
使用类似的方法计算出其他数据包的报警阈值。这些阈值数据是实时更新。一旦某个监控值超过了设定的阈值,就会将该信息提交“攻击分析模块”。
(6)攻击分析模块
主要是对从“数据分析模块”获得的各种类型的报警信息进行综合的分析,对攻击的类型、攻击目标、攻击源头、攻击的规模做出判断。
a、判断攻击的类型。
(a)UDPfloor类型攻击识别:
总的网络流量,超过总流量阈值。
UDP数据包的流量超过UDP包流量阈值,
UDP数据包占整个网络数据包的比例提高到UDP包占比阈值。
UDP数据包的包平均长度减小到设定UDP包长阈值,可判断是UDP小包攻击。
(b)TCPsynfloor类型攻击识别
总的网络流量超过总流量阈值。
TCPsyn数据包流量超过TCPsyn包流量阈值。
TCPsyn数据包和TCPsynack数据包的比例超过TCPsyn-ACK包占比阈值。
TCPsyn数据包与TCP数据包总量的比例超过TCPsyn包占比阈值。
TCP数据包的平均长度超过TCP包长度阈值。
(c)TCPfloor类型攻击识别
总的网络流量超过总流量阈值。
TCP网络流量超过TCP包流量阈值。
TCP数据包占整个网络数据包的比例超过TCP包占比阈值。
使用TCP协议的很多可识别的应用协议的数据包流量未超过阀值。
(d)DNS攻击
DNS数据包流量超过DNS包流量阈值。
DNS数据包流量,占总流量的比例超过DNS流量占比阈值。
网络总流量超过总流量阈值(攻击严重时会出现)。
(e)根据获取的网络通讯的统计数据,也可以适当组合分析其他新出现的攻击类型。另外在实际环境中,一次攻击很多时候是由几种类型的攻击组合而成的,这是就要根据上面的特征来分别判断。
b、攻击规模的确定
根据a中确定的攻击类型,获得对应类型目前的攻击流量,综合对比该类型数据包的阈值流量,和历史正常流量,来评估出当前该攻击类型的攻击规模。
c、攻击目标分析
对这些异常数据包的目的IP进行统计,对发往同一目的IP地址的数据包个数进行统计,对比较集中的目的IP进行排名,将排名靠前的IP确定为被攻击的目标。
d、攻击源IP分析
对异常数据包的源IP地址进行统计分析,并根据发送数据包个数的多少进行从高到低的排列,将排名靠前的IP确定为攻击源IP。
(7)检测报告生成模块
主要功能是根据上面模块中获得的数据,自动生成分析报告。
具体的可以生成两种报告:
第一种,网络监测日报,主要包括当天不同时间点网络流量的折线图;各种类型的数据包所占比例的折线图;当天各类型数据包所占比例平均值的饼状图;当天不同时间点网络中各类型数据包平均个数的折线图。这些图表的主要数据来源是“网络数据监控模块”,在当天实时显示的数据。该检测报告属于日常性的检测报告。
第二种,网络攻击分析报告。一旦系统检测到网络遭到攻击时,系统通过分析当时的攻击数据,生成该报告。
主要内容有:攻击的规模
攻击的变化情况(攻击流量的增加速度、持续时间等)
攻击类型:可能是单一的攻击类型,也可能是多种综合的攻击类型
攻击目标信息:包括IP地址、物理位置信息等
攻击源的信息:包括IP地址、物理位置信息等,在一次分布式攻击中的源IP可能会有很多,这里会按照不同IP地址的攻击规模的大小,对IP地址进行排序。
2、网路数据显示子系统
对网络数据检测子系统中统计分析并保存起来的数据进行实时显示。
显示的形式主要是线性图、饼图形式。
显示时间的粒度可以根据具体情况调整,可以以分钟粒度,也可以以天、周为显示粒度。显示范围也可以根据实际情况调整,可以显示当前一个小时内的数据,也可以显示最近一周或一个月的数据。
主要显示的内容有:
(1)网络数据总流量的实时显示,以线性表形式。
(2)网络数据中TCP数据流量的实时显示,以线性表形式。
(3)网络数据中TCP-syn数据流量的实时显示,以线性表的形式。
(4)网路数据中TCP-syn-ack数据流量的实时显示,以线性表的形式。
(5)网络数据中UDP数据流量的实时显示,以线性表的形式。
(6)网络数据中DNS数据流量的实时显示,以线性表的形式。
(7)网络数据中HTTP数据流量的实时显示,以线性表的形式。
(8)网络数据中,其他应用层数据流量的实时显示,以线性表的形式。本系统可以根据用户的具体关注的需要来由选择的选择需要重点监控的网络应用层中的各种协议的流量。
(9)UDP数据包平均长度的线性表实时显示。
(10)TCP数据包平均长度的线性表实时显示。
(11)UDP、TCP分别占整个网络流量多少的饼状图
(12)TCP-syn、TCP-syn-ack数据包占TCP数据总流量的饼形图。
(13)各种关注的应用层协议所占比例的饼形图。
3、攻击报警子系统
当网络数据检测子系统检测到,网络的各个数据指标中有某个或某几个超过阀值时,启动报警子系统,通过显示器图像、声音等方式报告相关人员,此刻所监控网络收到攻击。与此同时网络数据检测子系统的检测报告生成模块生成攻击报告提交给用户。
本发明的优点与积极效果:
本发明的分布式攻击检测方法的特点在于:
1、综合考虑各种网络数据的特征,对ddos攻击予以识别。
2、综合网络传输的历史数据,对当前的网络数据进行深入分析,最终对网络是否受到攻击做出判断。
【附图说明】
图1、检测系统部署位置图;
图2、设备结构体;
图3、本发明的检测方法流程图。
【具体实施方式】
下面结合附图和具体实施方式对本发明作进一步详细描述:
1、以旁路方式将网络流量接入监控设备。
根据保护的目标的不同,接入的位置可以有以下两种选择。
(1)在被保护局域网与外部互联网连接处,对网络数据进行旁路。
(2)在省际网络出口处,旁路检测设备对网络流量进行检测,这时由于网络数据量非常大,可以使用多台检测设备进行分布式检测。
2、首先网络数据流流入“网络数据检测子系统”,对网络数据流的处理方法如图3所示:
(1)由“网络数据检测子系统”的“数据包截取模块”子系统对旁路接入的数据包进行解析。
(2)由“数据包特征统计模块”对解析出的各协议数据指标进行统计。
(3)对统计数据进行进一步的处理。
(4)将获得的数据进行存储,作为该网络的历史数据。
(5)在积累历史数据的基础上对网路数据进一步分析,计算出各种网络数据的阈值。
(6)以各网络数据阈值为坐标,对各类网络监控数据进行监控。
(7)根据监控到的网络数据生成网络检测分析报告。
3、“网路数据显示子系统”会对从“网络数据检测子系统”获得的各种数据进行实时的屏幕显示,以便监控人员了解最新的网络情况。
4、一旦发现出现某些网络数据超出之前计算的对应网络数据阈值,这一消息就会传递到“攻击报警子系统”
由该子系统发出发出报警信息,与此同时,“检测报告生成模块”模块生成一份网络攻击分析报告。