本發(fā)明屬于計(jì)算機(jī)防病毒技術(shù)領(lǐng)域。
背景技術(shù):
網(wǎng)絡(luò)中惡意代碼數(shù)量在爆發(fā)式增長,2015年AV-Test的統(tǒng)計(jì)數(shù)據(jù)顯示,平均每天新發(fā)現(xiàn)的惡意樣本數(shù)量已經(jīng)超過30萬個(gè)。面對海量的惡意樣本,機(jī)器學(xué)習(xí)已經(jīng)成為惡意行為檢測領(lǐng)域的主流技術(shù)。但是,攻擊者為了躲避檢測,在不斷地升級惡意行為。目前機(jī)器學(xué)習(xí)模型存在退化問題,固定的閾值在初始階段檢測率高,隨著攻擊行為躲避技術(shù)的改進(jìn)和變化,檢測率不斷的退化。所以需要一種不需要設(shè)定固定閾值的檢測方法,能夠根據(jù)用戶可接受的錯(cuò)誤概率,給出分析結(jié)果,應(yīng)對惡意行為的不斷變異。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的是解決現(xiàn)有技術(shù)中存在的檢測模型識(shí)別率隨時(shí)間快速退化的問題,提供一種基于可信度的網(wǎng)絡(luò)惡意行為檢測方法。該方法在不需要設(shè)定固定閾值的情況下,根據(jù)用戶可接受的錯(cuò)誤概率,通過統(tǒng)計(jì)分析網(wǎng)絡(luò)行為的可信度,實(shí)現(xiàn)對網(wǎng)絡(luò)惡意行為的檢測。
本發(fā)明的技術(shù)方案
基于可信度的網(wǎng)絡(luò)惡意行為檢測方法,包括如下步驟:
第1步、本發(fā)明涉及的一些基本概念:
(1)網(wǎng)絡(luò)惡意行為:本發(fā)明中的網(wǎng)絡(luò)惡意行為是指,以數(shù)據(jù)包為載體的,在未明確提示用戶或未經(jīng)用戶許可的情況下,通過網(wǎng)絡(luò)對用戶計(jì)算機(jī)或其他終端進(jìn)行的、侵犯用戶合法權(quán)益的惡意行為;大量的網(wǎng)絡(luò)惡意行為的集合為網(wǎng)絡(luò)惡意行為集合。
(2)不一致性度量函數(shù):描述一個(gè)測試樣本與一組樣本的不一致性,輸入是一組樣本和一個(gè)測試樣本,輸出是一個(gè)數(shù)值,也叫做不一致性得分。不同測試樣本與同一組樣本的不一致性得分之間可以進(jìn)行比較。得分越高,說明樣本與該組樣本越不一致,得分越低,說明樣本與該組樣本越一致。
(3)統(tǒng)計(jì)量p-value:描述一個(gè)樣本的不一致性得分在一組樣本中的百分位,取值范圍在0到1之間,從統(tǒng)計(jì)的角度刻畫一個(gè)樣本與一組樣本的相似性。
第2步、網(wǎng)絡(luò)行為特征的提取
第2.1、確定網(wǎng)絡(luò)行為的表示粒度,其中包括:數(shù)據(jù)包級粒度,每個(gè)數(shù)據(jù)包表示一個(gè)網(wǎng)絡(luò)行為;NetFlow級粒度,一個(gè)網(wǎng)絡(luò)連接過程的所有網(wǎng)絡(luò)數(shù)據(jù)表示一個(gè)網(wǎng)絡(luò)行為;應(yīng)用級粒度,一個(gè)應(yīng)用過程的所有數(shù)據(jù)包表示一個(gè)網(wǎng)絡(luò)行為。
第2.2、選擇網(wǎng)絡(luò)行為的特征點(diǎn)f;根據(jù)不同的數(shù)據(jù)集,可以選擇不同的網(wǎng)絡(luò)行為特征點(diǎn)f,例如,與時(shí)間相關(guān)的特征點(diǎn)包括:時(shí)間戳、持續(xù)時(shí)間、間隔時(shí)間、周期和頻率等;與體積相關(guān)的特征點(diǎn)包括:發(fā)送數(shù)據(jù)包數(shù)、接收數(shù)據(jù)包數(shù)、發(fā)送字節(jié)數(shù)、接收字節(jié)數(shù)和數(shù)據(jù)熵等;與協(xié)議相關(guān)的特征點(diǎn)包括:TCP、UDP、HTTP、DNS和SSH等;與拓?fù)浣Y(jié)構(gòu)相關(guān)的特征點(diǎn)包括:源IP地址、目的IP地址、源端口號、目的端口號、端口號的分布和端口號集合的熵等。
第2.3、提取特征點(diǎn),將網(wǎng)絡(luò)行為抽象成特征向量V;在可選網(wǎng)絡(luò)行為特征點(diǎn)中,選擇n個(gè)特征點(diǎn)組成特征向量V(f1,f2,...fn),使用所選的n個(gè)特征點(diǎn)作為網(wǎng)絡(luò)行為的抽象表示,將二進(jìn)制的網(wǎng)絡(luò)數(shù)據(jù)映射成特征點(diǎn)組成的特征向量V(f1,f2,...fn);
第2.4、網(wǎng)絡(luò)惡意行為集合的特征矩陣表示;網(wǎng)絡(luò)惡意行為集合中包含了N個(gè)網(wǎng)絡(luò)惡意行為,每個(gè)網(wǎng)絡(luò)惡意行為都使用第2.3步中相同結(jié)構(gòu)的特征向量表示,結(jié)構(gòu)相同的特征向量組合成網(wǎng)絡(luò)惡意行為特征矩陣C;特征矩陣的每一列表示一個(gè)特征點(diǎn)、每一行表示一個(gè)網(wǎng)絡(luò)惡意行為的特征向量;
第3步、網(wǎng)絡(luò)行為與網(wǎng)絡(luò)惡意行為一致性度量
第3.1、確定不一致性度量函數(shù)A(V,C);不一致性度量函數(shù)的輸入是網(wǎng)絡(luò)行為特征向量V和網(wǎng)絡(luò)惡意行為特征矩陣C,返回值是V與C的不一致得分s。不一致性度量函數(shù)A可以是任何可以表示不一致性的函數(shù),例如常見的距離函數(shù),計(jì)算特征向量V與網(wǎng)絡(luò)惡意行為特征矩陣C的距離作為不一致得分;
第3.2、計(jì)算網(wǎng)絡(luò)行為特征向量V和網(wǎng)絡(luò)惡意行為特征矩陣C中向量的不一致性得分;將被檢測的網(wǎng)絡(luò)行為特征向量V放入網(wǎng)絡(luò)惡意行為特征矩陣C中作為最后一個(gè)向量,組成新的特征矩陣C';依次從C'中取出特征向量Vi,使用不一致性度量函數(shù)計(jì)算特征向量Vi與取出Vi后的特征矩陣的不一致性得分si(i=1,2,……,n+1);最后,所有的N+1個(gè)向量都計(jì)算出不一致性得分;
第3.3、計(jì)算網(wǎng)絡(luò)行為特征向量V相對于網(wǎng)絡(luò)惡意行為特征矩陣C的統(tǒng)計(jì)量p-value。在第3.2步的計(jì)算中,網(wǎng)絡(luò)行為特征向量V與網(wǎng)絡(luò)惡意行為特征矩陣C的不一致性得分為sn+1。統(tǒng)計(jì)所有不一致性得分大于等于sn+1的特征向量的個(gè)數(shù),并除以總向量個(gè)數(shù)N+1,得到網(wǎng)絡(luò)行為特征向量V相對于網(wǎng)絡(luò)惡意行為特征矩陣C的統(tǒng)計(jì)量p-value;
第4步、基于可信度的網(wǎng)絡(luò)惡意行為檢測
第4.1、用戶給出可接受的可信度Conf;用戶只接受準(zhǔn)確率在Conf之上的檢測結(jié)果;
第4.2、計(jì)算可接受的最大錯(cuò)誤率1-Conf;
第4.3、如果網(wǎng)絡(luò)行為特征向量V的p-value大于等于1-Conf,則預(yù)測該網(wǎng)絡(luò)行為是網(wǎng)絡(luò)惡意行為,這一預(yù)測的可信度為Conf;否則,報(bào)告該網(wǎng)絡(luò)行為不是惡意行為。
本發(fā)明的優(yōu)點(diǎn)和積極效果:
本發(fā)明不需要設(shè)定固定的檢測閾值,用戶只需輸入可接受的檢測準(zhǔn)確率或者最高檢測錯(cuò)誤率。該方法可以根據(jù)惡意行為特征向量矩陣和被檢測網(wǎng)絡(luò)行為特征向量的統(tǒng)計(jì)規(guī)律,給出滿足用戶可信度的預(yù)測結(jié)果,可以有效緩解檢測模型的退化,更好的應(yīng)對網(wǎng)絡(luò)惡意行為的變異、演變。
【附圖說明】
圖1基于可信度的網(wǎng)絡(luò)惡意行為檢測方法流程圖。
圖2是Rbot僵尸網(wǎng)絡(luò)的NetFlow級行為數(shù)據(jù)。
圖3是“持續(xù)時(shí)間平均值”特征。
圖4是“時(shí)間間隔平均值”特征。
圖5是“發(fā)送字節(jié)數(shù)平均值”特征。
圖6是“接收字節(jié)數(shù)平均值”特征。
圖7是“fft值”特征。
【具體實(shí)施方式】
本發(fā)明以檢測僵尸網(wǎng)絡(luò)為例進(jìn)行具體說明。
1、網(wǎng)絡(luò)惡意行為
1.1公開數(shù)據(jù)集CTU-13
(http://mcfp.weebly.com/the-ctu-13-dataset-a-labeled-dataset-with-botnet-normal-and-backgro und-traffic.html)共包含13個(gè)真實(shí)環(huán)境下所采集的數(shù)據(jù),每一個(gè)監(jiān)控環(huán)境中執(zhí)行不同的惡意軟件。RBot家族的惡意軟件是目前最活躍的Bot程序軟件,可以造成IRC攻擊、DDos等多種惡意行為。本實(shí)驗(yàn)采用執(zhí)行Rbot僵尸網(wǎng)絡(luò)家族的惡意軟件、被感染主機(jī)數(shù)目為10的環(huán)境下所采集的20個(gè)網(wǎng)絡(luò)惡意行為的數(shù)據(jù)。
2、網(wǎng)絡(luò)行為特征的提取方法
2.1、從1.1中的網(wǎng)絡(luò)惡意行為中隨機(jī)選取一個(gè)作為網(wǎng)絡(luò)行為樣本S。S的具體數(shù)據(jù)如圖2所示。網(wǎng)絡(luò)行為的表示粒度為NetFlow級。
2.2、根據(jù)數(shù)據(jù)集,選擇五個(gè)不同的網(wǎng)絡(luò)行為特征點(diǎn)f,分別為持續(xù)時(shí)間平均值、時(shí)間間隔平均值、發(fā)送字節(jié)數(shù)平均值、接收字節(jié)數(shù)平均值和fft值。
2.3、提取選擇特征點(diǎn),使用所選的5個(gè)選擇的網(wǎng)絡(luò)行為特征點(diǎn)作為網(wǎng)絡(luò)行為的抽象表示,將二進(jìn)制的網(wǎng)絡(luò)數(shù)據(jù)映射成特征點(diǎn)組成的特征向量V。經(jīng)計(jì)算,V(f1,f2,...f5)=(580.5,409.293106,58070449.67,0,105.6363636)。
2.4、其余19個(gè)網(wǎng)絡(luò)惡意行為構(gòu)成網(wǎng)絡(luò)惡意行為集合,個(gè)數(shù)N=19。每個(gè)網(wǎng)絡(luò)惡意行為都使用第2.3步中相同結(jié)構(gòu)的特征向量表示,結(jié)構(gòu)相同的特征向量組合成特征矩陣C。經(jīng)計(jì)算,得到C=
網(wǎng)絡(luò)惡意行為在五個(gè)特征上的分布情況如圖3~圖7所示。
3、網(wǎng)絡(luò)行為與網(wǎng)絡(luò)惡意行為一致性度量
3.1、選擇BotFinder(http://www.cs.ucsb.edu/~vigna//publications/2012_CoNEXT_BotFinder.pdf)的度量函數(shù)作為不一致性度量函數(shù)A(V,C),將2.3中的網(wǎng)絡(luò)行為特征向量V和2.4中的網(wǎng)絡(luò)惡意行為特征矩陣C作為輸入。由于BotFinder計(jì)算的是向量與矩陣之間的相似程度,所以返回的不一致性得分s實(shí)際為相似性得分,得分越高,說明越一致,得分越低,說明越不一致。
3.2、計(jì)算網(wǎng)絡(luò)行為特征向量V和網(wǎng)絡(luò)惡意行為特征矩陣C中向量的不一致性得分;將被檢測的網(wǎng)絡(luò)行為特征向量V放入網(wǎng)絡(luò)惡意行為特征矩陣C中作為最后一個(gè)向量,組成新的特征矩陣C',經(jīng)計(jì)算,C'=
依次從C'中取出特征向量Vi,使用不一致性函數(shù)計(jì)算向量Vi與取出Vi后的特征矩陣的不一致性得分si(i=1,2,……,20)。經(jīng)計(jì)算,(s1,s2,……s20)=(1.3151,2.1346,1.3221,2.1347,1.8376,2.1346,1.3462,2.1345,1.3589,2.1346,1.3585,2.1346,1.3342,2.1346,1.3307,2.1346,1.8228,2.1346,1.1014,2.0066)。
3.3、計(jì)算網(wǎng)絡(luò)行為特征向量V相對于網(wǎng)絡(luò)惡意行為特征矩陣C的統(tǒng)計(jì)量p-value。在第3.2步的計(jì)算中,特征向量V與特征矩陣C的不一致性得分為s20=2.0066。由于BotFinder返回的是相似性得分,所以統(tǒng)計(jì)的是小于等于s20的特征向量的個(gè)數(shù),個(gè)數(shù)為10。除以總向量個(gè)數(shù)20,得到特征向量V相對于特征矩陣C的統(tǒng)計(jì)量p-value為0.5。
4、基于可信度的網(wǎng)絡(luò)惡意行為檢測
4.1、假設(shè)用戶給出可接受的可信度Conf為80%。
4.2、計(jì)算可接受的最大錯(cuò)誤率是=1-Conf=0.2.
4.3、因?yàn)榫W(wǎng)絡(luò)行為特征向量V的p-value大于等于4.2中1-Conf的值,所以預(yù)測該網(wǎng)絡(luò)行為是惡意網(wǎng)絡(luò)行為,這一預(yù)測的可信度為80%。