APP下载

基于改进PSO的SVM算法在数据库入侵检测中的应用研究

2015-04-30吴纪芸陈志德

软件导刊 2015年4期
关键词:数据库安全入侵检测支持向量机

吴纪芸 陈志德

摘要摘要:随着数据库应用越来越广泛,数据库信息泄露和篡改事件逐渐显现出来,数据库安全问题备受关注。入侵检测能够主动发现数据库中的各种攻击行为,弥补传统安全技术的不足,但由于现阶段大部分入侵检测技术工作量巨大,因而未能智能地进行检测判断。基于该问题,提出一种基于改进PSO的SVM算法对数据库进行智能入侵检测,利用改进PSO算法对SVM算法的惩罚因子和核函数参数进行寻优,利用寻优后的SVM对数据库操作进行分类,判断其是否属于正常操作行为。

关键词关键词:改进PSO;入侵检测;数据库安全;支持向量机

DOIDOI:10.11907/rjdk.1431074

中图分类号:TP309.2

文献标识码:A文章编号文章编号:16727800(2015)004013403

0引言

随着数据库应用的逐渐普及,信息泄漏和信息篡改事件也逐渐显现出来,数据库安全问题备受关注。相关数据表明,仅2013年一年,CNVD就通报了将近136个数据库系统漏洞,占信息安全漏洞总数的1.8%[12]。2012年,中国发生多起数据库安全事件,大约50多个网站的上千万条数据从数据库中泄露[3]。入侵指任何试图危害资源完整性、可信度和可获取性的动作[4]。入侵检测指发现入侵行为的存在或出现的动作,即发现和记录数据库中未经授权的行为和异常活动[5]。当数据库操作行为与正常行为特征存在明显差异时,认为数据库受到入侵,则立即发出警告。入侵检测能够及时发现数据库的各种攻击行为并试图作出积极响应,弥补传统安全技术的不足。因此,入侵检测成为数据库安全领域研究的热点课题。

入侵检测由James P.Anderson首次提出。1987年,Denning[6]首次阐述了入侵检测模型框架。1984年,他又实现了一个实时入侵检测系统模型[7]。1998年末和1999年初,麻省理工学院的林肯实验室在DARPA的资助下对开发的入侵检测系统进行了对比评价[8]。如何将入侵检测系统应用于数据库中已有相关研究,Sin Yeung Lee等[9]于2002年提出了一种建筑学框架DIDAFIT,即通过指纹识别处理的数据库入侵检测模型。

已有许多研究者提出数据库入侵检测系统模型,提出的模型能够按照预设定的规则,检测数据行为,并判断数据是否正常[1011]。但这些技术仍存在一些问题,因为数据库数据量很大,如果对数据进行逐项分析检测,将会大大增加不必要的工作量。针对这一点,本文利用智能优化算法进行数据库的入侵检测,以提高数据检测效率。

本文利用改进的粒子群优化算法对支持向量机参数进行寻优,再用参数寻优后的支持向量机对数据库操作进行分类,判断其是否为正常行为。本文提出的改进粒子群优化算法能够适用于实际应用中,最优解能够适用于多约束条件,并重新激活失去全局或局部搜索能力的粒子。而对于支持向量机而言,将数据样本分成6类,即正常操作、口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份,分别标记为1、2、3、4、5、6。其中除了正常操作外,其余5个都属于异常入侵行为。利用改进粒子群算法进行支持向量机参数寻优后,检测精确度有所提高,算法收敛速度也相应提升。

1改进PSO的SVM算法及其应用

数据库入侵检测实际上是多分类问题,支持向量机(SVM)已经成功运用于入侵检测中,但是分类性能与支持向量机的参数息息相关。而粒子群优化(PSO)算法作为一种智能优化算法,具有良好的全局寻优能力。但传统的粒子群优化算法不能够很好地适应实际应用环境,因此,运用改进的粒子群优化算法选择支持向量机参数,并利用参数优化后的分类算法检测入侵操作。

1.2改进的PSO算法

与传统粒子群优化算法相比较,本文算法有两大突出改进之处:

