張瑞 王曉菲
摘要:為解決傳統(tǒng)軟件漏洞檢測(cè)方法檢測(cè)吞吐率低的問題,基于混合深度學(xué)習(xí)模型設(shè)計(jì)軟件漏洞檢測(cè)方法。通過確定軟件漏洞檢測(cè)關(guān)鍵點(diǎn),提取軟件漏洞中的關(guān)鍵點(diǎn),處理軟件漏洞檢測(cè)數(shù)據(jù),剔除與軟件漏洞關(guān)鍵點(diǎn)無關(guān)的檢測(cè)數(shù)據(jù),基于混合深度學(xué)習(xí)模型向量化表達(dá)軟件漏洞特征,運(yùn)用混合深度學(xué)習(xí)模型的學(xué)習(xí)能力檢測(cè)軟件漏洞,實(shí)現(xiàn)基于混合深度學(xué)習(xí)模型軟件漏洞檢測(cè)。設(shè)計(jì)實(shí)例分析,結(jié)果表明,設(shè)計(jì)檢測(cè)方法檢測(cè)吞吐率均在3reqs/s以上,遠(yuǎn)高于對(duì)照組的檢測(cè)吞吐率,能夠解決傳統(tǒng)軟件漏洞檢測(cè)方法檢測(cè)吞吐率低的問題。
關(guān)鍵詞:混合深度學(xué)習(xí)模型;漏洞檢測(cè);吞吐率
中圖分類號(hào):TP343.7? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)18-0072-02
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
在信息化時(shí)代中,由于軟件的大范圍開發(fā),對(duì)開發(fā)者的專業(yè)性要求逐漸降低,導(dǎo)致開發(fā)者編寫的代碼越來越簡單化。這就意味著,軟件存在漏洞,其安全性急需提高[1]。在我國,但大多數(shù)對(duì)軟件漏洞檢測(cè)方法的研究都停留在通過關(guān)鍵設(shè)備檢測(cè)軟件異常,這種檢測(cè)方法在本質(zhì)上屬于靜態(tài)檢測(cè),而軟件漏洞在本質(zhì)上屬于動(dòng)態(tài)問題,因此傳統(tǒng)方法在實(shí)際應(yīng)用中存在檢測(cè)效率低的問題,具有很大的局限性。在后續(xù)的研究中,國外提出學(xué)習(xí)模型在軟件漏洞檢測(cè)方法的應(yīng)用,該方法一經(jīng)推出,立即受到相關(guān)部門的重點(diǎn)關(guān)注。但由于科學(xué)技術(shù)的不斷進(jìn)步,為學(xué)習(xí)模型的優(yōu)化設(shè)計(jì)提供了前所未有的機(jī)遇。因此,可以看出對(duì)軟件漏洞檢測(cè)方法的優(yōu)化設(shè)計(jì)是勢(shì)在必行的,混合深度學(xué)習(xí)模型可以提高數(shù)據(jù)處理效率。因此,本文將混合深度學(xué)習(xí)模型應(yīng)用在軟件漏洞檢測(cè)方法設(shè)計(jì)中,致力于從根本上提高軟件漏洞檢測(cè)效率。
1混合深度學(xué)習(xí)模型
混合深度學(xué)習(xí)模型在本質(zhì)上是一種前饋BP算法,可以通過卷積層以及池化層的人工神經(jīng)元響應(yīng)在覆蓋范圍內(nèi)的所有單元?;旌仙疃葘W(xué)習(xí)模型以其對(duì)數(shù)據(jù)以及圖像出色的處理能力,能夠廣泛應(yīng)用于各個(gè)行業(yè)中,并取得良好的應(yīng)用效果[2]。本文基于混合深度學(xué)習(xí)模型設(shè)計(jì)型的軟件漏洞檢測(cè)方法具體內(nèi)容,如下文所述。
2軟件漏洞檢測(cè)方法
2.1確定軟件漏洞檢測(cè)關(guān)鍵點(diǎn)
在軟件漏洞檢測(cè)過程中,必須預(yù)先確定軟件漏洞檢測(cè)點(diǎn),以此為依據(jù),展開智能檢測(cè)[3]。本文采用基于混合深度學(xué)習(xí)模型中對(duì)軟件的程序切片,提取軟件漏洞檢測(cè)點(diǎn),軟件漏洞檢測(cè)點(diǎn)在直線中的位置,如表1所示。
結(jié)合表1所示,擬合軟件漏洞檢測(cè)點(diǎn)在直線中的位置,提取軟件漏洞中的關(guān)鍵點(diǎn),在明確軟件漏洞中關(guān)鍵點(diǎn)的前提下,執(zhí)行軟件漏洞檢測(cè)數(shù)據(jù)處理。
2.2軟件漏洞檢測(cè)數(shù)據(jù)處理
以上文得出的軟件漏洞檢測(cè)關(guān)鍵點(diǎn)為切入點(diǎn),提取軟件漏洞檢測(cè)數(shù)據(jù)。并將字符型軟件漏洞檢測(cè)數(shù)據(jù)轉(zhuǎn)化為數(shù)值型軟件漏洞檢測(cè)數(shù)據(jù)[4]。此過程,可通過公式可表現(xiàn)為:
[f:A→B]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
式(1)中,[f]表示[A]與[B]之間的映射關(guān)系;[A]為原始字符型軟件漏洞數(shù)據(jù);[B]為二進(jìn)制數(shù)據(jù)。由于軟件漏洞檢測(cè)中在收斂速度和精度方面多存在問題,利用混合深度學(xué)習(xí)模型,對(duì)數(shù)據(jù)就行歸一化處理:
[X=P-MinMax-Min]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
在公式(2)中,[X]表示歸一化處理后的值;[P]表示原始軟件漏洞檢測(cè)數(shù)據(jù)權(quán)重;[Max]表示基于混合深度學(xué)習(xí)模型歸一化的最大值;[Min]表示基于混合深度學(xué)習(xí)模型歸一化的最小值。在通過公式(2),完成軟件漏洞檢測(cè)數(shù)據(jù)歸一化處理。在此基礎(chǔ)上,本文采用基于混合深度學(xué)習(xí)模型7×7的卷積核,分析軟件漏洞檢測(cè)數(shù)據(jù)。首先,將軟件漏洞檢測(cè)數(shù)據(jù)中的檢測(cè)點(diǎn)作為一個(gè)獨(dú)立的信號(hào),提取信號(hào)中的與軟件漏洞關(guān)鍵點(diǎn)相關(guān)的數(shù)據(jù)[5]。此過程可以通過計(jì)算的方式加以表達(dá),設(shè)目標(biāo)函數(shù)為[v],可得公式(3)。
[v=Kd/Xt]? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
公式(1)中,[K]指的是軟件漏洞檢測(cè)數(shù)據(jù)總字符長度;[d]指的是軟件漏洞檢測(cè)數(shù)據(jù)集大小;[t]指的是軟件漏洞檢測(cè)數(shù)據(jù)與軟件漏洞關(guān)鍵點(diǎn)的關(guān)聯(lián)程度。通過公式(1),提取信號(hào)中的與軟件漏洞關(guān)鍵點(diǎn)相關(guān)的數(shù)據(jù),導(dǎo)入數(shù)據(jù)處理計(jì)算機(jī),剔除與軟件漏洞關(guān)鍵點(diǎn)無關(guān)的軟件漏洞檢測(cè)數(shù)據(jù),保證軟件漏洞檢測(cè)數(shù)據(jù)處理精度。
2.3向量化表達(dá)軟件漏洞特征
在完成軟件漏洞檢測(cè)數(shù)據(jù)處理的基礎(chǔ)上,基于混合深度學(xué)習(xí)模型將軟件漏洞檢測(cè)數(shù)據(jù)嵌入到池化層和全連接層之間,向量化處理軟件漏洞特征,并保證軟件代碼的完整度不被破壞[6]。
為基于混合深度學(xué)習(xí)模型向量化處理漏洞特征代碼,在此基礎(chǔ)上,通過編寫 python 腳本,實(shí)現(xiàn)對(duì)軟件漏洞特征向量的矩陣化,詞向量的個(gè)數(shù)作為橫坐標(biāo),詞向量的維數(shù)作為縱坐標(biāo)。特征矩陣大小統(tǒng)一處理為 50×50,詞向量個(gè)數(shù)不足50個(gè)的用0補(bǔ)齊。以此,完成基于混合深度學(xué)習(xí)模型向量化表達(dá)軟件漏洞特征。
2.4實(shí)現(xiàn)基于混合深度學(xué)習(xí)模型軟件漏洞檢測(cè)
基于混合深度學(xué)習(xí)模型向量化表達(dá)軟件漏洞特征后,可以將軟件漏洞檢測(cè)的過程可以看作對(duì)一個(gè)深度學(xué)習(xí)結(jié)構(gòu)權(quán)值參數(shù)的初始化訓(xùn)練過程[7]。為避免導(dǎo)致訓(xùn)練時(shí)間過長,使用混合深度學(xué)習(xí)模型在進(jìn)行軟件漏洞檢測(cè)前,應(yīng)通過數(shù)次訓(xùn)練,增強(qiáng)混合深度學(xué)習(xí)模型的學(xué)習(xí)能力,便于模型能夠通過多次記憶提高自身學(xué)習(xí)能力,掌握更多的軟件漏洞檢測(cè)方法[8]。利用強(qiáng)分類器針對(duì)大量軟件漏洞特征進(jìn)行分類,幫助訓(xùn)練后的深度學(xué)習(xí)分類器能夠快速地對(duì)軟件漏洞特征做出詳盡的表達(dá),將表達(dá)結(jié)果作為檢測(cè)軟件漏洞的參照標(biāo)準(zhǔn)。設(shè)軟件漏洞檢測(cè)方程式為[x],可得公式(4)所示。
[x=12λv2]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)
公式(4)中,[λ]指的是軟件漏洞檢測(cè)正則化率。得到公式(4)后,用混合深度學(xué)習(xí)模型判斷軟件漏洞的屬性,以此實(shí)現(xiàn)軟件漏洞檢測(cè)。
3實(shí)例分析
3.1實(shí)驗(yàn)準(zhǔn)備
構(gòu)建實(shí)例分析,硬件設(shè)施包括:型號(hào)為TYR3583589的上位機(jī)。此次實(shí)驗(yàn)環(huán)境參數(shù)設(shè)置如下:任務(wù)最大迭代次數(shù)20、任務(wù)布置器2個(gè)、虛擬主機(jī)資源數(shù)量860、任務(wù)資源消耗量30、網(wǎng)絡(luò)權(quán)重系數(shù)0.3575。
實(shí)驗(yàn)對(duì)象選取Kerdgerly軟件,在保證實(shí)驗(yàn)具有有效性的前提下,選擇同一個(gè)測(cè)試指標(biāo)進(jìn)行,實(shí)驗(yàn)的內(nèi)容為測(cè)試本文方法與傳統(tǒng)方法之間的檢測(cè)吞吐率。分別使用本文方法與傳統(tǒng)方法檢測(cè)Kerdgerly軟件漏洞,設(shè)置迭代次數(shù)為20,利用Heapchyer軟件記錄測(cè)得的檢測(cè)吞吐率,分別設(shè)置為實(shí)驗(yàn)組和對(duì)照組。
3.2實(shí)驗(yàn)結(jié)果分析與結(jié)論
采集10組實(shí)驗(yàn)數(shù)據(jù),并整理,繪制為實(shí)驗(yàn)結(jié)果圖,如圖1所示。
通過圖1可得出如下的結(jié)論:本文檢測(cè)方法檢測(cè)吞吐率均在3reqs/s以上,遠(yuǎn)高于對(duì)照組的檢測(cè)吞吐率,對(duì)于Kerdgerly軟件漏洞檢測(cè)效率更高。實(shí)驗(yàn)表明,設(shè)計(jì)的方法具有實(shí)用性,可以廣泛應(yīng)用于軟件漏洞方面。
4結(jié)束語
通過基于混合深度學(xué)習(xí)模型的軟件漏洞檢測(cè)方法研究,來解決傳統(tǒng)方法中軟件漏洞檢測(cè)中的問題,通過理論分析保證了理論可行性,并進(jìn)行對(duì)比試驗(yàn),驗(yàn)證了設(shè)計(jì)方法的實(shí)用性。在后期的發(fā)展中,應(yīng)加大混合深度學(xué)習(xí)模型在軟件漏洞檢測(cè)方法中的應(yīng)用力度。
參考文獻(xiàn):
[1] 李元誠,崔亞奇,呂俊峰,等.開源軟件漏洞檢測(cè)的混合深度學(xué)習(xí)方法[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(11):52-59.
[2] 杜鵬,丁世飛.基于混合詞向量深度學(xué)習(xí)模型的DGA域名檢測(cè)方法[J].計(jì)算機(jī)研究與發(fā)展,2020,57(2):433-446.
[3] 李傳煌,吳艷,錢正哲,等.SDN下基于深度學(xué)習(xí)混合模型的DDoS攻擊檢測(cè)與防御[J].通信學(xué)報(bào),2018,39(7):176-187.
[4] 李元誠,黃戎,來風(fēng)剛,等.基于深度聚類的開源軟件漏洞檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用研究,2020,37(4):1107-1110,1114.
[5] 夏之陽,易平,楊濤.基于神經(jīng)網(wǎng)絡(luò)與代碼相似性的靜態(tài)漏洞檢測(cè)[J].計(jì)算機(jī)工程,2019,45(12):141-146.
[6] 張成彬,趙慧,曹宗鈺.基于深度學(xué)習(xí)的車身網(wǎng)絡(luò)KWP2000協(xié)議漏洞挖掘[J].山東大學(xué)學(xué)報(bào)(工學(xué)版),2019,49(2):17-22.
[7] 趙磊,金銀山,劉勤亮,等.基于深度學(xué)習(xí)的高結(jié)構(gòu)化惡意樣本的檢測(cè)方法[J].武漢大學(xué)學(xué)報(bào)(理學(xué)版),2019,65(6):571-575.
[8] 張杰,黃仁書,林金霞.基于Deep Learning算法的漏洞掃描技術(shù)研究[J].黑河學(xué)院學(xué)報(bào),2018,9(7):209-210.
【通聯(lián)編輯:張薇】