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