鮑 捷,牛 頡,張 勇,鄧海勤
(1.北京郵電大學(xué) 電子工程學(xué)院,北京 100876;2.愛(ài)動(dòng)超越人工智能科技(北京)有限責(zé)任公司,北京 100007)
隨著當(dāng)前物聯(lián)網(wǎng)在全球各領(lǐng)域的廣泛應(yīng)用與快速發(fā)展,作為一種信息承載工具,物聯(lián)網(wǎng)已經(jīng)成為人們生活中不可缺少的一部分。物聯(lián)網(wǎng)網(wǎng)絡(luò)安全問(wèn)題越來(lái)越成為廣受關(guān)注的焦點(diǎn)。出于不良目的所產(chǎn)生的異常流量影響著物聯(lián)網(wǎng)的正常運(yùn)轉(zhuǎn),用戶主機(jī)面臨新的安全隱患,進(jìn)一步影響了廣大人民群眾的日常工作與生活。
傳統(tǒng)的通過(guò)靜態(tài)規(guī)則匹配的網(wǎng)絡(luò)異常檢測(cè)方法在動(dòng)態(tài)、復(fù)雜的網(wǎng)絡(luò)環(huán)境中難以檢測(cè)出未知異常和攻擊類(lèi)型,不能滿足網(wǎng)絡(luò)安全檢測(cè)的要求。機(jī)器學(xué)習(xí)具有自學(xué)習(xí)、自演化的特性,可以適應(yīng)復(fù)雜多變的網(wǎng)絡(luò)環(huán)境,能夠檢測(cè)出未知異常,滿足實(shí)時(shí)準(zhǔn)確檢測(cè)的需求。因此,使用機(jī)器學(xué)習(xí)的方法檢測(cè)網(wǎng)絡(luò)中海量的流量,對(duì)于物聯(lián)網(wǎng)領(lǐng)域的發(fā)展具有重要的意義。本文借鑒傳統(tǒng)網(wǎng)絡(luò)中異常流量檢測(cè)技術(shù)加以改進(jìn),從而識(shí)別物聯(lián)網(wǎng)中異常流量。因?yàn)樵趯?shí)時(shí)網(wǎng)絡(luò)流量異常檢測(cè)中無(wú)法得到大量帶標(biāo)記的樣本記錄,所以從機(jī)器學(xué)習(xí)的無(wú)監(jiān)督學(xué)習(xí)算法中選取One-class SVM、Isolation Forest、K-means等方法進(jìn)行網(wǎng)絡(luò)異常流量檢測(cè),對(duì)相關(guān)技術(shù)進(jìn)行分析和比較。
傳統(tǒng)的預(yù)防網(wǎng)絡(luò)安全的技術(shù)主要有防火墻、病毒的查殺軟件等,這些措施只能夠發(fā)現(xiàn)一些簡(jiǎn)單的網(wǎng)絡(luò)入侵,對(duì)于一些設(shè)計(jì)較為嚴(yán)密的入侵則較難判斷。新形勢(shì)下的互聯(lián)網(wǎng)異常流量已經(jīng)變得比以往更加復(fù)雜多變,因此傳統(tǒng)的預(yù)防網(wǎng)絡(luò)安全的技術(shù)只是在特定的范圍中或是一定的程度上起到作用。文獻(xiàn)[1]主要是從分類(lèi)、聚類(lèi)、統(tǒng)計(jì)、信息理論四個(gè)角度來(lái)總結(jié)異常流量檢測(cè)技術(shù)。文獻(xiàn)[2]介紹利用數(shù)據(jù)挖掘的異常流量檢測(cè)技術(shù),主要從分類(lèi)和結(jié)合數(shù)據(jù)挖掘、聚類(lèi)、關(guān)聯(lián)分析的多種算法來(lái)歸納。張楠等在文獻(xiàn)[3]總結(jié)了當(dāng)前有哪些主流的異常流量檢測(cè)技術(shù)和檢測(cè)過(guò)程中的技術(shù)和關(guān)鍵問(wèn)題。文獻(xiàn)[4]從入侵檢測(cè)方法中的三個(gè)方面入手,介紹了異常檢測(cè)的方法和技術(shù)類(lèi)型等。文獻(xiàn)[5]從動(dòng)態(tài)網(wǎng)絡(luò)的異常檢測(cè)出發(fā),歸納了動(dòng)態(tài)網(wǎng)絡(luò)中的四種異常類(lèi)型。雖然有很多機(jī)器學(xué)習(xí)的算法被應(yīng)用到異常流量檢測(cè)中,但是都沒(méi)有從機(jī)器學(xué)習(xí)的角度全面地介紹網(wǎng)絡(luò)異常流量檢測(cè)。
基于監(jiān)督機(jī)器學(xué)習(xí)的方法是利用標(biāo)記的數(shù)據(jù)集將分類(lèi)器輸出的結(jié)果與實(shí)際結(jié)果進(jìn)行連續(xù)比較,然后調(diào)整參數(shù)直至訓(xùn)練出最優(yōu)模型。早在2005年,樸素貝葉斯被摩爾等人引入并進(jìn)行流量的識(shí)別與分類(lèi),之后貝葉斯網(wǎng)絡(luò)再一次被奧爾德等人應(yīng)用,并在性能上加以提高,使用效率優(yōu)于從前。另一種較為常見(jiàn)的監(jiān)督算法是C4.5決策樹(shù),應(yīng)用于K-Nearest Neighbor(KNN)以及流量的識(shí)別。但是,這些方法整體傾向于局部?jī)?yōu)化。支持向量機(jī)是有監(jiān)督的算法,可以避免局部?jī)?yōu)化,在識(shí)別流量方面顯示出高度的準(zhǔn)確性,并檢測(cè)異常流量。文獻(xiàn)[6]使用KNN算法來(lái)實(shí)現(xiàn)異常行為的檢測(cè),文獻(xiàn)[7]把KNN和K-means融合在一起形成一個(gè)新的方法,文獻(xiàn)[8]針對(duì)冗余特征和樣本數(shù)據(jù)高維度等問(wèn)題,使用KNN和改進(jìn)的人工魚(yú)群算法來(lái)選擇特征向量,提高異常檢測(cè)的效率和正確率。文獻(xiàn)[9]是采用的決策樹(shù)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)異常流量檢測(cè)。
無(wú)監(jiān)督的算法旨在聚類(lèi),即根據(jù)統(tǒng)計(jì)特征來(lái)聚合相似的流量,分離不相似的流量并建立群集和網(wǎng)絡(luò)應(yīng)用之間的映射。在2004年,期望最大化(Expectancy Maximum,EM)被McGregor應(yīng)用于流量分類(lèi)。但是,它只能識(shí)別未知流量,不能識(shí)別出流量的具體應(yīng)用。然后,Zander st.通過(guò)利用EM構(gòu)建無(wú)監(jiān)督貝葉斯分類(lèi)器提出了AutoClass。盡管AutoClass可以識(shí)別某種類(lèi)型的流量,但仍然很難識(shí)別其他類(lèi)型的流量。通常,非監(jiān)督方法比識(shí)別特定類(lèi)型更適合在動(dòng)態(tài)環(huán)境中查找新的應(yīng)用程序類(lèi)型。文獻(xiàn)[10]提出了一種改進(jìn)的K-means的方法,將多次劃分的數(shù)據(jù)集相交直至結(jié)果收斂,減少迭代次數(shù)、加快了算法的速度。
無(wú)監(jiān)督學(xué)習(xí)相比較于監(jiān)督學(xué)習(xí)是在數(shù)據(jù)不知道任何標(biāo)簽的情況下,按照偏好所訓(xùn)練出的算法,這種方法將所有的數(shù)據(jù)與不同的標(biāo)簽映射。
One-class SVM指的是訓(xùn)練數(shù)據(jù)只有一類(lèi)的數(shù)據(jù),學(xué)習(xí)到這類(lèi)數(shù)據(jù)的邊界,然后導(dǎo)入測(cè)試集,在此范圍內(nèi)的數(shù)據(jù)標(biāo)簽為1,之外的標(biāo)簽為-1。例如:假如對(duì)工廠的產(chǎn)品進(jìn)行檢查,往往知道的大多數(shù)數(shù)據(jù)都是合格產(chǎn)品的參數(shù),這個(gè)時(shí)候可以通過(guò)合格產(chǎn)品的參數(shù)訓(xùn)練一個(gè)一類(lèi)分類(lèi)器,超出這個(gè)邊界的便可標(biāo)記為不合格產(chǎn)品。
它的求解模型如下:
(1)
subject to (w·Φ(xi))≥ρ-ξi,ξi≥0
(2)
K-means是一種聚類(lèi)算法,聚類(lèi)是針對(duì)大量未知標(biāo)簽的數(shù)據(jù)集,按照數(shù)據(jù)內(nèi)部存在的數(shù)據(jù)特征劃分為不同的類(lèi)別,使類(lèi)別內(nèi)的數(shù)據(jù)比較相似,類(lèi)別之間的數(shù)據(jù)相似度比較大,屬于無(wú)監(jiān)督學(xué)習(xí)算法。輸入的是樣本集,聚類(lèi)的簇?cái)?shù)是l,最大迭代次數(shù)N的輸出是簇劃分。
算法流程:
1.選擇K個(gè)點(diǎn)作為初始質(zhì)心;2.將每個(gè)點(diǎn)對(duì)應(yīng)到最近的質(zhì)心,形成K個(gè)簇;3.重新計(jì)算每個(gè)簇的質(zhì)心;4.重復(fù)上述步驟;5.直到達(dá)到最大迭代次數(shù)或者是簇不發(fā)生變化。
尋找使誤差準(zhǔn)則函數(shù)最小的簇是K-means算法的目的。簇與簇之間的區(qū)別在潛在的簇形狀為凸面的時(shí)候比較明顯,而且當(dāng)簇的大小差不多時(shí),通常情況下會(huì)產(chǎn)生比較理想的聚類(lèi)結(jié)果。時(shí)間復(fù)雜度為O(tKmn)的該算法是與樣本數(shù)量呈線性相關(guān)的,所以在處理大數(shù)據(jù)集合的時(shí)候效率非常高,并且在處理時(shí)也具有很好的伸縮性。除了對(duì)初始聚類(lèi)中心較為敏感以及需要事先確定簇?cái)?shù)K之外,算法的結(jié)束通常是采取局部最優(yōu)的方法,并且對(duì)孤立點(diǎn)和“噪聲”比較敏感,該方法實(shí)際上不適于尋找凸面形狀的簇或者大小差別很小的簇。
Isolation Forest是隨機(jī)采樣一部分?jǐn)?shù)據(jù)構(gòu)造每一顆iTree,保證不同樹(shù)之間的差異性,iTree的構(gòu)造需要首先隨機(jī)選擇一個(gè)屬性,然后隨機(jī)選擇這個(gè)屬性的一個(gè)值,把小于這個(gè)值的作為左孩子,大于等于的作為右孩子,一般直到傳入的數(shù)據(jù)集的樹(shù)的高度達(dá)到了限定高度,iForest具有線性時(shí)間復(fù)雜度,對(duì)全局稀疏點(diǎn)敏感。
算法流程:
1.選擇一個(gè)屬性Attr;2.選擇該屬性的一個(gè)值Value;3.Attr對(duì)每條記錄進(jìn)行分類(lèi),把Attr小于Value的記錄歸為左孩子,把大于等于Value的記錄歸為右孩子;4.遞歸的構(gòu)造左孩子和右孩子,直至滿足以下的兩個(gè)條件之一:(1)傳入的數(shù)據(jù)集只有一條記錄或者有多條一樣的記錄;(2)樹(shù)的高度達(dá)到了限定高度。
把iTree構(gòu)建好之后就可以預(yù)測(cè)數(shù)據(jù)了,預(yù)測(cè)的過(guò)程如下:先在iTree上運(yùn)行一下訓(xùn)練數(shù)據(jù)集,看通過(guò)測(cè)試之后得到的記錄落在哪個(gè)葉子節(jié)點(diǎn)。iTree能有效檢測(cè)異常的假設(shè)是:網(wǎng)絡(luò)流量異常點(diǎn)一般來(lái)說(shuō)都是十分稀少的,所以在iTree中會(huì)很快找到這樣的葉子節(jié)點(diǎn),葉子節(jié)點(diǎn)到根節(jié)點(diǎn)的路徑用h(x)來(lái)表示,可以用這個(gè)參數(shù)的長(zhǎng)度判斷一條記錄x是否是異常點(diǎn)。對(duì)于一個(gè)包含n條記錄的數(shù)據(jù)集,其構(gòu)造的樹(shù)的高度最小值為log(n),最大值為n-1,歸一化公式如下:
(3)
c(n)=2H(n-1)-(2(n-1)/n)
(4)
其中H(k)=ln(k)+ξ,ξ=0.577 215 664 9 為歐拉常數(shù)。
s(x,n)是記錄x在由n個(gè)樣本的訓(xùn)練數(shù)據(jù)構(gòu)成的iTree的異常指數(shù),s(x,n)取值范圍為[0,1]異常情況的判斷分以下幾種情況:
(1)越接近1表示是異常點(diǎn)的可能性高;
(2)越接近0表示是正常點(diǎn)的可能性比較高;
(3)如果大部分的訓(xùn)練樣本的s(x,n)都接近于0.5, 說(shuō)明整個(gè)數(shù)據(jù)集都沒(méi)有明顯的異常值。
iForest和Random Forest的方法有些類(lèi)似,都是隨機(jī)采樣一部分?jǐn)?shù)據(jù)集去構(gòu)造每一棵樹(shù),保證不同樹(shù)之間的差異性,不過(guò)iForest與RF不同,采樣的數(shù)據(jù)量Psi不需要等于n,可以遠(yuǎn)遠(yuǎn)小于n。
算法流程如下:
輸入:輸入數(shù)據(jù)X,iTree的數(shù)量,樣本大小ψ 輸出:iForest1.初始化Forest;2.設(shè)置限制高度;3.對(duì)于每個(gè)分支構(gòu)造iTree并賦給Forest;4.返回iForest。
Isolation Forest算法主要有兩個(gè)參數(shù):一個(gè)是二叉樹(shù)的個(gè)數(shù);另一個(gè)是訓(xùn)練單棵iTree時(shí)候抽取樣本的數(shù)目。實(shí)驗(yàn)表明,當(dāng)設(shè)定為100棵樹(shù),抽樣樣本數(shù)為256條時(shí),IF在大多數(shù)情況下已經(jīng)可以取得不錯(cuò)的效果,體現(xiàn)了算法的簡(jiǎn)單、高效。
Isolation Forest是無(wú)監(jiān)督的異常檢測(cè)算法,在實(shí)際應(yīng)用時(shí),并不需要黑白標(biāo)簽。需要注意的是:(1)如果訓(xùn)練樣本中異常樣本的比例比較高,違背了先前提到的異常檢測(cè)的基本假設(shè),可能最終的效果會(huì)受影響;(2)異常檢測(cè)與具體的應(yīng)用場(chǎng)景緊密相關(guān),算法檢測(cè)出的“異常”不一定符合場(chǎng)景實(shí)際。比如,在識(shí)別虛假交易時(shí),異常的交易未必就是虛假的交易。所以,在特征選擇時(shí),可能需要過(guò)濾不相關(guān)的特征,以免識(shí)別出一些不相關(guān)的“異?!薄?/p>
本文中pcap流量包使用開(kāi)源數(shù)據(jù)集CICIDS2017[11],CICIDS2017數(shù)據(jù)集包含良性和最新的常見(jiàn)攻擊,類(lèi)似于真實(shí)的真實(shí)數(shù)據(jù)(PCAP)。還包括使用CICFlowMeter進(jìn)行網(wǎng)絡(luò)流量分析的結(jié)果,該流量分析具有基于時(shí)間戳、源和目標(biāo)IP、源和目標(biāo)端口、協(xié)議和攻擊(CSV文件)的標(biāo)記流。使用wireshark對(duì)pcap流量包進(jìn)行解析、預(yù)處理操作,最后得到41維的.csv文件作為本文使用的數(shù)據(jù)集。對(duì)三種結(jié)果數(shù)據(jù)整理、計(jì)算,可得到正確率、誤報(bào)率、漏報(bào)率、效率,如表1所示。
表1 實(shí)驗(yàn)結(jié)果分析
從表中可以看出,K-means在正確率、誤報(bào)率、漏報(bào)率、效率方面要優(yōu)于Isolation Forest和One-class SVM。綜合來(lái)看,K-means表現(xiàn)要優(yōu)于其他兩種無(wú)監(jiān)督機(jī)器學(xué)習(xí)算法。
使用三種不同的無(wú)監(jiān)督機(jī)器學(xué)習(xí)算法對(duì)物聯(lián)網(wǎng)異常流量進(jìn)行檢測(cè),通過(guò)結(jié)果對(duì)比可以得到K-means算法要優(yōu)于其他兩種算法,Isolation Forest算法表現(xiàn)最差。希望為無(wú)監(jiān)督機(jī)器學(xué)習(xí)算法檢測(cè)物聯(lián)網(wǎng)流量研究提供借鑒。