DDoS攻击的检测算法研究

时间:2022-10-25 01:35:39

DDoS攻击的检测算法研究

【 摘 要 】 网络安全问题的核心在于对网络攻击的检测。针对DDoS的恶意攻击方式,本文在统计方法原理上提出了同步技术检测算法,并以DDoS为例,进行了检测系统的性能测试和分析。

【 关键词 】 DDoS攻击;检测算法;同步技术

Research on DDoS Attack Detection Algorithm

Xin Yi-pei

(The Chinese PLA 92493 Troops LiaoningHuludao 125000)

【 Abstract 】 The core problem of network security is to detect the network attack. This paper presents a detection algorithm in statistical method against malicious attacks of DDoS. It tests and analyzes the performance taking DDoS as an example.

【 Keywords 】 DDoS attack; detection algorithm; simultaneous techniques

1 引言

网络安全问题的研究一直是一个比较热点的问题,如何对网络安全问题进行研究也是一个需要深入考虑的问题。尤其是近年来,宽带业务的推广,用户数量巨增,使得DDoS攻击变得更为严重,DDSo攻击成为了近年来对Internet具有巨大影响的恶意攻击方式。

2 基于统计方法的DDoS攻击检测和响应

Laura Feinstein等提出了计算熵(Entropy)和数据包属性分布式频率存储(Chi-Square)的方法来检测DDoS攻击的方法。

2.1 Entropy检测算法

一个信息源有n个独立的概率为Pi的信号,那么嫡H就定义为:

H=-■pi log2 pi

因此,熵可以用来计算一个样本里连续的包,将一些样本头域的嫡和从相同的Peering Point出来的样本的嫡相比较来检测随机变化。当网络不存在攻击,不同的头域嫡的值将落在一个很窄的范围内;当网络被攻击时,这些熵的值就会超出这些范围。

此算法只需要对每个包进行少量的计算,信包的熵可以通过宽为砰的滑动窗口来计算,这个算法中p的概率实际上是每个独立的信号对于总的样本标志中出现的频率。

一个有经验的攻击者会试图破坏这个算法,通过建立一个流量模型仿正常流量。一个攻击者若知道不同的被监测的包属性,则他就会建立一个产生可调熵值流量的攻击工具。通过猜测、渗透、跟踪,这个攻击者可以知道典型的嫡值和调整流量去匹配。这看起来似乎很容易,但如果有多个检测器安置在流量源和目标之间,那么检测器的典型的嫡值在不同的网络环境中就会不同。

窗口流量W是一个可以调整的参数,它用来控制检测器短期波动的平滑程度。增加牙值就会减少嫡值的变化并可以减少无关紧要的异常的误警率。但是W也不能太小,这样才能快速地检测出攻击来。通过实验发现10000个包是合理的。

2.2 Chi-square检测算法

Pearson的Chi-Square通常都是用来对分离的数值比较。例如它可以用来检测TCP SYN标志值(0和1)或协议数据的分布。这些数值的数目越少检测效果越好,一个样本包中它的可能包含的数值不少于五个,因此通过“BIN”可以把一定范围的数值看成一个。例如Chi-Suqare检测算法可以将服务端口看成四个值:HTTP、FTP、DNS和“其他”。相似地,包长度可以归类为这些范围:0-64字节,65-128字节,129-255字节等。

3 DDoS攻击检测同步技术算法

3.1 同步技术的硬件基础

硬件对同步技术最通用的支持功能是芯片级的原子操作和中断屏蔽功能。以i386系列CPU为例,大部分的汇编指令都是芯片级的原子操作,唯一的例外是前缀为rep的汇编指令,这条指令要求控制单元重复多次执行,在执行过程中可能被中断。

SMP环境下的情况要复杂一些。在SMP环境中,那些多次访问内存的指令不是原子的,例如inc或者dec指令,它们在执行过程中,首先从内存中读取数据,然后更新它,并将新的内容写回到内存中,在此过程中其它处理器上执行的程序可能会访问同一个内存区,从而发生竞争条件。解决这种竞争条件的办法之一是在指令之间增加lock前缀,使该指令在SMP环境下也是原子了。SMP同步的具体内容请参考“SMP系统中的同步机制”一节。

计算机的中断机制的实现依赖于可编程的中断控制器,CPU的INTR管脚和内部寄存器的中断标志等硬件来实现。IPC的设计允许对每一个中断源单独编程,禁用或者启用它们。而CPU内部寄存器eflags则允许对所有的外部中断进行屏蔽或者打开屏蔽。

3.2 原子操作

Linux可分别针对Bit变量和整数变量进行原子操作,它们的共同点是在任何情况下都是原子的,内核代码可以安全的调用它们而不被中断,而且它们都依赖底层CPU的原子操作来实现,所有这些函数都是CPU架构相关的。

