系统异常检测

2024-08-16

系统异常检测(精选7篇)

系统异常检测 篇1

(2013-105-英国-064)

英国牛津大学研发了一种针对可靠时间序列新颖检测的系统监测工具。其应用包括对机器、工厂、财务模式和病人关键信号的监测。

当监测如重症监护病人等关键系统时, 可靠时间序列新颖检测可对正常和异常行为进行分类。重症监护病人的关键信号包括不同的参数, 如心率、血压和关键器官的功能等。这些变量对病人的身体健康起着协同作用。因此, 迫切需要的是综合考虑这些变量以实时评估病人是处于正常状态还是异常状态/恶化状态。

该技术已提请PCT和GB专利。ISIS寻求商业化合作伙伴。

系统异常检测 篇2

伴随着计算机的快速发展,出现了一些具有负面影响的产物,如病毒、入侵等。病毒和入侵的原理是利用系统或程序中的漏洞对计算机进行非法操作,其所产生的行为为异常行为。如果能够及时发现异常行为,就可以实现对计算机的实时保护。常用的反病毒技术包括特征码技术和虚拟机技术[1]。入侵检测是指从主机数据或网络数据中发现入侵行为的技术,入侵检测方法一般分为两大类:误用检测和异常检测[2]。误用检测通过建立攻击行为的特征库,采用特征匹配的方法确定攻击事件;异常检测通过对正常行为建模、以是否显著偏离正常模型为依据来判别入侵行为。

计算机系统依靠进程维持运行,进程通过函数调用来完成指定操作。1996年,美国新墨西哥大学的Forrest等人提出通过收集UNIX系统上进程执行生命周期所形成的轨迹,进而将其以固定窗口大小拆分为等长的系统调用序列进行分析匹配,最终对异常的序列产生报警的方法,开创了基于系统调用异常检测方法的先河[3]。受到人体免疫系统的启发,tide算法被Hofmeyr等人利用sequence time-delay embedding(stide)技术进行了扩展,在stide算法形成的数据库中增加每组序列的出现频率,测试序列与数据库中的序列进行比较,稀少序列和那些数据库中没有的序列被当作异常序列。

国内研究者吴瀛等[4]全面分析了已有的基于系统调用的入侵检测的理论与技术,归纳出基于系统调用的入侵检测主要有序列枚举法、统计学方法、基于机器学习的方法、基于数据挖掘的方法以及基于有限状态机的方法等,并指出进一步提高检测性能、降低误报率、解决与实用化相关的多平台、轻量化、安全技术综合集成与标准化等问题,将成为该领域近期主要的研究方向。贺喜等[5]引进文本挖掘模型构建入侵检测分类算法,将系统调用短序列视为word,利用文本挖掘模型提取进程系统调用序列的主题特征,并结合系统调用频率特征,运用K最邻近节点k NN(k-Nearest Neighbor)分类算法进行异常检测。

然而,单纯依据序列或系统调用频率并不能完整地表示进程的行为,静态数据不能完整地描述行为特征。针对上述问题,本文提出从研究系统调用的先后顺序出发,以系统调用之间的稳定性作为重要的特征,抽取系统调用的先后顺序并转化为特征向量,利用机器学习算法对向量集合进行训练,建立系统调用异常检测模型,实现对进程行为的实时、智能检测。

1 系统模型

为使系统具有更强的推广性及适用性,我们选用高市场占有率的Windows作为研究平台。在Windows系统中,系统调用被称作应用编程接口API,应用程序通过调用API执行应用程序命令。

1.1 相关技术

(1)Windows平台API挂钩监视技术

一般情况下,在Windows平台下应用挂钩技术获取进程所调用的API,常见技术包括克隆DLL、导入地址表补丁、简易调试器。

本研究采用微软公司发布的开源包Detours作为API钩子的核心。Detours是用来拦截x86、x64、ARM和IA64机器上二进制函数库,其可像调试设备一样用于拦截程序内的系统API调用,拦截代码在进程运行时动态注入。Detours用无条件跳转指令替换了目标函数最初的几条指令,使其可以运行用户提供的Detour函数;而目标函数的原始指令被保存在跳板函数中。当程序执行到目标函数时,控制权将直接跳转到用户提供的拦截函数。拦截函数可以将控制权返回原函数,也可以调用不会中断目标函数的跳板函数;当目标函数执行完毕,控制权返回到拦截函数。拦截函数执行适当的后处理并将控制权返回原函数。

(2)机器学习算法

机器学习[6,7,8]是从训练集学习规则集的过程,应用有监督的机器学习方法解决实际问题的过程如图1所示。

本研究主要应用以下5种机器学习算法实施系统调用的分类建模与异常检测,算法包括支持向量机、K最邻近节点、人工神经网络、决策树、以及朴素贝叶斯网络等。支持向量机SVM对于离群点具备极强的鲁棒性,算法将输入向量映射到更高维度的特征空间、计算最优分类超平面。K最邻近节点(k NN)是用来分类样本的最简单且古老的非参数技术之一,算法不包含模型训练阶段,被称作基于样本的学习。算法计算空间中不同输入向量形成的点的近似距离,把未标记的点归为离它最邻近的k个点所属的一类中去,其中,k是一个重要的参数,不同的k值会产生不同的效果。多层感知结构的神经网络广泛应用在模式识别问题中,一般用后向传播学习算法训练多层感知网络,算法根据分类错误最小、分类效率最高等条件调整节点间的权值,建立分类模型。决策树分类算法将样本集的所有属性分配到树中各个节点上,通过属性计算出每个分支的值,分类是样本从根节点传递到合适的叶节点的过程,每个叶节点表示为一类。朴素贝叶斯的结构通常表示为一个有向无环图,在这个有向无环图中,每个节点表示一个系统变量,每个连接表示为每个节点对于其它节点的影响,朴素贝叶斯网络能够对已知系统调用序列确定其归属类型的可能性提供答案。

1.2 实时智能检测系统

(1)系统架构及其优势

本研究设计利用Web Service技术实现系统调用异常检测系统,系统架构如图2所示。

系统中主要包括API监视模块、属性计算模块、机器学习模块。为了利用最少的参数获取最大限度的特征,选用API名称及运行时间作为拦截目标。API监视模块通过调用Detours库,实现对API的拦截,经过缓存、输出给属性计算模块。属性计算模块计算属性向量,通过Web Service将其传入机器学习分类模块。系统中采用新西兰怀卡托大学开发的数据挖掘软件Weka所提供的机器学习分类算法作为机器学习分类器[9],系统通过调用可进行多分类的Lib SVM包实现SVM分类算法、调用IBK包实现k NN分类算法、调用MultilayerPerceptron包实现神经网络分类算法、调用J48包实现决策树分类算法、调用Naive Bayes包实现朴素贝叶斯网络分类算法。

本文根据属性提取算法实时计算属性值,在进程运行的同时不断向机器学习分类模块输入数据,实时跟踪进程的行为,实现实时异常系统调用的智能检测系统。系统采用Java构建Web Service,监视端调用该服务,传输预测向量;Web Service调用分类模块实施分类、并将结果返回监视端。分类模块实现API调用特征向量的计算。监视端与分类端利用Web Service实现异构平台间调用,从而实现进程异常行为检测。同时,本系统中Web Service传输的数据量仅为一条特征向量,不影响程序及网络本身的运行效率。

(2)系统流程

本文设计的基于API序列异常检测算法的实时智能检测系统,不仅能够对已收集的数据进行分析预测,还可对实时运行的进程行为实施检测。系统流程如图3所示。

系统首先选择一个待检测进程,然后将DLL注入到该进程所在内存空间中,拦截该进程运行时所调用API的相关信息。成功获取到API序列后,进行矩阵计算得到向量属性值,生成相应的训练集和测试向量,最终得出判断模型和预测结果。

2 特征向量提取方法

