APP下载

基于SVM的网络攻击检测系统研究

2011-04-14杨世恩西南科技大学网络信息中心四川绵阳621010

长江大学学报(自科版) 2011年22期
关键词:数据源预处理向量

杨世恩 (西南科技大学网络信息中心,四川绵阳621010)

陈春梅 (西南科技大学信息工程学院,四川绵阳621010)

计算机网络是以共享资源、相互通信为目的的互联系统。随着信息化技术的高速发展,网络给人们的生活带来很大方便,与此同时,因网络而起的各种问题也越来越多,计算机病毒、黑客攻击、网络犯罪等各种各样的问题屡禁不止[1]。对于正常的网络行为,网络管理员会经常关心和监测网络中的数据流。而黑客在谋划某种网络活动时,也会关心网络中的数据流。黑客带着某种企图,通过监测网络寻找机会,他们可以利用网络漏洞和不断更新的攻击技术实施网络攻击或资料窃取;网络管理员的主要职责是保证网络健康运转,将有意窃取和恶意攻击等事件防范于未然。这样,网络管理员需要实时跟踪网络数据,分析网络性能并跟踪网络动态,找出漏洞,发现黑客攻击机理并及时修复网络故障等。支持向量机SVM(Support Vector Machine)是基于统计学习理论的分类算法,支持向量机的目标是根据结构风险最小化原理,构造一个目标函数将两类模式尽可能地区分开来[2]。笔者采用SVM对网络中的数据进行正常数据与非正常数据的分类,以检测出网络中是否存在攻击。

1 SVM基本原理

用支持向量机来设计网络攻击检测模型,理论上借助了支持向量机算法的分类原理。通过数据包捕获软件捕获到的网络数据包,其属性特征的类型很多很复杂,如何从这些繁杂的特征信息中辨别出是否存在攻击是网络攻击检测模型的主要目的。支持向量机是基于统计学习理论的,2000年Purdue大学的T.D.Lane最早提出机器学习可以实现网络入侵检测[3]。在他的论述中,可以先从大量的网络数据中提炼出一个特征轮廓,这些轮廓是网络中正常数据的概要,当被检测的网络数据与这个特征轮廓的差异度超过某个值时,就认为网络存在入侵,可能正在被攻击。这样的方法实际上是把网络攻击检测转换为了模式识别问题。同样是机器学习,支持向量机实现了线性可分和线性不可分的分类问题[2]。从网络中捕获的数据可以抽象成n维空间上的点,每一维代表数据的一项特征。对于线性不可分的情况,SVM根据结构风险最小化原理,通过核函数将这些点从n维空间映射到高维空间中,使得它们在高维空间中线性可分,这样,就可以判断网络是否存在攻击。

2 系统模型设计

1997年,美国国防部高级研究计划局 (DARPA)制定了一个公共的 IDS框架,命名为 CIDF(Common Intrusion Detection Framework)[4]框架。该框架统一了入侵检测系统的设计模型标准,笔者通过对支持向量机SVM的研究,在CIDF标准设计模型的基础上,加入了SVM的相关算法,设计出新的网络攻击检测模型,如图1所示。

1)数据流的获取 用于检测的数据必须是网络真实数据,为了方便,可以采用传统的网络评估数据集,也可以在局域网中模拟真实网络没,由人工手动发送病毒攻击等大量数据包,从而捕获这些模拟数据作为该模型的数据源。

2)数据预处理 数据预处理主要完成两部分工作,一是将网络连接记录中的字符型数据转换成数字矢量信息,并把连接记录中所有的信息按顺序赋上整数编码。二是将这些范围可能比较大的整数值再进行统一的归一化处理,得到0~1之间的实数,这样就可以直接作为SVM的输入向量了。

3)SVM训练模块 该模块把预处理之后的训练数据集输入向量机SVM进行训练,它是一种有监督的学习方法。该模块把训练数据集中的训练点按照一定的类别分开,形成标准模式即一组支持向量,并将之存在SVM支持向量库中备用。

4)SVM预测模块 该模块主要实现网络数据的安全性检测,根据SVM训练后形成的支持向量库的模式,将网络数据与之进行分类匹配,根据定义,如果预测后输出为-1,则表示有不安全的入侵行为发生,如果为+1,则表示正常。

5)SVM支持向量库 该模块用于存放训练结果,即SVM训练模块训练后得到的支持向量组,通过该向量可以检测出网络数据是否含有攻击。

6)事件数据库 主要记录SVM预测过的历史事件,在以后的网络管理和维护中,便于查询网络状况和分析网络的服务质量等。

7)输出及响应模块 该模块是用户直接关心的部分,SVM对网络数据检测之后,结果是什么,该有什么样的反应。该模块实现了网络报警和结果显示等功能。

图1 基于SVM的网络攻击检测模型

3 网络攻击检测模型性能测试

表 1 数据源选取

