基于改进obs-nmf算法的入侵检测方法

文档序号:6604127阅读:186来源:国知局

专利名称::基于改进obs-nmf算法的入侵检测方法
技术领域
:本发明属于计算机安全
技术领域
,特别涉及一种计算机安全入侵检测方法,该方法可用于解决计算机进程行为的异常检测。
背景技术
:计算机安全从上个世纪70年代早期就有人开始研究,但是他们的研究成果一度被忽略,直到1980年4月JamesP.Anderson为美国空军做的一份技术报告才被公认为是入侵检测的开山之作,这份题为《ComputerSecurityThreatMonitoringandSurverillance》的技术报告第一次详细的阐述了计算机系统中入侵检测的概念,还提出了利用审计跟踪数据监视入侵活动的思想。随着人们对计算机网络的依赖性不断增强,传统的网络安全技术不能提供有效的防护,作为传统技术的一种补充,入侵检测成为网络安全发展的一个新方向,它是一种主动的计算机和网络安全的防卫手段。异常检测能够检测未知的攻击,因此,近年来异常入侵检测成为了研究的热点。目前,已经由很多方法成功的应用于异常检测中,例如统计分析,机器学习,神经网络,数据挖掘等。入侵检测的相关研究工作根据数据源的不同有很多分类方法,包括审计事件与命令序列,系统调用,网络数据包,击健特性,文件系统访问。对于异常检测系统来说,可以从计算机或者网络的各个不同层面对系统行为进行建模并检测入侵,其中一个关键的问题就是如何选择用户,系统或者网络的行为特征,以便根据这些特征更好地区分入侵行为和正常行为。在Unix/Linux及其兼容的操作系统中,系统调用是用户空间与内核空间中资源调用的借口。单个程序在执行过程中,可能会产生多个进程,一个进程产生的系统调用被归为一个“执行迹”。通过分析“执行迹”产生的系统调用,就有可能发现程序的异常运行状态,进而判断出该系统是否受到攻击。相对于其它数据源来说,系统调用的种类非常有限,即内核为2.7.10的Linux系统调用不足221种,常用的不过80多种。此外,黑客入侵也不可避免的会在系统内核层的系统调用中留下入侵痕迹。因此,基于系统调用的入侵检测建模方法简单而且高效,近年来已经成为异常检测中主机行为建模的主要研究对象。1996年,Forrest等人首先提出以进程正常运行产生的一定长度的系统调用段序列作为研究对象来刻画进程的运行状态。Lee等人继Forrest的工作后,应用Ripper软件包,从系统调用序列中挖掘正常和异常模式,以规则的形式来描述系统的运行状态,建立了一个简洁有效的系统正常模型。Warrender等人则利用HMM算法对系统调用的隐含状态进行建模,也取得了较好的检测结果。Wespi等人扩展了Forrest等人的思想,使用变长短序列的方法对系统调用进行建模。Asaka等人使用了优化分类面的方法检测系统入侵。Liao和Hu分别采用最近邻KNN和支撑矢量机SVM对程序行为进行建模。其它一些方法,如一步马尔可夫模型,神经网络和软计算等方法也都成功应用于基于系统调用的程序异常检测中。但当前入侵检测IDS中也存在一些问题,如检测效果差,漏报、误报率高的状况。数据处理性能不高,处理高维海量数据的能力不强。而现在计算机领域的数据量呈爆炸性增长,UNM在收集Sendmail守护进程产生的系统调用实验中,仅112条邮件信息就产生了超过150万条的系统调用,因此一个有效的入侵检测方法必须在攻击还未给系统造成破坏之前就能够被实时地检测出来。再有,实时性差,自适应性不好。对资源的占用大,不具有可扩展性等。近年来非负矩阵分解理论NMF被引入入侵检测,其高效的数据降维能力使其得到广泛的重视,它具有实现的简便性,分解理论的可解释性,以及占用资源少等优点。目前已成功的应用于人脸识别,文本分类,语音处理等领域。Wang在其多信息源的实时入侵检测方法研究一文中采用NMF算法建立入侵检测模型,采用系统调用作为分析数据,将高维向量数据进行分解,在低维空间检测入侵行为,精简了数据,降低了资源占用率,具有较高的检测精度和实时性。但该异常检测模型的算法稳定性不高,收敛性不能得到保证,同时阈值的选择较为困难,影响到了检测效果
发明内容本发明的目的在于克服上述已有技术的不足,提出一种基于改进OBS-NMF算法的入侵检测方法,以保证OBS-NMF算法的收敛性,扩展阈值的选取范围,有效地提高检测的精度和稳定性。实现本发明目的的技术方案是将基于主机系统调用的入侵检测问题看作分类问题,将对原始数据进行预处理,转化成适合处理的向量矩阵形式,利用非负矩阵分解在特征提取和降维方面快速有效的特性对矩阵进行分解处理,利用OBS策略能较好收敛的特性改进原NMF算法的迭代机制,利用向量角度能够减少数据的重构误差和很好的反映向量数据差异性的特性,分别采用余弦距离和正弦距离作为本发明的收敛条件和判别函数处理入侵问题。具体实现步骤包括如下(1)运行客户端计算机,利用服务器对其进行入侵攻击,监视系统运行中产生的正常进程和异常进程,收集进程执行过程中产生的系统调用;(2)将收集到的每一个正常进程按照系统调用号从小到大构造一个进程向量,将系统调用出现的次数作为向量的元素;设定训练矩阵规模,将每一个向量依次输入作为训练矩阵的一列,得到训练矩阵圹表示如下10…3_*022…0****Vxm=...............=Ivι,ν”…,“^,…vm]001…0η是最大系统调用号,m是进程数,ν是系统调用次数;(3)删除训练矩阵中0元素比例大于95%的行,并标记被删除的行,计算训练矩阵中各系统调用在相应进程中的使用概率,将圹简化成矩阵V;(4)使用OBS-NMF算法对简化后的训练矩阵V进行降维分解,使得V^WH,W表示V的权值矩阵,其大小为ηXr,H表示V的系数矩阵,其大小为rXm,r表示分解因子,W和H的初始值取随机值;(5)利用以下迭代公式求得权值矩阵W和系数矩阵HW=W++ΔW+其中W+和H+分别是W和H的过渡变量,腿、、—、-、,(W7^T1分别表示调整W+和H+后引起的均方误差增量,j=1,2,-,η,ej第j列的单位矩阵,矩阵Wj=W+e」,Hj=H+e」,5<r<20;(6)选择最大迭代次数maxiter=1000,判断V与WH的迭代误差是否满足收敛条件ConV>Y,其中,0.8<γ<1,若满足,则执行步骤(6),否则返回步骤(5)继续迭代,直到达到最大迭代次数maxiter,迭代误差式表示为其中,hi表示H矩阵的列向量;(7)取全部正常进程和异常进程作为测试样本,对该测试样本执行步骤(2),并删除步骤(3)中标记的行,得到测试矩阵U,使用如下公式,求解U中每个列向量u的特征系数向量hu:(8)比较、与H中每个向量比的正弦距离,将最小的正弦距离作为U中每个进程向量u的异常度e:(9)设定门限阈值0<λ<0.1,如果满足判别函数e>λ,则表明该进程存在异常,提示系统进行处理,否则提示进程安全。本发明与现有技术相比具有如下优点1.鲁棒性强由于原始的NMF算法的迭代机制约束性不强,因此,检测性能受到W、H和训练样本随机选取的影响很大,相比原NMF算法,本发明的算法引入OBS思想,对迭代机制进行了改进,提高了迭代方向的约束性,检测结果显示,本方法受W、H和训练样本随机选取的影响很小,比NMF算法具有更好的鲁棒性。2.实时性本方法通过OBS-NMF算法对高维海量数据进行分解降维,映射到低维空间进行检测,减小了数据量,有效地降低了算法的复杂度,相比其它入侵检测的方法花费时间更少;同时由于本发明采用系统调用的频率特性作为分析数据,相比使用其它特性的数据,具有更好的实时性。3.阈值选取范围大,检测性能优越由于采用了基于向量角度的收敛条件和判别函数,相比采用基于欧式距离的收敛条件和判别函数,前者更加符合实验数据的结构特性,能够更好地反映正常样本和异常样本的差异度,能够明显提高检测的精度。实验结果显示,本发明的方法,扩展了阈值的选取范围,有效地提高了算法的检测性能。4.算法收敛性较好传统的NMF算法一直受到收敛性的困扰,本发明改进了NMF算法的迭代机制,在最小均方误差的基础上,进一步优化得出迭代增量,加强了迭代方向的约束性。同时,采样余弦角度的收敛条件,相比采用欧式距离的收敛条件对误差的要求更为严格。需要更多的迭代次数,才能满足收敛条件。因此,本算法在收敛性上得到了很大地改善。图1是本发明的流程图;图2是原NMF算法对CERTsendmail数据和UNMsendmail.log数据的检测结果图;图3是本发明改进迭代机制的OBS-NMF算法对CERTsendmail数据和UNMsendmail.log数据的检测结果图;图4是本发明迭代机制的OBS-NMF算法对CERTsendmail数据和UNMsendmail.log数据的检测率随阈值变化的曲线图;图5是本发明改进判别函数的OBS-NMFI算法对CERTsendmail数据和UNMsendmail.log数据的检测率随阈值变化的曲线图;图6是本发明改进收敛条件的OBS-NMFII算法对CERTsendmail数据和UNMsendmail.log数据的检测率随阈值变化的曲线图;图7是本发明检测率随分解因子r变化的曲线图。具体实施例方式参照图1,参照图1本发明的具体实现步骤如下;步骤1,数据采集。运行客户端计算机,在系统正常运行的情况下,单个程序在执行过程中,会产生多个进程,进程通过中断指令0x80,跳转到称为SyStem_call的内核位置,进入系统调用处理程序,调用相关的内核函数,执行结束,返回到用户空间,其中进程产生的系统调用序列通过内核打补丁或者系统中的应用程序,如Strace方法截取得到。步骤2,构造进程向量。对于采集到的原始数据,首先,要进行分组,系统调用数据按照进程进行分组,相同进程下的系统调用归为一组;其次,按照系统调用号从小到大构造一个进程向量,统计每组数据中每种系统调用出现的频率,统计结果形成一个列向量,这样进程行为就可以用它发出的系统调用序列来描述,入侵检测的问题也就转化成判断这些向量是否正常的问题,使数据得到约简,问题也得到简化。步骤3,构建训练矩阵。用构建的进程向量组成适合本发明方法的矩阵数据,选择30%的进程向量作为训练矩阵的规模,将构造的每个进程向量,依次作为一个列向量加入训练矩阵,直到满足定义的规模大小,这样原始数据就可以表示成一个nXm的训练矩阵V*,记为其中,η是使用到的最大系统调用号,m是进程数,Ψ中的每个列向量代表与其对应的每组数据中不同类型的元素出现的次数。步骤4,简化训练矩阵。在构建矩阵V*的时候,矩阵的行数即是相应的系统调用号,而每个进程的系统调用在执行的过程中,并不是连续出现的,而是按照其出现的先后顺序,并且只有一部分会被使用到,因此需要对构造好的V*矩阵删除0元素多的行,以初步减少数据的维数。具体方法是统计每行中O的个数,如果超过一定的比例,本发明限定其每一行0元素超过95%的,则删除该行,即不使用该系统调用作为行为的特征表示,这样就可以删除大量未被用到和很少用到的特征,矩阵得到了简单的约简;最后,将矩阵中的系统调用次数转变成其在相应向量中出现的概率,其它审计数据也可以按照该方式进行处理,保证了入侵检测的自适应性和扩展性。步骤5,求解权值矩阵W和系数矩阵H。原始的NMF算法的思想是要寻找两个矩阵W和H,使得Vij^WH,即分解之后的矩阵W和H的维数分别为nXr和rXm,且H中的每一列h可以看成是与其对应的每组数据所保留的特征向量。本发明基于OBS策略提出了如下迭代公式W+—((H·Ht)-1·H·VT)TW=W++ΔW+H+—(W·(ffT·Wr1)τ·V其中W+和H+分别是W和H的过渡变量,WtW)-1]妒广分别表示调整r和H+后引起的均方误差增量,J=1,2,···,!!,ej第j列的单位矩阵,矩阵Wj=W+GjjHj=H+ej,r(5<r<20)是分解因子,表示降维后的权值矩阵维数,在矩阵分解时,选择r<<η。根据如上的迭代公式,随机选取非负的初始矩阵W和H,在计算过程中,需要对每个权值都进行调整,在实际的求解过程中往往利用迭代的方法交替求得W和H,使得重构误差IlV-WHlI最小。步骤6,判断终止条件。选择最大迭代次数maxiter=1000,分解因子r=8,对于实验中的训练样本V=[V1,V2,…vm],由于训练数据是以向量为基本的研究对象,为此本发明采用余弦角度作为收敛条件,也就是取V和(WH)对应的每一个列向量的余弦距离最小值作为收敛条件其中,hi表示H矩阵的列向量;对于给定值0.8<γ<1,在Conv彡γ时,则迭代截止,否则继续迭代,直到最大迭代次数。步骤7,构建并简化测试矩阵。将全部正常进程和异常进程作为测试样本,首先,对该测试样本同样先进行矩阵的构建,方法与步骤3中构建正常的训练矩阵相同;然后,对其进行如步骤4的简化操作。由于为了用相同的系统调用表示训练样本和测试样本,并且保证简化后的测试矩阵与训练矩阵的维数一致,删除的行与训练矩阵删除的行必须相同,以达到用最少的维数较精确地表示样本的目的;最后,得到测试矩阵U。步骤8,将测试矩阵U的每一个列向量U作为测试对象,为了减少计算的复杂度,基于训练学习到的矩阵W,本发明提出如下公式,求解测试数据的系数向量huhu=(Wt·Wr1·Wt·U。步骤9,比较系数向量hu与H中每个向量比的正弦距离,将最小的正弦距离作为U中每个进程向量u的异常度e:将该式作为识别异常的判决函数。步骤10,设定门限阈值0<λ<0.1,如果e>λ,则表明该进程存在异常,提示系统进行处理,否则提示进程安全。本发明的优点可通过以下仿真进一步说明1)仿真条件仿真实验均采用美国新墨西哥大学的公开数据=CERTsendmail数据和UNMsendmail.Log数据。以上两种数据均包含147条的正常进程,其中,CERTsendmail数据包含36个异常进程,本仿真仅使用其中的四种syslog攻击数据local、local2、remoteUremote2;U匪sendmail.Log数据中包含了两个异常进程UNMfwdloops和UNMsendmaiIsm。为了更有效地检验本发明方法的性能,我们将syslog攻击数据加入作为入侵样本。分解因子r选择8,最大迭代次数为1000次,随机选取CERTSendmail和UNMsendmail.log数据中30%的正常进程作为训练进程,选择所有进程进行测试。本发明的OBS-NMF算法采用欧式距离的收敛条件和判决函数,本发明改进的OBS-NMFI算法采用欧式距离的收敛条件和正弦距离的判决函数,本发明改进的OBS-NMFII算法采用余弦角度的收敛条件和正弦距离的判决函数。NCD表示正常样本的检测率,ACD表示异常样本的检测率。2)仿真内容为了验证本发明改进的入侵算法在改进策略上的优势,将OBS-NMF算法与传统的NMF算法,以及本发明改进的OBS-NMFI和OBS-NMFII算法的进行了比较仿真实验。2a)本发明采用的迭代机制与传统NMF算法的比较为了说明改进迭代机制对算法稳定性的影响,将本发明改进的OBS-NMF算法在与传统NMF算法使用相同的判别函数和收敛条件的情况下,分别对CERTSendmail数据和UNMsendmail.log数据进行了仿真实验。星号表示正常样本,其它符号表示不同的入侵,横坐标表示测试进程,纵坐标表示异常度。原NMF算法对两种数据的检测结果如图2所示,其中,图2a表示对CERTSendmail数据的测试结果,图2b表示对UNMsendmail.log数据的测试结果。本发明改进的OBS-NMF算法对两种数据的测试结果如图3所示,其中,图3a表示对CERTSendmail数据的测试结果,图3b表示对UNMsendmail.log数据的测试结果。2b)本发明改进判决函数与未改进的OBS-NMF算法的比较为了说明改进判决函数对检测性能的提高,本发明改进的OBS-NMFI算法在与OBS-NMF算法使用相同的迭代机制和收敛条件的情况下,分别对CERTSendmail数据和UNMsendmail.log数据进行了仿真实验。实线表示正常样本的检测率,虚线表示异常样本的检测率,横坐标表示阈值,纵坐标表示检测率。本发明改进的OBS-NMF算法对CERTSendmail数据和UNMsendmail.log数据的检测率随阈值变化的结果如图4所示,其中,图4a表示CERTSendmail数据的检测率变化结果,图4b表示CERTSendmail数据的检测率变化结果;本发明改进的OBS-NMFI算法对CERTSendmail数据和UNMsendmail.log数据的检测率随阈值变化的结果如图5所示,其中,图5a表示CERTSendmail数据的检测率变化结果,图5b表示UNMsendmail.log数据的检测率变化结果。2c)本发明改进收敛条件与未改进的OBS-NMFI算法的比较为了说明改进收敛条件对检测性能的提高,将本发明改进的OBS-NMFII算法在与OBS-NMFI算法使用相同的迭代机制和判别函数的情况下,分别对CERTSendmail数据和UNMsendmail.log数据进行了仿真实验。实线表示正常样本的检测率,虚线表示异常样本的检测率,横坐标表示阈值,纵坐标表示检测率。本发明改进的OBS-NMFII算法对CERTSendmail数据和UNMsendmail.log数据的检测率随阈值变化的结果如图6所示,其中,图6a表示CERTSendmail数据的检测率变化结果,图6b表示UNMsendmail.log数据的检测率变化结果。3)仿真实验结果分析从图2可以看出,原始的NMF算法正常样本的异常度变化较大,鲁棒性不强,不能很好的收敛。这主要是因为原始的算法在分解的过程中,W和H都是随机选择的非负矩阵,迭代公式也不能保证迭代的收敛性,因此,影响到对正常样本的检测。同时,随机选取不同训练样本也会使得正常样本的异常度变化明显,NMF算法的稳定性受正常样本的随机选取影响较大。从图3可以看出,本发明改进的OBS-NMF算法检测结果中正常样本异常度明显降低,并且具有集中稳定的特性,大大缩小了检测结果的异常度范围,便于选择合适的阈值进行识别。即使仍然随机选择测试样本和W、H的初始值,仍然能够达到比较理想的收敛效果,能更好的分析入侵行为,也大大的提高了算法的鲁棒性。从图4和图5可以看出,判别函数的选择对异常行为识别的影响较大,在采用相同迭代法则的情况下,本发明改进的OBS-NMFI算法相比本发明改进的OBS-NMF算法的检测性能明显提高,说明引入的正弦距离判别方法优于使用欧式距离的判别方法。同时,判断入侵最重要的是定义阈值,阈值的选择是否合适,直接影响到算法的检测精度,因此,阈值范围的大小体现了算法的优劣性。本发明改进的OBS-NMFI算法在保证较高检测率的情况下,阈值范围明显得到扩展。说明基于正弦距离的判别方法能最大程度的反映出正常样本和异常样本的差异性,可以有效地提高入侵检测的精度。由图5和图6可以看出,改进的余弦角度收敛条件可以进一步提高算法的检测性能,本发明改进的OBS-NMFII算法相比OBS-NMFI算法异常样本的异常度得到进一步提高,说明引入余弦角度作为收敛条件的方法优于使用欧式距离的收敛条件。这主要是因为选择欧氏距离作为收敛条件,会产生积累误差,而采用向量点积的余弦角作为收敛条件不仅符合训练数据的特点,同时也与判别函数的思想一致。图6a中,本发明改进的OBS-NMFII算法在检测率首次降低到95.65%的情况下,阈值范围由图5a中的0.094扩展到0.146。图6b中本发明改进的OBS-NMFII算法和图5b中本发明改进的OBS-NMFI算法相比,在保持检测率大于83.33%的情况下,阈值范围也进一步得到了扩大。因此,采用余弦角度作为收敛条件,能最大程度的反映出正常样本和异常样本的差异性。仿真结果显示,在保持较高检测率的情况下,本发明改进的OBS-NMFII算法很好的扩展了阈值的选取范围。总之,本发明的入侵检测方法在对正常进程和异常进程的分析中都达到了较高检测精度,比传统的NMF入侵检测方法具有更好的鲁棒性,自适应性和检测精度,在处理海量高维数据中,具有更明显的优势,具有很强的实时性,适合实时的入侵检测。4)算法参数影响分析本发明用于入侵检测的OBS-NMF算法的检测性能主要受到分解因子r的影响,分解因子关系到重构后的矩阵与原矩阵的误差大小,即基向量的个数。分解后的基矩阵中,r越小,则数据压缩的程度也就越大,结果也越不精确,反之,r越大,基向量的个数就越多,则重构的矩阵越能精确表示原矩阵,当r达到一定大值时,检测效果的改变不会太明显。同时,r的增加也提高了收敛速度,降低了迭代次数。由于入侵检测不仅需要考虑算法的检测精度,同时要兼顾实时处理海量高维数据的能力,因此,r的选择要综合考虑精度和压缩度,既要满足一定精度要求,同时能高效实时的处理入侵,r的值要在一个合理的范围内,它与检测率的关系曲线如图7所示。从图7可以看出,随着r的增加,异常样本的检测率也随之升高,当r>18,检测率接近100%。权利要求一种基于改进OBS-NMF算法的入侵检测方法,包括如下步骤(1)运行客户端计算机,利用服务器对其进行入侵攻击,监视系统运行中产生的正常进程和异常进程,收集进程执行过程中产生的系统调用;(2)将收集到的每一个正常进程按照系统调用号从小到大构造一个进程向量,将系统调用出现的次数作为向量的元素,设定训练矩阵规模,将每一个向量依次输入作为训练矩阵的一列,构建出训练矩阵V*表示如下<mrow><msub><msup><mi>V</mi><mo>*</mo></msup><mrow><mi>n</mi><mo>&times;</mo><mi>m</mi></mrow></msub><mo>=</mo><mfencedopen='['close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>3</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>2</mn></mtd><mtd><mn>2</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>=</mo><mrow><mo>[</mo><msub><msup><mi>v</mi><mo>*</mo></msup><mn>1</mn></msub><mo>,</mo><msub><msup><mi>v</mi><mo>*</mo></msup><mn>2</mn></msub><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msup><msub><mi>v</mi><mi>i</mi></msub><mo>*</mo></msup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msub><msup><mi>v</mi><mo>*</mo></msup><mi>m</mi></msub><mo>]</mo></mrow></mrow>n是最大系统调用号,m是进程数,v是系统调用次数;(3)删除训练矩阵中0元素比例大于95%的行,并标记被删除的行,计算训练矩阵中各系统调用在相应进程中的使用概率,将V*简化成矩阵V;(4)使用OBS-NMF算法对简化后的训练矩阵V进行降维分解,使得V≈WH,W表示V的权值矩阵,其大小为n×r,H表示V的系数矩阵,其大小为r×m,r表示分解因子,W和H的初始值取随机值;(5)利用以下迭代公式求得权值矩阵W和系数矩阵HW+←((H·HT)-1·H·VT)TW=W++ΔW+H+←(W·(WT·W)-1)T·VH=H++ΔH+其中W+和H+分别是W和H的过渡变量,分别表示调整W+和H+后引起的均方误差增量,j=1,2,…,n,ej第j列的单位矩阵,矩阵Wj=W+ej,Hj=H+ej,5<r<20;(6)选择最大迭代次数maxiter=1000,判断V与WH的迭代误差是否满足收敛条件Conv>γ,其中,0.8<γ<1,若满足,则执行步骤(7),否则返回步骤(5)继续迭代,直到达到最大迭代次数maxiter,迭代误差式表示为<mrow><mi>Conv</mi><mo>=</mo><munder><mi>min</mi><mi>i</mi></munder><mrow><mo>(</mo><mfrac><mrow><msubsup><mi>v</mi><mi>i</mi><mi>T</mi></msubsup><mrow><mo>(</mo><msub><mi>Wh</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mrow><msub><mrow><mo>|</mo><mo>|</mo><msub><mi>v</mi><mi>i</mi></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msub><msub><mrow><mo>|</mo><mo>|</mo><msub><mi>Wh</mi><mi>i</mi></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msub></mrow></mfrac><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mi>m</mi></mrow>其中,hi表示H矩阵的列向量;(7)取全部正常进程和异常进程作为测试样本,对该测试样本执行步骤(2),并删除步骤(3)中标记的行,得到测试矩阵U,使用如下公式,求解U中每个列向量u的特征系数向量huhu=(WT·W)-1·WT·u;(8)比较hu与H中每个向量hi的正弦距离,将最小的正弦距离作为U中每个进程向量u的异常度e<mrow><mi>e</mi><mo>=</mo><mn>1</mn><mo>-</mo><munder><mi>max</mi><mi>i</mi></munder><mrow><mo>(</mo><mfrac><mrow><msubsup><mi>h</mi><mi>u</mi><mi>T</mi></msubsup><msub><mi>h</mi><mi>i</mi></msub></mrow><mrow><msub><mrow><mo>|</mo><mo>|</mo><msub><mi>h</mi><mi>u</mi></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msub><msub><mrow><mo>|</mo><mo>|</mo><msub><mi>h</mi><mi>i</mi></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msub></mrow></mfrac><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mi>m</mi><mo>;</mo></mrow>(9)设定门限阈值0<λ<0.1,如果e>λ,则表明该进程存在异常,提示系统进行处理,否则提示进程安全。FSA00000158300800012.tif,FSA00000158300800021.tif2.根据权利要求1所述的入侵检测方法,其中步骤(2)所述的设定矩阵规模,是根据收集到的进程数,选择30%的进程作为训练矩阵的向量。3.根据权利要求1所述的入侵检测方法,其中步骤(3)所述的计算训练矩阵中各系统调用在相应进程中的使用概率,是先对进程向量中的元素进行求和,再将每个元素值与该求和值进行相除,得出每个元素的使用概率。全文摘要本发明公开了一种基于改进OBS-NMF算法的入侵检测方法,主要解决已有技术存在的处理高维数据能力低,鲁棒性不强,阈值选取范围小,检测结果不理想的问题。其实现步骤为(1)收集进程系统调用;(2)构造并简化训练矩阵;(3)对训练矩阵进行降维分解;(4)判断是否满足收敛条件,若满足,则执行步骤(5),否则返回步骤(3)继续迭代,直到达到最大迭代次数;(5)构造测试矩阵U;(6)利用基矩阵W求解U的特征系数向量hu;(7)求解U中进程向量的异常度;(8)设定阈值λ,输出检测结果。本发明具有实现简单,稳定性好,检测精度高,阈值选取范围大和实时性强的优点,可用于基于主机系统调用的实时入侵检测。文档编号G06F21/00GK101866403SQ20101019910公开日2010年10月20日申请日期2010年6月11日优先权日2010年6月11日发明者公茂果,刘芳,尚荣华,焦李成,王爽,赵富家,马文萍,马晶晶申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1