由不断变化的API调用所导致的进程行为的不断变化是一个强调顺序的过程,单纯依据序列并不能完整地表示进程的行为,这与一般的分类问题有很大区别[10]。例如在葡萄酒分类问题中,只需提供酒的颜色、酒精度、产地等属性,就可以得到葡萄酒所具有的特征。然而进程的行为是一个持续的过程,其中包含了时间和顺序的因素,所以单纯依据序列不能很好地描述该类行为的特征。

针对上述问题,本文提出从研究系统调用的先后顺序出发,以时间作为重要的特征指标,把系统调用的先后顺序表示出来,并转化为向量,最终调用机器学习算法对特征向量进行学习并建立模型,实现对进程行为的实时检测。

下面首先给出特征向量提取方法中的有关定义,然后描述具体的特征向量提取方法。

定义1 n代表所监视的API数量。

定义2 Ai(1≤i≤n)代表所监视的n个API之一。

定义3 Seqij=(Ai,Aj)(1≤i,j≤n)代表相邻两个API调用序列。

定义4 Countij(1≤i,j≤n)代表Seqij的出现次数。

定义5 Sum代表所有Countij总和:

定义6 Fij(1≤i,j≤n)代表Seqij的出现频率:

定义7 Timei代表Ai(1≤i≤n)的调用时间。

定义8 Intij=Timej-Timei(1≤i,j≤n)代表间Seqij的时间差。

定义9 Dij代表Intij(1≤i,j≤n)的方差:

将Fij和Dij作为所需的属性分别存储到两个矩阵———API关联矩阵和API时间方差矩阵中,矩阵结构如表1和表2所示。

为获取机器学习分类模块的输入数据,将API关联矩阵和API时间方差矩阵转换为n×n×2维向量。

定义10 V代表矩阵转换后的向量:

过程1特征向量提取过程

1)选取所监视的API

进程在运行时将调用大量不同种类的API,通过将API按出现频率进行排序,得出排在前面的几个,这几个API是表示进程特征的最主要因素,选取其作为所监视的API。

2)计算API的特征向量

利用API调用序列中两个相邻API的出现频率和相邻API出现间隔时间的方差作为属性特征进行计算。针对所监视的API,计算其API关联矩阵和API时间方差矩阵,并转换为特征向量V。

该方法有如下优点。特征描述准,可以准确表示API间的调用顺序以及API间调用的稳定性;排除无关项,通过统计得出API调用频率,选取最能表示进程运行特征的API;抗扰能力强,只针对特定API,可以防止进程加花指令,并且无视进程加壳;应用范围广,加入每秒调用API次数后,可对DDo S攻击或端口扫描攻击进行报警;高效省资源,系统资源占用小,可以控制计算时间间隔,对进程的运行不造成影响。

3 实验及结果分析

本实验分为静态数据测试和实时环境测试两种模式:静态数据测试指事先收集好数据并计算特征向量,用机器学习算法进行训练和测试,得出准确率;实时环境测试指实时对运行中的进程进行监控,经过一定时间间隔根据收集的API序列进行计算,得出的特征向量经过Web Service传入机器学习算法,输出分类结果。前者主要测试属性能否反应进程行为的特征和一些相关参数对分类结果的影响;后者主要测试算法能否在真实环境下顺利运行,以及对系统资源的使用情况。

实验选用的监视进程分别是mp3tag.exe、itools.exe和weibo.exe,根据进程产生的API计算特征向量,并设立了正常和异常类别,利用上述5种机器学习算法对特征向量进行训练和预测,测试时样本被分为6类中的一类。

3.1 静态数据测试

静态数据测试是按照事先定义好的正常与异常的模式操作程序,产生正常API序列和异常API序列,分别计算其属性向量,利用得到的向量生产训练模型。静态数据测试主要用来选取恰当的API序列时间间隔、所拦截API数量以及训练样本规模的大小。

静态测试无需调用Web Service,将正常行为和异常行为组成的特征向量直接输入到Weka包的分类算法进行模型的训练与准确率测试。

(1)序列截取间隔时间

系统首先收集API调用序列,进而对序列进行计算。序列过短会导致属性值不稳定,序列过长会导致计算代价增加。本文采用定时截取序列的方法,选取了1、2和4 s三种区间进行测试。分别将定时截取的序列经过属性计算得出的向量组成数据集,划分一定比例作为训练集,其余作为测试集。测试结果如表3所示。

由表3可知,三种不同时间间隔对分类准确率影响不大。考虑到1 s的间隔占用系统资源较大,4 s有些长、不能捕获一些简短的行为,所以我们选用2 s作为序列截取间隔进行接下来的实验。

(2)拦截API数量

本实验分别选取上述3个进程调用频率最高的n个API进行测试,n分别为6、9、11。选用时间间隔为2 s计算得出的数据集进行测试,每个数据集都包含120条样本,其中80条用于训练,40条用于测试。测试结果如表4所示。

由表4可知,随着被监视API数量的增加,准确率也逐步提升。除了神经网络算法所需训练时间较长外,其它算法训练时间均可忽略不计。但考虑到每增加3个API,向量体积都增大一倍左右,其带来的准确率增长率相对很小;并且,训练集和测试集均为随机选取,也会导致准确率的误差。因此,我们选取监视API数量为9进行接下来的实验。

(3)训练样本数量

样本数量过低会导致欠学习;太多又会导致过学习。本实验希望在最大化分类准确率的情况下寻找最少的训练样本。通过之前收集的数据集,用30%、50%和70%三种比例对其进行训练集与测试集的划分。本实验数据集一共有180条样本,根据上述比例进行训练测试,测试结果如表5所示。

由表5可知,当训练集所占数据集的比例为70%时,准确率基本都达到最大。但是,随着训练集的增大,测试集的数量相对减少,这样在一定程度上会使训练集较大的实验所得数据虚高。也就是说,三种不同比例的训练集的训练结果相差不大。可在样本数量较小的情况下(每类9个)获得理想的分类结果。

在以上3个实验中,只有支持向量机算法的分类结果很不理想。对此,本研究针对该算法进行了参数的选取优化,通过对SVM算法中重要的两个参数,惩罚系数和径向基核函数参数,进行10折交叉验证选取,以获得最优的分类结果。测试结果如图4所示。

由图4可知,随着C和γ值的增加,准确率也随之上升。C越高,说明越不能容忍出现误差。C过大或过小,泛化能力都将变差。γ隐含地决定了数据映射到新的特征空间后的分布,γ越大,支持向量越少,γ越小,支持向量越多。支持向量的个数影响训练与预测的速度。图中,当C=60时,基本达到了最大分类准确率,除了γ=0.001的情况。相比默认参数C=1和γ=0.0083,经过优化后的参数具有更强的容错率和支持向量数,所以具有更高的准确率。

以上针对静态数据各项实验的结果表明:利用API序列中的顺序与时间信息描述进程行为是可行的。实验中的5类机器学习算法,包括参数优化后支持向量机,其准确率均达到95%以上。结果表明针对顺序和时间的特征提取算法能够准确地描述进程的行为,在保证准确率的前提下,训练样本规模和训练生成的模型体积都很小,除了神经网络算法所需训练时间较长外,其他算法的训练和检测时间均可忽略不计。

3.2 真实环境测试

(1)资源占用测试

真实环境是指用户实时对程序进行操作,系统选取与静态数据测试相同的监视进程,不断收集指定的API调用,每隔一定时间计算一次属性向量,通过Web Service传入机器学习算法,利用上一节中训练好的模型完成预测。真实环境测试结果的分类准确率与静态数据测试的结果基本相同。因此,这里主要讨论针对系统资源占用的测试,此项监视进程选用weibo.exe,空闲时为每秒产生1000左右的系统调用,操作时每秒产生10 000个左右的系统调用,分别选用不同时间间隔和API数量对CPU使用情况进行了测试,测试结果如图5所示。

