賈 麗,王 冕
(1. 桂林信息科技學院信息工程系,廣西 桂林 541004;2. 桂林電子科技大學,廣西 桂林 541004)
互聯(lián)網(wǎng)時代下,客戶端軟件類型逐漸增多,在給人們帶來便捷性的同時,網(wǎng)絡(luò)安全問題也成為制約其發(fā)展的因素。其中,病毒數(shù)量的劇增導致傳統(tǒng)病毒防御方法無法及時檢測和防御,對客戶端的安全造成嚴重威脅。現(xiàn)階段360安全衛(wèi)士、騰訊管家等提出了一些防御模式。例如,防火墻是最早的防御工具,能夠結(jié)合通信需求設(shè)計啟發(fā)規(guī)則,若數(shù)據(jù)滿足規(guī)則要求則允許通過防火墻,反之被阻擋。殺毒軟件是較為主流的防御方法,根據(jù)互聯(lián)網(wǎng)中存在的病毒基因特性對當前數(shù)據(jù)進行識別,判斷是否存在病毒,并及時將威脅清除。在流量增多的條件下,上述兩種方法的性能會有所降低,為進一步改善殺毒能力,引入包過濾技術(shù),采用迭代規(guī)則對數(shù)據(jù)包源頭進行分析,判斷每個協(xié)議內(nèi)容,提高殺毒性能。但上述防御策略均屬于被動模式,需等到病毒暴發(fā)后才能啟動殺毒軟件,這樣會造成客戶端部分數(shù)據(jù)遭到破壞,嚴重時數(shù)據(jù)會丟失,帶來不可估量的損失。
基于此,相關(guān)學者進行了大量研究。蘆天亮[1]等人將密碼算法應用在病毒防御中。將病毒加殼、通信加密與加密勒索三種技術(shù)相結(jié)合,結(jié)合經(jīng)典案例確定加密算法與病毒攻擊流程,針對加密恢復提出對應的防御對策。蔡星浦[2]等人將多階段博弈理論應用至網(wǎng)絡(luò)攻擊防御中,對電力網(wǎng)絡(luò)中的虛假信息注入攻擊行為進行分析,根據(jù)分析結(jié)果,設(shè)計一種多階段動態(tài)防御方法對攻擊方與防御方進行多階段防御。然而上述方法當病毒種類較多時,防御性能受到影響,不能準確判斷出數(shù)據(jù)包的合法性,存在病毒檢測漏報率與誤報率較高的問題。
隨著人工智能技術(shù)的進步,針對機器學習的病毒檢測受到廣泛關(guān)注。為此,本文利用一種人工智能算法來實現(xiàn)互聯(lián)網(wǎng)客戶端病毒防御。將機器學習方法用在病毒檢測中,能夠精準地發(fā)現(xiàn)惡意病毒,因為該方法可從已有的數(shù)據(jù)中提取關(guān)聯(lián)模式,再通過這些模式進行相似性查找,及時發(fā)現(xiàn)有類似特征的病毒,并對其阻止,提高了客戶端網(wǎng)絡(luò)安全。
由于客戶端數(shù)據(jù)量較大,會生成極大的運算量,因此在進行分類訓練之前需對其進行預處理,也就是特征提取。特征提取的主要作用是確保決策與條件屬性在相互依賴關(guān)系[3]不變的情況下,實現(xiàn)決策表約簡,達到特征向量降維的目的。
本文利用Gain-Ratio方法進行特征提取,已知編碼集合S,在信息論中對S的熵可描述為:熵能夠體現(xiàn)出S中某成員分類所需的進制位數(shù)。例如P+為1,客戶端可得知樣本為正,因此無需發(fā)出消息,這時熵值等于0;若P+為0.5,則需通過二進制位表明樣本為正還是負。因此,S的熵值可通過下述公式表示
(1)
測試當某個特征A減少時,造成的熵減少程度為IG(S,A),通過該值判斷A的信息涵蓋量[4],計算公式如下
(2)
公式中,E代表信息增益,V代表包括特征A的全部可能取值。
如果通過信息增益來判斷屬性的重要程度,選取重要的屬性添加到集合中,則該屬性集合即為決策系統(tǒng)的約簡。
IG體現(xiàn)出特征值具有多樣性,所以屬性集合中的特征向量存在高互異性。為避免此種現(xiàn)象,綜合考慮特征向量存在的信息量GR,得到如下公式
(3)
(4)
式中,Si代表集合S內(nèi),特征值為d的特征子集。利用上述方法即可實現(xiàn)數(shù)據(jù)的降維處理,獲取病毒數(shù)據(jù)的特征。
貝葉斯分類是人工智能領(lǐng)域的有效手段,可以很好地解決分類問題,根據(jù)上述提取的特征向量,通過構(gòu)建貝葉斯網(wǎng)絡(luò),即可學習特征向量分布,進而實現(xiàn)準確分類。
貝葉斯網(wǎng)絡(luò)分類器的實質(zhì)是對某變量遵循的概率分布特征進行表示。其模型可描述為:假設(shè)U={X,C}表示變量有限集合,且X={X1,X2,…,Xn}為屬性變量集合,其中,C指變量,取值區(qū)間是{c1,c2,…,cn},xi代表屬性Xi的取值,也是ci的概率,則根據(jù)貝葉斯理論能夠得出
=αP(cj)P(x1,x2,…,xn,|cj)
(5)
式中,P(cj)代表類cj的后驗概率[5],P(x1,x2,…,xn|cj)則為類cj有關(guān)xi的似然,α屬于正則化因子。結(jié)合概率鏈式規(guī)則得出
P(cj|x1,x2,…,xn)=αP(cj)P(x1,…,xi-1,xi+1,…,xn,cj)
(6)
已知訓練樣本集合為D={u1,u2,…,uN},分類的最終目的是對該集合進行分析,并找出映射函數(shù)[6]f:(x1,x2,…,xn)→C,確保對所有未知類別xi=(x1,x2,…,xn)設(shè)定標簽。引入貝葉斯算法中的最大后驗定理,已知某個類別xi=(x1,x2,…,xn),選取后驗概率P(cj|x1,x2,…,xn)最大當作該類別標簽。
通過貝葉斯網(wǎng)絡(luò)進行分類的實質(zhì)就是利用該網(wǎng)絡(luò)對式(6)進行求解,為獲取P(x1,…,xi-1,xi+1,…,xn,cj)的值,需明確變量集合的條件概率分布。如果U={X1,X2,…,Xn}是構(gòu)成貝葉斯網(wǎng)絡(luò)的概率分布編碼,其二元組形式描述為B=(G′,Θ),G′為某節(jié)點上與變量X1,X2,…,Xn相對應的有向無環(huán)圖,有向邊體現(xiàn)著不同變量存在的關(guān)聯(lián)性;二元組中的Θ表示概率分布集合,其中的任意一個元素均代表在pa(xi)∈Pa(Xi)條件下全部可能出現(xiàn)的概率。Pa(Xi)為Xi在G′內(nèi)的變量集,pa(xi)是集合Pa(Xi)中的某個元素。則網(wǎng)絡(luò)B在U中存在唯一的概率分布
(7)
因此,通過貝葉斯網(wǎng)絡(luò)學習可描述為:在已知定義在U上的樣本集合D=(u1,u2,…,uN),找出與D匹配度最高的網(wǎng)絡(luò)B。
若將上述貝葉斯網(wǎng)絡(luò)模型直接用于病毒檢測中,其特征獨立性的要求有時將無法滿足。為此,本文對其改進,建立一個新的病毒檢測模型。
變體公式[7]確定:如果F′與F′′分別代表不相交的特征子集,結(jié)合貝葉斯變體表達式得出
(8)
(9)
以上變體表達式能縮小獨立性假設(shè)范圍,且確定F″為限制特征子集合。
規(guī)則匹配度[8]:若R={R1,R2,…,Rr}表示規(guī)則集合,F(xiàn)={F1,F(xiàn)2,…,F(xiàn)n}是病毒數(shù)據(jù)的特征集合。則任意一條規(guī)則Ri的特征集合表示為RFi={Fi1,F(xiàn)i2,…,F(xiàn)im}。將規(guī)則和病毒的匹配程度當作病毒在Ri中存在的特征數(shù)量:num(RFi∩F)。因此和病毒匹配性最強的規(guī)則Ri符合下述要求
(10)
通過上述的改進,基于貝葉斯分類器的病毒檢測過程如下:
步驟一:選取訓練樣本,對其執(zhí)行貝葉斯算法,獲得規(guī)則集合R;
步驟二:在集合R內(nèi)找出符合病毒分類的相關(guān)規(guī)則,并利用此規(guī)則完成病毒分類;如果沒有找到規(guī)則則進行步驟三;
步驟三:在集合R內(nèi)找出和待分類病毒相似度最高的規(guī)則Rk;
步驟四:確定待分類病毒在規(guī)則集合內(nèi)具有的特征集合F″;
步驟五:將F″包含的樣本當作貝葉斯訓練樣本,再使用式(9)完成病毒檢測。
圖1為客戶端病毒防御架構(gòu)圖。
圖1 客戶端病毒防御架構(gòu)圖
結(jié)合病毒防御架構(gòu)圖可知,當完成最為關(guān)鍵的病毒檢測程序后[9],如果發(fā)現(xiàn)有病毒入侵,防御模塊會及時阻斷入口端口,同時也不會接受任何服務(wù)請求。在防御機制的設(shè)計中,若攻擊依舊存在,則流表項[10]會有很高的命中率,這是由于每個病毒均會命中流表項。本文通過計算命中率,再將該值和合法數(shù)據(jù)流的流表項對比,進一步達到防御目的。完整的防御過程如下:
步驟一:遍歷全部合法數(shù)據(jù)流產(chǎn)生的流表項,利用下述公式獲取平均命中率。
(11)
步驟二:利用下述公式獲取被禁止的流表項命中率
(12)
(13)
式中,λ為設(shè)置的合理閾值。
假設(shè)入侵者以速度p1傳輸病毒數(shù)據(jù)包,入侵時間為t1,而合法用戶以p2的速度傳輸數(shù)據(jù)包,且自病毒入侵后需要時間t2完成端口恢復。結(jié)合這一假設(shè),將式(13)變換為式(14)
(14)
再將式(14)進行簡化處理
(15)
通常而言,若客戶端網(wǎng)絡(luò)對時間較為敏感,則將λ值設(shè)置的較大,以此減少防御時間;若網(wǎng)絡(luò)是相對安全敏感的,則該值應設(shè)置的較小,最大程度確保網(wǎng)絡(luò)安全。
為了使仿真更具說服力,在實驗中引入多種類型病毒,病毒名稱與攻擊原理分別如下。
端口掃描病毒:向客戶端主機的所有端口均發(fā)送病毒數(shù)據(jù)包,判斷端口是否開放,如果處于開放狀態(tài)則向其注入病毒。
IP掃描病毒:尋找目標網(wǎng)絡(luò),并向其發(fā)送病毒數(shù)據(jù)包,以此確定哪個目標可以被攻擊。
Smurf病毒:向目標主機發(fā)送偽造地址,此時主機需對虛假源主機進行回復,導致不能及時處理合法數(shù)據(jù)包。
Neptune病毒:向客戶端發(fā)送虛假報文,主機需對每個報文進行確認,造成大量端口被非法占用。
Apache2病毒:服務(wù)器接收大量請求,降低服務(wù)器處理速度,甚至消耗全部資源。
病毒檢測是病毒防御的重中之重,檢測結(jié)果直接影響病毒防御效果。在仿真進行到第20分鐘時向客戶端同時注入端口掃描病毒與Apache2病毒。此外,在實驗40、70與90分鐘時,分別注入IP掃描病毒、Smurf病毒以及Neptune病毒。利用密碼算法、多階段博弈理論方法與本文方法進行病毒檢測,得到的檢測結(jié)果如圖2所示。
圖2 不同方法病毒檢測結(jié)果對比圖
由圖2能夠看出,共向客戶端發(fā)送了五種類型病毒,本文方法并沒有檢測出端口掃描病毒,而是在同一時間檢測到了Apache2病毒;密碼算法檢測出了除Apache2病毒之外的所有病毒。但是經(jīng)過對端口掃描數(shù)據(jù)包的分析得出,此種病毒每秒只能觸發(fā)一個小數(shù)據(jù)包,不能對客戶端造成實質(zhì)性危害。相比之下,Apache2病毒的危害性更強,能夠在釋放連接時造成非法信息大量爆發(fā)。因此,表明文本方法可以分清主次,對危害性較強的病毒可優(yōu)先檢測、優(yōu)先處理。
本文將漏報率與誤報率作為性能評價指標,并使用混淆矩陣來實現(xiàn)性能的可視化描述。該矩陣的每一列表示預測標簽,行代表真實種類標簽,其實質(zhì)就是對所有類標簽的結(jié)果作出統(tǒng)計與分析。本文構(gòu)建的混淆矩陣如表1所示。
表1 混淆矩陣表
表1中,Positive表示正元組,是某種特定的病毒數(shù)據(jù),Negative是負元組,指病毒數(shù)據(jù)之外的其它樣本數(shù)據(jù)。此外,TP與TN分別表示被正確分類的正樣本與負樣本;FP指負樣本被分類成正樣本,F(xiàn)N則是正樣本被分類成負樣本。
如果在仿真中對三種不同方法進行相同次數(shù)的測試,利用這些數(shù)據(jù)對測試結(jié)果進行分析,并通過誤報率FAR與漏報率MAR兩個指標進行體現(xiàn),得到的測試結(jié)果如圖3和4。其中誤報率是指算法是否能夠讓合法數(shù)據(jù)包順利執(zhí)行,漏報率表示該算法能否成功防御所有病毒入侵。
(16)
(17)
圖3 不同方法誤報率測試結(jié)果
圖4 不同方法漏報率測試結(jié)果
由圖3和4可知,隨著病毒類型的增多,三種方法的誤報率與漏報率均呈現(xiàn)出上升趨勢。而本文算法在多項指標中均表現(xiàn)突出,并沒有出現(xiàn)大幅度上升。這是因為貝葉斯機器學習分類方法通過有效的學習過程,構(gòu)建了最優(yōu)分類網(wǎng)絡(luò)模型,同時設(shè)置合理的規(guī)則匹配度,使病毒數(shù)據(jù)特征與實驗數(shù)據(jù)能夠很好地匹配,只有提高病毒檢測精度,才能從根本上提高病毒防御能力。
互聯(lián)網(wǎng)飛速發(fā)展的同時,病毒入侵方式也日新月異,已經(jīng)嚴重影響客戶端網(wǎng)絡(luò)的安全運行。再加上互聯(lián)網(wǎng)的開放性與多樣性,網(wǎng)絡(luò)安全已經(jīng)引起人們重視。為此,本文運用人工智能中的貝葉斯機器學習方法對病毒進行防御,同時通過實驗證明該方法能夠全面檢測出病毒類型,有效提高客戶端網(wǎng)絡(luò)安全。但實驗中的訓練樣本有限,該算法對病毒的判斷還需進一步提高,在今后研究中增加樣本數(shù)量,使分類模型廣泛涵蓋病毒類型,提高算法的推廣性。