①最优解受多项约束条件限制。例如,加大惩罚参数能使得训练分类模型的准确率提高,但过高的惩罚参数会造成过学习状态,只要不满足约束条件的解,无论其适应度函数值如何都不予以接受,必须将其作适当修改;

②在进化过程中粒子群的多样性可能丢失。在进化过程中即使位置非常接近gBest但速度趋近于0时,代表该粒子失去全局或局部搜索能力,即成为不活动粒子。失去全局搜索能力的粒子只能在一个很小的空间内“飞行”,而失去局部搜索能力的粒子在进化过程中对其适应值不产生影响[14]。因此,对于速度趋近于0的粒子应重新进行初始化。

改进的粒子群优化算法主要计算步骤如下:

(1)惩罚因子和核函数参数初始化。在满足约束条件的情况下对惩罚因子和核函数参数进行初始化,通常是在允许的范围内随机产生。设定学习因子c1和c2,惩罚因子和核函数参数的个体最佳取值pBest[i]设置为初始取值c1[i]和g1[i],计算对应的适应度值F1[i]。全局最优值取当前适应度值,并且将此轮迭代的惩罚因子和核函数参数取值记录在gBest[i]中。

(2)惩罚因子和核函数参数评价。计算惩罚因子和核函数参数的适应度值,如果优于该变量的个体极值,则将pBest[i]设置为该变量的当前取值,且更新个体极值。如果所有变量中最大的个体极值大于当前全局极值,则在gBest[i]中记录每个变量的取值,并且更新全局极值。

(3)变量更新。利用式(1)对每一个变量的取值和取值变化速率进行更新。

(4)不活动变量重新初始化。当第i个变量的变化速率接近于0时,重新调整该变量的取值X[i],调整增量为一个区间范围内的随机数α。用minX[i]和maxX[i]记录从最近初始化到现在的投标价格最小值和最大值,α为minX[i]-maxX[i]2,maxX[i]-minX[i]2范围内的随机数。

(5)与约束条件冲突的变量处理。若更新过的变量与约束条件冲突,则将其变化速率和取值更改为原值。

(6)结束条件检验。如果当前迭代次数达到了预先设定的最大次数,则停止迭代,输出最优解,否则转到步骤(2)。

改进的粒子群优化算法流程如图1所示。

1.3基于PSO的SVM算法

数据库入侵检测实际上是一个多分类问题,因为存在多种数据库入侵攻击类型,最常见的有口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份[15]。因此,利用SVM的n类分类算法解决分类问题。

本文将数据库操作划分为6个类型,即正常操作、口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份,分别标记为1、2、3、4、5、6。其中除了正常操作外,其余5个都属于异常入侵行为。将每个类别的操作各取300个样本,每种类别各取一半作为训练样本,另一半作为测试样本,则有900个训练样本和900个测试样本。利用可训练的机器学习方法支持向量机(SVM)训练模型,找到能够正确区分这6类训练样本数据的超平面。这6类样本是非线性可分的,如果运用一般的线性变换,会导致问题陷入“维数灾难”,使得计算复杂而不可行。因此,支持向量机利用输入空间的核函数取代了高维特征空间中的内积运算,将低维输入空间中的数据通过非线性函数映射到高维属性空间,将分类问题转化到属性空间进行。

选择适当的核函数,可以使输入空间线性不可分问题在属性空间转化成线性可分问题。采用径向基(RBF)核函数,支持向量机能够实现径向基函数神经网络功能。对于RBF核函数而言,需要确定两个参数即惩罚因子c和核函数参数g。由于不同的参数组合会影响实验的准确度,因此采用改进PSO算法对SVM的惩罚参数c和核函数参数g进行寻优。基于PSO的SVM算法流程如图2所示。

2算法应用步骤

本文主要采用SVM多类分类算法对数据库入侵检测进行多类分类,并采用改进的PSO算法对SVM的惩罚因子c和核函数参数g进行寻优,提高分类精度。其主要应用步骤如下:

(1)数据预处理。 ①异常值移除处理。利用盒图分离出数据中的离群数据(这些离群点就是异常数据),移除这些异常数据从而避免因人为因素或数据采集不当而造成整体特征特性的偏差;②归一化处理。样本的各维数据经过某种算法处理后其大小都限制在一定范围内,避免了奇异样本数据引起网络训练时间增加,甚至可能引起网络无法收敛等问题;③降维处理。将样本数据从输入空间通过线性或非线性变换映射到一个低维空间,从而获得一个关于原数据集的低维表示,避免降低程序收敛速度和增加算法的时间复杂度。

(2)SVM算法参数寻优。利用改进的PSO算法对SVM算法中的惩罚因子c和核函数参数g进行寻优。

(3)训练阶段。假设入侵检测结果有n个类型,则用SVM多分类的分类方法,利用训练样本输入分类器,得到分类模型。

(4)测试阶段。利用训练好的分类器进行数据测试,得到测试结果。

3结语

针对现阶段大部分入侵检测技术工作量巨大且未能智能地进行检测判断等问题,本文提出一种基于改进PSO的SVM算法对数据库进行智能入侵检测。该方法利用改进PSO算法对SVM算法的惩罚因子和核函数参数进行寻优,利用寻优后的SVM对数据库操作进行分类,判断其是否属于正常操作行为。其中,改进的PSO算法较适用于实际应用场景,最优值对多约束条件皆适用,而对于失去全局或局部搜索能力的粒子,则需对其进行重新初始化。对于支持向量机而言,将数据样本分成6类,即正常操作、口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份,分别标记为1、2、3、4、5、6。其中除了正常操作外,其余5个都属于异常入侵行为。利用改进粒子群算法进行支持向量机参数寻优后,检测精确度有所提高,同时也加快了算法的收敛速度。

参考文献参考文献:

[1]国家计算机网络应急技术处理协调中心.2012年中国互联网网络安全报告[R].北京:国家互联网应急中心,2012.

[2]国家信息安全漏洞共享平台漏洞列表[EB/OL].[2014218].http://www.cnvd.org.cn/.

[3]杨磊.数据库安全审计检测系统的设计与实现[D].北京:北京交通大学, 2014.

[4]郦敏智,基于云模型的数据挖掘在入侵检测系统中的应用[D].广州:华南理工大学,2004.

[5]阮耀平,易江波.计算机系统入侵检测模型与方法[J].计算机工程,1999,25(7):6365.

[6]DOROTHY E,DENNING.An intrusiondetection model[J].IEEE Transactions on Software Engineering,1987,13(2):2334.

[7]DENNING D.An intrusion detection model[J].IEEE Transactions on Software Engineering,1987,13(2):222232.

[8]MCHUGH J.Testing intrusion detection systems: a critique of the 1998 and 1999 DARPA intrusion detection system evaluations as performed by Lincoln Laboratory[J].ACM transactions on Information and system Security,2000, 3(4):262294.

[9]LEE S,LOW W,WONG P.Learning fingerprints for a database intrusion detection system[J]. Computer Security ESORICS,2002,2002(2): 264279.

[10]卢硕珽.数据库入侵检测系统的设计与分析[D].广州:中山大学, 2010.

[11]张洪斌,李娜.多信息源数据库入侵检测系统[J].电子商务,2011(11):3233.

[12]杨维, 李歧强.粒子群优化算法综述[J].中国工程科学,2004,6(5):8794.

[13]林祝亮,冯远静.基于粒子群算法的无线传感网络覆盖优化策略[J].计算机仿真,2009(4):190193.

[14]杨俊杰,周建中,吴玮,等.改进粒子群优化算法在负荷经济分配中的应用[J].电网技术, 2005,29(2):14.

[15]百度百科.http://baike.baidu.com/view/2273681.htmfr=Aladdin.

责任编辑(责任编辑:孙娟)

猜你喜欢

数据库安全入侵检测支持向量机
管理信息系统中数据库安全实现方法
浅谈高速公路数据库安全审计
基于支持向量机的金融数据分析研究
高校数据库安全技术教学实践探索