由图5可知,空闲时系统CPU占用率为0%~2%,时间间隔越短平均值越高;有操作时CPU占用率会比较高,为20%~35%左右,这与程序本身所占CPU资源大体相同。并且随着间隔时间增加,每计算一次属性所需的资源就越高,不过平均值会下降。目前来看与API数量关系不大。

在实时检测过程中,对系统资源的占用率随程序单位时间调用API数量增加而增加。最多情况下占用系统资源接近40%,与程序本身占用CPU资源比例大体相同。这是因为选取的API是进程本身调用最频繁的n个API,与进程的活跃程度成正比。不过一般程序的正常运行不会受到影响,比如上网浏览网页或听音乐,其取决于程序本身对CPU资源的占用程度。

(2)用户击键特征识别

本文利用时间属性、针对用户击键特征设计了用户击键特征识别实验。实验内容为捕获用户击键时产生的键盘API调用序列,提取特征向量,训练模型,进而实现不同用户击键的分类。虽然不同用户击键API调用的数量可能相同,但其击键习惯不同,在相邻API调用间产生的方差就不同,文献[10]给出了击键特征提取原理的详细描述。例如,A和B同时在2秒内输入“123456”,这样仅凭API调用的频率无法判断A和B的区别。如果加入时间属性,A和B的输入习惯如果不同,就能够利用API调用间不同的方差将A和B区分开。实验结果显示利用时间特征的识别准确率高于单纯依据序列调用的识别准确率,表明在用户击键特征识别方面时间特征的有效性。

4 结语

为了更加完整地描述系统调用行为特征,准确地实施系统调用异常行为检测,本文提出了以系统调用的先后顺序以及系统调用之间的稳定性作为重要特征、利用机器学习算法对特征向量集合进行训练、从而建立系统调用异常检测模型。本文通过获取Windows平台下进程运行时产生的API序列,计算其特征向量,将向量传入机器学习算法,得到对指定进程的分类结果。该方法不仅可以调用各种不同的机器学习算法、实时对不同进程做出分类,还可对不同进程间不同的特征值做出解释。由于使用了Web Service技术,该方案不仅可对本机的进程进行分类,还可将API监视模块和属性计算模块部署到其它计算机上,通过Web Service将向量传输到机器学习算法模块所在的服务端,分类后再将结果返回到客户端。由于传输的数据量仅为一条向量,所以不会对带宽造成影响,也不影响程序本身的运行效率。

实验结果表明本文提出的系统调用异常检测方法具有特征描述准、排除无关项、抗扰能力强、应用范围广和高效省资源等优点。

参考文献

[1]李华,刘智,覃征,等.基于行为分析和特征码的恶意代码检测技术[J].计算机应用研究,2011,28(3):1127-1129.

[2]Denning D E.An Intrusion-detection Model[J].IEEE Transactions on Software Engineering,1987,13(2):222-232.

[3]Forrest S,Hofmeyr S A,Somayaji A,et al.A Sense of Self for Unix Processes[C]//Proceedings of the 1996 IEEE Symposium on Research in Securityand Privacy,Los Alamitos,CA:IEEE Computer Society Press,1996:120-128.

[4]吴瀛,江建慧,张蕊.基于系统调用的入侵检测研究进展[J].计算机科学,2011,38(1):20-25.

[5]贺喜,蒋建春,丁丽萍,等.基于LDA模型的主机异常检测方法[J].计算机应用与软件,2012,29(8):1-4.

[6]屈鹏,王惠临.专利文本分类的基础问题研究[J].现代图书情报技术,2013,29(3):38-44.

[7]杜隆胤.基于万有引力定律的分类方法研究[J].计算机应用与软件,2013,30(2):205-207.

[8]付忠良.通用集成学习算法的构造[J].计算机研究与发展,2013,50(4):861-872.

[9]Hall M,Frank E,Holmes G,et al.The Weka Data Mining Software:An Update[J].SIGKDD Explorations,2009,11(1):10-18.

系统异常检测 篇3

关键词:数据挖掘,关联规则,入侵检测,数据库安全

0 引 言

入侵检测是信息安全中的一个重要研究课题,当前对操作系统和网络的入侵检测的研究已经取得不少成果,但对数据库系统则涉及较少。现实情况是:随着数据库应用的广泛深入,数据库安全方面的需求越来越突出。虽然大型的数据库提供了一些安全机制,但是这些安全机制并不能解决未授权用户获得管理员权限之后对数据库进行的非法操作,因此,实现对数据库的入侵检测,保证数据库的安全是非常必要的。

入侵检测就是识别那些未授权使用计算机系统的个体(如黑客)和虽然有合法授权但滥用其权限的用户(如内部攻击)。现有的入侵检测主要有两种模式:①利用已知攻击模式和系统弱点来识别攻击的误用检测(Misuse Detection);②检测用户行为是否偏离正常模式的异常检测(AnomalyDetection)。误用检测优点是检测准确率较高,缺点是只能对已知攻击类型和已知系统安全漏洞进行检测;异常检测的优点是能检测未知的攻击类型,缺点是误检率较高。现有的采用异常检测的入侵检测系统大都采用专家系统或基于统计的方法,这需要较多的经验,而数据挖掘(Data Mining)技术则不依赖经验,可以从大量数据中提取人们感兴趣的、事先未知的知识和规律,能够发现隐藏在数据背后的用户模式和特征,所以将数据挖掘技术应用在数据库的入侵检测系统中,可以从大量的审计数据中发现有助于进行检测的知识和规则,进而发现数据库的异常。

1 关联规则及关联规则挖掘算法

1.1 关联规则相关概念

定义1 令I={i1,i2……im}为项目集(itemset),D为事务数据库,其中每个事务T是一个项目子集T⊆I,并具有一个唯一的标识符ID。关联规则是形如X=>Y的逻辑蕴含式,其中X⊂I,Y⊂I,且X∩Y=Ø。

定义2 如果事务数据库中有s%的事务包含X∪Y,那么可以说关联规则X=>Y的支持度为s。

定义3 如果事务数据库里包含X的事务中有c%的事务同时包含Y,那么可以说关联规则X=>Y的可信度为c。

定义4 当支持度和可信度分别大于等于各自的阈限值时,认为 X => Y是有趣的,此两个值称为最小支持度阈值(min_sup )和最小置信度阈值(min_conf )。

定义5 support(X => Y)≥ min_sup 且 confidence(X => Y)≥ min_conf ,称关联规则X => Y为强关联规则,否则称关联规则 X => Y为弱关联规则。

1.2 关联规则挖掘的过程

发现关联规则的目的在于找出那些可信的并具有代表性的规则。关联规则的挖掘问题就是在 D 中找出所有支持度和置信度均分别超过min_sup 和 min_conf 的关联规则,即要求满足 support(X=>Y)≥ min_sup 且confidence(X=>Y)≥ min_conf 的规则 X=> Y。关联规则挖掘问题可以分为两个子问题:

(1)找出所有频繁项目集:即找出所有支持度不低于用户规定的最小支持度阈值的项目集;

(2)由频繁集构造可信度不低于用户规定的最小可信度阈值的强关联规则。

1.3 关联规则挖掘算法

在本系统中,使用FPMAX算法进行关联规则挖掘。与 著名的Apriori算法相比,FPMAX避免了产生庞大的候选项集(中间结果),不需要在每一个阶段循环都重复进行数据库存取,因而在性能上优于Apriori算法。FPMAX算法的基本思想是将数据集中的重要信息压缩在一个称为频繁模式树(FP-Tree)的数据结构中,然后基于FP-Tree生成数据集中所有的频繁项集。该算法对所有频繁项集的挖掘分为以下两步:①构造频繁模式树FP-Tree,②对频繁模式树FP-Tree进行挖掘。

2DBADS体系结构及异常检测引擎算法的设计

进行数据库异常检测的前提条件是建立一个数据库异常检测模型。此模型建立的基础是挖掘出数据库用户在长期操作数据库的过程中的行为规律。在建模的训练学习阶段,要求采集用户正常操作的数据,所以学习到的规则(聚簇规则集)是用户正常状态下的行为规律。在检测时,如果一些会话连接不符合这些规则,则认为这些连接是异常的。