1)数据源 选取具有标记信息的数据源KDDCUP99 LABELED DATA[5]。该评估数据集来自真实的Internet缩影环境,包含了多种攻击类型,并提取了会话时间、服务类型、源地址、目标地址、攻击次数以及攻击类型等41个特征信息,从中随机抽取3组各若干条训练集和测试集来对该模型进行测试。这些数据集所包含的记录条数如表1所示。

2)数据预处理 数据预处理的任务是将每个网络连接记录中的所有特征信息预处理成数量特征。在这些特征信息中,有一部分属于字符型数据,比如,协议类型protocol_type和服务类型service等,在实际的网络连接列表里面,协议类型的取值可能是tcp或udp或icmp等。另外,网络会话的最后一列也是字符型数据。该列若为 “normal”则表示正常的网络会话,若有不正常的或者遭到攻击的网络会话,该列则为具体的攻击类型,例如:pingsweep,teardrop等[6]。要将网络连接记录转换成检测模型的输入数据,则需要把protocol_type等类型的字符数据进行转换,得到相应的数量特征,然后再进行归一化处理,把大小不一的各种数量统一到小范围内,如0~1之间。这样,网络连接记录就被初始化成标准的输入矢量,就可以作为检测模型的输入数据了。

一是数据集格式转换。首先应该将网络连接记录中的字符型字段数据转换成矢量数据,即将每一字段可能的取值都用数字来表示,这样就建立起了字符数据和矢量数据之间的一一对应关系,将该关系构造成一张表,称为关键词表。表2表示了协议类型的关键词表,其他如服务类型和攻击类型的关键词表与此类似,不再赘述。通过以上的兑换,整个数据集还不是SVM工具箱[7]所支持的标准格式。通过编程对之进行再处理,得到如下格式的文本文件并存储:

二是归一化处理。当众多的字符数据都经过矢量转换后,它们依次赋予的整数因同字段内相互不重复故使取值范围可能会很大,为了处理方便,将所有数字特征归一化处理到0~1之间。直接利用支持向量机工具箱[7]对准备好的数据源进行归一化处理,并将处理后的训练数据和测试数据分别以“*.scale”的文件形式存储在硬盘中。

3)系统仿真与结果分析 在支持向量机工具箱中,数据训练后可直接得到模型文件。针对前节选择和预处理的3组数据进行训练和测试,选择不同的核函数进行训练,其测试准确率结果比较如表3所示。

表2 协议类型的关键词表

表3 准确率对照表

通过表3可以看出,径向基 (RBF)核函数有比较高的准确率。为了绘图方便,对4种攻击类型分别编码为1、2、3、4,利用上述预处理的数据源训练支持向量机,首先利用训练样本集训练模型,并根据测试样本集评价模型的泛化能力,最终建立对应的支持向量机模型。为显示方便,从每组测试样本集中随机抽取50个数据进行仿真分析,并按从大到小的顺序排列,其仿真结果如图2~4所示。

表4 不同核函数检测性能比较

由图2到图4以及表3可以看出,采用3种核函数建立的支持向量机模型的分类的正确率均在98%以上;且以径向基函数作为支持向量机核函数有比其他核函数分类精度高的优点。以group1数据集为例,分别从训练时间、测试时间、测试精度、误报警率和漏报警率等方面来比较基于不同核函数的支持向量机的分类性能,结果如表4所示。从表4的统计可以看出,用RBF径向基作为核函数检测的精度比较高,误报率比较低,而漏报率最低的是多项式核函数的检测,所以,在实际检测时,也可采用多种核函数进行综合分析,这样可以得到比较理想的检测结果。

图2 RBF核的SVM分类仿真

图3 线性核的SVM分类仿真

图4 多项式核的SVM分类仿真

[1]陈春梅.网络数据检测与分析系统研究[D].绵阳:西南科技大学,2010.

[2]李国正,王猛,曾华军.支持向量机导论 [M].北京:电子工业出版社,2004.

[3]罗守山,入侵检测[M].北京:北京邮电大学出版社,2004.

[4]刘洁.基于支持向量机的网络入侵检测系统研究[D].长沙:中南大学,2008.

[5]吕志军,金毅,赖海光,等.DAPRA测试分析和IDS测试方法研究 [J].计算机科学,2004(11):73-76.

[6]薛静锋,宁宇鹏,阎慧.入侵检测技术[M].北京:机械工业出版社,2004.

[7]王国胜.支持向量机的理论与算法研究[D].北京:北京邮电大学,2007.

猜你喜欢

数据源预处理向量
向量的分解
聚焦“向量与三角”创新题
Web 大数据系统数据源选择*
基于预处理MUSIC算法的分布式阵列DOA估计
基于不同网络数据源的期刊评价研究
向量垂直在解析几何中的应用
浅谈PLC在预处理生产线自动化改造中的应用
向量五种“变身” 玩转圆锥曲线
络合萃取法预处理H酸废水
基于真值发现的冲突数据源质量评价算法