在Linux平台建立DoS攻击检测系统
2011-11-06钟九洲
钟九洲
(四川达州职业技术学院,四川.达州 635000)
在Linux平台建立DoS攻击检测系统
钟九洲
(四川达州职业技术学院,四川.达州 635000)
在总结传统检测DoS攻击系统的优势和劣势的基础上,结合Linux系统的特点设计出基于Linux平台的DoS攻击检测系统。本系统中的网络安全模块可以迅速地检测出网内基于DoS的攻击状态,行为控制模块可以控制网内用户对可疑网站的浏览、连接,网络日志模块可以自动记录网内用户使用网络的实际情况。经过测试,本系统可以有效地检测出DoS攻击,同时还可以对用户浏览行为进行控制并查看网络使用情况。
DoS攻击;Linux系统;攻击检测
1 引言
在网络技术高速发展的今天,各种各样的网络应用改变和影响着我们的生活,在利用网络带来便利的同时,在安全方面也出现了许多问题。本系统主要利用Linux系统从网络安全检测出发,结合对用户上网行为的控制和日志的记录,可以最大限度地防御DoS攻击。
传统的DoS攻击检测系统,其主要功能有内网攻击检测、外网动态检测、实时保护等功能,但传统的检测系统针对性不强,根据分析主要存在以下几个方面的问题。
(1)其功能主要是检测网络是否受到DoS攻击,只能够发现攻击行为,而不能有效地解决攻击的问题。
(2)通常是通过抓包工具把网络数据提取到应用层,然后进行规程比对,在这个过程中增加了系统的负担,容易降低网络使用率,成为网络出口新的瓶颈。
(3)一些DoS攻击使用IP欺骗的方法,主要是利用TCP协议栈的RST位来实现,让用户服务器把合法用户的连接复位,造成合法用户无法连接。目前传统的DoS攻击检测系统其功能主要是识别IP地址,无法定位IP,因此不能辨别数据来源,最终不能高效地解决DoS攻击。
(4)忽略了对内网用户攻击的防范,对内网攻击不能使用合理的方法进行防范和处理。
在此,我们利用Linux平台,结合网络安全和行为控制模块的DoS攻击检测系统,本系统不仅可以检测出外网与内网DoS攻击,还可以对内网用户网络行为进行控制,产生相应的网络日志。
2 系统相应模块
2.1 系统平台
本系统使用Linux系统作为系统平台,Linux是单片集成的内核,同时可以通过接口动态的加载内核模块。主要是通过insmod命令将用户自定义的功能模块加载到内核空间运行,加载后的用户模块将成为内核的一部分,并且具有同内核代码相同的权限和功能。根据Linux可以加载用户模块的特点,本系统将各个模块以Linux内核模块的形式来实现,包括网络安全模块、行为控制模块、网络日志模块。Linux内核中通用可扩展的netfilter架构功能十分强大,数据包在netfilter中运行的路径如图1所示。netfilter架构将数据包引入到IP层中出处理。netfilter架构提供了网络协议中的钩子函数,钩子函数是系统内核为驱动程序提供的一些特定的函数,在驱动程序中某个变量的状态发生改变或将要改变或改变完成时,都会自动调用该回调函数,在netfilter中的状态就有五个:
图1 数据包在netfilter中运行的路径
数据包从框架的左边进入系统,经过IP验证后,进入第一个钩子函数HOCK1处理;然后进入路由代码,路由代码判断该数据包是转发还是发送到本机数据包;如果数据包是转发,将经过函数HOCK3处理;如果发送本机数据包,将经过钩子函数HOCK2处理后交给上层协议;转发的数据包经过钩子函数HOCK4之后传输到网络上;本地的数据包经过钩子函数HOCK5处理后在进行路由选择处理,最后经过钩子函数HOCK4发送到网络上。
结合Linux和netfilter架构的特点,提出系统的结构模型图,如图2所示。
图2 系统模型图
系统结构模块由网络安全模块、行为控制模块、网络日志模块以及WEB UI管理模块。网络安全模块可以迅速地检测出网内DoS攻击,行为控制模块可以控制网内用户对可疑网站的浏览、连接,网络日志模块可以自动记录网内用户的使用网络的实际情况,WEB UI管理模块是系统管理界面以及分配用户和查看用户使用系统的情况。
模块中接口可以分成一个连接公网,一个链接教育科研网,一个链接内网。当网络接口收到数据包时,驱动程序将数据包上传给内核,内核中的netif_receive_skb函数将数据转给netfilter架构模块,netfilter架构模块查看数据包中目的MAC地址来判断数据包是需要转发的数据还是到netfilter架构模块的数据,还是一个广播的数据包。如果是转发的数据包,会在netfilter架构钩子函数NF_BR_FORWARD上挂载网络安全模块和行为控制模块。数据包首先会进行安全检测,当网络安全模块发现安全事件将丢弃数据包,同时网络安全模块会给后台程序一条拒绝记录,由后台数据库完成拒绝操作。数据包如果经过网络安全模块检测没有问题,将流经行为控制模块的过滤,如果违反了行为模块中的规则,也会被丢弃同时把记录发给后台数据库。最后数据如果没有被丢弃,那么安全的数据包将转发到网络接口。
58例CT诊断肋骨骨折116处,其中背段、腋段、前段和软骨段骨折分别为37、60、14和5处,发生率分别为31.9%、51.7%、12.1%和4.3%(表1)。
2.2 网络安全模块
网络安全模块主要是检测由内部网络向外部网络进行的DoS攻击,主要有ICMP、TCP、UDP以及SYN攻击。故意的攻击网络协议实现的缺陷或恶意地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务停止响应甚至崩溃。根据DOS攻击的特点,我们通过计算独立主机在一定时间内发送ICMP、TCP、UDP数据包的个数和同目标主机特定端口建立的最大TCP链接数来判断DOS攻击。
2.2.1 数据包攻击
网络安全模块利用哈希表快速的插入操作和查找操作来计算单位时间内发送ICMP、TCP、UDP数据包的个数,数据包从内外流经过来,把源IP作为散列关键字在哈希表中查找统计该IP发送数据包数目的统计结点,从而对比即时时间和结点中记录的时间是否超过规定的时间。如果超过规定的时间则将该IP的发包值记录下来,如果发包值达到一定的阀值(例如1000),系统自动把该结点链接的IP标记为DOS攻击结点,该IP地址发送的数据包将被丢弃,丢包记录将由网络日志模块记录和审计。如果没有超过规定的时间则只是增加该IP的发包计数。
2.2.2 泛洪攻击检测
DOS泛洪攻击有两种状态,一种是UDPflood攻击:如今在Internet上UDP的应用比较广泛,UDPflood假冒攻击通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,通过将Chargen和Echo服务互指,在两台主机之间生成足够多的无用数据流,这一拒绝服务攻击快速地导致网络可用带宽耗尽。
另一种是SYNflood攻击:TCP连接时,会有一个3次握手过程。 “SYNFlooding”则专门针对TCP协议栈在两台主机间初始化连接握手的过程进行DoS攻击,当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是服务方会在一定时间处于等待接收请求方ACK消息的状态。而对于某台服务器来说,可用的TCP连接是有限的,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直至缓冲区里的连接企图超时。如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长期下去,服务器将无法向用户提供正常的合法服务。
网络安全检测系统针对泛洪攻击同样采用统计的方法,当网外的数据包流经系统时,在散列的哈希表中对比当前数据具有相同源IP、目标IP和目的端口的结点,然后进行计数。假如在单位时间内IP和目标IP主机特定的端口建立的SYN连接数超过了规定的阀值,则将该结点标记为DoS攻击结点,最后把数据包丢弃,并将丢弃的记录发给网络日志模块记录和审计。
2.3 行为控制模块
行为控制模块通过系统管理员收集建立一个过滤IP的数据库,来限制内外用户访问不良网站。在本模块中建立一个黑名单网站的数据库,例如传播暴力黄色的网站。如何判断网站是否在黑名单中,第一先计算黑名单网站的MD5值,第二将全部MD5值更新到一个递增数组中。最后,用户访问网站时,先计算该网站的MD5值,然后用计算的值同黑名单数组中进行二分查找。假如匹配将该数据包丢弃,在将丢包记录将有网络日志模块记录和审计。
2.4 网络日志模块
系统中网络安全模块和行为控制模块产生记录时,网络日志模块会将数据按照源IP、目的IP、丢弃的原因等进行格式化并保存。模块通过MD5数字摘要来验证收到的文件,从而保证日志文件完整性和一致性。日志模块中通过分析发现一些明显的安全事件,一方面进行分离、记录,另一方面通过管理界面向系统管理员报警,如图3所示。
图3 网络日志模块工作流程
3 系统应用测试
在内网中使用192.168.10.0的网段进行测试,网段10通过系统与外网连接,结构图如图4所示。本文主要以泛洪攻击为例。
图4 外网测试
在内网主机A上使用工具向目标主机61.139.55.4循环发送SYN数据包,循环一定时间后,通过用户管理界面查询主机A的网络行为,会发现主机A对外网的泛洪行为,如图5所示。
图5 内网测试
4 总结
经过测试证明,本系统部署在网络出口位置,可以对违反网络行为数据直接进行丢弃,可以方便地管理网络,提高网络使用率,并对丢弃的数据包进行记录,对内网用户产生非法的网络行为可以进行有效的查询。
[1]雷 澍,谭洪湘,马艾岩.Linux?内核与编程[M].北京:机械电子工业出版社,2000.
[2]许振文.Linux下基于Nertfilter的网络监听的设计和实现[J].西安邮电学院学报,2009,(2).
[3]林果园,曹天杰.入侵检测系统研究综述[J].计算机应用于软件,2009,(5).
[4]郑小军,赵轶群.构建集成的Linux内核防火墙[J].计算机应用,2003,(3).
Building DoS Attacking Detection System on the Linux Terrace
ZHONG Jiuzhou
(Sichuan Dazhou Professional Technology College,Dazhou Sichuan 635000,China)
This paper analyzes the advantage and disadvantage of the traditional DoS Detection System,and builds the DoS Attacking Detection System on the Linux Terrace which is collected with the features of Linux System.The network security module of this system can detect quickly the network situation;the behavior control module can control the users’browsing and collection of the suspicious websites;the weblog module can record automatically the usage situation.After detection,the system can effectively detect the DoS Attacking,and control the users’browsing check the usage situation.
DoS attacking;Linux system;attacking detection
TP39;G621
A
1674-5787(2011)04-0158-03
2011-08-22
钟九洲,男,四川达州职业技术学院教师。
责任编辑 王荣辉