异常检测系统DBADS的体系结构如图1所示,它由数据预处理、关联规则挖掘、关联规则库和异常检测引擎组成。

2.1 数据预处理

按规则中项目的类别不同,关联规则分为两类,布尔型关联规则和多值型关联规则。在本系统中,待分析的数据库审计数据为多值型数据,而产生频繁项集的FPMAX算法和生成强关联规则的算法处理的都是布尔型数据。所以应将关于多值关联规则问题转化为布尔型关联规则问题,即每个属性值都对应于一个新的布尔型属性,再在其上使用挖掘布尔型关联规则的算法。

本系统中的多值属性可分为数量属性和类别属性。在本系统中对于类别多值属性预处理的方法是:直接把每一类别映射为布尔值,例如将类别多值属性主体转化为主体John、主体Smith等布尔型属性。对于数量多值属性,预处理的方法是:对属性值进行等距离的划分,再对应到布尔型属性,例如:将数量多值属性读wages表记录数等距离划分为十个区间,从而构成wages0_9、wagesl0_19、wages20_29等十个布尔型属性。

在进行数据挖掘之前,对采集的数据库审计数据进行预处理。我们将多个属于同一会话的审计记录归并到同一个会话连接里。一个会话连接记录包含以下属性:

(ConnectionID,主体,客体,路径,行为,时间)

ConnectionID:一次会话连接的ID。

主体: 用户。

客体: 数据库或数据库对象(表、视图、存储过程等)。

路径: 用户所在主机的名字。

行为: 对数据库或数据库对象的操作。

时间: 本次会话的起始时间。

系统中,将一次会话连接看作是一个事务T,对采集的所有会话连接记录组成事务数据库D。因为数据库审计系统产生的审计数据量很大,为了提高系统的速度,所以预处理时只对敏感数据库或者数据库对象和敏感主体的审计数据进行转化处理,以备以后挖掘之用。经过预处理之后的训练审计数据库表如表1所示。

2.2 关联规则挖掘及建立异常检测模型

经过审计数据预处理算法得到表1所示的布尔型审计数据,使用FPMAX算法挖掘出频繁项集L,再由用户给出最小可信度,生成强关联规则,生成关联规则的算法如算法1所示:

算法1 关联规则生成算法

输入:频繁项集的集合L,最小可信度阈值min_conf

输出:关联规则

方法:

1)对于每个频繁项集l,产生l的所有非空子集;

2)对于l的每个非空子集s,如果:

lsmin_conf,则输出规则s=>(l-s)。

生成的关联规则如表2所示。

第一条规则的含义为:在所有的会话记录中有25.35%的会话操作主体为John,操作路径为IBM,操作客体为wages表,进行的操作为读操作。在操作主体为John,操作路径为IBM的情况下,有95.64%的会话可能是对wages表读20-30个记录的操作。

通过训练大量的审计数据,创建异常检测模型,创建异常检测模型的过程如算法2所示:

算法2 异常检测模型创建算法

输入:训练审计数据集、最小支持度、最小可信度

输出:异常检测模型

方法:

1)将训练审计数据转化为布尔型训练审计数据;

2)调用FPMAX算法挖掘布尔型训练审计数据的频繁项集的集合;

3)生成关联规则。

2.3 异常检测引擎的设计

异常检测引擎的工作包括将采集的待检测审计数据进行预处理,转化成前面定义的会话记录格式;对待检测的会话连接记录进行预处理及关联规则挖掘,产生关联规则集;将产生的关联规则集与建立的异常检测模型进行分析比较,比较出异常的记录,并显示出异常记录的详细信息。检测算法如算法3所示:

算法3 检测算法

3 实验结果分析

实验中检测了两种类型的攻击,分别是:伪装攻击、合法用户攻击。对十组数据(每组数据有一半是正确操作事件,另一半为异常操作事件) 进行了检测分析,统计了对每种攻击的检测率、虚警率。

图2、图3分别给出了针对两种攻击的检测率和虚警率。

由图中可以看出,对于合法用户攻击的检测率最高在80 %以上;系统的异常检测性能在检测率和虚警率之间徘徊,检测率高了,虚警率就会提高;同样虚警率降低了,检测率也就会降低,符合异常检测系统(IDS)的性能评价要求。

4 结束语

本文提出了一种基于关联规则挖掘的数据库异常检测系统的体系结构。该系统采用关联规则FPMAX算法,对用户正常历史数据进行挖掘,通过训练学习生成异常检测模型,并利用此模型实现基于关联规则挖掘的异常检测。由于数据挖掘技术能从大量审计数据中快速提取出规律,因而在本系统设计中采用数据挖掘技术,大大提高了系统的性能。但是经反复测试证明,该模型的误检率比较高,尚有待进一步优化、改进。

参考文献

[1]G彲sta Grahne,Jianfei Zhu.Efficiently Using Perfix-trees in Mining Fre-quent Itemsets.In FIMT0'3 Workshop on Frequent Itemset Mining Im-plementations,Melbourne,Florida,USA,Novermber,2003.

[2]Liu P.Architectures for Intrusion Tolerant Database Systems.In:Proc.of 18th Annual Computer Security Applications Conf.Las Veags.Ne-vada.Dec,2002.

[3]Castano D,Fugini MG,Martella G,Samarati P.Database Secutity.Ad-dison-Wesley,1995.

[4]Axelsson S.Intrusion Detection Systems:ASurvey and Taxonomy.ChalmersUniversity of Technology,Dept.of Computer Engineering,Go teborg.Swe-den,2000.

[5]Chung C Y,Gertz M,Levitt K.DEMIDS:AMisues Detection SystemforDatabase System.In:The Thirteen Annual IFIP TC-11 WG 11.5Working Conf.On Integrity and Internal Control in Information Sys-tems,1999.

[6]Chung C Y,Gertz M,Levitt K.Discovery of Multi-Level Security Poli-cies.In:The Fourteenth Annual IFIP WG 11.3 Working Conf.On Da-tabase Security,2000.

[7]钟勇,秦小麟.数据库入侵检测研究综述[J].计算机科学,2004,31(10):15-18.

[8]颜跃进.最大频繁项集挖掘算法的研究[D].国防科技大学,2005.

系统异常检测 篇4

随着网络技术的迅速发展和广泛应用,很多数据库都连接到互联网上以实现资源共享。在享受资源共享带来方便的同时,数据库也受到越来越多的攻击,安全问题日益严峻。虽然现有的大型数据库系统,如Oracle,Sybase和SQL Server,都提供了安全管理机制,比如:身份认证、访问控制、审计技术等,但这些技术和机制都属于安全防护的范畴,只能对数据库实行静态保护。为了解决保护数据库的安全,数据库安全[1,2]领域的研究者们提出了很多保护数据库的方法。最早于八十年代初期,Anderson[3]的报告和Denning[4]的论文引发了入侵检测系统IDS(Intrusion Detection System)的研究和开发。

