摘要:互聯(lián)網(wǎng)的發(fā)展導致惡意軟件信息類型種類繁多,為檢測獲取更深層次的惡意軟件信息,研究基于知識圖譜的惡意軟件信息檢測方法,提升惡意軟件信息檢測效果。利用文本挖掘技術中的Python網(wǎng)絡爬蟲技術,采集軟件有效信息;通過信息增益算法,在采集的軟件有效信息內(nèi),提取軟件信息特征;在雙向長短期記憶神經(jīng)網(wǎng)絡內(nèi)輸入軟件信息特征,輸出軟件信息實體識別結(jié)果,并抽取軟件信息實體間的關系;依據(jù)實體消岐技術,對抽取的軟件信息實體關系進行知識融合,得到軟件信息知識圖譜;利用圖推理算法,處理軟件信息知識圖譜,得到惡意軟件信息檢測結(jié)果。實驗證明:該方法可有效采集軟件有效信息,并提取軟件信息特征,建立軟件信息知識圖譜;該方法可有效檢測惡意軟件信息,且檢測精度較高。
關鍵詞:知識圖譜,惡意軟件,信息檢測,Python網(wǎng)絡爬蟲,神經(jīng)網(wǎng)絡,圖推理算法
中圖分類號:TP393;TP391.41
文獻標識碼:A
文章編號:1674-9545(2024)03-0079-(06)
DOI:10.19717/j.cnki.jjun.2024.03.017
互聯(lián)網(wǎng)的發(fā)展為惡意軟件提供了更為廣闊的傳播空間[1]。惡意軟件,如病毒、蠕蟲、特洛伊木馬等,已成為網(wǎng)絡安全領域的一大威脅。它們通過各種手段潛入計算機系統(tǒng),竊取敏感信息、破壞數(shù)據(jù)、干擾正常操作[2-4],甚至控制被感染的計算機作為“肉雞”進行更大規(guī)模的攻擊。因此,對惡意軟件進行準確、高效的信息檢測顯得尤為重要[5]。惡意軟件信息檢測是防范和應對惡意軟件威脅的關鍵環(huán)節(jié)。通過檢測,可以及時發(fā)現(xiàn)并處置潛在的安全風險,減少惡意軟件對系統(tǒng)造成的損害。
為提高檢測精度,研究者們不斷探索新的檢測方法。例如,印杰等人利用預訓練語言模型對惡意軟件文本描述進行特征提取和分類,以實現(xiàn)高效的惡意軟件信息檢測。通過實驗驗證,該方法在多個數(shù)據(jù)集上均表現(xiàn)出良好的檢測性能,能夠有效識別不同類型的惡意軟件[6]。但該方法對于新型或變異的惡意軟件,預訓練語言模型則無法識別,因為它們?nèi)狈π履J降姆夯芰?。蔣瑞林等人結(jié)合了深度可分離卷積、注意力機制和灰度共生矩陣,提取惡意軟件信息特征,利用樸素貝葉斯分類器處理惡意軟件信息特征,得到惡意軟件信息檢測結(jié)果[7]。但該方法易受數(shù)據(jù)不平衡、噪聲和模型偏差的影響,導致誤報或漏報某些惡意軟件。
知識圖譜可以對惡意軟件數(shù)據(jù)進行多維度的分析和挖掘,包括節(jié)點屬性、邊屬性、通信流量等,能夠更全面地反映惡意軟件的特征和行為模式[8,9],有助于更準確地檢測和識別惡意軟件。為此,基于知識圖譜的惡意軟件信息檢測方法,為相關領域的研究者提供有價值的參考,并為推動惡意軟件信息檢測技術的發(fā)展做出貢獻。
1惡意軟件信息檢測方法
1.1軟件信息的知識圖譜構(gòu)建
知識圖譜的作用為描繪軟件信息實體間的關系,且具備一定的客觀性。利用文本數(shù)據(jù)挖掘技術,建立軟件信息的知識圖譜,知識圖譜建立流程如圖1所示。
軟件信息知識圖譜建立的具體步驟如下:
(1)通過文本挖掘技術,采集軟件的全部信息[10],建立軟件信息數(shù)據(jù)庫P,利用Python網(wǎng)絡爬蟲技術,在軟件信息數(shù)據(jù)庫內(nèi),采集相應的有效軟件信息,令實際軟件信息是w,則采集過程為:
w=P-Oominlt;Olt;omax(1)
式(1)中,爬蟲獲取的非有效軟件信息是O;最小、最大軟件信息數(shù)據(jù)載量omin、omax。
(2)軟件信息特征提取。利用信息增益算法,在采集的軟件有效信息內(nèi),提取軟件信息的特征信號[11],并按照自然語義的軟件信息,將其變更成數(shù)學向量的形式,公式如下:
U=∑wi=1ψiσ(2)
式(2)中,變更后的軟件信息特征是U;特征提取條件下的總軟件信息是ψi;特征提取條件外的軟件信息是σ。
(3)利用雙向長短期記憶神經(jīng)網(wǎng)絡 (bi-directional long short-term memory,Bi-LSTM),結(jié)合U,識別軟件信息實體。
(4)對識別得到的軟件信息實體,進行關系抽取[12]。
(5)通過實體消岐技術,對抽取的軟件信息實體關系進行知識融合,得到軟件信息知識圖譜。
1.1.1軟件信息實體識別"軟件信息中包含受影響的產(chǎn)品、軟件類型與部分供應商[13],為此,在識別軟件信息實體時,需要對這三類實體實施識別。
通過BIOES標注法,對軟件信息的特征實施標注,令軟件廠商是V,產(chǎn)品是Q,軟件信息類型是T。軟件信息的實體標注集如表1所示。
完成標注后的軟件信息特征樣本為U^=u^1,u^2,…,u^n,將其輸入至Bi-LSTM內(nèi),輸出軟件信息實體識別結(jié)果。LSTM內(nèi)輸入門at的作用為:確定在細胞狀態(tài)Zt內(nèi)存儲什么新的軟件信息特征,at的表達公式如下:
at=φωaht-1+ωau^t+ba(3)
式(3)中,t時刻輸入的標注后的軟件信息特征樣本是u^j;at的權值與偏置是ωa、ba;激活函數(shù)是φ·;隱藏狀態(tài)是ht-1,用于存儲軟件信息實體識別結(jié)果[14]。
遺忘門ft的作用為:確定在Zt內(nèi)剔除哪些軟件信息特征,ft的表達公式如下:
ft=φωfht-1+ωfu^t+bf(4)
式(4)中,ft的權值與偏置是ωf、bf。
Zt的表達公式如下:
Zt=ft·Zt-1+at·tanhωZht-1+ωZu^t+bZ(5)
式(5)中,Zt的權值與偏置是ωZ、bZ;點積運算是·。輸出門rt的作用確定某些軟件信息特征作為輸出,rt的表達公式如下:
rt=φωrht-1+ωru^t+br(6)
式(6)中,rt的權值與偏置是ωr、br。LSTM輸出的軟件信息實體識別結(jié)果為:
ht=rt·tanhZt(7)
式(7)中,由左至右的單向LSTM會得到上文的軟件信息實體識別結(jié)果h→t,由右至左的單向LSTM會得到下文的軟件信息實體識別結(jié)果h←t,通過融合h→t與h←t,便可獲取最終的軟件信息實體識別結(jié)果h^。
1.1.2軟件信息實體關系抽取"因為軟件領域內(nèi),軟件信息實體類型很多,所以軟件信息實體關系抽取精度較低[15]。因此,面向軟件的信息關系抽取僅針對供應商實體h^Q、受影響的產(chǎn)品實體h^V、軟件信息實體h^D與軟件信息類型實體h^T四類。軟件信息實體關系抽取中,共包含三種關系,分別是屬于(BelongTo)、影響(Affect)、存在(HasCWE),抽取的軟件信息實體間的關系為關系集=BelongTo,Affect,HasCWE;BelongTo的屬性集=h^Q,h^V;Affect的屬性集=h^Q,h^D;HasCWE的屬性集=h^V,h^T。
1.1.3軟件信息實體間關系的知識融合"對軟件信息實體間關系進行知識融合時,會出現(xiàn)錯誤與冗余信息等問題,降低軟件信息知識圖譜的建立精度。為此,通過實體消岐技術,將包含歧義命名的軟件信息實體,映射至具體的概念,并實時知識融合,提升軟件信息知識圖譜的建立精度。知識融合后的軟件信息為:
P^=θβλ+ελ+Eλ(8)
式(8)中,知識融合指標是θ;融合的軟件信息模式是β;知識融合工具是ε;權重是λ;抽取的軟件信息實體間的關系是E={BelongTo的屬性集,Affect的屬性集,HasCWE的屬性集}。
依據(jù)概率統(tǒng)計與圖像排序的方式,對齊處理融合后的軟件信息P^,令軟件信息更加具體化,并剔除冗余的軟件信息,提升軟件信息知識圖譜的建立精度。通過Neo4j圖數(shù)據(jù)庫,存儲融合后的軟件信息P^,并利用可視化技術,全面呈現(xiàn)軟件信息知識圖譜G,公式如下:
G=L×S-L×γy×S×γy(9)
式(9)中,軟件信息的挖掘方向是y;軟件信息知識圖譜的像元是L;內(nèi)存量是S;重疊度是γ。
1.2惡意軟件信息檢測的推理算法
利用圖推理算法處理建立軟件信息知識圖譜,得到惡意軟件信息檢測結(jié)果,具體步驟如下:
step1:輸入軟件信息知識圖譜G=h^,E,其中,軟件信息實體為h^=h^Q,h^V,h^D,h^T,軟件信息實體間的關系為E={BelongTo的屬性集,Affect的屬性集,HasCWE的屬性集}。
step2:為h^定義先驗軟件信息標簽ξ與先驗置信度ρ,其中ξ∈0,1,當ξ=0時,則該節(jié)點為良性節(jié)點,即該節(jié)點內(nèi)信息不是惡意軟件信息,當ξ=1時,則該節(jié)點為惡意節(jié)點,即該節(jié)點內(nèi)信息是惡意軟件信息。ρ∈0,1;當μx時,則該軟件信息標簽完全不置信,當ρ=1時,則該軟件信息標簽絕對置信。
step3:計算節(jié)點x的惡意分數(shù)μx,即:
μx=ρμ0xμ0x+∑Mxτ=1ωxτe·μτ∑Mxτ=1ωxτe-ρμ0x∑Mxτ=1ωxτe·μτ∑Mxτ=1ωxτe(10)
式(10)中,其中,軟件信息知識圖譜G內(nèi)節(jié)點x的先驗是μ0x,當μ0x=1時,則x為已知惡意節(jié)點,即x內(nèi)的信息為已知的惡意軟件信息;反之,μ0x=0。μ0x的先驗置信度是ρμ0x;G內(nèi)和x鄰近的節(jié)點集是Mx;節(jié)點τ的惡意分數(shù)是μτ;x與τ間的邊e上權值是ωxτe。當μx=1時,則x為惡意節(jié)點,即x內(nèi)的信息為惡意軟件信息;當μx=0時,則x為非惡意節(jié)點,即x內(nèi)的信息為非惡意軟件信息;通過式(10)便可完成惡意軟件信息檢測。
2結(jié)果與分析
實驗樣本內(nèi)包含兩大類,分別是惡意軟件信息樣本與正常文件信息樣本,其中,在VXHeavens網(wǎng)站內(nèi),下載7個類型的惡意軟件,共包含惡意軟件信息樣本600多個,在無病毒的XP系統(tǒng)內(nèi)下載正常文件信息樣本400多個,共包含9種類型,分別是Document、Spreadsheet、Presentation、Image、Executable、ompressed File、Software Installer、Audio、Video,惡意軟件信息樣本的分布情況如圖2所示。從圖2中可以看出,不同類型的惡意軟件信息樣本分布并不均勻。
利用文章方法在實驗樣本內(nèi)采集軟件有效信息,以惡意軟件有效信息為例,采集后的惡意軟件有效信息統(tǒng)計結(jié)果如表2所示。表2中,CWE-ID(common weakness enumeration identifier)是一個用于標識軟件弱點的標準標識符。CVE-ID(common vulnerabilities and exposures identifier)是一個用于標識已公開披露的惡意軟件信息的唯一標識符。從表2可以看出,文章方法可有效采集惡意軟件有效信息,并得到惡意軟件有效信息的統(tǒng)計結(jié)果,該惡意軟件樣本內(nèi)共包含796個CWE-ID,1023個CVE-ID,15342個屬性。
利用文章方法在采集的軟件有效信息內(nèi),提取軟件信息特征,軟件有效信息特征提取結(jié)果如表3所示。從表3可以看出,文章方法成功地從軟件信息中提取了13個特征,這些特征為軟件信息知識圖譜的建立提供了有價值的數(shù)據(jù)源。
以Backdoor軟件信息為例,利用文章方法為該軟件信息建立知識圖譜,建立結(jié)果如圖3所示。分析圖3可知,文章方法可有效建立軟件信息知識圖譜,直觀呈現(xiàn)軟件信息實體間的關系,其中,影響B(tài)ackdoor軟件信息的兩個版本是Backdoor0.5.9與Backdoor0.5.8。
在實驗樣本內(nèi)隨機選擇16個軟件信息樣本,分別包含16種軟件信息類型,利用文章方法對16個樣本進行惡意軟件信息檢測,檢測結(jié)果如表4所示。分析表4可知,文章方法可有效計算各軟件信息樣本的惡意分數(shù),完成惡意軟件信息檢測,其中,惡意軟件信息共7個,正常文件信息樣本共9個,對比實驗樣本可知,文章方法的惡意軟件信息檢測結(jié)果全部正確。實驗證明:文章方法可精準檢測惡意軟件信息。
3結(jié)論
惡意軟件威脅不斷演變,對網(wǎng)絡安全和數(shù)據(jù)安全構(gòu)成了嚴重威脅。因此,開發(fā)高效、準確的惡意軟件信息檢測方法對于保障網(wǎng)絡安全具有重要意義?;谥R圖譜的惡意軟件信息檢測方法作為一種新興的技術手段,具有廣泛的應用前景和重要的研究價值。通過實驗驗證,發(fā)現(xiàn)該方法表現(xiàn)出良好的檢測性能,能夠有效識別不同類型的惡意軟件,更好地應對快速變異和新型的惡意軟件威脅,不僅有助于提高網(wǎng)絡安全的防御能力,還對促進相關領域的技術創(chuàng)新和產(chǎn)業(yè)應用具有積極的影響。
參考文獻:
[1]劉延華,李嘉琪,歐振貴,等.對抗訓練驅(qū)動的惡意代碼檢測增強方法[J].通信學報,2022,43(9):169.
[2]高琪琪,師智斌,覃月明,等.基于API序列的可解釋惡意代碼檢測方法[J].計算機工程與設計,2023,44(6):1642.
[3]霍躍華,趙法起.基于Stacking與多特征融合的加密惡意流量檢測[J].計算機工程,2023,49(5):165.
[4]孫俊琳.基于信息流分析的容器內(nèi)惡意軟件漏洞檢測方法[J].上海電機學院學報,2023,26(2):105.
[5]吳月明,齊蒙,鄒德清,等.圖卷積網(wǎng)絡的抗混淆安卓惡意軟件檢測[J].軟件學報,2023,34(6):2526.
[6]印杰,黃肖宇,劉家銀,等.基于預訓練語言模型的安卓惡意軟件檢測方法[J].計算機工程與科學,2023,45(8):1433.
[7]蔣瑞林,覃仁超.基于深度可分離卷積的多神經(jīng)網(wǎng)絡惡意代碼檢測模型[J].計算機應用,2023,43(5):1527.
[8]劉善玲,祁正華.基于知識圖譜的惡意域名檢測[J].南京郵電大學學報(自然科學版),2023,43(3):96.
[9]劉昕煒,陶傳奇.一種靜態(tài)分析與知識圖譜結(jié)合的Java冗余代碼檢測方法[J].計算機科學,2023,50(3):65.
[10]楊吉云,范佳文,周潔,等.融合行為模式的Android惡意代碼檢測方法[J].計算機科學與探索,2022,16(8):1792.
[11]姚燁,朱怡安,錢亮,等.一種基于異質(zhì)模型融合的Android終端惡意軟件檢測方法[J].計算機科學,2022,49(z1):508.
[12]張楊,郝江波.基于注意力機制和殘差網(wǎng)絡的惡意代碼檢測方法[J].計算機應用,2022,42(6):1708.
[13]張云春,王旺旺,李成杰,等.物聯(lián)網(wǎng)中融合網(wǎng)絡流量的惡意軟件檢測[J].電子科技大學學報,2023,52(4):602.
[14]潘建文,崔展齊,林高毅,等.Android惡意應用的靜態(tài)檢測方法綜述[J].計算機研究與發(fā)展,2023,60(8):1875.
[15]喬夢晴,李琳,王頡,等.基于遺傳規(guī)劃和集成學習的惡意軟件檢測[J].計算機應用研究,2023,40(3):898.
Research on Malware Information Detection Method
Based on Knowledge Graph
SANG Daosong
(Huangshan Open University,AnHui Huangshan 245000)
ABSTRACT"The development of the Internet had led to a wide variety of types of malware information. In order to detect and obtain deeper levels of malware information,research was being conducted on malware information detection methods based on knowledge graphs to improve the effectiveness of malware information detection. Using Python web crawler technology in text mining to collect effective software information;Extract software information features from the collected software effective information through information gain algorithm; Input software information features into a bidirectional long short-term memory neural network,output software information entity recognition results,and extract relationships between software information entities; Based on entity disambiguation technology,knowledge fusion was performed on the extracted software information entity relationships to obtain a software information knowledge graph; Using graph inference algorithms to process software information knowledge graphs and obtain malware information detection results. Experimental results had shown that this method could effectively collect effective software information,extract software information features,and establish a software information knowledge graph;This method could effectively detect malicious software information and has high detection accuracy.
KEY WORDS"knowledge graph;malicious software; information detection;python web crawler;neural networks; graph inference algorithm
(責任編輯"王一諾)