背景技術(shù):
:根據(jù)最近一年AV-Test的統(tǒng)計(jì)報(bào)告顯示,平均每天有超過38萬個(gè)新惡意樣本被發(fā)現(xiàn),遠(yuǎn)遠(yuǎn)超過人工分析能力。目前,機(jī)器學(xué)習(xí)已經(jīng)被公認(rèn)為是海量惡意代碼分析、識(shí)別的主要方法。但是,惡意行為在不斷的演化和變異。在惡意代碼檢測領(lǐng)域,機(jī)器學(xué)習(xí)模型的退化問題比較嚴(yán)重。一段時(shí)間后,為了保證檢測率,惡意行為檢測模型不得不進(jìn)行重新訓(xùn)練,重新確定閾值。因此,需要一種能夠?qū)崟r(shí)更新,動(dòng)態(tài)吸收新發(fā)現(xiàn)的知識(shí)的檢測方法,能夠根據(jù)用戶行為的知識(shí)庫、用戶可接受的錯(cuò)誤概率,實(shí)時(shí)分析和檢測惡意行為。
技術(shù)實(shí)現(xiàn)要素:
:本發(fā)明目的是解決現(xiàn)有機(jī)器學(xué)習(xí)模型退化比較嚴(yán)重的問題,提出一種實(shí)時(shí)在線學(xué)習(xí)的網(wǎng)絡(luò)惡意行為檢測方法。該方法根據(jù)用戶的實(shí)時(shí)行為,實(shí)時(shí)吸收新發(fā)現(xiàn)的知識(shí)、完善用戶行為知識(shí)庫,實(shí)時(shí)更新檢測模型,并在用戶可接受的錯(cuò)誤概率內(nèi),對網(wǎng)絡(luò)惡意行為進(jìn)行檢測。
本發(fā)明的技術(shù)方案
實(shí)時(shí)在線學(xué)習(xí)的網(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)益的惡意行為。
(2)不一致性函數(shù):描述一個(gè)樣本與一組樣本的不一致性,輸入是一組樣本和一個(gè)測試樣本,輸出是一個(gè)數(shù)值,也叫做不一致性得分。不同樣本與同一組樣本的不一致性得分之間可以比較,得分越高,說明樣本與該組樣本越不一致,得分越低,說明樣本與該組樣本越一致。
(3)統(tǒng)計(jì)量p-value:描述一個(gè)樣本的不一致性得分在一組樣本中的百分位,取值范圍在0到1之間,從統(tǒng)計(jì)的角度刻畫一個(gè)樣本與一組樣本的相似性。
第2步、網(wǎng)絡(luò)行為特征的提取
第2.1、確定網(wǎng)絡(luò)行為的表示粒度,其中包括:數(shù)據(jù)包級(jí)粒度,每個(gè)數(shù)據(jù)包表示一個(gè)網(wǎng)絡(luò)行為;NetFlow級(jí)粒度,一個(gè)網(wǎng)絡(luò)連接過程的所有網(wǎng)絡(luò)數(shù)據(jù)表示一個(gè)網(wǎng)絡(luò)行為;應(yīng)用級(jí)粒度,一個(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)的有時(shí)間戳、持續(xù)時(shí)間、間隔時(shí)間、周期和頻率等,與體積相關(guān)的有發(fā)送數(shù)據(jù)包數(shù)、接收數(shù)據(jù)包數(shù)、發(fā)送字節(jié)數(shù)、接收字節(jié)數(shù)和數(shù)據(jù)熵等;與協(xié)議相關(guān)的有TCP、UDP、HTTP、DNS和SSH等;與拓?fù)浣Y(jié)構(gòu)相關(guān)的有源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)、端口號(hào)的分布和端口號(hào)集合的熵等。
第2.3、選擇特征點(diǎn),將網(wǎng)絡(luò)行為抽象成特征向量V。在可選網(wǎng)絡(luò)行為特征點(diǎn)中,選擇n個(gè)特征點(diǎn)組成特征向量V(f1,f2,...fn),使用選擇的網(wǎng)絡(luò)行為特征點(diǎn)作為網(wǎng)絡(luò)行為的抽象表示,將二進(jìn)制的網(wǎng)絡(luò)數(shù)據(jù)映射成特征點(diǎn)組成的特征向量;
第2.4、用戶正常行為集合的特征矩陣表示。用戶正常行為集合中包含了N個(gè)行為,每個(gè)行為都使用相同結(jié)構(gòu)的特征向量Vi表示,1≤i≤N,這N個(gè)特征向量組合成用戶正常行為特征矩陣C。特征矩陣的每一列表示一個(gè)特征點(diǎn)、每一行表示一個(gè)網(wǎng)絡(luò)行為的特征向量;
第3步、網(wǎng)絡(luò)行為與用戶正常行為一致性度量
第3.1、確定不一致性度量函數(shù)A(V,C)。不一致性度量函數(shù)的輸入是網(wǎng)絡(luò)行為特征向量V,用戶正常行為特征矩陣C,返回值是V與C的不一致得分s。不一致性度量函數(shù)A可以是任何可以表示不一致性的函數(shù),例如常見的距離函數(shù),計(jì)算特征向量V與用戶正常行為特征矩陣C的距離作為不一致得分;
第3.2、計(jì)算網(wǎng)絡(luò)行為特征向量V和用戶正常行為特征矩陣C中向量的不一致性得分。將被檢測的網(wǎng)絡(luò)行為特征向量V放入用戶正常行為特征矩陣C中,組成新的矩陣C';依次從C'中取出特征向量Vi,1≤i≤N+1,使用不一致性度量函數(shù)計(jì)算向量Vi與取出Vi后的矩陣的不一致性得分si。最后,所有的N+1個(gè)向量都計(jì)算出不一致性得分,其中特征向量V與特征矩陣C的不一致性得分為sn+1。
第3.3、計(jì)算網(wǎng)絡(luò)行為特征向量V相對于用戶正常行為特征矩陣C的統(tǒng)計(jì)量p-value。在第3.2步的計(jì)算中,特征向量V與特征矩陣C的不一致性得分為sn+1。當(dāng)不一致性度量函數(shù)為距離函數(shù)時(shí),不一致性得分表示特征向量V與特征矩陣C的距離,統(tǒng)計(jì)所有不一致性得分大于等于sn+1的特征向量的個(gè)數(shù)M=|{j:Sj≥Sn+1}|;當(dāng)不一致性度量函數(shù)為相似性函數(shù)時(shí),不一致性得分表示特征向量V與特征矩陣C的相似程度,統(tǒng)計(jì)所有不一致性得分小于sn+1的特征向量的個(gè)數(shù)M=|{j:Sj<Sn+1}。特征向量V相對于特征矩陣C的統(tǒng)計(jì)量p-value=M/(N+1);
第4步、實(shí)時(shí)在線學(xué)習(xí)的網(wǎng)絡(luò)惡意行為檢測
第4.1、用戶給出可接受的可信度Conf,用戶只接受準(zhǔn)確率在Conf之上的檢測結(jié)果;
第4.2、計(jì)算可接受的最大錯(cuò)誤率是ε=1-Conf;
第4.3、如果網(wǎng)絡(luò)行為特征向量V對于用戶正常行為特征矩陣C的p-value小于等于ε,則有Conf的可信度,預(yù)測該網(wǎng)絡(luò)行為是網(wǎng)絡(luò)惡意行為,可以選擇用戶設(shè)定的處理方法進(jìn)行處理,例如阻斷該網(wǎng)絡(luò)行為的連接;
第4.4、如果檢測結(jié)果顯示,該網(wǎng)絡(luò)行為不是惡意行為,則該網(wǎng)絡(luò)行為的特征向量V將自動(dòng)吸收進(jìn)用戶正常行為特征矩陣C中,生成更新后的用戶正常行為特征矩陣,原有的特征矩陣將過期,后面的檢測將不再使用原矩陣,而是使用最新的矩陣C。
第4.5、對每一個(gè)新發(fā)現(xiàn)的未知網(wǎng)絡(luò)行為都重復(fù)上述過程,判斷結(jié)果是惡意行為則進(jìn)行特殊處理,判斷結(jié)果是正常行為則吸收進(jìn)用戶正常行為集合。從而用戶正常行為集合在檢測過程中不斷吸收新的正常行為,逐漸更新,反映最新的正常行為模式。對每一個(gè)未知行為的檢測也基于最新的用戶正常行為集合,不存在傳統(tǒng)的檢測模型的退化問題,從而提高網(wǎng)絡(luò)惡意行為檢測的精準(zhǔn)度。
本發(fā)明的優(yōu)點(diǎn)和積極效果:
面對網(wǎng)絡(luò)惡意行為的不斷變異,以及基于機(jī)器學(xué)習(xí)的檢測模型的退化問題,本發(fā)明提出實(shí)時(shí)在線學(xué)習(xí)的網(wǎng)絡(luò)惡意行為檢測模型。本方法的優(yōu)點(diǎn)和積極效果體現(xiàn)在實(shí)時(shí)在線學(xué)習(xí),不需要等到檢測模型發(fā)生脫化后才進(jìn)行模型更新和閾值重新計(jì)算,用戶的正常行為被實(shí)時(shí)的吸收到正常行為特征矩陣中,每次發(fā)現(xiàn)正常行為,特征矩陣都會(huì)更新,并在用戶可接受的最大錯(cuò)誤概率內(nèi),對網(wǎng)絡(luò)惡意行為進(jìn)行檢測。
【附圖說明】:
圖1實(shí)時(shí)在線學(xué)習(xí)的惡意網(wǎng)絡(luò)行為檢測方法的流程圖。
圖2表示粒度為trace的網(wǎng)絡(luò)行為。
圖3為網(wǎng)絡(luò)行為樣本S1。
圖4為“時(shí)間間隔”特征。
圖5為“持續(xù)時(shí)間”特征。
圖6為“發(fā)送字節(jié)數(shù)”特征。
圖7為“接收字節(jié)數(shù)”特征。
圖8為“fft”特征。
【具體實(shí)施方式】:
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-background-traffic.html)共包含13個(gè)真實(shí)環(huán)境下所采集的數(shù)據(jù),每一個(gè)監(jiān)控環(huán)境中執(zhí)行不同的惡意軟件。采集的數(shù)據(jù)中包含了大量的用戶正常數(shù)據(jù)和少量的惡意數(shù)據(jù),CTU-13中數(shù)據(jù)的表示粒度是Netflow。本實(shí)驗(yàn)的用戶歷史正常行為和網(wǎng)絡(luò)惡意行為均從中選取。
2、網(wǎng)絡(luò)行為特征的提取
2.1、確定網(wǎng)絡(luò)行為的表示粒度為應(yīng)用級(jí)粒度。由1.1的Netflow數(shù)據(jù)中聚合出更高一級(jí)別的trace,選取100個(gè)用戶正常網(wǎng)絡(luò)行為的trace組成集合B,trace格式如圖2所示(以其中一個(gè)為例)。從剩余trace中任選一個(gè)作為網(wǎng)絡(luò)行為樣本S1,如圖3所示,圖中所有數(shù)據(jù)表示一個(gè)網(wǎng)絡(luò)行為。
2.2、選擇五個(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īng)計(jì)算,將樣本S1映射成特征向量V,V(f1,f2,...f5)=(159.1333,8.648573,1443.438,8294.438,2388)。
2.4、正常網(wǎng)絡(luò)行為集合B中的每個(gè)網(wǎng)絡(luò)行為都使用第2.3步中相同結(jié)構(gòu)的特征向量表示,結(jié)構(gòu)相同的特征向量組合成特征矩陣C。經(jīng)計(jì)算,得到
正常網(wǎng)絡(luò)行為集合在五個(gè)特征上的分布情況如圖4~圖8所示。
3、網(wǎng)絡(luò)行為與用戶正常行為一致性度量
3.1、選擇BotFinder(http://www.cs.ucsb.edu/~vigna//publications/2012_CoNEXT_BotFinder.pdf)的度量函數(shù)作為不一致性度量函數(shù)A(V,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'。依次從C'中取出特征向量Vi(i=1,2,,……100,101),使用不一致性函數(shù)計(jì)算向量Vi與取出Vi后的矩陣的不一致性得分si。最后,所有的N+1個(gè)向量都計(jì)算出不一致性得分。經(jīng)計(jì)算,Si=(0.3353,0.47060.1579,0.2291,0.1741,0.2707,0.2651,0.2485,0.1998,0.1922,0.1309,0.3786,0.2053,0.8115,0.4625,……,0.551,0.1699,0.3368,0.2438,0.1254,0.2248,0.3103,0.2739,0.162,0.9564,1.0372,0.2953,0.2772)。
3.3、計(jì)算網(wǎng)絡(luò)行為特征向量V相對于正常行為特征矩陣C的統(tǒng)計(jì)量p-value。在第3.2步的計(jì)算中,特征向量V與特征矩陣C的不一致性得分為s101=0.2772。由于BotFinder是相似性函數(shù),返回的是相似性得分,所以統(tǒng)計(jì)小于s20的特征向量的個(gè)數(shù),個(gè)數(shù)為97。向量V相對于特征矩陣的統(tǒng)計(jì)量p-value=97/101=0.9604。
4、實(shí)時(shí)在線學(xué)習(xí)的網(wǎng)絡(luò)惡意行為檢測
4.1、假設(shè)用戶給出可接受的可信度Conf=80%。
4.2、計(jì)算可接受的最大錯(cuò)誤率是ε=1-Conf=0.2。
4.3、網(wǎng)絡(luò)行為特征向量V對于用戶正常行為特征矩陣C的p-value=0.9604大于ε=0.2,所以有Conf=80%認(rèn)為該網(wǎng)絡(luò)行為不是惡意行為。
4.4、該網(wǎng)絡(luò)行為的特征向量V=(159.1333,8.648573,1443.438,8294.438,2388)自動(dòng)吸收進(jìn)用戶正常行為特征矩陣C中,更新C。
5、發(fā)現(xiàn)下一個(gè)未知網(wǎng)絡(luò)行為后的檢測
5.1、采用最新的用戶正常行為特征矩陣C作為V'統(tǒng)計(jì)量p-value求解過程的輸入量。重復(fù)上述過程。例如,發(fā)現(xiàn)的下一個(gè)未知網(wǎng)絡(luò)行為的特征向量是V=(1159.092,0.028872,74.7,357,336.5161),按照上述過程,用新的矩陣C計(jì)算出的p-value=50/102=0.49020,用上一個(gè)舊矩陣計(jì)算出的p-value=51/101=0.50495。
5.2、從以上結(jié)果可以看出吸收了新的用戶正常行為的模型會(huì)得出不同于以往的得分。如果用戶設(shè)定的可信度為50%,此時(shí)基于沒有實(shí)時(shí)在線學(xué)習(xí)能力的舊矩陣的檢測會(huì)報(bào)告該行為是惡意行為,而基于學(xué)習(xí)了新的正常行為的新矩陣的檢測會(huì)報(bào)告該行為是正常行為。這種對用戶正常行為精準(zhǔn)、實(shí)時(shí)的學(xué)習(xí)可以提升檢測的準(zhǔn)確率。