入侵检测的技术[5]可以分为误用检测(misuse detection)和异常检测(anomaly detection),相比较而言,异常检测的研究比误用检测的研究更加活跃一些,其中,文献[7,10,11,12,13]采用数据挖掘(Data Mining)的关联规则挖掘技术,对数据库的审计日志进行数据挖掘,挖掘用户行为的关联规则,利用关联规则对用户行为进行异常检测。他们大多采用Apriori算法,该算法是一个经典的关联规则挖掘算法,但是该算法面对数据库的审计日志也有它的缺陷。比如,数据库多存在数值属性和多值属性,要使用Apriori算法挖掘关联规则,则必须首先进行审计日志的预处理,这将增加系统的时间开销。其次,Apriori算法需要扫描数据集的次数与最长的频繁项集的长度相等,并且需要保存生成的候选项集(中间结果),特别是在支持度较低的时候,将会出现比较“长”的频繁项集。另外,文献[14]基于数据库的审计日志建立了一个简单而且准确的数据库用户行为的隐Markov模型,在此模型的基础上还设计了一个异常检测算法,在该异常检测算法中针对观测序列长度不断增加,但P{O/λ}观测值却越来越小的情况,引入了滑动窗口的概念。首先对用户的操作序列通过使用滑动窗口划分为短序列,然后对滑动窗口中的序列X进行P{X/λ}计算。如果计算出的P{X/λ}值低于给定阈值ε,则该窗口中的短序列标记为“异常”。最后,判断异常短序列数目与总短序列数目之比是否超过另一给定的阈值δκ来确定数据库用户的入侵。基于文献[6,14]本文设计和实现了基于隐马尔可夫模型的数据库异常入侵检测系统HMMADS。有关数据库用户隐马尔可夫模型的建立、P{O/λ}的计算方法见文献[6,14]。

1 HMMADS的相关算法

1.1 HMM模型输出概率计算算法

如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程,数学公式描述是:X(t+1)=f(X(t))。隐Markov模型是一个双重随机过程,一个是不能观测到的有限Markov链,另一个是与之相关的可观测链。

一个隐马尔可夫模型是一个五元组:λ=(ΩX,ΩO,A,B,π)。其中:

ΩX= {q1,…,qN}:状态的有限集合

ΩO= {V1,…,VM}:观察值(即可见符号)的有限集合

A={aij},aij=P(Xt+1= qj|Xt=qi):转移概率

B={bi(k)},bi(k)=P(Ot=Vk|Xt=qi):输出概率

π={πi},πi=P(X1=qi):初始状态分布

给定观测序列O(t),t=1,2,…,T和模型λ=(ΩX,ΩO,A,B,π),通过计算P{O/λ}来分析数据库操作的行为。具体而言,就是基于数据库审计日志对每一个将来需要审计的用户创建一个正常状态时的隐Markov模型,实际上创建隐Markov模型的主要工作是计算输出概率,即首先统计被审计的数据库用户在每一次会话中执行的数据库操作,并且统计这些操作在该会话中出现的频率,然后通过对每一次会话中数据库用户操作出现的频率进行加权求和得到数据库用户能够执行的每一个操作的出现频率,也就得到了该数据库用户可见符号的输出概率。该计算算法作为CHMM类的一个成员函数HMMComputeProp(详见2.2节),HMMComputeProp成员函数如下:

1.2 P{O/λ}的计算

在建立了数据库用户行为隐Markov模型之后,就可以利用该模型进行异常检测,我们进行异常检测的原理就是计算P{O/λ},即在我们建立的完全正常行为的隐Markov模型的条件下,观测到的行为发生的概率,如果这个概率比较小,则认为此行为为异常行为。计算P{O/λ}方法有:基础方法、前向法和后向法。本文中采用前向法,计算算法如下:

undefined

有关Ρ{Ο/λ}的推导过程详见文献[14]。

1.3 异常检测算法

在判断某个用户的操作序列是否发生异常的过程中,由于随着观测序列长度的不断增加,计算出的观测序列在正常情况下的出现概率P{O/λ}会越来越小,这样就很难根据计算出的概率大小来判断数据库用户的操作是否异常,所以在判断某个用户的操作序列是否发生异常的过程时,应先对测试序列用长度为K 的滑动窗口进行分割,对每个短序列Xi,计算它的概率。为了明显突出概率之间的差别,可取概率lnP(Xi/λ)。

将短序列集中的每个短序列的概率取对数的值与给定的出现概率的阈值ε进行比较,并将小于ε的短序列标定为“异常”。然后,统计并求出测试序列中“异常”的短序列数Ca与总的短序列数C的比值,该比值定义为异常度:

undefined

再将求得的测试序列的异常度与另一给定的异常度阈值δκ进行比较。如果异常度大于δκ,就认为产生此序列的数据库用户的操作可能为异常的;否则,认为此序列的数据库用户的操作是正常的。

2 HMMADS的设计与实现

2.1 数据库用户信息库的设计

HMMADS系统采用VC++6.0与Oracle9i[8,9]实现,HMMADS对Oracle9i数据库进行入侵检测。在HMMADS中,采用Oracle9i的审计机制作为异常检测的数据源,同时采用该数据库记录被审计的数据库用户的信息,包括三个表,它们是:被审计数据库用户表、被审计数据库用户HMM模型可见符号输出概率表和异常检测算法使用的阈值表。如表1-表3所示。

2.2 关键数据结构的设计

HMMADS系统采用VC++6.0与Oracle9i实现,系统使用的关键数据结构是:被审计数据库用户结构BeAuditUser、被审计数据库用户阈值参数结构ThresHold和被审计数据库用户HMM模型类CHMM。

(1) 被审计数据库用户结构BeAuditUser记录每一个被审计的数据库用户的ID、名字、可执行的操作ID、操作名称和可执行的操作数。

(2) 被审计数据库用户阈值参数结构ThresHold ,该结构作为 HMM模型类CHMM的一个数据成员。记录该数据库用户当滑动窗口分别为3、5、8的时候短序列概率的阈值和异常短序列所占比例的阈值。

(3) 被审计数据库用户HMM模型类CHMM,CHMM类是HMMADS系统的核心类。该类的每一个对象对应一个被审计的数据库用户。主要数据成员有:

2.3 HMMADS的实现

HMMADS采用VC++6.0和Oracle9i实现。HMMADS包含两个部分,第一个部分是隐马尔可夫模型的建立,第二部分是异常检测。其中隐马尔可夫模型通过原始审计日志建立,也可以直接从数据库中读出模型的参数建立模型,如图1所示。异常检测部分包含在线检测和离线检测两种方式。离线检测方式可以通过简单的选择用户ID对任何一个用户进行检测,当选择某一个数据库用户之后,还可以选择不同的滑动窗口长度进行检测,当选择不同的滑动窗口长度的时候,阈值E和阈值Detal也将在界面上随之改变。在线检测方式采用VC++6.0的多线程技术实现,创建一个工作线程负责后台的在线异常检测。在界面上可以随时启动和停止在线异常检测。界面如图1所示。

3 实验结果及分析

通过使用已知的数据库用户正常操作序列和异常操作序列进行测试可以确定上述异常检测中使用的滑动窗口长度K、短序列出现概率阈值ε和异常度阈值δκ。

当数据库运行在正常状态下,数据库用户对数据库进行正常的操作。在这种情况下采集正常操作训练数据,然后该数据库用户又对数据库进行异常的操作,并且也对这些异常操作序列进行采集,利用该用户正常的操作序列和异常的操作序列对模型进行训练,确定滑动窗口长度K,和异常度阈值δκ。

模型建立之后,其中DOLLY用户的可执行的操作的概率如表4所示。

在模型训练完之后,利用该模型进行异常检测。实验步骤是:首先数据库用户DOLLY进行5组异常操作,然后利用该模型进行检测,记录了每一组操作序列中K取3、5、8时,检测的结果。 测试数据如表5所示。

4 结 论

本文设计并实现了一个基于隐Markov模型的数据库异常检测系统。该系统检测方式灵活,可以实现离线异常检测与在线异常检测,其中在线异常检测采用了VC++6.0的多线程技术。离线异常检测也非常灵活,可以任意选择某一个数据库用户,对其进行异常检测,还可以灵活地选择滑动窗口的长度。

通过使用滑动窗口的宽度K分别取值为3、5和8 时进行实验,从试验的结果中可以看出,本文实现的系统能够检测出数据库用户的异常操作,但如何选取滑动窗口的宽度还有待进一步研究。

