李晶晶
(寧德職業(yè) 技術(shù)學(xué)院信息技術(shù)與工程學(xué)院 福建省福安市 355000)
近些年來,網(wǎng)絡(luò)安全事件時有發(fā)生,多次出現(xiàn)的網(wǎng)絡(luò)入侵事件,均顯示了確保網(wǎng)絡(luò)安全的重要性,所以探討如何發(fā)現(xiàn)潛在網(wǎng)絡(luò)攻擊行為,如何對其進(jìn)行防范,已經(jīng)成為一項研究熱點。目前來看,入侵檢測技術(shù)手段重點涉及到幾個類型,文章的重點方向是針對計算機(jī)網(wǎng)絡(luò)入侵檢測進(jìn)行基于孤立森林算法的研究,該算法的對高維數(shù)據(jù)檢測率低以及精度與穩(wěn)定性不夠理想問題,也同時需要得到有效處理。
入侵檢測技術(shù)在計算機(jī)技術(shù)高速發(fā)展的時代,逐漸成為大家所共同關(guān)注的網(wǎng)絡(luò)安全研究熱點。對于入侵檢測而言,工作重點是針對網(wǎng)絡(luò)數(shù)據(jù)信息加以監(jiān)視、分析,找出惡意入侵行為,它的宗旨是構(gòu)建形成檢測模型,讓其可以檢測得到全部異常行為,并給予相應(yīng)的有鏟處理。[1]在此基礎(chǔ)上,入侵檢測系統(tǒng)概念順勢產(chǎn)生,一般認(rèn)為它是一個能夠監(jiān)視網(wǎng)絡(luò)環(huán)境內(nèi)數(shù)據(jù)信息,并于發(fā)現(xiàn)可疑數(shù)據(jù)后產(chǎn)生預(yù)警行為的系統(tǒng)。入侵檢測系統(tǒng)可在工作過程中,監(jiān)視網(wǎng)絡(luò)數(shù)據(jù),分析系統(tǒng)異常行為特別是被入侵跡象,并自動形成系統(tǒng)日志,將日志發(fā)送至管理器,從而達(dá)到對入侵行為及時響應(yīng)效果。
根據(jù)入侵檢測系統(tǒng)所針對的數(shù)據(jù)來源,可將其劃分為如下類別,其一是基于主機(jī)式入侵檢測系統(tǒng),其二是基于網(wǎng)絡(luò)式入侵檢測系統(tǒng),其三是混合類型的入侵檢測系統(tǒng)。參照數(shù)據(jù)來源,入侵檢測方法可分為幾個類別,如待檢測數(shù)據(jù)和數(shù)據(jù)庫中數(shù)據(jù)比對分析的異常檢測;系統(tǒng)網(wǎng)絡(luò)內(nèi)傳遞數(shù)據(jù)包同攻擊數(shù)據(jù)比對的模式匹配檢測;觀察、掃描內(nèi)部文件等形式支持下的合理化完整檢測。各檢測類別特點不同,如異常檢測,即以正常行為模式為基準(zhǔn)的一種檢測方法,它首先構(gòu)建系統(tǒng)正常模式,再由網(wǎng)絡(luò)行為同此模式的差異性出發(fā),明確是否有入侵行為出現(xiàn),若被檢測行為偏離于設(shè)定閾值范圍,則可認(rèn)為系統(tǒng)發(fā)生異常甚至出現(xiàn)被入侵情況。異常檢測時,無法獲取某類已知入侵行為的特征,其與誤用檢測有所區(qū)別的是,并非所有非正常行為均代表受到網(wǎng)絡(luò)攻擊,而只表現(xiàn)和正常行為模式相偏離而已,因此雖然檢測率較高,但是誤報率同樣較高。
總之,雖然近些年來,很多研究者針對入侵檢測問題,給出了不少的改進(jìn)方法與建議,但依然無法避免方法上的應(yīng)用局限性,例如整體上對訓(xùn)練數(shù)據(jù)集的要求比較高,惟有數(shù)據(jù)集規(guī)模足夠大的時假,才會更為充分地顯現(xiàn)正常行為模式特征,然而這一點在實際運用時,往往會受大量訓(xùn)練集獲取困難的限制,再如誤報率與漏檢率偏高的問題,始終難以得到根本糾正,像入侵檢測從已知攻擊特征庫出發(fā)進(jìn)行研究,而如果系統(tǒng)內(nèi)發(fā)生新型入侵行為,則難以避免會提升漏檢率。
孤立森林算法(isolation forest)重點是把異常數(shù)據(jù)進(jìn)行容易被孤立離群點的定義,也就是將其視為分布稀疏,且同時與密度較高群體偏遠(yuǎn)的點。[2]該算法體現(xiàn)出了集成學(xué)習(xí)檢測算法的優(yōu)勢,同時線性復(fù)雜度較高,能夠在網(wǎng)絡(luò)安全檢測中發(fā)現(xiàn)出入侵檢測與噪聲過濾等方面的作用,對于上面所提及的入侵檢測系統(tǒng)可適度糾正,現(xiàn)對其應(yīng)用原理展開說明。
孤立樹這種二叉樹節(jié)點或者具備兩個子節(jié)點,或者具備零個子節(jié)點,如有兩個子節(jié)點,那么此節(jié)點會再次劃分,劃分時將包括隨機(jī)得到的數(shù)據(jù)特征,以及在此特征上被隨機(jī)選取的分割值,讓特征值小于或者大于分割值的數(shù)據(jù)分別置于左子節(jié)點或者右子節(jié)點中。利用該方式不斷進(jìn)行數(shù)據(jù)集劃分,直到同下述幾個條件相符,其一:樹高不超出閾值;其二數(shù)據(jù)單獨劃分;其三,節(jié)點數(shù)據(jù)特征統(tǒng)一。對于孤立森林算法而言,重點借助孤立樹得到孤立樣本點,所以算法有可能及早地孤立異常值。
因為異常數(shù)據(jù)分布稀疏,同時和離密度高樣本群體有較遠(yuǎn)距離,因此同正常數(shù)據(jù)相比較,它們更易于被隔離,所劃分次數(shù)也趨于減少。為此,可更容易看到孤立森林算法的原理,即根據(jù)構(gòu)建孤立樹來計算樣本點的深度,在建立多項孤立樹后計算得到各數(shù)據(jù)平均深度,然后以平均深度為基礎(chǔ)產(chǎn)生數(shù)據(jù)異常得分,發(fā)現(xiàn)異常數(shù)據(jù)。[3]具體講,為發(fā)現(xiàn)樣本異常分?jǐn)?shù),應(yīng)首先做好孤立樹深度歸一處理,得到異常分?jǐn)?shù)數(shù)值,該數(shù)值處于0~1之間。若某數(shù)據(jù)集包括n個樣本,按照構(gòu)建孤立樹形式,該值能夠被估計,標(biāo)準(zhǔn)化樣本x路徑長度h(x),并繼而產(chǎn)生路徑長度異常得分公式。此時可明確:若樣本x平均路徑長度接近于0時,異常分?jǐn)?shù)有更高表現(xiàn),也就是x被認(rèn)為是異常數(shù)據(jù)有更高的可能性,若樣本x平均路徑長度接近于n-1時,那么x被認(rèn)為是正常數(shù)據(jù)則有更高可能性。同理,若異常分?jǐn)?shù)在0.5附近,那么則無法確認(rèn)數(shù)據(jù)是否異常。
孤立森林算法應(yīng)用于網(wǎng)絡(luò)潛在攻擊檢測時,可包括兩個環(huán)節(jié),第一環(huán)節(jié)是訓(xùn)練,第二環(huán)節(jié)是評估。在訓(xùn)練環(huán)節(jié),重點是以訓(xùn)練數(shù)據(jù)集子樣本為基礎(chǔ)建立孤立樹,在評估環(huán)節(jié),重點是以孤立樹作為測試樣本得到異常分?jǐn)?shù)。[4]前期孤立森林算法同隨機(jī)森林算法有類似之處,均以隨機(jī)方式得到部分?jǐn)?shù)據(jù),將其視作子訓(xùn)練集,再據(jù)此集中構(gòu)造形成孤立樹,直至全部樣本被孤立,或者孤立樹達(dá)到預(yù)期高度要求。利用這種形式構(gòu)建多個孤立樹,在訓(xùn)練得到指定數(shù)目孤立樹之后,便可宣告孤立森林算法的訓(xùn)練環(huán)節(jié)完成。
全部訓(xùn)練環(huán)節(jié)構(gòu)建步驟可如下面所示:首先,給定一個數(shù)據(jù)集X={x1,x2,…xn},使數(shù)據(jù)集之中的各具體數(shù)據(jù)均包括d維特征,在數(shù)據(jù)集X內(nèi)隨機(jī)尋找樣本點,構(gòu)建數(shù)據(jù)子集,再把數(shù)據(jù)子集置于樹的根節(jié)點。其次,從d維度內(nèi)以隨機(jī)方式得到維度q,再于維度內(nèi)以隨機(jī)方式得到切割值p,同時保證p值處于本維度最小值與最大值之間。接下來于切割點p生成超平面,讓現(xiàn)在的數(shù)據(jù)空間被劃分成兩個子空間,其中小于或大于切割值p的樣本點分別放入左右子節(jié)點。在此之后完成步驟2與步驟3的遞歸,直到孤立樹達(dá)到理想的高度閾值,完成從步驟1至步驟4的循環(huán),直至t棵孤立樹生成。
在訓(xùn)練環(huán)節(jié)得到t棵孤立樹之后,可利用它們所構(gòu)建形成的孤立森林,對測試數(shù)據(jù)進(jìn)行評估。對于某一數(shù)據(jù)樣本x,可使之遍歷全部孤立樹,直至保證其遍歷全部葉子節(jié)點,這時x計算數(shù)據(jù)落于孤立樹第幾層,便可找到經(jīng)過路徑長度 h(x),再利用x路徑長度,得到其高度平均值,最終發(fā)現(xiàn)訓(xùn)練數(shù)據(jù)異常得分情況。
常規(guī)異常檢測算法重點是對正常樣本進(jìn)行描述,也就是展示正常樣本區(qū)域范圍,若某一樣本不屬于本區(qū)域,便被視作異常。然而這種做法會有很多誤報數(shù)據(jù)出現(xiàn),而且只能得到極少異常數(shù)據(jù)情況。所以若數(shù)據(jù)集內(nèi)僅存在少量異常數(shù)據(jù),同時其與正常數(shù)據(jù)的差異明顯,那么很顯然和其他檢測算法比較起來,孤立森林算法的應(yīng)用效果更好。[5]依前所述,可以認(rèn)為孤立森林算法屬于無監(jiān)督異常檢測,它對特征提出了連續(xù)的要求,同時在線性時間復(fù)雜度方面考慮較多,所以在大容量數(shù)據(jù)處理方面效果明顯。
孤立森林算法在查找孤立點時,應(yīng)用了比較高效的策略,也就是以隨機(jī)式的超平面對數(shù)據(jù)空間加以切割,且切割時把數(shù)據(jù)空間劃分為兩個組成部分,再以隨機(jī)超平面循環(huán)切割的形式,最終產(chǎn)生單一的、孤立的點。實踐中,若某一簇內(nèi)密度偏高,便需要多次切割,若某一簇內(nèi)密度偏低,操作過程便更輕松,更易于使簇內(nèi)點被切割為孤立點。這種做法使得孤立森林算法能夠針對異常樣本做進(jìn)一步的優(yōu)化,同時可以展現(xiàn)出算法本身的較高檢測率優(yōu)勢。與此同時,孤立森林算法線性復(fù)雜度值得重視,且其計算量遠(yuǎn)遠(yuǎn)不及距離檢測、密度檢測潛在攻擊可能性大,因此可在網(wǎng)絡(luò)異常攻擊檢測過程中擁有較好表現(xiàn)。
但是與此同時,仍然要看到孤立森林看法存在的不足之處,比較典型的問題在于:高維數(shù)據(jù)面前,孤立森林算法的應(yīng)用存在明顯的局限性,這是由于應(yīng)用孤立森林算法時,每次均需要利用隨機(jī)選擇一個屬性對樣本空間進(jìn)行切割,可能會造成相當(dāng)一部分屬性未能被選中的問題,從而造成了算法應(yīng)用可靠性的降低,而此應(yīng)當(dāng)看到:無關(guān)維度、噪音維度等的存在與影響,也會導(dǎo)致孤立森林算法檢測率的降低。
回顧孤立森林的原理、構(gòu)造過程及使用優(yōu)勢,可發(fā)現(xiàn)該算法的一些不足之處,為此在實際工作中,應(yīng)當(dāng)針對此類問題做集中調(diào)整與改善。具體講,在孤立森林算法應(yīng)用時,實際上存在著適應(yīng)范圍的問題,例如對于存在少量異常樣本的情況,同正常樣本特征顯著不同的情況,該算法具有較強(qiáng)適用性,如果不然,則攻擊檢測效果便會受到限制。未來可根據(jù)它的適用性,進(jìn)行算法的改善處理,即利用對不同屬性值分布差異情況,展開異常樣本與正常樣本差異的分析判斷。在理想狀態(tài)下,可把樣本數(shù)據(jù)進(jìn)行正常樣本與異常樣本的類型劃分,讓各類型值概率密度值在分布上只存在一個峰值,同時保證屬性值概率密度分布的科學(xué)性。
人們得到了計算機(jī)網(wǎng)絡(luò)技術(shù)的幫助,使工作、學(xué)習(xí)、生活變得更為便利,但同時也應(yīng)看到:計算機(jī)網(wǎng)絡(luò)技術(shù)存在著威脅隱私信息風(fēng)險的客觀存在,并采取相應(yīng)的策略對這一問題進(jìn)行解決。攻擊檢測技術(shù)的產(chǎn)生與發(fā)展,正是適應(yīng)這一需要的努力方向。在對異常檢測技術(shù)、誤用檢測技術(shù)的認(rèn)知基礎(chǔ)上,文章側(cè)重于強(qiáng)調(diào)孤立森林算法在網(wǎng)絡(luò)攻擊檢測領(lǐng)域的作用,并針對其性能展開了具體的分析。文章所側(cè)重于探討的內(nèi)容是:孤立森林算法在原理上具有較強(qiáng)的實際應(yīng)用優(yōu)勢,且可根據(jù)實際情況做出相應(yīng)的調(diào)整,而針對孤立森林算法在高維數(shù)據(jù)檢測期間準(zhǔn)確度不足的問題,特別是對于異常情況的記錄失真問題,文章嘗試從孤立森林構(gòu)建過程出發(fā),對訓(xùn)練環(huán)節(jié)展開改進(jìn)探索,以期選擇最理想的特征方法。
九江學(xué)院學(xué)報(自然科學(xué)版)2022年4期