專利名稱::基于改進(jìn)obs-nmf算法的入侵檢測方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于計算機(jī)安全
技術(shù)領(lǐng)域:
,特別涉及一種計算機(jī)安全入侵檢測方法,該方法可用于解決計算機(jī)進(jìn)程行為的異常檢測。
背景技術(shù):
:計算機(jī)安全從上個世紀(jì)70年代早期就有人開始研究,但是他們的研究成果一度被忽略,直到1980年4月JamesP.Anderson為美國空軍做的一份技術(shù)報告才被公認(rèn)為是入侵檢測的開山之作,這份題為《ComputerSecurityThreatMonitoringandSurverillance》的技術(shù)報告第一次詳細(xì)的闡述了計算機(jī)系統(tǒng)中入侵檢測的概念,還提出了利用審計跟蹤數(shù)據(jù)監(jiān)視入侵活動的思想。隨著人們對計算機(jī)網(wǎng)絡(luò)的依賴性不斷增強(qiáng),傳統(tǒng)的網(wǎng)絡(luò)安全技術(shù)不能提供有效的防護(hù),作為傳統(tǒng)技術(shù)的一種補(bǔ)充,入侵檢測成為網(wǎng)絡(luò)安全發(fā)展的一個新方向,它是一種主動的計算機(jī)和網(wǎng)絡(luò)安全的防衛(wèi)手段。異常檢測能夠檢測未知的攻擊,因此,近年來異常入侵檢測成為了研究的熱點(diǎn)。目前,已經(jīng)由很多方法成功的應(yīng)用于異常檢測中,例如統(tǒng)計分析,機(jī)器學(xué)習(xí),神經(jīng)網(wǎng)絡(luò),數(shù)據(jù)挖掘等。入侵檢測的相關(guān)研究工作根據(jù)數(shù)據(jù)源的不同有很多分類方法,包括審計事件與命令序列,系統(tǒng)調(diào)用,網(wǎng)絡(luò)數(shù)據(jù)包,擊健特性,文件系統(tǒng)訪問。對于異常檢測系統(tǒng)來說,可以從計算機(jī)或者網(wǎng)絡(luò)的各個不同層面對系統(tǒng)行為進(jìn)行建模并檢測入侵,其中一個關(guān)鍵的問題就是如何選擇用戶,系統(tǒng)或者網(wǎng)絡(luò)的行為特征,以便根據(jù)這些特征更好地區(qū)分入侵行為和正常行為。在Unix/Linux及其兼容的操作系統(tǒng)中,系統(tǒng)調(diào)用是用戶空間與內(nèi)核空間中資源調(diào)用的借口。單個程序在執(zhí)行過程中,可能會產(chǎn)生多個進(jìn)程,一個進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用被歸為一個“執(zhí)行跡”。通過分析“執(zhí)行跡”產(chǎn)生的系統(tǒng)調(diào)用,就有可能發(fā)現(xiàn)程序的異常運(yùn)行狀態(tài),進(jìn)而判斷出該系統(tǒng)是否受到攻擊。相對于其它數(shù)據(jù)源來說,系統(tǒng)調(diào)用的種類非常有限,即內(nèi)核為2.7.10的Linux系統(tǒng)調(diào)用不足221種,常用的不過80多種。此外,黑客入侵也不可避免的會在系統(tǒng)內(nèi)核層的系統(tǒng)調(diào)用中留下入侵痕跡。因此,基于系統(tǒng)調(diào)用的入侵檢測建模方法簡單而且高效,近年來已經(jīng)成為異常檢測中主機(jī)行為建模的主要研究對象。1996年,F(xiàn)orrest等人首先提出以進(jìn)程正常運(yùn)行產(chǎn)生的一定長度的系統(tǒng)調(diào)用段序列作為研究對象來刻畫進(jìn)程的運(yùn)行狀態(tài)。Lee等人繼Forrest的工作后,應(yīng)用Ripper軟件包,從系統(tǒng)調(diào)用序列中挖掘正常和異常模式,以規(guī)則的形式來描述系統(tǒng)的運(yùn)行狀態(tài),建立了一個簡潔有效的系統(tǒng)正常模型。Warrender等人則利用HMM算法對系統(tǒng)調(diào)用的隱含狀態(tài)進(jìn)行建模,也取得了較好的檢測結(jié)果。Wespi等人擴(kuò)展了Forrest等人的思想,使用變長短序列的方法對系統(tǒng)調(diào)用進(jìn)行建模。Asaka等人使用了優(yōu)化分類面的方法檢測系統(tǒng)入侵。Liao和Hu分別采用最近鄰KNN和支撐矢量機(jī)SVM對程序行為進(jìn)行建模。其它一些方法,如一步馬爾可夫模型,神經(jīng)網(wǎng)絡(luò)和軟計算等方法也都成功應(yīng)用于基于系統(tǒng)調(diào)用的程序異常檢測中。但當(dāng)前入侵檢測IDS中也存在一些問題,如檢測效果差,漏報、誤報率高的狀況。數(shù)據(jù)處理性能不高,處理高維海量數(shù)據(jù)的能力不強(qiáng)。而現(xiàn)在計算機(jī)領(lǐng)域的數(shù)據(jù)量呈爆炸性增長,UNM在收集Sendmail守護(hù)進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用實(shí)驗(yàn)中,僅112條郵件信息就產(chǎn)生了超過150萬條的系統(tǒng)調(diào)用,因此一個有效的入侵檢測方法必須在攻擊還未給系統(tǒng)造成破壞之前就能夠被實(shí)時地檢測出來。再有,實(shí)時性差,自適應(yīng)性不好。對資源的占用大,不具有可擴(kuò)展性等。近年來非負(fù)矩陣分解理論NMF被引入入侵檢測,其高效的數(shù)據(jù)降維能力使其得到廣泛的重視,它具有實(shí)現(xiàn)的簡便性,分解理論的可解釋性,以及占用資源少等優(yōu)點(diǎn)。目前已成功的應(yīng)用于人臉識別,文本分類,語音處理等領(lǐng)域。Wang在其多信息源的實(shí)時入侵檢測方法研究一文中采用NMF算法建立入侵檢測模型,采用系統(tǒng)調(diào)用作為分析數(shù)據(jù),將高維向量數(shù)據(jù)進(jìn)行分解,在低維空間檢測入侵行為,精簡了數(shù)據(jù),降低了資源占用率,具有較高的檢測精度和實(shí)時性。但該異常檢測模型的算法穩(wěn)定性不高,收斂性不能得到保證,同時閾值的選擇較為困難,影響到了檢測效果
發(fā)明內(nèi)容本發(fā)明的目的在于克服上述已有技術(shù)的不足,提出一種基于改進(jìn)OBS-NMF算法的入侵檢測方法,以保證OBS-NMF算法的收斂性,擴(kuò)展閾值的選取范圍,有效地提高檢測的精度和穩(wěn)定性。實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案是將基于主機(jī)系統(tǒng)調(diào)用的入侵檢測問題看作分類問題,將對原始數(shù)據(jù)進(jìn)行預(yù)處理,轉(zhuǎn)化成適合處理的向量矩陣形式,利用非負(fù)矩陣分解在特征提取和降維方面快速有效的特性對矩陣進(jìn)行分解處理,利用OBS策略能較好收斂的特性改進(jìn)原NMF算法的迭代機(jī)制,利用向量角度能夠減少數(shù)據(jù)的重構(gòu)誤差和很好的反映向量數(shù)據(jù)差異性的特性,分別采用余弦距離和正弦距離作為本發(fā)明的收斂條件和判別函數(shù)處理入侵問題。具體實(shí)現(xiàn)步驟包括如下(1)運(yùn)行客戶端計算機(jī),利用服務(wù)器對其進(jìn)行入侵攻擊,監(jiān)視系統(tǒng)運(yùn)行中產(chǎn)生的正常進(jìn)程和異常進(jìn)程,收集進(jìn)程執(zhí)行過程中產(chǎn)生的系統(tǒng)調(diào)用;(2)將收集到的每一個正常進(jìn)程按照系統(tǒng)調(diào)用號從小到大構(gòu)造一個進(jìn)程向量,將系統(tǒng)調(diào)用出現(xiàn)的次數(shù)作為向量的元素;設(shè)定訓(xùn)練矩陣規(guī)模,將每一個向量依次輸入作為訓(xùn)練矩陣的一列,得到訓(xùn)練矩陣壙表示如下10…3_*022…0****Vxm=...............=Ivι,ν”…,“^,…vm]001…0η是最大系統(tǒng)調(diào)用號,m是進(jìn)程數(shù),ν是系統(tǒng)調(diào)用次數(shù);(3)刪除訓(xùn)練矩陣中0元素比例大于95%的行,并標(biāo)記被刪除的行,計算訓(xùn)練矩陣中各系統(tǒng)調(diào)用在相應(yīng)進(jìn)程中的使用概率,將壙簡化成矩陣V;(4)使用OBS-NMF算法對簡化后的訓(xùn)練矩陣V進(jìn)行降維分解,使得V^WH,W表示V的權(quán)值矩陣,其大小為ηXr,H表示V的系數(shù)矩陣,其大小為rXm,r表示分解因子,W和H的初始值取隨機(jī)值;(5)利用以下迭代公式求得權(quán)值矩陣W和系數(shù)矩陣HW=W++ΔW+其中W+和H+分別是W和H的過渡變量,腿、、—、-、,(W7^T1分別表示調(diào)整W+和H+后引起的均方誤差增量,j=1,2,-,η,ej第j列的單位矩陣,矩陣Wj=W+e」,Hj=H+e」,5<r<20;(6)選擇最大迭代次數(shù)maxiter=1000,判斷V與WH的迭代誤差是否滿足收斂條件ConV>Y,其中,0.8<γ<1,若滿足,則執(zhí)行步驟(6),否則返回步驟(5)繼續(xù)迭代,直到達(dá)到最大迭代次數(shù)maxiter,迭代誤差式表示為其中,hi表示H矩陣的列向量;(7)取全部正常進(jìn)程和異常進(jìn)程作為測試樣本,對該測試樣本執(zhí)行步驟(2),并刪除步驟(3)中標(biāo)記的行,得到測試矩陣U,使用如下公式,求解U中每個列向量u的特征系數(shù)向量hu:(8)比較、與H中每個向量比的正弦距離,將最小的正弦距離作為U中每個進(jìn)程向量u的異常度e:(9)設(shè)定門限閾值0<λ<0.1,如果滿足判別函數(shù)e>λ,則表明該進(jìn)程存在異常,提示系統(tǒng)進(jìn)行處理,否則提示進(jìn)程安全。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn)1.魯棒性強(qiáng)由于原始的NMF算法的迭代機(jī)制約束性不強(qiáng),因此,檢測性能受到W、H和訓(xùn)練樣本隨機(jī)選取的影響很大,相比原NMF算法,本發(fā)明的算法引入OBS思想,對迭代機(jī)制進(jìn)行了改進(jìn),提高了迭代方向的約束性,檢測結(jié)果顯示,本方法受W、H和訓(xùn)練樣本隨機(jī)選取的影響很小,比NMF算法具有更好的魯棒性。2.實(shí)時性本方法通過OBS-NMF算法對高維海量數(shù)據(jù)進(jìn)行分解降維,映射到低維空間進(jìn)行檢測,減小了數(shù)據(jù)量,有效地降低了算法的復(fù)雜度,相比其它入侵檢測的方法花費(fèi)時間更少;同時由于本發(fā)明采用系統(tǒng)調(diào)用的頻率特性作為分析數(shù)據(jù),相比使用其它特性的數(shù)據(jù),具有更好的實(shí)時性。3.閾值選取范圍大,檢測性能優(yōu)越由于采用了基于向量角度的收斂條件和判別函數(shù),相比采用基于歐式距離的收斂條件和判別函數(shù),前者更加符合實(shí)驗(yàn)數(shù)據(jù)的結(jié)構(gòu)特性,能夠更好地反映正常樣本和異常樣本的差異度,能夠明顯提高檢測的精度。實(shí)驗(yàn)結(jié)果顯示,本發(fā)明的方法,擴(kuò)展了閾值的選取范圍,有效地提高了算法的檢測性能。4.算法收斂性較好傳統(tǒng)的NMF算法一直受到收斂性的困擾,本發(fā)明改進(jìn)了NMF算法的迭代機(jī)制,在最小均方誤差的基礎(chǔ)上,進(jìn)一步優(yōu)化得出迭代增量,加強(qiáng)了迭代方向的約束性。同時,采樣余弦角度的收斂條件,相比采用歐式距離的收斂條件對誤差的要求更為嚴(yán)格。需要更多的迭代次數(shù),才能滿足收斂條件。因此,本算法在收斂性上得到了很大地改善。圖1是本發(fā)明的流程圖;圖2是原NMF算法對CERTsendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)的檢測結(jié)果圖;圖3是本發(fā)明改進(jìn)迭代機(jī)制的OBS-NMF算法對CERTsendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)的檢測結(jié)果圖;圖4是本發(fā)明迭代機(jī)制的OBS-NMF算法對CERTsendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)的檢測率隨閾值變化的曲線圖;圖5是本發(fā)明改進(jìn)判別函數(shù)的OBS-NMFI算法對CERTsendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)的檢測率隨閾值變化的曲線圖;圖6是本發(fā)明改進(jìn)收斂條件的OBS-NMFII算法對CERTsendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)的檢測率隨閾值變化的曲線圖;圖7是本發(fā)明檢測率隨分解因子r變化的曲線圖。具體實(shí)施例方式參照圖1,參照圖1本發(fā)明的具體實(shí)現(xiàn)步驟如下;步驟1,數(shù)據(jù)采集。運(yùn)行客戶端計算機(jī),在系統(tǒng)正常運(yùn)行的情況下,單個程序在執(zhí)行過程中,會產(chǎn)生多個進(jìn)程,進(jìn)程通過中斷指令0x80,跳轉(zhuǎn)到稱為SyStem_call的內(nèi)核位置,進(jìn)入系統(tǒng)調(diào)用處理程序,調(diào)用相關(guān)的內(nèi)核函數(shù),執(zhí)行結(jié)束,返回到用戶空間,其中進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用序列通過內(nèi)核打補(bǔ)丁或者系統(tǒng)中的應(yīng)用程序,如Strace方法截取得到。步驟2,構(gòu)造進(jìn)程向量。對于采集到的原始數(shù)據(jù),首先,要進(jìn)行分組,系統(tǒng)調(diào)用數(shù)據(jù)按照進(jìn)程進(jìn)行分組,相同進(jìn)程下的系統(tǒng)調(diào)用歸為一組;其次,按照系統(tǒng)調(diào)用號從小到大構(gòu)造一個進(jìn)程向量,統(tǒng)計每組數(shù)據(jù)中每種系統(tǒng)調(diào)用出現(xiàn)的頻率,統(tǒng)計結(jié)果形成一個列向量,這樣進(jìn)程行為就可以用它發(fā)出的系統(tǒng)調(diào)用序列來描述,入侵檢測的問題也就轉(zhuǎn)化成判斷這些向量是否正常的問題,使數(shù)據(jù)得到約簡,問題也得到簡化。步驟3,構(gòu)建訓(xùn)練矩陣。用構(gòu)建的進(jìn)程向量組成適合本發(fā)明方法的矩陣數(shù)據(jù),選擇30%的進(jìn)程向量作為訓(xùn)練矩陣的規(guī)模,將構(gòu)造的每個進(jìn)程向量,依次作為一個列向量加入訓(xùn)練矩陣,直到滿足定義的規(guī)模大小,這樣原始數(shù)據(jù)就可以表示成一個nXm的訓(xùn)練矩陣V*,記為其中,η是使用到的最大系統(tǒng)調(diào)用號,m是進(jìn)程數(shù),Ψ中的每個列向量代表與其對應(yīng)的每組數(shù)據(jù)中不同類型的元素出現(xiàn)的次數(shù)。步驟4,簡化訓(xùn)練矩陣。在構(gòu)建矩陣V*的時候,矩陣的行數(shù)即是相應(yīng)的系統(tǒng)調(diào)用號,而每個進(jìn)程的系統(tǒng)調(diào)用在執(zhí)行的過程中,并不是連續(xù)出現(xiàn)的,而是按照其出現(xiàn)的先后順序,并且只有一部分會被使用到,因此需要對構(gòu)造好的V*矩陣刪除0元素多的行,以初步減少數(shù)據(jù)的維數(shù)。具體方法是統(tǒng)計每行中O的個數(shù),如果超過一定的比例,本發(fā)明限定其每一行0元素超過95%的,則刪除該行,即不使用該系統(tǒng)調(diào)用作為行為的特征表示,這樣就可以刪除大量未被用到和很少用到的特征,矩陣得到了簡單的約簡;最后,將矩陣中的系統(tǒng)調(diào)用次數(shù)轉(zhuǎn)變成其在相應(yīng)向量中出現(xiàn)的概率,其它審計數(shù)據(jù)也可以按照該方式進(jìn)行處理,保證了入侵檢測的自適應(yīng)性和擴(kuò)展性。步驟5,求解權(quán)值矩陣W和系數(shù)矩陣H。原始的NMF算法的思想是要尋找兩個矩陣W和H,使得Vij^WH,即分解之后的矩陣W和H的維數(shù)分別為nXr和rXm,且H中的每一列h可以看成是與其對應(yīng)的每組數(shù)據(jù)所保留的特征向量。本發(fā)明基于OBS策略提出了如下迭代公式W+—((H·Ht)-1·H·VT)TW=W++ΔW+H+—(W·(ffT·Wr1)τ·V其中W+和H+分別是W和H的過渡變量,WtW)-1]妒廣分別表示調(diào)整r和H+后引起的均方誤差增量,J=1,2,···,!!,ej第j列的單位矩陣,矩陣Wj=W+GjjHj=H+ej,r(5<r<20)是分解因子,表示降維后的權(quán)值矩陣維數(shù),在矩陣分解時,選擇r<<η。根據(jù)如上的迭代公式,隨機(jī)選取非負(fù)的初始矩陣W和H,在計算過程中,需要對每個權(quán)值都進(jìn)行調(diào)整,在實(shí)際的求解過程中往往利用迭代的方法交替求得W和H,使得重構(gòu)誤差I(lǐng)lV-WHlI最小。步驟6,判斷終止條件。選擇最大迭代次數(shù)maxiter=1000,分解因子r=8,對于實(shí)驗(yàn)中的訓(xùn)練樣本V=[V1,V2,…vm],由于訓(xùn)練數(shù)據(jù)是以向量為基本的研究對象,為此本發(fā)明采用余弦角度作為收斂條件,也就是取V和(WH)對應(yīng)的每一個列向量的余弦距離最小值作為收斂條件其中,hi表示H矩陣的列向量;對于給定值0.8<γ<1,在Conv彡γ時,則迭代截止,否則繼續(xù)迭代,直到最大迭代次數(shù)。步驟7,構(gòu)建并簡化測試矩陣。將全部正常進(jìn)程和異常進(jìn)程作為測試樣本,首先,對該測試樣本同樣先進(jìn)行矩陣的構(gòu)建,方法與步驟3中構(gòu)建正常的訓(xùn)練矩陣相同;然后,對其進(jìn)行如步驟4的簡化操作。由于為了用相同的系統(tǒng)調(diào)用表示訓(xùn)練樣本和測試樣本,并且保證簡化后的測試矩陣與訓(xùn)練矩陣的維數(shù)一致,刪除的行與訓(xùn)練矩陣刪除的行必須相同,以達(dá)到用最少的維數(shù)較精確地表示樣本的目的;最后,得到測試矩陣U。步驟8,將測試矩陣U的每一個列向量U作為測試對象,為了減少計算的復(fù)雜度,基于訓(xùn)練學(xué)習(xí)到的矩陣W,本發(fā)明提出如下公式,求解測試數(shù)據(jù)的系數(shù)向量huhu=(Wt·Wr1·Wt·U。步驟9,比較系數(shù)向量hu與H中每個向量比的正弦距離,將最小的正弦距離作為U中每個進(jìn)程向量u的異常度e:將該式作為識別異常的判決函數(shù)。步驟10,設(shè)定門限閾值0<λ<0.1,如果e>λ,則表明該進(jìn)程存在異常,提示系統(tǒng)進(jìn)行處理,否則提示進(jìn)程安全。本發(fā)明的優(yōu)點(diǎn)可通過以下仿真進(jìn)一步說明1)仿真條件仿真實(shí)驗(yàn)均采用美國新墨西哥大學(xué)的公開數(shù)據(jù)=CERTsendmail數(shù)據(jù)和UNMsendmail.Log數(shù)據(jù)。以上兩種數(shù)據(jù)均包含147條的正常進(jìn)程,其中,CERTsendmail數(shù)據(jù)包含36個異常進(jìn)程,本仿真僅使用其中的四種syslog攻擊數(shù)據(jù)local、local2、remoteUremote2;U匪sendmail.Log數(shù)據(jù)中包含了兩個異常進(jìn)程UNMfwdloops和UNMsendmaiIsm。為了更有效地檢驗(yàn)本發(fā)明方法的性能,我們將syslog攻擊數(shù)據(jù)加入作為入侵樣本。分解因子r選擇8,最大迭代次數(shù)為1000次,隨機(jī)選取CERTSendmail和UNMsendmail.log數(shù)據(jù)中30%的正常進(jìn)程作為訓(xùn)練進(jìn)程,選擇所有進(jìn)程進(jìn)行測試。本發(fā)明的OBS-NMF算法采用歐式距離的收斂條件和判決函數(shù),本發(fā)明改進(jìn)的OBS-NMFI算法采用歐式距離的收斂條件和正弦距離的判決函數(shù),本發(fā)明改進(jìn)的OBS-NMFII算法采用余弦角度的收斂條件和正弦距離的判決函數(shù)。NCD表示正常樣本的檢測率,ACD表示異常樣本的檢測率。2)仿真內(nèi)容為了驗(yàn)證本發(fā)明改進(jìn)的入侵算法在改進(jìn)策略上的優(yōu)勢,將OBS-NMF算法與傳統(tǒng)的NMF算法,以及本發(fā)明改進(jìn)的OBS-NMFI和OBS-NMFII算法的進(jìn)行了比較仿真實(shí)驗(yàn)。2a)本發(fā)明采用的迭代機(jī)制與傳統(tǒng)NMF算法的比較為了說明改進(jìn)迭代機(jī)制對算法穩(wěn)定性的影響,將本發(fā)明改進(jìn)的OBS-NMF算法在與傳統(tǒng)NMF算法使用相同的判別函數(shù)和收斂條件的情況下,分別對CERTSendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)進(jìn)行了仿真實(shí)驗(yàn)。星號表示正常樣本,其它符號表示不同的入侵,橫坐標(biāo)表示測試進(jìn)程,縱坐標(biāo)表示異常度。原NMF算法對兩種數(shù)據(jù)的檢測結(jié)果如圖2所示,其中,圖2a表示對CERTSendmail數(shù)據(jù)的測試結(jié)果,圖2b表示對UNMsendmail.log數(shù)據(jù)的測試結(jié)果。本發(fā)明改進(jìn)的OBS-NMF算法對兩種數(shù)據(jù)的測試結(jié)果如圖3所示,其中,圖3a表示對CERTSendmail數(shù)據(jù)的測試結(jié)果,圖3b表示對UNMsendmail.log數(shù)據(jù)的測試結(jié)果。2b)本發(fā)明改進(jìn)判決函數(shù)與未改進(jìn)的OBS-NMF算法的比較為了說明改進(jìn)判決函數(shù)對檢測性能的提高,本發(fā)明改進(jìn)的OBS-NMFI算法在與OBS-NMF算法使用相同的迭代機(jī)制和收斂條件的情況下,分別對CERTSendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)進(jìn)行了仿真實(shí)驗(yàn)。實(shí)線表示正常樣本的檢測率,虛線表示異常樣本的檢測率,橫坐標(biāo)表示閾值,縱坐標(biāo)表示檢測率。本發(fā)明改進(jìn)的OBS-NMF算法對CERTSendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)的檢測率隨閾值變化的結(jié)果如圖4所示,其中,圖4a表示CERTSendmail數(shù)據(jù)的檢測率變化結(jié)果,圖4b表示CERTSendmail數(shù)據(jù)的檢測率變化結(jié)果;本發(fā)明改進(jìn)的OBS-NMFI算法對CERTSendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)的檢測率隨閾值變化的結(jié)果如圖5所示,其中,圖5a表示CERTSendmail數(shù)據(jù)的檢測率變化結(jié)果,圖5b表示UNMsendmail.log數(shù)據(jù)的檢測率變化結(jié)果。2c)本發(fā)明改進(jìn)收斂條件與未改進(jìn)的OBS-NMFI算法的比較為了說明改進(jìn)收斂條件對檢測性能的提高,將本發(fā)明改進(jìn)的OBS-NMFII算法在與OBS-NMFI算法使用相同的迭代機(jī)制和判別函數(shù)的情況下,分別對CERTSendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)進(jìn)行了仿真實(shí)驗(yàn)。實(shí)線表示正常樣本的檢測率,虛線表示異常樣本的檢測率,橫坐標(biāo)表示閾值,縱坐標(biāo)表示檢測率。本發(fā)明改進(jìn)的OBS-NMFII算法對CERTSendmail數(shù)據(jù)和UNMsendmail.log數(shù)據(jù)的檢測率隨閾值變化的結(jié)果如圖6所示,其中,圖6a表示CERTSendmail數(shù)據(jù)的檢測率變化結(jié)果,圖6b表示UNMsendmail.log數(shù)據(jù)的檢測率變化結(jié)果。3)仿真實(shí)驗(yàn)結(jié)果分析從圖2可以看出,原始的NMF算法正常樣本的異常度變化較大,魯棒性不強(qiáng),不能很好的收斂。這主要是因?yàn)樵嫉乃惴ㄔ诜纸獾倪^程中,W和H都是隨機(jī)選擇的非負(fù)矩陣,迭代公式也不能保證迭代的收斂性,因此,影響到對正常樣本的檢測。同時,隨機(jī)選取不同訓(xùn)練樣本也會使得正常樣本的異常度變化明顯,NMF算法的穩(wěn)定性受正常樣本的隨機(jī)選取影響較大。從圖3可以看出,本發(fā)明改進(jìn)的OBS-NMF算法檢測結(jié)果中正常樣本異常度明顯降低,并且具有集中穩(wěn)定的特性,大大縮小了檢測結(jié)果的異常度范圍,便于選擇合適的閾值進(jìn)行識別。即使仍然隨機(jī)選擇測試樣本和W、H的初始值,仍然能夠達(dá)到比較理想的收斂效果,能更好的分析入侵行為,也大大的提高了算法的魯棒性。從圖4和圖5可以看出,判別函數(shù)的選擇對異常行為識別的影響較大,在采用相同迭代法則的情況下,本發(fā)明改進(jìn)的OBS-NMFI算法相比本發(fā)明改進(jìn)的OBS-NMF算法的檢測性能明顯提高,說明引入的正弦距離判別方法優(yōu)于使用歐式距離的判別方法。同時,判斷入侵最重要的是定義閾值,閾值的選擇是否合適,直接影響到算法的檢測精度,因此,閾值范圍的大小體現(xiàn)了算法的優(yōu)劣性。本發(fā)明改進(jìn)的OBS-NMFI算法在保證較高檢測率的情況下,閾值范圍明顯得到擴(kuò)展。說明基于正弦距離的判別方法能最大程度的反映出正常樣本和異常樣本的差異性,可以有效地提高入侵檢測的精度。由圖5和圖6可以看出,改進(jìn)的余弦角度收斂條件可以進(jìn)一步提高算法的檢測性能,本發(fā)明改進(jìn)的OBS-NMFII算法相比OBS-NMFI算法異常樣本的異常度得到進(jìn)一步提高,說明引入余弦角度作為收斂條件的方法優(yōu)于使用歐式距離的收斂條件。這主要是因?yàn)檫x擇歐氏距離作為收斂條件,會產(chǎn)生積累誤差,而采用向量點(diǎn)積的余弦角作為收斂條件不僅符合訓(xùn)練數(shù)據(jù)的特點(diǎn),同時也與判別函數(shù)的思想一致。圖6a中,本發(fā)明改進(jìn)的OBS-NMFII算法在檢測率首次降低到95.65%的情況下,閾值范圍由圖5a中的0.094擴(kuò)展到0.146。圖6b中本發(fā)明改進(jìn)的OBS-NMFII算法和圖5b中本發(fā)明改進(jìn)的OBS-NMFI算法相比,在保持檢測率大于83.33%的情況下,閾值范圍也進(jìn)一步得到了擴(kuò)大。因此,采用余弦角度作為收斂條件,能最大程度的反映出正常樣本和異常樣本的差異性。仿真結(jié)果顯示,在保持較高檢測率的情況下,本發(fā)明改進(jìn)的OBS-NMFII算法很好的擴(kuò)展了閾值的選取范圍??傊?,本發(fā)明的入侵檢測方法在對正常進(jìn)程和異常進(jìn)程的分析中都達(dá)到了較高檢測精度,比傳統(tǒng)的NMF入侵檢測方法具有更好的魯棒性,自適應(yīng)性和檢測精度,在處理海量高維數(shù)據(jù)中,具有更明顯的優(yōu)勢,具有很強(qiáng)的實(shí)時性,適合實(shí)時的入侵檢測。4)算法參數(shù)影響分析本發(fā)明用于入侵檢測的OBS-NMF算法的檢測性能主要受到分解因子r的影響,分解因子關(guān)系到重構(gòu)后的矩陣與原矩陣的誤差大小,即基向量的個數(shù)。分解后的基矩陣中,r越小,則數(shù)據(jù)壓縮的程度也就越大,結(jié)果也越不精確,反之,r越大,基向量的個數(shù)就越多,則重構(gòu)的矩陣越能精確表示原矩陣,當(dāng)r達(dá)到一定大值時,檢測效果的改變不會太明顯。同時,r的增加也提高了收斂速度,降低了迭代次數(shù)。由于入侵檢測不僅需要考慮算法的檢測精度,同時要兼顧實(shí)時處理海量高維數(shù)據(jù)的能力,因此,r的選擇要綜合考慮精度和壓縮度,既要滿足一定精度要求,同時能高效實(shí)時的處理入侵,r的值要在一個合理的范圍內(nèi),它與檢測率的關(guān)系曲線如圖7所示。從圖7可以看出,隨著r的增加,異常樣本的檢測率也隨之升高,當(dāng)r>18,檢測率接近100%。權(quán)利要求一種基于改進(jìn)OBS-NMF算法的入侵檢測方法,包括如下步驟(1)運(yùn)行客戶端計算機(jī),利用服務(wù)器對其進(jìn)行入侵攻擊,監(jiān)視系統(tǒng)運(yùn)行中產(chǎn)生的正常進(jìn)程和異常進(jìn)程,收集進(jìn)程執(zhí)行過程中產(chǎn)生的系統(tǒng)調(diào)用;(2)將收集到的每一個正常進(jìn)程按照系統(tǒng)調(diào)用號從小到大構(gòu)造一個進(jìn)程向量,將系統(tǒng)調(diào)用出現(xiàn)的次數(shù)作為向量的元素,設(shè)定訓(xùn)練矩陣規(guī)模,將每一個向量依次輸入作為訓(xùn)練矩陣的一列,構(gòu)建出訓(xùn)練矩陣V*表示如下<mrow><msub><msup><mi>V</mi><mo>*</mo></msup><mrow><mi>n</mi><mo>×</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>·</mo><mo>·</mo><mo>·</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>·</mo><mo>·</mo><mo>·</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>·</mo><mo>·</mo><mo>·</mo></mtd><mtd><mo>·</mo><mo>·</mo><mo>·</mo></mtd><mtd><mo>·</mo><mo>·</mo><mo>·</mo></mtd><mtd><mo>·</mo><mo>·</mo><mo>·</mo></mtd><mtd><mo>·</mo><mo>·</mo><mo>·</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>·</mo><mo>·</mo><mo>·</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>·</mo><mo>·</mo><mo>·</mo><mo>,</mo><msup><msub><mi>v</mi><mi>i</mi></msub><mo>*</mo></msup><mo>,</mo><mo>·</mo><mo>·</mo><mo>·</mo><msub><msup><mi>v</mi><mo>*</mo></msup><mi>m</mi></msub><mo>]</mo></mrow></mrow>n是最大系統(tǒng)調(diào)用號,m是進(jìn)程數(shù),v是系統(tǒng)調(diào)用次數(shù);(3)刪除訓(xùn)練矩陣中0元素比例大于95%的行,并標(biāo)記被刪除的行,計算訓(xùn)練矩陣中各系統(tǒng)調(diào)用在相應(yīng)進(jìn)程中的使用概率,將V*簡化成矩陣V;(4)使用OBS-NMF算法對簡化后的訓(xùn)練矩陣V進(jìn)行降維分解,使得V≈WH,W表示V的權(quán)值矩陣,其大小為n×r,H表示V的系數(shù)矩陣,其大小為r×m,r表示分解因子,W和H的初始值取隨機(jī)值;(5)利用以下迭代公式求得權(quán)值矩陣W和系數(shù)矩陣HW+←((H·HT)-1·H·VT)TW=W++ΔW+H+←(W·(WT·W)-1)T·VH=H++ΔH+其中W+和H+分別是W和H的過渡變量,分別表示調(diào)整W+和H+后引起的均方誤差增量,j=1,2,…,n,ej第j列的單位矩陣,矩陣Wj=W+ej,Hj=H+ej,5<r<20;(6)選擇最大迭代次數(shù)maxiter=1000,判斷V與WH的迭代誤差是否滿足收斂條件Conv>γ,其中,0.8<γ<1,若滿足,則執(zhí)行步驟(7),否則返回步驟(5)繼續(xù)迭代,直到達(dá)到最大迭代次數(shù)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>·</mo><mo>·</mo><mo>·</mo><mi>m</mi></mrow>其中,hi表示H矩陣的列向量;(7)取全部正常進(jìn)程和異常進(jìn)程作為測試樣本,對該測試樣本執(zhí)行步驟(2),并刪除步驟(3)中標(biāo)記的行,得到測試矩陣U,使用如下公式,求解U中每個列向量u的特征系數(shù)向量huhu=(WT·W)-1·WT·u;(8)比較hu與H中每個向量hi的正弦距離,將最小的正弦距離作為U中每個進(jìn)程向量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>·</mo><mo>·</mo><mo>·</mo><mi>m</mi><mo>;</mo></mrow>(9)設(shè)定門限閾值0<λ<0.1,如果e>λ,則表明該進(jìn)程存在異常,提示系統(tǒng)進(jìn)行處理,否則提示進(jìn)程安全。FSA00000158300800012.tif,FSA00000158300800021.tif2.根據(jù)權(quán)利要求1所述的入侵檢測方法,其中步驟(2)所述的設(shè)定矩陣規(guī)模,是根據(jù)收集到的進(jìn)程數(shù),選擇30%的進(jìn)程作為訓(xùn)練矩陣的向量。3.根據(jù)權(quán)利要求1所述的入侵檢測方法,其中步驟(3)所述的計算訓(xùn)練矩陣中各系統(tǒng)調(diào)用在相應(yīng)進(jìn)程中的使用概率,是先對進(jìn)程向量中的元素進(jìn)行求和,再將每個元素值與該求和值進(jìn)行相除,得出每個元素的使用概率。全文摘要本發(fā)明公開了一種基于改進(jìn)OBS-NMF算法的入侵檢測方法,主要解決已有技術(shù)存在的處理高維數(shù)據(jù)能力低,魯棒性不強(qiáng),閾值選取范圍小,檢測結(jié)果不理想的問題。其實(shí)現(xiàn)步驟為(1)收集進(jìn)程系統(tǒng)調(diào)用;(2)構(gòu)造并簡化訓(xùn)練矩陣;(3)對訓(xùn)練矩陣進(jìn)行降維分解;(4)判斷是否滿足收斂條件,若滿足,則執(zhí)行步驟(5),否則返回步驟(3)繼續(xù)迭代,直到達(dá)到最大迭代次數(shù);(5)構(gòu)造測試矩陣U;(6)利用基矩陣W求解U的特征系數(shù)向量hu;(7)求解U中進(jìn)程向量的異常度;(8)設(shè)定閾值λ,輸出檢測結(jié)果。本發(fā)明具有實(shí)現(xiàn)簡單,穩(wěn)定性好,檢測精度高,閾值選取范圍大和實(shí)時性強(qiáng)的優(yōu)點(diǎn),可用于基于主機(jī)系統(tǒng)調(diào)用的實(shí)時入侵檢測。文檔編號G06F21/00GK101866403SQ20101019910公開日2010年10月20日申請日期2010年6月11日優(yōu)先權(quán)日2010年6月11日發(fā)明者公茂果,劉芳,尚榮華,焦李成,王爽,趙富家,馬文萍,馬晶晶申請人:西安電子科技大學(xué)