摘要:讨论了一个基于隐马尔可夫模型的数据库异常检测系统HMMADS的设计与实现技术。HMMADS采用VC++6.0与Oracle9i实现。HMMADS可以检测Oracle数据库中所有被审计的数据库用户,并且灵活地实现了两种异常检测方式:离线异常检测和在线异常检测方式。离线异常检测可以灵活地选择任意被审计的数据库用户进行异常检测,在线异常检测采用VC++6.0的多线程技术实现,采用VC++6.0的工作线程实现后台在线异常检测。通过对数据库用户DOLLY进行测试,发现HMMADS能够检测出数据库用户DOLLY的入侵。

系统异常检测 篇5

异常流量对于不同的用户意义不同, 对于普通用户来说, 网络侵略、垃圾邮件、病毒和蠕虫等为异常流量;对供给互联网效能的供给商来讲, 包含异常流量的范围更为广泛, 只要能够影响网络性能的流量都被认为是网络异常流量, 包含乱用网络带宽的P2P应用程序, 引起业务流失的非法Vo IP、Do S/DDo S侵略流量、蠕虫/病毒爆发和猝发性社会事件引发的异常流量等。

1 基于Netflow的局域网流量异常检测系统的设计与实现

异常检查是根据网络流量特征向量分层划分来完成的。流量特性分为两个层次:基本特性集合和组合特性集合。其中基本特性集合是及时从网络流量中提取的一些网络流量的基本特性数据, 如流量的大小、包长的信息、协议的信息、端口流量的信息、TCP标志位的信息等。这些基本特性比较细致地描述了网络流量的运行状态[1]。

数据采集器在解码和处理接收到的Net Flow数据包写入数据库记载的构成;规则数据库模块、数据剖析与处理模块、流量监控构成正常的数据包或报警数据包回来页面显现异常流量;处理基地控制模块由上抉择方案人员流或数据的根底网络处理监控流程需求指定详细的查询;主机数据库和网络数据库模块可把数据库中的数据进行自动备份保存以及流量数据进行各种类型的统计。

基于Netflow的网络检测系统中的数据采集器是网络安全态势感知系统的信息获取部件, 应具备易配置、易部署、易管理、易扩展等特性, 是传感器的基础模块。它的功用是接收的路由器或交换机发送的包的Net Flow数据的UDP办法, 和Net Flow数据包进行拆包分析, 按照格式Net Flow数据字段的定义, 并定义存储在Net Flow数据库的数据结构。

提取数据包基于s Flow技术的网络流量监测系统结构框图如图1所示。从图中我们能够看出, 系统中的数据收集处理模块、数据处理与剖析模块、库处理的规矩和特征、操控模块和前史数据的计算备份模块等。数据收集和数据包的接纳解码和s Flow后处理模块, 记录到数据库中规则的构成;与数据剖析处理模块的特征库模块和流量监控构成正常的数据包或报警数据包失常交通图上回到页面;处理操控模块由依据交通抉择方案处理或数据流指定的前史计算数据进行具体的查询监测网络处理人员;与备份模块能够把数据库中的数据。各种类型的主动备份和流量计算。

为了提高传感器的便携性, 方便安置与携带, 集热器的设计应能收集不一样厂家、不一样版别的Net Flow数据;设计应该一同监测和区别多个Net Flow设备之间;还应具有一定的发现虚伪的Net Flow数据的能力;尝试做到Net Flow数据包不被丢掉, 鉴于损失率;时钟同步机制等。

Netflow数据库是存储数据的区域, 可以是一个内存, 也可以是外存, 也可以两者相结合。规则存储分析模块所使用的规则, 包含分析规则和事件规则, 事件规则又可以分为反常事件规则和正常活动规则。局部控制中心首要负责剖析通讯体系的上层有些传感器操控信息和反应信息。例如, 采集器应当承受Netflow数据端口的端口地址, 应当承受Netflow数据或过滤器Netflow设备;操控流量测量模块供给交通讯息时刻力度, 类型的操控流信息;XML操控/数据接口模块供给一致的接口到本地操控器和上层体系交互的统一界面[2]。

为了减少数据包丢失率, 采集器是通过运转两个线程来完成的。一个线程接收UDP数据包, 并存储在一个数据包的缓冲区, 一个线程担任数据包缓冲区的数据包的UDP数据包解包, 并分析流量记载, 然后恢复, 在正本的Net Flow数据池, 等候后续处理。

当在接口上Netflow配备, 界面将不再使用其他的变换模式了。另外, 利用Net Flow交换运用, 可以把数据 (数据流量计算) 输出到远程站, 为了进一步处理它们。

在全局配备方式下, 管理员登录路由器, 下面的操作对于网络配备:

Router (config) #ip flow-export source interface??//配置输出Netflow流量的源端口, 收集哪个interface, 就在路由器哪个接口上启用采样。

Router (config) #ip flow-export version 5

Router (config) #ip flow-export destination ip-addr port??//配置Netflow流量输出的目标地址, 此时应为流量采集器 (probe) 的IP地址, 端口号, 注意如果中间有防火墙, 需放开该端口。

在端口配置模式下配置:

Router (config-if) #ip route-cache flow[sampled]//在有子接口情况下只能在主接口进行配置, 并且当端口流量较大时注意使用抽样, 以免对路由器性能有影响。

配置好路由器之后, 我们根据Net Flow数据计算和记载多个视点的需要, 发现网络反常做法。为了有效地处理反常检查记载如下:根据首次计算与来安闲基线前史交通的成果比较, 假如当时的观测值落在置信区间, 咱们能够认为, 网络做法是正常的, 假如在置信区间的下跌, 这是上市为可疑事情, 并进一步剖析, 匹配的可疑事情和反常特征, 假如没有的话, 成功将其视为事物的可信度低, 假如匹配成功, 将被视为高可靠性[3]。

2 系统测试与结果分析

在收集到的数据包中, 很多包都归于同一数据流, 聚类的意图是为了将这些多个数据包, 归于同一数据流中的多个记载吞并而成的一个记载。归于同一数据流, 是指采样数据具有一样的源IP地址、意图IP地址、源端口、意图端口、协议类型的流量数据。交通数据的聚类规矩:在一个时刻距离 (如2分钟, 可以设置时刻距离) , 一样的包数和字节总数堆集数据流 (在这种情况下, 采样率采样总一包几包样品, 如512个数据包采样和采样率为512) :

包计数=包计数+采样率

字节总数=字节总数+采样率术包大小

聚类算法步骤:

(1) 收取Netflow数据包, 提取源IP地址、目的IP地址、源端口、目的端口、协议类型字段值。

(2) 将上一步提取的五个字段值按关键字生成规则组成一个唯一对应的, 基于Netflow的网络流量测量系统研究与实现整数作为关键字。

(3) 查找哈希表, 如果此条数据流已经在哈希表中已经有同一数据流记录,

那么只进行包计数和字节总数累加;否则形成一条新数据流记录并插入哈希表。

(4) 回到第一步, 继续收取下一个Netflow数据包。

网络管理者可随时随地通过网页登入系统, 通过观察分析系统界面的流量统计信息, 网络管理可以清楚了解目前网络使用状况;以最基础的IP为单位进行通讯协议以及流量的监控;监测各种通讯端口的传输流量;发现异常流量并进行控制。在现实的网络管理中, 对于无固定特征和不能量化行为的异常流量, 通过系统界面上的各种查询统计结果, 出现如下情况时则基本可以判断出现异常流量:

(1) 在一段时间内, 如果出现大量的同源IP地址或同目的IP地址流量;

(2) 出现大量的同源MAC地址或同目的MAC地址时 (防止某些异常流量是

(3) 伪造的IP地址) :

(4) 出现大量源IP地址、目的端口和源端口都相同的流量;

(5) 出现大量的目的IP地址不断变化, 而端口号保持不变的流量;

(6) 出现同时向一个目的IP地址几千个端口发送数据包的流量;

(7) 出现大量流向同一IP地址, 且具有相同TCD标志位的数据包的流量。

如果出现目的IP地址数大于正常值而目的端口数小于正常值时, 则可能