1) Bit 原子操作

Bit操作的函数提供了安全的读取和修改单Bit信息的能力,它们可以对任何内存变量的任意一个Bit进行操作,这在设置或者检查某个标志的时候非常有用。常用的函数有set_bit(int nr, volatile void *addr),对给定地址addr的第nr bit 进行置位;以及test_and_clear_bit(),清除给定Bit并返回它以前的值。

2) 整数原子操作

对整数变量进行原子操作的函数都以atomic_xxx命名,例如读取变量内容的atomic_read(v)和更改变量内容的atomic_dec(i,v)函数,函数中操作的变量v的类型必须是特殊的数据类型atomict,它的定义如下:

typedef struct {volatile intcounter;} atomic t;

从定义中我们可以看出,atomic t等同于int类型的整数,只是为了防止gcc编译器的不必要的优化才定义成一个结构。在atomic t 数据类型的使用上有一个限制,该类型的变量的有效位不是32bit而是24bit,根据ldd2中的说法,在某些处理器上要求这种限制。

3.3 屏蔽中断

CPU具备屏蔽中断和打开中断的功能,这项功能可以保证正在执行的内核控制路径不被中断处理程序所抢占,防止某些竞争条件的发生。在内核函数一级,Linux提供了cli()和__cli()函数来实现屏蔽中断的功能,提供sti(),__sti()函数来打开中断。这四个函数中,带有"__"的版本的操作仅仅限于当前CPU;而另外两个函数影响系统中所有的CPU。

3.4 同步锁机制

在无法避免竞争条件的产生,而且临界区的代码又无法短到可以通过原子操作完成的时候,需要对临界区用“加锁”的办法实行保护。Linux提供了两种锁,内核信号量(Semaphore)和自旋锁(Spin Lock)。它们是为了解决完全不同的问题而各自开发出来的,实现机制和适用场合也随之完全不同。

信号量为了解决多个内核控制路径竞争资源的问题,这些内核控制路径可能是单处理器系统中分时执行的控制路径,也可能是多处理器系统中的并行执行的控制路径。在试图获得信号量的时候,如果信号量繁忙,相应的内核控制路径会挂起,直到信号量被释放的时候控制路径才恢复运行。而Spin_Lock的目的是为了解决在多个处理器上并行运行的内核控制路径之间的加锁问题。当Spin_Lock忙的时候,内核控制路径执行一个循环,不停地试图获取这个锁,直到成功为止。

信号量在内核中是Struct Semaphore类型的对象,它在include/asm/semaphore.h中定义。系统还提供了非阻塞的获取信号量函数down_trylock(),与down()不同,在无法获得信号量的时候,down_trylock()返回失败值而不挂起调用者。这个函数被用在很多要求非阻塞操作的场合。

基于内核的同步特性,我们在实现阶段采用了Spin_Lock机制,由于Hash表的全局特性,在多个CPU共同访问的时候,需要加锁,防止链表因为互斥访问而被破坏。

4 结束语

随着互联网技术的不断发展,DDoS攻击作为恶意攻击方式造成的影响越来越严重。本文结合统计方法原理提出了同步技术DDoS攻击检测算法。同步技术检测算法能快速准确地检测出DDoS攻击行为,能有效的应用于攻防模拟对抗体系的建立,并有助于DDoS攻击的网络防御技术的研究。

参考文献

[1] 何慧,张宏莉等,一种基于相似度的DDos攻击检测方法.通信学报,2004,25(7):176-184.

[2] 庄肖斌,芦康俊等.一种基于流量统计的DDoS攻击检测方法.计算机工程,2004,30(22):127-128.

[3] 房至一,张美文等.防御和控制.DoSODoS攻击新方法的研究.北京航空航天大学学报,2004,30(11):1033一1037.

[4] D.X.Song, A.Perrig, Advanced and authenticated Marking Schemes for IP Traceback, in: Proceeding of IEEE INFOCOMM, Anchorage, AK, USA, 2001, pp.878-886.

[5] 黄靖. 一种面向分布式 DDoS 攻击的防御体系模型研究[D].[硕士学位论文]. 上海:上海交通大学, 2007.

[6] 王绍斌,王昭顺.信息系统攻击与防御 (第一版)[M] .北京: 电子工业出版社,2007,pp:197-198.

[7] 吴轩亮.三网融合下城域网DDoS攻击的监测及防范技术研究[J].信息网络安全,2012,(03):45-48.

[8] 池水明,周苏杭.DDoS攻击防御技术研究[J].信息网络安全,2012,(05):27-31.

作者简介:

辛忆培(1969-),男,海军电子工程学院硕士研究生,现任92439部队工程师,常年从事网络安全保密研究。

上一篇:注册码软件加密保护中RSA算法的应用 下一篇:在服务改革中增强服务群众的本领