戴海燕
摘要 服務(wù)器開放的端口是服務(wù)器暴露在外面的一個入口,從網(wǎng)絡(luò)運維以及網(wǎng)絡(luò)安全管理的角度來說,都很重要,在服務(wù)器比較多,業(yè)務(wù)復(fù)雜的網(wǎng)絡(luò)環(huán)境中,服務(wù)器運維人員以及網(wǎng)絡(luò)管理人員,要想全面了解網(wǎng)絡(luò)中各個服務(wù)器開放的端口,是運維中比較棘手的事情,本文提出一種基于端口的網(wǎng)絡(luò)流量特點,利用機器學(xué)習(xí)的方法,通過對已知服務(wù)器流量特點的學(xué)習(xí),得到一種對服務(wù)器開放端口進行分類預(yù)測的模型,通過該模型,能夠通過對網(wǎng)絡(luò)流量的預(yù)測分析,從而發(fā)現(xiàn)網(wǎng)絡(luò)中當(dāng)前開放的服務(wù)器端口。
【關(guān)鍵詞】機器學(xué)習(xí) 端口發(fā)現(xiàn) 監(jiān)督學(xué)習(xí) 決策樹
1 背景分析
服務(wù)器上運行的很多應(yīng)用,在對外提供服務(wù)的同時,都會開放一些對應(yīng)的端口,作為提供服務(wù)時的數(shù)據(jù)通訊通道,由于服務(wù)器上提供的服務(wù)比較多,而且有的服務(wù)由于通訊的協(xié)議不一樣,會開放多個端口,這樣會導(dǎo)致服務(wù)器上開放的端口很多,服務(wù)器運維人員以及網(wǎng)絡(luò)管理人員,很難搞清楚服務(wù)器開放的端口有哪些,各個端口通過什么協(xié)議進行通訊,哪些端口是經(jīng)常用于數(shù)據(jù)通訊的。
服務(wù)器開放的端口是服務(wù)器暴露在外面的一個口,外部的訪問客戶端可以通過該端口,訪問到該服務(wù)器上的服務(wù),甚至可以通過該端口,訪問到該服務(wù)器所在的網(wǎng)絡(luò),所以往往是外部攻擊者進入服務(wù)器所在網(wǎng)絡(luò)的一個突破口,
在網(wǎng)絡(luò)攻擊中,攻擊者為了控制網(wǎng)絡(luò),攻擊者通常需要在控制的機器上部署病毒、木馬之類的惡意程序,這些惡意程序為了跟控制者通訊,需要開放端口,這些開放的端口往往是違規(guī)開放的端口,在服務(wù)器比較多,業(yè)務(wù)復(fù)雜的網(wǎng)絡(luò)環(huán)境中,通過登記的方式,運維的工作量是很大的,而且很容易跟不上實際的變化,通過掃描的方式,也需要一個人工確認的過程,而且有些病毒、木馬程序開放的端口,掃描并未能發(fā)現(xiàn)。
服務(wù)器開放的端口,在正常提供服務(wù)器的時候,會產(chǎn)生netflow的網(wǎng)絡(luò)流量,通過netflow的流量分析,可以利用機器學(xué)習(xí)的方法,學(xué)習(xí)得到網(wǎng)絡(luò)中服務(wù)器開放端口的流量特征,從而得到一個通過網(wǎng)絡(luò)流量發(fā)現(xiàn)服務(wù)器開放端口的模型。
2 服務(wù)器端口netflow流量特征分析
服務(wù)器開放的端口,在進行數(shù)據(jù)通訊的過程中,會產(chǎn)生netflow網(wǎng)絡(luò)流量,通過netflow流量,可以分析出服務(wù)器開放的端口具備的流量特征。通過對netflow流量的分析,發(fā)現(xiàn)服務(wù)器開放的端口,通常都具備如下的一些特征
訪問服務(wù)器端口的客戶端IP數(shù)量會比較多;
訪問服務(wù)器端口的客戶端端口數(shù)量會比較多;
通過服務(wù)器端口發(fā)送的數(shù)據(jù)包數(shù)量會比較多;
通過服務(wù)器端口發(fā)送的流量字節(jié)數(shù)會比較多;
訪問服務(wù)器的客戶端端口數(shù)量與訪問服務(wù)器端口的客戶端IP數(shù)量的比值,會比較大;
通過服務(wù)器端口進行流量傳輸?shù)臅r間比較長:
通過服務(wù)器端口進行流量傳輸?shù)念l率比較高。
在實際的網(wǎng)絡(luò)環(huán)境中,流量特征根據(jù)網(wǎng)絡(luò)管理策略以及業(yè)務(wù)特點的不同,會體現(xiàn)不同的特點來,除了以上端口流量的特征,還可以提取出其他的流量特征來,可以根據(jù)實際的分析場景不斷豐富。
3 數(shù)據(jù)建模
數(shù)據(jù)建模是確定分析目標,為分析目標提取特征數(shù)據(jù),并根據(jù)特征數(shù)據(jù)選擇計算算法的過程。
模型以分析服務(wù)器開放端口為分析目標,將端口具備的netflow流量特征作為模型的特征,本文的分析目標是要從大量的netfiow流量的IP和端口組合中,利用模型特征,分析找出是服務(wù)器IP開放的端口的組合,即可視為是對IP和端口的分類分析,計算算法可選擇分類分析的算法,也可選擇聚類分析的算法。
監(jiān)督式分類分析的算法通過對己知樣本的學(xué)習(xí),學(xué)習(xí)得到一個可用于對IP和端口進行分類的模型,利用這個模型,即可對未知的lP和端口進行分類預(yù)測。
非監(jiān)督式聚類分析的算法對模型數(shù)據(jù)直接進行聚類計算,可自動將特征類似的IP和端口聚合在一個集合中,從而達到自動對數(shù)據(jù)進行分類的目的。
兩種算法目標類似,但是實現(xiàn)過程和計算過程不一樣,本文采用監(jiān)督式的分類分析對模型進行訓(xùn)練,通過學(xué)習(xí)得到的模型,來實現(xiàn)未知數(shù)據(jù)的預(yù)測。
3.1 訓(xùn)練數(shù)據(jù)準備
3.1.1 數(shù)據(jù)抽取
模型建立后,需要根據(jù)模型的特征提點以及選擇算法的需要,準備符合模型訓(xùn)練需要的數(shù)據(jù)集,監(jiān)督式學(xué)習(xí)的算法,要求提供樣本數(shù)據(jù),樣本數(shù)據(jù)可以通過選擇一些服務(wù)器己知開放的端口,抽取這些端口的流量數(shù)據(jù)作為訓(xùn)練集原始數(shù)據(jù)。
3.1.2 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理對篩選的數(shù)據(jù)進行數(shù)據(jù)的清洗、數(shù)據(jù)的轉(zhuǎn)換、數(shù)據(jù)的統(tǒng)計計算等處理。
根據(jù)模型的特征,對netflow流量做不同的數(shù)據(jù)預(yù)處理,通過數(shù)據(jù)預(yù)處理,提供模型計算需要的數(shù)據(jù),處理過程如下:
將IP和端口作為分組條件,對篩選的netflow流量數(shù)據(jù)進行分組。
將分組后的流量數(shù)據(jù),以天作為統(tǒng)計周期,對數(shù)據(jù)按照模型特征進行統(tǒng)計計算。
分別按照每天統(tǒng)計每組IP和端口的特征數(shù)據(jù)。
根據(jù)統(tǒng)計結(jié)果,轉(zhuǎn)換計算其它特征數(shù)據(jù)。
根據(jù)算法的特點,有些算法需要對連續(xù)型的統(tǒng)計數(shù)據(jù)進行離散化,如發(fā)送的包數(shù)、發(fā)送的字節(jié)數(shù)等。
3.1.3 樣本標識
模型特征數(shù)據(jù)計算完成后,需要對樣本數(shù)據(jù)進行標識,即對樣本數(shù)據(jù)打標簽,對選擇的已知服務(wù)器開放的端口的數(shù)據(jù),標識為1,對非服務(wù)器開放端口的數(shù)據(jù),標識為O。
4 模型訓(xùn)練
數(shù)據(jù)準備就緒后,選擇對應(yīng)的算法進行數(shù)據(jù)計算,監(jiān)督式學(xué)習(xí)的算法有很多,本文的分析為二分類分析,可以選擇適合于二分類的機器學(xué)習(xí)算法進行計算,可選擇的算法有二元邏輯回歸、SVM支持向量機、分類決策樹、回歸決策樹等算法。
對于同一個分析模型,同樣的訓(xùn)練數(shù)據(jù)集下,可以選擇不同的機器學(xué)習(xí)算法進行學(xué)習(xí),通過對多個算法的橫向比較,如算法的準確度、偏離度等,可選擇一個最合適的算法對模型進行訓(xùn)練,同一個算法,也可以通過反復(fù)的參數(shù)調(diào)整,對模型進行迭代式的訓(xùn)練,最后得到一個最合適的模型。
通過實踐,分類決策樹和SVM支持向量機,訓(xùn)練得到的模型,對數(shù)據(jù)有較好的分類效果。
5 知識提取
知識提取是將計算得到的模型以及規(guī)則,進行解析和整理,并轉(zhuǎn)化為可理解的模型公式或分析規(guī)則,并以可視化的方式進行展示。
知識提取需要結(jié)合人工對計算結(jié)果的分析,結(jié)合模型轉(zhuǎn)化為可理解的模型和規(guī)則,模型和規(guī)則的提取,可以結(jié)合分析人員的經(jīng)驗,進行適當(dāng)?shù)恼{(diào)整,以排除噪聲數(shù)據(jù)對模型計算結(jié)果的干擾,提升模型的效果。
6 模型應(yīng)用
模型訓(xùn)練完成后,并未實現(xiàn)真正的分析目標,最終的目標,是要將訓(xùn)練得到的模型應(yīng)用到實際的數(shù)據(jù)分類預(yù)測中,通過得到的模型,對未知的數(shù)據(jù)進行分類預(yù)測。
在實際的應(yīng)用中,網(wǎng)絡(luò)環(huán)境中服務(wù)器開放的服務(wù),隨時可能增加,也隨時可能減少,利用模型定期的對網(wǎng)絡(luò)環(huán)境中的網(wǎng)絡(luò)流量進行預(yù)測,即可發(fā)現(xiàn)當(dāng)前網(wǎng)絡(luò)中開放了哪些服務(wù),這些服務(wù)都使用了哪些端口,預(yù)測得到的數(shù)據(jù),可作為網(wǎng)絡(luò)運維人員的資產(chǎn)維護知識庫。
預(yù)測得到的結(jié)果提交給運維人員后,對于核心的資產(chǎn),需要與現(xiàn)有的資產(chǎn)庫進行對比,如果發(fā)現(xiàn)有資產(chǎn)庫中未登記的端口,需要進行確認,如果確認發(fā)現(xiàn)未部署使用該端口的服務(wù),推測有可能是病毒或木馬等惡意程序開放的端口,需要進行實時的處理。
參考文獻
[1] Jiawei
Han, Micheling Kamber. Da toMining Concepts and Techniques [M].機械工業(yè)出版社,2012.