发生了蠕虫病毒传播或面向网络的端口扫描;如果源IP地址数小于正常值而目的端口数又大于正常值时, 它或许有一个主机端口扫描;假如政策端口号小于J值不变的条件下, SYN大于正常价值, 或许是Do S/DDo S侵犯的IP地址。运用相同的数据流特性 (即具有相同的关键字数据流) 每单位时间需求量来判定时间的单位相同数量的大型流特点 (例如:每秒流的性质相同的数量大于50) 基本上能够判定IP流反常或许运用这个用户的IP地址在P2P软件的操作或欺诈许多下载数据, 最大或许或中毒, 如冲击波病毒, IP的中毒与相同的峰房地产流或许是每10分钟逾越二万次[4]。

3 结语

随着网络技术的发展, 网络应用程序和软件技术, 改变网络流量数据的多网络流量测量基于Netflow越来越复杂旧的和新的病毒变种病毒伪装识别异常交通变得更加困难网络管理不能一蹴而就。因此, 在现实中, 网络管理依赖于网络管理员依靠经验来判断并决定异常流量。

摘要:TCP/IP协议的开放性和简单性使得互联网成为一种高度异构、开放的复杂系统, 目前网络应用的多样性、网络结构的复杂性等都给网络管理带来了巨大挑战。笔者在对网络中病毒感染、异常流量、设备缺点进行剖析的基础上, 进一步提出了一种异常检查体系, 该体系能够检查异常流量的监测网络, 并进行辨认, 能够帮助调整网络。

关键词:数据挖掘,网络异常检测,Netflow

参考文献

[1]陈婷婷.基于数据流的网络流量突发异常检测[D].哈尔滨:啥尔滨工业大学, 2006.

[2]郑军, 胡铭曾, 郑仲, 等.基于数据流方法的大规模网络异常发现[J].通信学报, 2006, 27 (2) .

[3]俞研, 郭山清, 黄皓.基于数据流的异常入侵检测[J].计算机科学, 2007, 34 (5) .

系统异常检测 篇6

关键词:支持向量机,遗传算法,检测精度,入侵检测

0 引言

随着计算机网络的发展,网络安全问题越来越严重,入侵检测作为网络安全防御体系的重要组成部分受到人们的关注。由于能从大量数据中发现有用的知识,多种不同的数据挖掘技术被应用于网络入侵检测。其中基于误差反向传播算法BP(Back Propagation)的神经网络在入侵检测中应用广泛[1,2,3,4]。然而,BP神经网络基于经验风险最小化原则,容易导致泛化能力的下降且模型结构难以确定。在学习样本数量有限时,学习过程误差易收敛于局部极小点,学习精度难以保证;学习样本数量很多时,又陷入“维数灾难”,泛化性能不高。支持向量机(SVM)采用结构风险最小化原则,能有效解决小样本、非线性等回归问题,泛化能力强,并能找到全局最优解,克服了神经网络局部极值的难题[5,6],近年来,支持向量机在小样本、非线性预测领域有着广泛的应用。然而,支持向量机中训练参数的选择对其预测性能有很大影响,鉴于遗传算法具有隐含的并行性和强大全局搜索能力,非常适合用于确定SVM中的训练参数。实验结果表明,这种遗传算法优化的支持向量机分类入侵检测模型有着很高的检测精度。

1 支持向量机

支持向量机对数据进行分类就是通过非线性映射函数φ(·)把数据样本从原空间映射到高维特征空间,再在高维特征空间中构造最优分类超平面来分离训练样本点,使得训练样本点与最优分类超平面距离最大化。给定样本集T={xi,yi}im=1,m为训练样本数,其中xi表示输入矢量,yi∈{+1,-1}表示对应的期望输出,通过非线性映射函数φ(·),将输入数据从原空间映射到高维特征空间,在特征空间中构造最优分类超平面:

式中w表示权值矢量,b为阈值,w和b确定了分类面的位置,式(1)中分类面必须满足的约束为:

考虑到可能存在一些样本不能被超平面正确分类,引入松弛因子ξi,优化的数据分离面通过下式获得:

式中C≥0为惩罚系数,控制超出误差样本的惩罚程度。

引入Lagrange乘子ai与核函数k(xi,xj),上述优化问题转化为二次规划问题:

通过解决式(4),得到系数ai,并获得分类决策函数。由于径向基函数(RBF)构造的SVM有着很强的非线性分类性能,因此,本文采用RBF作为SVM的核函数。

2 基于GA-SVM入侵检测模型

2.1 基于GA的SVM训练参数优化

惩罚参数C、RBF的核参数σ对SVM分类器分类效果影响很大,为了获取较高预测性能的SVM分类器,则需得到较优的C、σ参数组合。每个染色体由σ、C组成。由于遗传算法具有隐含的并行性和强大全局搜索能力,可以在很短的时间内搜索到全局最优点。因此,本文利用遗传算法对这些参数(由表1所示)进行优化,优化过程如图1所示。

遗传算法优化参数步骤如下:

步骤1将SVM训练参数σ、C以二进制的形式进行染色体基因编码,σ、C、ε设定的范围分别为[0 1]、[1 100]、[0.00010.01]。染色体群体大小设定为20。

步骤2随机产生一组表示SVM参数值的染色体。

步骤3利用获得的SVM参数训练SVM模型。并利用留一交叉检验法评估适应度,选取适应度函数,其中,T表示正确类,F表示错误类。

步骤4通过选择、交叉、变异等遗传算子操作,产生一组新的染色体。其中选择的类型为轮盘赌法,交叉类型为单点交叉法,交叉率为0.8,变异率为0.01。

步骤5当满足终止条件时,进化过程结束;否则,转到步骤3。

2.2 基于GA-SVM网络入侵检测结构

图2为基于GA-SVM网络入侵检测结构,网络入侵检测系统主要由数据采集、诊断模型、数据存储与管理组成。系统中当SVM输出值为-1时SVM输出特征为0,当SVM输出值为+1时SVM输出特征为1。从网络输入数据中提取特征值,这些特征值输入GA-SVM分类器1。当GA-SVM分类器1输出为1时,获取数据为网络入侵数据,表示网络系统受到入侵。此时,这些数据输入诊断模型。诊断模型包括三个GA-SVM分类器,以识别四种入侵类型:正常和拒绝服务攻击(DOS)、非法访问远程主机(R2L)、普通用户非法获得root权限(U2R)和监视嗅探攻击(Probing)等四种入侵类型。诊断模型输出一组特征数据来表示诊断结果。特征数据通过解码转换为诊断结果。诊断结果被输入数据存储与管理系统。

3 实验分析

本文采用麻省理工学院林肯实验室KDDCUP99数据库中入侵检测数据作为实验数据。网络入侵状态通常分为:正常和拒绝服务攻击(DOS)、非法访问远程主机(R2L)、普通用户非法获得root权限(U2R)和监视嗅探攻击(Probing)等四种入侵类型,因而该分类检测模型采用4个GA-SVM分类器组成(如图3所示)。由于KDDCUP99数据库中每个连接记录含有41个特征,这41个特征形成GA-SVM分类器组41维输入矢量。从Probe数据集、DOS数据集、U2R数据集和R2L数据集分别取出100条正常样本和50条入侵样本组成训练集,另从Probe数据集、DOS数据集、U2R数据集和R2L数据集剩余的数据中分别取出300条正常样本和120条入侵样本平均分成6个测试集,即每个测试数据集由200正常样本和80个入侵样本组成。分别采用普通SVM,BPNN(41个输入节点,40个隐节点,5个输出节点)与GA-SVM进行检测精度比较,其检测结果如表2所示。可以看出GA-SVM分类精度高于普通SVM,BPNN分类器。

4 结论

本文提出基于遗传算法优化的支持向量机的网络入侵检测技术。支持向量机分类器能够较好地解决少样本、高维、非线性分类问题。同时,采用遗传算法进行支持向量机的训练参数同步优化。采用麻省理工学院林肯实验室KDDCUP99数据库中入侵检测数据作为实验数据。实验结果表明,这种遗传算法优化的支持向量机分类入侵检测模型有着很高的检测精度。

参考文献

[1]Chunlin Zhang,Ju Jiang,Mohamed Kamel.Intrusion detection usinghierarchical neural networks[J].Pattern Recognition Letters,2005,26(6):779-791.

[2]Richard P.Lippmann,Robert K.Cunningham.Improving intrusiondetection performance using keyword selection and neural networks[J].Computer Networks,2000,34(4):597-603.

[3]Guisong Liu,Zhang Yi,Shangming Yang.A hierarchical intrusion de-tection model based on the PCA neural networks[J].Neurocomput-ing,2007,70(7-9):1561-1568.

[4]Morteza Amini,Rasool Jalili,Hamid Reza Shahriari.RT-UNNID:Apractical solution to real-time network-based intrusion detection usingunsupervised neural networks[J].Computers&Security,2006,25(6):459-468.

[5]Martin Brown,Steve R Gunn,Hugh G Lewis.Support vector machines foroptimal classification and spectral unmixing[J].Ecological Modelling,1999,120(2-3):167-179.

混合免疫异常检测 篇7

研究入侵检测技术, 保护网络和系统的安全具有重要的意义。目前, 已提出许多入侵检测方法, 如统计方法、专家系统、人工神经网络、数据挖掘等[1,2,3]。随着对生物免疫系统的研究, 人们发现免疫系统所解决的问题与计算机安全系统或入侵检测系统所面临的问题具有相似性;免疫系统保护生物体免受细菌的侵害, 而一个计算机安全保护系统保护计算机抵抗入侵。

近几年, 人工免疫系统吸收了免疫系统新的灵感, 成为一个活跃的研究领域[4]。否定选择算法是最早的人工免疫方法之一, 在可供选择的方法中具有明显的作用并且能够以更高的质量提供独特的效果。

2 混合免疫学习方法的提出。

NSA算法主要利用否定检测, 也就是由算法产生的检测器来直接鉴别在异常 (非自体) 空间的元素。这种方法被应用在一些特殊的应用中[5,6] (分布式异常检测和不太小的正常子空间) 。

提出了另一种NSA算法在异常检测中的应用。这种方法既不运用否定算法, 也不运用肯定算法。而是在异常和正常类之间试图寻找一个边界。这种方法可以利用在不执行分布式异常检测或者正常集比较小的情况下。

主要思想是利用实值否定选择算法 (RNSA算法) 来产生非自体样本。然后, 应用分类算法来寻找自体的特征功能。这种特征功能应用于异常检测功能。

在训练部分, 输入对应于正常样本 (特征向量) , 它利用由RNSA算法产生的异常样本。接着, 正常和异常样本被用来作为监督算法的输入产生一个分类。这个分类对应于异常检测功能并且在检测段将新的样本分为正常或异常的样本。

重要的是这种技术允许把监督算法的利用作为一个任务, 它通常需要一个非监控的方法。这种方法的主要优点是:

a.这种分类方法已经研究了很长时间。有另一种高效算法, 已被广泛测试并且被应用于其它领域。b.这种方法不需要对分类算法初始化。它允许模块组合使它能被更广泛的利用, 并且对于监督算法存在很好的执行效果。c.分类方法比非检测学习问题更接近异常检测问题。例如, 类聚。类聚方法基于最大化内部分类和最小化外部分类原则聚合输入数据。另一方面, 分类算法的主要目的是增加分类的准确性, 也就是说增加区分两类的能力。它接近于异常检测的目的, 最大化检测率和最小化误报率。d.可能利用真实的异常样本, 如果可行的话, 通过把它们与RNSA算法所产生的样本相结合, 并且把它们一起送给分类算法。

最想达到的目的与最近邻方法相似。一个元素接近于正常样本就可能是正常。如果距离选择好的话, 这个设想对很多应用程序都是合理的。

3 实值否定选择算法。

实值表示法其搜索空间通常是连续的并且难以用计数组合学的方式分析, 但却适合一些无法有效采用二进制表示法的应用。在实值否定选择算法中, 通常以超球体或超立方的形式表示检测器。这些检测器既可以用原始的随机生成方法生成也可以用其他方法, 例如遗传算法生成。

与二进制表示相比, 实值表示最主要特点是把与Rn子集对应的自体/非自体检测空间, 归一化到超矩形空间[0, 1]n。其中, n表示维数空间大小。实值否定选择算法就是在这个归一化的超立方中操作。

定义1.实值表示自体定义

S= (X, rs) 。其中X= (x1, x2……xm) 是m维的点, S表示以X为中心, rs为半径的超球体。

定义2.实值表示检测器定义

d= (X, rd) 。和自体数据类似, 检测器是一个以m维的点为中心, rd为半径的超球体。

算法的输入是由n维点 (向量) 表示的自体样本集。算法进化覆盖非自体空间的其他点集 (检测器) 。它由一个反复的过程完成, 这个过程是由两个目标驱动的检测器位置的修正:

3.1 移动检测器远离自体点。

3.2 保持检测器分离以最大化覆盖非自体空间。

算法1产生有效实值检测器

输入:检测半径r, 更新率η, 当检测器成熟时达到的代数t, 被考虑到临近的数量k, 候选检测器集合R0, 迭代次数num_iter

输出:有效实值检测器集合R

方法:

Near Cells=使用k-邻近法计算出的Self集中的邻居

并按照与d的距离排序

参数r代表每一个检测器半径。为了决定检测器d与自体样本点是否匹配, 算法计算出d在自体集中的k最近邻。计算出这些k最近邻的中值距离。如果距离小于r, 则检测器d被认为与自体相匹配。这个策略使得算法对噪音和外界干扰更健壮。

函数是检测器d的隶属匹配函数。它现实了自体/非自体空间中x和检测器之间的匹配程度。它定义为:

参数η代表一处检测器的步伐的大小。为了保证算法将收敛到一个稳定的状态, 这就有必要在每次迭代后以的方式减少这个参数。更新规则如下:

4 结论。

试验表明, 混合免疫学习算法效果很好, 同时, 它能够利用正常样本的子集来学习自体集的结构。在一些应用中, 主要在改变检测中, 假定自体集已完成, 然而, 在许多真实的异常检测应用中, 情况并不是这样。因此, 一个异常检测算法必须能够产生自体和非自体空间结构的好的近似值。即使训练集中自体集的部分是可用的。

摘要:传统的基于免疫的入侵检测系统采用低级别的二进制检测器, 妨碍了有意义的知识提取, 对Nonself空间的覆盖也不完备。研究了实值否定选择算法, 使用实值否定选择算法来产生非自体样本。应用分类算法来寻找自体的特征功能。

关键词:人工免疫,实值否定选择算法,混合免疫

参考文献

[1]Leandro N.de Castro and Jonathan Tim-mis.Artificial Immune System:A New Compu-tational Intelligence Approach[M].Springer, 2002:56.

[2]Dipankar Dasgupta, Zhou Ji, and F.Gon-zalez.Artificial immune system (AIS) researchin the last five years.In Proceedings of The2003 Congress on Evolutionary Computation[C], Canberra, Australia, CEC 2003, 9-12De-cember 2003:123-130.

[3]Chao D L, Forrest S.Information immunesystem[A].Proceedings of the First InternationalConference on Artificial Immune System (I-CARIS) [C].2002, 132-140.

[4]Lee W, Stolfo S J, Mok K W.Adaptive in-trusion detect&colon:a data mining approach[J].Artificial Intellignece Review, 2000, 14 (6) :533-567.

[5]Zhou Ji.A Boundary-Aware Negative Selection Algorithm[J].Artifi-cial Intelligence and Soft Computing (ASC2005) , September 2005, pages 451, Benidorm, Spain, pages 12-14.

上一篇:流通监管下一篇:安排任务